├── src ├── components │ ├── index.js │ ├── LTag │ │ ├── index.js │ │ └── LTag.vue │ ├── LAlert │ │ ├── index.js │ │ └── LAlert.vue │ ├── LInput │ │ ├── index.js │ │ └── LInput.vue │ ├── LRadio │ │ ├── index.js │ │ └── LRadio.vue │ ├── LTable │ │ ├── index.js │ │ ├── LTableBody.vue │ │ ├── LTableHead.vue │ │ └── LTable.vue │ ├── LDialog │ │ ├── index.js │ │ └── LDialog.vue │ ├── LSelect │ │ ├── index.js │ │ ├── LSelectOptions.vue │ │ └── LSelect.vue │ ├── LTooltip │ │ ├── index.js │ │ └── LTooltip.vue │ ├── LCheckbox │ │ ├── index.js │ │ └── LCheckbox.vue │ ├── LDatePicker │ │ ├── index.js │ │ └── LDatePicker.vue │ ├── LGrid │ │ ├── index.js │ │ ├── LRow.vue │ │ └── LCol.vue │ ├── LForm │ │ ├── index.js │ │ ├── LFormItem.vue │ │ └── LForm.vue │ ├── LButton │ │ ├── LButtonGroup.vue │ │ ├── index.js │ │ └── LButton.vue │ ├── LDropdown │ │ ├── LDropdownList.vue │ │ ├── index.js │ │ ├── LDropdownItem.vue │ │ └── LDropdown.vue │ └── LNotification │ │ ├── index.js │ │ └── LNotification.vue ├── assets │ ├── logo.png │ └── scss │ │ ├── abstracts │ │ ├── _icon.scss │ │ ├── index.scss │ │ ├── _colors.scss │ │ ├── _variables.scss │ │ └── _animation.scss │ │ ├── main.scss │ │ ├── components │ │ ├── index.scss │ │ ├── _button-group.scss │ │ ├── _table.scss │ │ ├── _grid.scss │ │ ├── _form.scss │ │ ├── _tag.scss │ │ ├── _checkbox.scss │ │ ├── _radio.scss │ │ ├── _alert.scss │ │ ├── _select.scss │ │ ├── _input.scss │ │ ├── _dialog.scss │ │ ├── _tooltip.scss │ │ ├── _dropdown.scss │ │ ├── _notification.scss │ │ ├── _date-picker.scss │ │ └── _button.scss │ │ ├── mixins │ │ └── index.scss │ │ ├── README.md │ │ └── base.scss ├── helpers │ └── is-vnode.js ├── index.js └── directives │ └── click-outside.js ├── docs ├── live │ └── README.md ├── .vuepress │ ├── public │ │ ├── live.png │ │ ├── favicon.png │ │ └── favicon-blue.png │ ├── enhanceApp.js │ ├── override.styl │ ├── components │ │ ├── Demos │ │ │ ├── LTag │ │ │ │ ├── Default.vue │ │ │ │ └── Closable.vue │ │ │ ├── LDropdown │ │ │ │ ├── Default.vue │ │ │ │ └── Placement.vue │ │ │ ├── LGrid │ │ │ │ ├── Order.vue │ │ │ │ ├── Default.vue │ │ │ │ ├── Responsive.vue │ │ │ │ ├── Offset.vue │ │ │ │ ├── Gutter.vue │ │ │ │ ├── Justify.vue │ │ │ │ └── Align.vue │ │ │ ├── LDatePicker │ │ │ │ └── Default.vue │ │ │ ├── LTable │ │ │ │ ├── Default.vue │ │ │ │ ├── Border.vue │ │ │ │ └── Custom.vue │ │ │ ├── LRadio │ │ │ │ └── Default.vue │ │ │ ├── LForm │ │ │ │ └── Default.vue │ │ │ ├── LCheckbox │ │ │ │ └── Default.vue │ │ │ ├── LInput │ │ │ │ └── Default.vue │ │ │ ├── LAlert │ │ │ │ └── Default.vue │ │ │ ├── LSelect │ │ │ │ └── Default.vue │ │ │ ├── LTooltip │ │ │ │ └── Default.vue │ │ │ ├── LButton │ │ │ │ └── Default.vue │ │ │ ├── LNotification │ │ │ │ └── Default.vue │ │ │ └── LDialog │ │ │ │ └── Default.vue │ │ ├── Code │ │ │ └── Container.vue │ │ └── Api │ │ │ └── LButton.vue │ └── config.js ├── components │ ├── form.md │ ├── input.md │ ├── radio.md │ ├── dialog.md │ ├── select.md │ ├── checkbox.md │ ├── tooltip.md │ ├── date-picker.md │ ├── notification.md │ ├── alert.md │ ├── tag.md │ ├── dropdown.md │ ├── button.md │ ├── table.md │ └── grid.md └── README.md ├── README.md ├── babel.config.js ├── public ├── live.png ├── favicon.png ├── favicon-blue.png └── index.html ├── .postcssrc.js ├── vue.config.js ├── dist ├── fonts │ ├── MaterialIcons-Regular.012cf6a1.woff │ ├── MaterialIcons-Regular.570eb838.woff2 │ ├── MaterialIcons-Regular.a37b0c01.ttf │ └── MaterialIcons-Regular.e79bfd88.eot ├── demo.html ├── live.css ├── live.umd.min.js └── live.common.js.map ├── tests └── unit │ ├── .eslintrc.js │ └── HelloWorld.spec.js ├── .npmignore ├── .gitignore ├── jest.config.js ├── deploy.sh ├── .eslintrc.js └── package.json /src/components/index.js: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /docs/live/README.md: -------------------------------------------------------------------------------- 1 | 2 | # 快速开始 3 | 4 | Hello Live -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | # Live UI 2 | 3 | A UI framework for Vue.js 2.x -------------------------------------------------------------------------------- /babel.config.js: -------------------------------------------------------------------------------- 1 | module.exports = { 2 | presets: ['@vue/app'], 3 | } 4 | -------------------------------------------------------------------------------- /public/live.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/EryouHao/live/HEAD/public/live.png -------------------------------------------------------------------------------- /.postcssrc.js: -------------------------------------------------------------------------------- 1 | module.exports = { 2 | plugins: { 3 | autoprefixer: {} 4 | } 5 | } -------------------------------------------------------------------------------- /public/favicon.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/EryouHao/live/HEAD/public/favicon.png -------------------------------------------------------------------------------- /src/assets/logo.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/EryouHao/live/HEAD/src/assets/logo.png -------------------------------------------------------------------------------- /public/favicon-blue.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/EryouHao/live/HEAD/public/favicon-blue.png -------------------------------------------------------------------------------- /docs/.vuepress/public/live.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/EryouHao/live/HEAD/docs/.vuepress/public/live.png -------------------------------------------------------------------------------- /src/assets/scss/abstracts/_icon.scss: -------------------------------------------------------------------------------- 1 | .material-icons { 2 | font-size: inherit; 3 | line-height: inherit; 4 | } -------------------------------------------------------------------------------- /docs/.vuepress/public/favicon.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/EryouHao/live/HEAD/docs/.vuepress/public/favicon.png -------------------------------------------------------------------------------- /docs/components/form.md: -------------------------------------------------------------------------------- 1 | # Form 2 | 3 |
4 | 5 |
-------------------------------------------------------------------------------- /docs/components/input.md: -------------------------------------------------------------------------------- 1 | # Input 2 | 3 |
4 | 5 |
-------------------------------------------------------------------------------- /docs/components/radio.md: -------------------------------------------------------------------------------- 1 | # Radio 2 | 3 |
4 | 5 |
-------------------------------------------------------------------------------- /docs/.vuepress/public/favicon-blue.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/EryouHao/live/HEAD/docs/.vuepress/public/favicon-blue.png -------------------------------------------------------------------------------- /docs/components/dialog.md: -------------------------------------------------------------------------------- 1 | # Dialog 2 | 3 |
4 | 5 |
-------------------------------------------------------------------------------- /docs/components/select.md: -------------------------------------------------------------------------------- 1 | # Select 2 | 3 |
4 | 5 |
-------------------------------------------------------------------------------- /docs/components/checkbox.md: -------------------------------------------------------------------------------- 1 | # Checkbox 2 | 3 |
4 | 5 |
-------------------------------------------------------------------------------- /docs/components/tooltip.md: -------------------------------------------------------------------------------- 1 | # Tooltip 2 | 3 |
4 | 5 |
-------------------------------------------------------------------------------- /vue.config.js: -------------------------------------------------------------------------------- 1 | module.exports = { 2 | pages: { 3 | index: { 4 | entry: './src/index.js', 5 | }, 6 | }, 7 | } 8 | -------------------------------------------------------------------------------- /src/assets/scss/abstracts/index.scss: -------------------------------------------------------------------------------- 1 | @import './_colors'; 2 | @import './_variables'; 3 | @import './_animation'; 4 | @import './_icon'; -------------------------------------------------------------------------------- /dist/fonts/MaterialIcons-Regular.012cf6a1.woff: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/EryouHao/live/HEAD/dist/fonts/MaterialIcons-Regular.012cf6a1.woff -------------------------------------------------------------------------------- /dist/fonts/MaterialIcons-Regular.570eb838.woff2: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/EryouHao/live/HEAD/dist/fonts/MaterialIcons-Regular.570eb838.woff2 -------------------------------------------------------------------------------- /dist/fonts/MaterialIcons-Regular.a37b0c01.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/EryouHao/live/HEAD/dist/fonts/MaterialIcons-Regular.a37b0c01.ttf -------------------------------------------------------------------------------- /dist/fonts/MaterialIcons-Regular.e79bfd88.eot: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/EryouHao/live/HEAD/dist/fonts/MaterialIcons-Regular.e79bfd88.eot -------------------------------------------------------------------------------- /docs/components/date-picker.md: -------------------------------------------------------------------------------- 1 | # Date Picker 2 | 3 |
4 | 5 |
-------------------------------------------------------------------------------- /src/components/LTag/index.js: -------------------------------------------------------------------------------- 1 | import LTag from './LTag.vue' 2 | 3 | export default (Vue) => { 4 | Vue.component(LTag.name, LTag) 5 | } 6 | -------------------------------------------------------------------------------- /docs/components/notification.md: -------------------------------------------------------------------------------- 1 | # Notification 2 | 3 |
4 | 5 |
-------------------------------------------------------------------------------- /src/components/LAlert/index.js: -------------------------------------------------------------------------------- 1 | import LAlert from './LAlert.vue' 2 | 3 | export default (Vue) => { 4 | Vue.component(LAlert.name, LAlert) 5 | } 6 | -------------------------------------------------------------------------------- /src/components/LInput/index.js: -------------------------------------------------------------------------------- 1 | import LInput from './LInput.vue' 2 | 3 | export default (Vue) => { 4 | Vue.component(LInput.name, LInput) 5 | } 6 | -------------------------------------------------------------------------------- /src/components/LRadio/index.js: -------------------------------------------------------------------------------- 1 | import LRadio from './LRadio.vue' 2 | 3 | export default (Vue) => { 4 | Vue.component(LRadio.name, LRadio) 5 | } 6 | -------------------------------------------------------------------------------- /src/components/LTable/index.js: -------------------------------------------------------------------------------- 1 | import LTable from './LTable.vue' 2 | 3 | export default (Vue) => { 4 | Vue.component(LTable.name, LTable) 5 | } 6 | -------------------------------------------------------------------------------- /src/components/LDialog/index.js: -------------------------------------------------------------------------------- 1 | import LDialog from './LDialog.vue' 2 | 3 | export default (Vue) => { 4 | Vue.component(LDialog.name, LDialog) 5 | } 6 | -------------------------------------------------------------------------------- /src/components/LSelect/index.js: -------------------------------------------------------------------------------- 1 | import LSelect from './LSelect.vue' 2 | 3 | export default (Vue) => { 4 | Vue.component(LSelect.name, LSelect) 5 | } 6 | -------------------------------------------------------------------------------- /src/components/LTooltip/index.js: -------------------------------------------------------------------------------- 1 | import LTooltip from './LTooltip.vue' 2 | 3 | export default (Vue) => { 4 | Vue.component(LTooltip.name, LTooltip) 5 | } 6 | -------------------------------------------------------------------------------- /tests/unit/.eslintrc.js: -------------------------------------------------------------------------------- 1 | module.exports = { 2 | env: { 3 | jest: true 4 | }, 5 | rules: { 6 | 'import/no-extraneous-dependencies': 'off' 7 | } 8 | } -------------------------------------------------------------------------------- /src/components/LCheckbox/index.js: -------------------------------------------------------------------------------- 1 | import LCheckbox from './LCheckbox.vue' 2 | 3 | export default (Vue) => { 4 | Vue.component(LCheckbox.name, LCheckbox) 5 | } 6 | -------------------------------------------------------------------------------- /src/helpers/is-vnode.js: -------------------------------------------------------------------------------- 1 | export default function (node) { 2 | return typeof node === 'object' && Object.prototype.hasOwnProperty.call(node, 'componentOptions') 3 | } 4 | -------------------------------------------------------------------------------- /src/components/LDatePicker/index.js: -------------------------------------------------------------------------------- 1 | import LDatePicker from './LDatePicker.vue' 2 | 3 | export default (Vue) => { 4 | Vue.component(LDatePicker.name, LDatePicker) 5 | } 6 | -------------------------------------------------------------------------------- /docs/components/alert.md: -------------------------------------------------------------------------------- 1 | # Alert 2 | 3 | ### 默认 4 |
5 | 6 |
7 | 8 | ### 可关闭(Closable) 9 | 10 | -------------------------------------------------------------------------------- /docs/README.md: -------------------------------------------------------------------------------- 1 | --- 2 | home: true 3 | heroImage: /live.png 4 | actionText: 快速上手 → 5 | actionLink: /components/button 6 | footer: MIT Licensed | Copyright © 2018-present EryouHao 7 | --- -------------------------------------------------------------------------------- /docs/.vuepress/enhanceApp.js: -------------------------------------------------------------------------------- 1 | import Live from '../../src/index' 2 | 3 | export default ({ 4 | Vue, 5 | options, 6 | router, 7 | siteData 8 | }) => { 9 | Vue.use(Live) 10 | } -------------------------------------------------------------------------------- /src/assets/scss/main.scss: -------------------------------------------------------------------------------- 1 | @import './base'; 2 | @import './abstracts/index'; 3 | @import './components/index'; 4 | 5 | body, input { 6 | color: $default-text-color; 7 | font-size: $default-font-size; 8 | } -------------------------------------------------------------------------------- /src/components/LGrid/index.js: -------------------------------------------------------------------------------- 1 | import LRow from './LRow.vue' 2 | import LCol from './LCol.vue' 3 | 4 | export default (Vue) => { 5 | Vue.component(LRow.name, LRow) 6 | Vue.component(LCol.name, LCol) 7 | } 8 | -------------------------------------------------------------------------------- /src/components/LForm/index.js: -------------------------------------------------------------------------------- 1 | import LForm from './LForm.vue' 2 | import LFormItem from './LFormItem.vue' 3 | 4 | export default (Vue) => { 5 | Vue.component(LForm.name, LForm) 6 | Vue.component(LFormItem.name, LFormItem) 7 | } 8 | -------------------------------------------------------------------------------- /src/components/LButton/LButtonGroup.vue: -------------------------------------------------------------------------------- 1 | 6 | 7 | 12 | -------------------------------------------------------------------------------- /docs/components/tag.md: -------------------------------------------------------------------------------- 1 | # Tag 2 | 3 | ### 默认 4 |
5 | 6 |
7 | 8 | ### 可关闭(Closable) 9 |
10 | 11 |
12 | -------------------------------------------------------------------------------- /src/components/LButton/index.js: -------------------------------------------------------------------------------- 1 | import LButton from './LButton.vue' 2 | import LButtonGroup from './LButtonGroup.vue' 3 | 4 | export default (Vue) => { 5 | Vue.component(LButton.name, LButton) 6 | Vue.component(LButtonGroup.name, LButtonGroup) 7 | } 8 | -------------------------------------------------------------------------------- /.npmignore: -------------------------------------------------------------------------------- 1 | .DS_Store 2 | docs/ 3 | src/ 4 | scripts/ 5 | node_modules/ 6 | npm-debug.log* 7 | yarn-debug.log* 8 | yarn-error.log* 9 | 10 | 11 | # Editor directories and files 12 | .idea 13 | .vscode 14 | *.suo 15 | *.ntvs* 16 | *.njsproj 17 | *.sln 18 | .github/ -------------------------------------------------------------------------------- /docs/components/dropdown.md: -------------------------------------------------------------------------------- 1 | # Dropdown 2 | 3 | ### 默认 4 |
5 | 6 |
7 | 8 | ### 位置(Placement) 9 |
10 | 11 |
12 | -------------------------------------------------------------------------------- /docs/components/button.md: -------------------------------------------------------------------------------- 1 | # Buttons 2 | 3 |
4 | 5 |
6 | 7 | 8 | <<< @/docs/.vuepress/components/Demos/LButton/Default.vue 9 | 10 | 11 | ## API 12 | 13 | -------------------------------------------------------------------------------- /src/components/LDropdown/LDropdownList.vue: -------------------------------------------------------------------------------- 1 | 6 | 7 | 15 | 16 | 18 | -------------------------------------------------------------------------------- /.gitignore: -------------------------------------------------------------------------------- 1 | .DS_Store 2 | node_modules 3 | # /dist 4 | 5 | # local env files 6 | .env.local 7 | .env.*.local 8 | 9 | # Log files 10 | npm-debug.log* 11 | yarn-debug.log* 12 | yarn-error.log* 13 | 14 | # Editor directories and files 15 | .idea 16 | .vscode 17 | *.suo 18 | *.ntvs* 19 | *.njsproj 20 | *.sln 21 | *.sw* 22 | -------------------------------------------------------------------------------- /docs/components/table.md: -------------------------------------------------------------------------------- 1 | # Table 2 | 3 | ### 默认 4 |
5 | 6 |
7 | 8 | ### 带边框 9 |
10 | 11 |
12 | 13 | ### 自定义列标题和内容 14 | 15 |
16 | 17 |
-------------------------------------------------------------------------------- /dist/demo.html: -------------------------------------------------------------------------------- 1 | live demo 2 | 3 | 4 | 5 | 6 |
7 | 8 |
9 | 10 | 17 | -------------------------------------------------------------------------------- /docs/.vuepress/override.styl: -------------------------------------------------------------------------------- 1 | $accentColor = #006CFF; // 主题色 2 | $textColor = #2c3e50 // 文字颜色 3 | $borderColor = #eaecef // 边框颜色 4 | $codeBgColor = #282c34 // 代码背景颜色 5 | 6 | table { 7 | display: table; 8 | } 9 | div[class*="language-"] { 10 | border-radius: 2px; 11 | } 12 | 13 | .content:not(.custom) 14 | & > h1, h2, h3, h4, h5, h6 15 | margin-bottom: 24px; 16 | -------------------------------------------------------------------------------- /src/components/LDropdown/index.js: -------------------------------------------------------------------------------- 1 | import LDropdown from './LDropdown.vue' 2 | import LDropdownList from './LDropdownList.vue' 3 | import LDropdownItem from './LDropdownItem.vue' 4 | 5 | export default (Vue) => { 6 | Vue.component(LDropdown.name, LDropdown) 7 | Vue.component(LDropdownList.name, LDropdownList) 8 | Vue.component(LDropdownItem.name, LDropdownItem) 9 | } 10 | -------------------------------------------------------------------------------- /tests/unit/HelloWorld.spec.js: -------------------------------------------------------------------------------- 1 | import { shallowMount } from "@vue/test-utils"; 2 | import HelloWorld from "@/components/HelloWorld.vue"; 3 | 4 | describe("HelloWorld.vue", () => { 5 | it("renders props.msg when passed", () => { 6 | const msg = "new message"; 7 | const wrapper = shallowMount(HelloWorld, { 8 | propsData: { msg } 9 | }); 10 | expect(wrapper.text()).toMatch(msg); 11 | }); 12 | }); 13 | -------------------------------------------------------------------------------- /src/assets/scss/components/index.scss: -------------------------------------------------------------------------------- 1 | @import './_button'; 2 | @import './_button-group'; 3 | @import './_input'; 4 | @import './_select'; 5 | @import './_date-picker'; 6 | @import './_radio'; 7 | @import './_checkbox'; 8 | @import './_tooltip'; 9 | @import './_notification'; 10 | @import './_form'; 11 | @import './_dialog'; 12 | @import './_table'; 13 | @import './_grid'; 14 | @import './_tag'; 15 | @import './_alert'; 16 | @import './_dropdown'; 17 | -------------------------------------------------------------------------------- /src/assets/scss/components/_button-group.scss: -------------------------------------------------------------------------------- 1 | .live-btn-group { 2 | >.live-btn { 3 | &:first-child:not(:last-child) { 4 | border-top-right-radius: 0; 5 | border-bottom-right-radius: 0; 6 | } 7 | &:last-child:not(:first-child) { 8 | border-top-left-radius: 0; 9 | border-bottom-left-radius: 0; 10 | 11 | } 12 | &:not(:first-child):not(:last-child) { 13 | border-radius: 0; 14 | } 15 | } 16 | .live-btn + .live-btn { 17 | margin-left: -1px; 18 | } 19 | } -------------------------------------------------------------------------------- /jest.config.js: -------------------------------------------------------------------------------- 1 | module.exports = { 2 | moduleFileExtensions: ["js", "jsx", "json", "vue"], 3 | transform: { 4 | "^.+\\.vue$": "vue-jest", 5 | ".+\\.(css|styl|less|sass|scss|png|jpg|ttf|woff|woff2)$": 6 | "jest-transform-stub", 7 | "^.+\\.jsx?$": "babel-jest" 8 | }, 9 | moduleNameMapper: { 10 | "^@/(.*)$": "/src/$1" 11 | }, 12 | snapshotSerializers: ["jest-serializer-vue"], 13 | testMatch: [ 14 | "/(tests/unit/**/*.spec.(js|jsx|ts|tsx)|**/__tests__/*.(js|jsx|ts|tsx))" 15 | ] 16 | }; 17 | -------------------------------------------------------------------------------- /docs/.vuepress/components/Demos/LTag/Default.vue: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /docs/.vuepress/components/Demos/LTag/Closable.vue: -------------------------------------------------------------------------------- 1 | 11 | 12 | 21 | -------------------------------------------------------------------------------- /src/assets/scss/abstracts/_colors.scss: -------------------------------------------------------------------------------- 1 | $darker-main-color: #004cb3; 2 | $dark-main-color: #0061e6; 3 | $main-color: #006CFF; 4 | $light-main-color: #006cff21; 5 | 6 | $black: #000000; 7 | $white: #FFFFFF; 8 | 9 | $dark-gray: #5E5E5E; 10 | $default-gray: #CCCCCC; 11 | $light-gray: #E6E6E6; 12 | $lighter-gray: #F3F3F3; 13 | 14 | 15 | $darker-red: #af0900; 16 | $dark-red: #e20c00; 17 | $default-red: #FB0D00; 18 | 19 | 20 | $default-green: #11B711; 21 | $default-yellow: #FAAD14; 22 | $default-green-blue: #788F9A; 23 | 24 | $dark-text-color: #2b2b2b; 25 | $default-text-color: #444444; 26 | $light-text-color: #6a6a6a; -------------------------------------------------------------------------------- /public/index.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | live 9 | 10 | 11 | 14 |
15 | 16 | 17 | 18 | -------------------------------------------------------------------------------- /deploy.sh: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env sh 2 | 3 | # 确保脚本抛出遇到的错误 4 | set -e 5 | 6 | # 生成静态文件 7 | npm run docs:build 8 | 9 | # 进入生成的文件夹 10 | cd docs/.vuepress/dist 11 | 12 | # 如果是发布到自定义域名 13 | # echo 'www.example.com' > CNAME 14 | 15 | git init 16 | git add -A 17 | git config user.name = 'EryouHao' 18 | git config user.email = 'haoeryou@qq.com' 19 | git commit -m 'docs: update docs' 20 | 21 | # 如果发布到 https://.github.io 22 | # git push -f git@github.com:/.github.io.git master 23 | 24 | # 如果发布到 https://.github.io/ 25 | git push -f git@github.com:EryouHao/live.git master:gh-pages 26 | 27 | cd - -------------------------------------------------------------------------------- /src/assets/scss/components/_table.scss: -------------------------------------------------------------------------------- 1 | .live-table-container { 2 | 3 | } 4 | 5 | .live-table { 6 | display: table; 7 | width: 100%; 8 | text-align: left; 9 | margin: 0; 10 | padding: 0; 11 | border-collapse: collapse; 12 | overflow-x: auto; 13 | 14 | th { 15 | background: $lighter-gray; 16 | } 17 | 18 | th, td { 19 | border: 1px solid #dfe2e5; 20 | padding: 12px 16px; 21 | border-left-width: 0px; 22 | border-right-width: 0px; 23 | } 24 | 25 | &.is-border { 26 | th, td { 27 | border-left-width: 1px; 28 | border-right-width: 1px; 29 | } 30 | } 31 | 32 | } 33 | .live-thead { 34 | width: 100%; 35 | } -------------------------------------------------------------------------------- /src/assets/scss/components/_grid.scss: -------------------------------------------------------------------------------- 1 | @import '../mixins/index.scss'; 2 | 3 | $colLen: 24; 4 | 5 | .live-row { 6 | display: flex; 7 | flex-wrap: wrap; 8 | 9 | .live-col { 10 | flex: 0 0 auto; 11 | } 12 | 13 | @for $i from 0 through $colLen { 14 | .live-col-#{$i} { 15 | width: (1 / $colLen * $i * 100) * 1%; 16 | } 17 | .live-col-offset-#{$i} { 18 | margin-left: (1 / $colLen * $i * 100) * 1%; 19 | } 20 | } 21 | 22 | @each $size in xs, sm, md, lg, xl { 23 | @include media($size) { 24 | @for $i from 0 through $colLen { 25 | .live-col-#{$size}-#{$i} { 26 | width: (1 / $colLen * $i * 100) * 1%; 27 | } 28 | } 29 | } 30 | } 31 | 32 | } 33 | -------------------------------------------------------------------------------- /src/components/LDropdown/LDropdownItem.vue: -------------------------------------------------------------------------------- 1 | 6 | 7 | 33 | 34 | 36 | -------------------------------------------------------------------------------- /docs/.vuepress/components/Demos/LDropdown/Default.vue: -------------------------------------------------------------------------------- 1 | 17 | 18 | 25 | 26 | 28 | -------------------------------------------------------------------------------- /src/assets/scss/abstracts/_variables.scss: -------------------------------------------------------------------------------- 1 | @import './_colors'; 2 | 3 | $default-font-size: 14px; 4 | 5 | $btn-border-radius: 2px; 6 | $default-border-box-shadow: inset 0 0 0 1px $light-gray; 7 | $dark-border-box-shadow: inset 0 0 0 1px $default-gray; 8 | $main-border-box-shadow: inset 0 0 0 1px $main-color; 9 | $default-box-shadow: 0 1px 2px 0 rgba(0,0,0,.15); 10 | $tip-box-shadow: 0 0 3px 0 rgba(0, 0, 0, .15); 11 | 12 | $notification-box-shadow: 0px 0px 8px 0 rgba(0, 0, 0, 0.08); 13 | 14 | $input-border-radius: 2px; 15 | $select-border-radius: 2px; 16 | 17 | $dialog-background: rgba(255, 255, 255, 0.88); 18 | $dialog-box-shadow: 0 0 3px 0 rgba(0, 0, 0, .15); 19 | $dialog-border-radius: 2px; 20 | 21 | $xs-max: 576px; 22 | $sm-max: 768px; 23 | $md-max: 992px; 24 | $lg-max: 1200px; -------------------------------------------------------------------------------- /docs/components/grid.md: -------------------------------------------------------------------------------- 1 | # Grid 2 | 3 | ### 基础(Span) 4 |
5 | 6 |
7 | 8 | ### 对齐(Justify) 9 |
10 | 11 |
12 | 13 | ### 对齐(Align) 14 |
15 | 16 |
17 | 18 | ### 间隔(Gutter) 19 |
20 | 21 |
22 | 23 | ### 偏移(Offset) 24 |
25 | 26 |
27 | 28 | ### 排序(Order) 29 |
30 | 31 |
32 | 33 | ### 响应式(Responsive) 34 |
35 | 36 |
-------------------------------------------------------------------------------- /src/components/LTable/LTableBody.vue: -------------------------------------------------------------------------------- 1 | 15 | 16 | 30 | 31 | 33 | -------------------------------------------------------------------------------- /docs/.vuepress/components/Demos/LGrid/Order.vue: -------------------------------------------------------------------------------- 1 | 10 | 11 | 18 | 19 | 39 | -------------------------------------------------------------------------------- /src/assets/scss/components/_form.scss: -------------------------------------------------------------------------------- 1 | .live-form-container { 2 | 3 | .live-form-item-container { 4 | display: flex; 5 | margin-bottom: 24px; 6 | 7 | .live-form-item-label { 8 | font-size: 14px; 9 | line-height: 1.5; 10 | flex-shrink: 0; 11 | } 12 | .live-form-item-content { 13 | flex: 1; 14 | } 15 | 16 | } 17 | 18 | &.is-top { 19 | .live-form-item-container { 20 | flex-direction: column; 21 | } 22 | .live-form-item-label { 23 | padding-bottom: 8px; 24 | } 25 | } 26 | 27 | &.is-left, &.is-right { 28 | .live-form-item-label { 29 | padding-right: 16px; 30 | line-height: 30px; 31 | } 32 | } 33 | 34 | &.is-right { 35 | .live-form-item-label { 36 | text-align: right; 37 | } 38 | } 39 | } 40 | -------------------------------------------------------------------------------- /src/components/LForm/LFormItem.vue: -------------------------------------------------------------------------------- 1 | 9 | 10 | 35 | -------------------------------------------------------------------------------- /src/components/LForm/LForm.vue: -------------------------------------------------------------------------------- 1 | 6 | 7 | 38 | -------------------------------------------------------------------------------- /docs/.vuepress/components/Demos/LDatePicker/Default.vue: -------------------------------------------------------------------------------- 1 | 14 | 15 | 25 | 26 | 36 | -------------------------------------------------------------------------------- /src/components/LTable/LTableHead.vue: -------------------------------------------------------------------------------- 1 | 15 | 16 | 34 | -------------------------------------------------------------------------------- /docs/.vuepress/components/Code/Container.vue: -------------------------------------------------------------------------------- 1 | 11 | 12 | 21 | 22 | 39 | -------------------------------------------------------------------------------- /docs/.vuepress/components/Demos/LGrid/Default.vue: -------------------------------------------------------------------------------- 1 | 11 | 12 | 21 | 22 | 42 | -------------------------------------------------------------------------------- /docs/.vuepress/components/Demos/LTable/Default.vue: -------------------------------------------------------------------------------- 1 | 6 | 7 | 50 | 51 | 53 | -------------------------------------------------------------------------------- /docs/.vuepress/components/Demos/LTable/Border.vue: -------------------------------------------------------------------------------- 1 | 6 | 7 | 50 | 51 | 53 | -------------------------------------------------------------------------------- /src/components/LDropdown/LDropdown.vue: -------------------------------------------------------------------------------- 1 | 13 | 14 | 37 | 38 | 40 | -------------------------------------------------------------------------------- /docs/.vuepress/components/Demos/LGrid/Responsive.vue: -------------------------------------------------------------------------------- 1 | 12 | 13 | 20 | 21 | 41 | -------------------------------------------------------------------------------- /docs/.vuepress/components/Demos/LGrid/Offset.vue: -------------------------------------------------------------------------------- 1 | 14 | 15 | 24 | 25 | 45 | -------------------------------------------------------------------------------- /src/assets/scss/components/_tag.scss: -------------------------------------------------------------------------------- 1 | @mixin tag-color($color, $opacity: 0.2) { 2 | border-color: $color; 3 | color: $color; 4 | background: rgba($color, $opacity); 5 | } 6 | 7 | .live-tag-container { 8 | display: inline-block; 9 | border: 1px solid; 10 | font-size: 12px; 11 | padding: 4px 8px; 12 | border-radius: 2px; 13 | position: relative; 14 | 15 | &.is-primary { 16 | @include tag-color($main-color); 17 | } 18 | 19 | &.is-success { 20 | @include tag-color($default-green); 21 | } 22 | 23 | &.is-info { 24 | @include tag-color($default-green-blue); 25 | } 26 | 27 | &.is-warning { 28 | @include tag-color($default-yellow); 29 | } 30 | 31 | &.is-danger { 32 | @include tag-color($default-red); 33 | } 34 | 35 | &.is-closable { 36 | padding-right: 22px; 37 | } 38 | 39 | .close { 40 | padding: 4px 4px; 41 | cursor: pointer; 42 | position: absolute; 43 | right: 0; 44 | top: 50%; 45 | transform: translateY(-48%); 46 | } 47 | } -------------------------------------------------------------------------------- /docs/.vuepress/components/Demos/LDropdown/Placement.vue: -------------------------------------------------------------------------------- 1 | 20 | 21 | 30 | 31 | 36 | -------------------------------------------------------------------------------- /docs/.vuepress/components/Demos/LRadio/Default.vue: -------------------------------------------------------------------------------- 1 | 16 | 17 | 33 | 34 | 37 | -------------------------------------------------------------------------------- /.eslintrc.js: -------------------------------------------------------------------------------- 1 | module.exports = { 2 | root: true, 3 | env: { 4 | node: true 5 | }, 6 | 'extends': [ 7 | 'plugin:vue/essential', 8 | '@vue/airbnb' 9 | ], 10 | "rules": { 11 | "semi": [ 12 | 2, 13 | "never" 14 | ], 15 | "quotes": [ 16 | 2, 17 | "single" 18 | ], 19 | "object-shorthand": 0, 20 | "no-console": 0, 21 | "func-names": 0, 22 | "quote-props": 0, 23 | "no-param-reassign": 0, 24 | "no-unused-vars": [ 25 | "error", 26 | { 27 | "vars": "all", 28 | "args": "none" 29 | } 30 | ], 31 | "import/prefer-default-export": 0, 32 | "arrow-body-style": 0, 33 | "no-trailing-spaces": [ 34 | "error", 35 | { 36 | "skipBlankLines": true 37 | } 38 | ], 39 | "no-unused-expressions": [ 40 | "error", 41 | { 42 | "allowShortCircuit": true, 43 | "allowTernary": true 44 | } 45 | ], 46 | "max-len": ["error", { "code": 160 }], 47 | }, 48 | parserOptions: { 49 | parser: 'babel-eslint' 50 | } 51 | } -------------------------------------------------------------------------------- /docs/.vuepress/components/Demos/LGrid/Gutter.vue: -------------------------------------------------------------------------------- 1 | 16 | 17 | 26 | 27 | 46 | -------------------------------------------------------------------------------- /src/assets/scss/mixins/index.scss: -------------------------------------------------------------------------------- 1 | @mixin media($size) { 2 | @if $size == xs { 3 | @media screen and (max-width: $xs-max) { 4 | @content; 5 | } 6 | } @else if $size == sm { 7 | @media screen and (min-width: $xs-max) { 8 | @content; 9 | } 10 | } @else if $size == md { 11 | @media screen and (min-width: $sm-max) { 12 | @content; 13 | } 14 | } @else if $size == lg { 15 | @media screen and (min-width: $md-max) { 16 | @content; 17 | } 18 | } @else if $size == xl { 19 | @media screen and (min-width: $lg-max) { 20 | @content; 21 | } 22 | } 23 | } 24 | 25 | // @mixin media-sm { 26 | // @media screen and (min-width: $xs-max) and (max-width: $sm-max) { 27 | // @content; 28 | // } 29 | // } 30 | 31 | // @mixin media-md { 32 | // @media screen and (min-width: $sm-max) and (max-width: $md-max) { 33 | // @content; 34 | // } 35 | // } 36 | 37 | // @mixin media-lg { 38 | // @media screen and (min-width: $md-max) and (max-width: $lg-max) { 39 | // @content; 40 | // } 41 | // } 42 | 43 | // @mixin media-xl { 44 | // @media screen and (min-width: $lg-max) { 45 | // @content; 46 | // } 47 | // } -------------------------------------------------------------------------------- /src/components/LGrid/LRow.vue: -------------------------------------------------------------------------------- 1 | 6 | 7 | 54 | -------------------------------------------------------------------------------- /src/components/LButton/LButton.vue: -------------------------------------------------------------------------------- 1 | 14 | 15 | 43 | -------------------------------------------------------------------------------- /src/components/LTag/LTag.vue: -------------------------------------------------------------------------------- 1 | 9 | 10 | 58 | -------------------------------------------------------------------------------- /src/components/LRadio/LRadio.vue: -------------------------------------------------------------------------------- 1 | 18 | 19 | 48 | 49 | 52 | -------------------------------------------------------------------------------- /src/assets/scss/components/_checkbox.scss: -------------------------------------------------------------------------------- 1 | .live-checkbox-container { 2 | display: inline-flex; 3 | align-items: center; 4 | padding-right: 2px; 5 | cursor: pointer; 6 | 7 | &.is-disabled { 8 | color: $default-gray; 9 | } 10 | 11 | .live-checkbox-icon { 12 | width: 16px; 13 | height: 16px; 14 | box-shadow: $default-border-box-shadow; 15 | border-radius: 2px; 16 | position: relative; 17 | transition: all 0.2s; 18 | margin: 0 2px; 19 | 20 | .live-icon { 21 | position: absolute; 22 | left: 1px; 23 | top: 1px; 24 | line-height: 1; 25 | font-weight: bold; 26 | font-size: 14px; 27 | color: $main-color; 28 | opacity: 0; 29 | transform: scale(1.4); 30 | transition: transform 0.3s; 31 | } 32 | 33 | &.is-check { 34 | box-shadow: $main-border-box-shadow; 35 | .live-icon { 36 | opacity: 1; 37 | transform: scale(1); 38 | } 39 | } 40 | } 41 | 42 | &:hover { 43 | .live-checkbox-icon:not(.is-check) { 44 | box-shadow: $dark-border-box-shadow; 45 | } 46 | } 47 | 48 | .live-checkbox-input { 49 | opacity: 0; 50 | } 51 | 52 | .live-checkbox-label { 53 | cursor: pointer; 54 | user-select: none; 55 | } 56 | } -------------------------------------------------------------------------------- /docs/.vuepress/components/Demos/LForm/Default.vue: -------------------------------------------------------------------------------- 1 | 24 | 25 | 39 | 40 | 42 | -------------------------------------------------------------------------------- /src/components/LSelect/LSelectOptions.vue: -------------------------------------------------------------------------------- 1 | 18 | 19 | 52 | 53 | 56 | -------------------------------------------------------------------------------- /src/assets/scss/components/_radio.scss: -------------------------------------------------------------------------------- 1 | .live-radio-container { 2 | display: inline-flex; 3 | align-items: center; 4 | cursor: pointer; 5 | margin-right: 4px; 6 | 7 | &.is-disabled { 8 | color: $default-gray; 9 | } 10 | 11 | .live-radio-icon { 12 | width: 16px; 13 | height: 16px; 14 | box-shadow: $default-border-box-shadow; 15 | border-radius: 50%; 16 | position: relative; 17 | transition: all 0.2s; 18 | &:after { 19 | transform: scale(1.4); 20 | opacity: 0; 21 | content: ''; 22 | display: block; 23 | width: 10px; 24 | height: 10px; 25 | background: $main-color; 26 | position: absolute; 27 | top: 3px; 28 | left: 3px; 29 | border-radius: 50%; 30 | transition: transform 0.3s; 31 | } 32 | &.is-check { 33 | box-shadow: $main-border-box-shadow; 34 | &:after { 35 | opacity: 1; 36 | transform: scale(1); 37 | } 38 | } 39 | } 40 | 41 | &:hover { 42 | .live-radio-icon:not(.is-check) { 43 | box-shadow: $dark-border-box-shadow; 44 | } 45 | } 46 | 47 | .live-radio-input { 48 | opacity: 0; 49 | } 50 | 51 | .live-radio-label { 52 | cursor: pointer; 53 | user-select: none; 54 | padding: 0 4px; 55 | } 56 | } -------------------------------------------------------------------------------- /package.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "live-ui", 3 | "version": "0.1.1", 4 | "private": false, 5 | "main": "./dist/live.common.js", 6 | "scripts": { 7 | "dev": "vuepress dev docs", 8 | "serve": "vue-cli-service serve", 9 | "build": "vue build -t lib --name live src/index.js", 10 | "docs:build": "vuepress build docs", 11 | "docs:deploy": "sh deploy.sh", 12 | "lint": "vue-cli-service lint", 13 | "test:unit": "vue-cli-service test:unit" 14 | }, 15 | "dependencies": { 16 | "dayjs": "^1.7.4", 17 | "font-awesome": "^4.7.0", 18 | "material-design-icons": "^3.0.1", 19 | "vue": "^2.5.16", 20 | "vue-router": "^3.0.1" 21 | }, 22 | "devDependencies": { 23 | "@vue/cli-plugin-babel": "^3.0.0-beta.15", 24 | "@vue/cli-plugin-eslint": "^3.0.0-beta.15", 25 | "@vue/cli-plugin-unit-jest": "^3.0.0-beta.15", 26 | "@vue/cli-service": "^3.0.0-beta.15", 27 | "@vue/eslint-config-airbnb": "^3.0.0-beta.15", 28 | "@vue/test-utils": "^1.0.0-beta.16", 29 | "babel-core": "7.0.0-bridge.0", 30 | "babel-jest": "^22.4.3", 31 | "node-sass": "^4.9.0", 32 | "sass-loader": "^7.0.1", 33 | "vue-template-compiler": "^2.5.16", 34 | "vuepress": "^0.10.0" 35 | }, 36 | "browserslist": [ 37 | "> 1%", 38 | "last 2 versions", 39 | "not ie <= 8" 40 | ] 41 | } 42 | -------------------------------------------------------------------------------- /src/assets/scss/components/_alert.scss: -------------------------------------------------------------------------------- 1 | @mixin alert-color($color, $opacity: 0.2) { 2 | color: $color; 3 | border-color: $color; 4 | background: rgba($color, $opacity); 5 | } 6 | 7 | .live-alert-container { 8 | padding: 8px 16px; 9 | border-radius: 2px; 10 | font-size: 14px; 11 | border: 1px solid; 12 | display: flex; 13 | align-items: center; 14 | 15 | &.is-primary { 16 | @include alert-color($main-color); 17 | } 18 | 19 | &.is-success { 20 | @include alert-color($default-green); 21 | } 22 | 23 | &.is-info { 24 | @include alert-color($default-green-blue); 25 | } 26 | 27 | &.is-warning { 28 | @include alert-color($default-yellow); 29 | } 30 | 31 | &.is-danger { 32 | @include alert-color($default-red); 33 | } 34 | 35 | .live-alert-icon-container { 36 | width: 28px; 37 | font-size: 18px; 38 | display: flex; 39 | align-items: center; 40 | flex-shrink: 0; 41 | } 42 | 43 | .live-alert-content { 44 | flex: 1; 45 | .live-alert-title { 46 | font-size: 16px; 47 | margin-bottom: 8px; 48 | font-weight: bold; 49 | } 50 | } 51 | 52 | .live-alert-close-container { 53 | padding: 2px 4px; 54 | display: flex; 55 | align-items: center; 56 | flex-shrink: 0; 57 | margin-right: -4px; 58 | cursor: pointer; 59 | } 60 | } -------------------------------------------------------------------------------- /docs/.vuepress/components/Demos/LGrid/Justify.vue: -------------------------------------------------------------------------------- 1 | 18 | 19 | 28 | 29 | 55 | -------------------------------------------------------------------------------- /docs/.vuepress/components/Demos/LCheckbox/Default.vue: -------------------------------------------------------------------------------- 1 | 29 | 30 | 50 | 51 | 53 | -------------------------------------------------------------------------------- /src/components/LTable/LTable.vue: -------------------------------------------------------------------------------- 1 | 13 | 14 | 51 | -------------------------------------------------------------------------------- /docs/.vuepress/components/Demos/LTable/Custom.vue: -------------------------------------------------------------------------------- 1 | 14 | 15 | 64 | 65 | 67 | -------------------------------------------------------------------------------- /src/assets/scss/abstracts/_animation.scss: -------------------------------------------------------------------------------- 1 | .slide-top-fade-enter-active { 2 | transition: all .2s ease; 3 | } 4 | .slide-top-fade-leave-active { 5 | transition: all .8s cubic-bezier(1.0, 0.5, 0.8, 1.0); 6 | } 7 | .slide-top-fade-enter, .slide-fade-leave-to { 8 | transform: translateY(-24px); 9 | opacity: 0; 10 | } 11 | 12 | .slide-left-fade-enter-active { 13 | transition: all .3s ease; 14 | } 15 | .slide-left-fade-leave-active { 16 | // transition: all .3s ease; 17 | } 18 | .slide-left-fade-enter, .slide-fade-leave-to 19 | /* .slide-fade-leave-active for below version 2.1.8 */ { 20 | transform: translateX(10px); 21 | opacity: 0; 22 | } 23 | 24 | .fade-select-enter-active { 25 | transition: transform .2s, opacity .2s; 26 | } 27 | .fade-select-leave-active { 28 | transition: transform .150s, opacity .150s; 29 | } 30 | .fade-select-enter, .fade-select-leave-to /* .fade-leave-active below version 2.1.8 */ { 31 | opacity: 0; 32 | transform: translate(0,0px) scale(0.950) !important; 33 | box-shadow: 0px 10px 0px -5px rgba(0, 0, 0, 0); 34 | } 35 | 36 | .fade-drop-enter-active { 37 | transition: opacity .2s; 38 | } 39 | .fade-drop-leave-active { 40 | transition: opacity .150s; 41 | } 42 | .fade-drop-enter, .fade-drop-leave-to /* .fade-leave-active below version 2.1.8 */ { 43 | opacity: 0; 44 | box-shadow: 0px 10px 0px -5px rgba(0, 0, 0, 0); 45 | } -------------------------------------------------------------------------------- /docs/.vuepress/components/Api/LButton.vue: -------------------------------------------------------------------------------- 1 | 4 | 5 | 73 | -------------------------------------------------------------------------------- /src/assets/scss/components/_select.scss: -------------------------------------------------------------------------------- 1 | .live-select-container { 2 | width: 100%; 3 | height: 32px; 4 | box-shadow: $default-border-box-shadow; 5 | border-radius: $select-border-radius; 6 | padding: 1px; 7 | position: relative; 8 | display: inline-flex; 9 | justify-content: center; 10 | align-items: center; 11 | font-size: 14px; 12 | background: $white; 13 | transition: all 0.2s; 14 | &:hover { 15 | box-shadow: $dark-border-box-shadow; 16 | } 17 | &.is-focus { 18 | box-shadow: $main-border-box-shadow; 19 | } 20 | 21 | .live-select-input { 22 | width: 100%; 23 | height: 100%; 24 | border: none; 25 | padding: 4px 16px 4px 8px; 26 | cursor: pointer; 27 | background: transparent; 28 | z-index: 1; 29 | } 30 | 31 | .live-select-icon { 32 | position: absolute; 33 | right: 8px; 34 | &.active { 35 | transform: rotateZ(180deg); 36 | } 37 | } 38 | } 39 | 40 | .live-option-container { 41 | position: absolute; 42 | top: 100%; 43 | box-shadow: 0 0 1px $default-gray; 44 | border-radius: 2px; 45 | min-width: 100%; 46 | background: $white; 47 | transform: translateY(4px); 48 | z-index: 100; 49 | .live-option { 50 | padding: 4px 8px; 51 | cursor: pointer; 52 | transition: all 0.2s; 53 | &:hover, &.is-hover { 54 | background: $lighter-gray; 55 | } 56 | &.is-active { 57 | color: $main-color; 58 | } 59 | } 60 | } -------------------------------------------------------------------------------- /docs/.vuepress/components/Demos/LGrid/Align.vue: -------------------------------------------------------------------------------- 1 | 16 | 17 | 26 | 27 | 62 | -------------------------------------------------------------------------------- /src/assets/scss/README.md: -------------------------------------------------------------------------------- 1 | 文件组织 2 | ``` 3 | sass/ 4 | | 5 | |– abstracts/ 6 | | |– _variables.scss # Sass Variables 7 | | |– _functions.scss # Sass Functions 8 | | |– _mixins.scss # Sass Mixins 9 | | |– _placeholders.scss # Sass Placeholders 10 | | 11 | |– base/ 12 | | |– _reset.scss # Reset/normalize 13 | | |– _typography.scss # Typography rules 14 | | … # Etc. 15 | | 16 | |– components/ 17 | | |– _buttons.scss # Buttons 18 | | |– _carousel.scss # Carousel 19 | | |– _cover.scss # Cover 20 | | |– _dropdown.scss # Dropdown 21 | | … # Etc. 22 | | 23 | |– layout/ 24 | | |– _navigation.scss # Navigation 25 | | |– _grid.scss # Grid system 26 | | |– _header.scss # Header 27 | | |– _footer.scss # Footer 28 | | |– _sidebar.scss # Sidebar 29 | | |– _forms.scss # Forms 30 | | … # Etc. 31 | | 32 | |– pages/ 33 | | |– _home.scss # Home specific styles 34 | | |– _contact.scss # Contact specific styles 35 | | … # Etc. 36 | | 37 | |– themes/ 38 | | |– _theme.scss # Default theme 39 | | |– _admin.scss # Admin theme 40 | | … # Etc. 41 | | 42 | |– vendors/ 43 | | |– _bootstrap.scss # Bootstrap 44 | | |– _jquery-ui.scss # jQuery UI 45 | | … # Etc. 46 | | 47 | `– main.scss # Main Sass file 48 | ``` -------------------------------------------------------------------------------- /src/components/LGrid/LCol.vue: -------------------------------------------------------------------------------- 1 | 6 | 7 | 64 | -------------------------------------------------------------------------------- /src/assets/scss/components/_input.scss: -------------------------------------------------------------------------------- 1 | .live-input-container { 2 | box-shadow: $default-border-box-shadow; 3 | border-radius: $input-border-radius; 4 | box-sizing: border-box; 5 | transition: all 0.2s; 6 | height: 32px; 7 | padding: 1px; 8 | font-size: 14px; 9 | display: flex; 10 | color: $default-text-color; 11 | line-height: 1.5; 12 | &:hover { 13 | box-shadow: $dark-border-box-shadow; 14 | } 15 | &.is-focus { 16 | box-shadow: $main-border-box-shadow; 17 | } 18 | &.is-large { 19 | height: 40px; 20 | } 21 | &.is-small { 22 | height: 24px; 23 | font-size: 12px; 24 | } 25 | .live-input-wrapper { 26 | position: relative; 27 | width: 100%; 28 | height: 100%; 29 | } 30 | .live-holder { 31 | position: absolute; 32 | left: 8px; 33 | top: 0; 34 | bottom: 0; 35 | line-height: 1.5; 36 | color: $default-gray; 37 | user-select: none; 38 | cursor: text; 39 | display: flex; 40 | align-items: center; 41 | } 42 | .live-input { 43 | border: none; 44 | display: inline-block; 45 | width: 100%; 46 | height: 100%; 47 | background: $white; 48 | transition: all 0.2s; 49 | padding: 4px 8px; 50 | } 51 | .prefix { 52 | padding: 4px 0 4px 8px; 53 | } 54 | .suffix { 55 | padding: 4px 8px 4px 0; 56 | position: relative; 57 | .live-btn { 58 | position: absolute; 59 | right: -1px; 60 | top: -1px; 61 | border-top-left-radius: 0; 62 | border-bottom-left-radius: 0; 63 | } 64 | } 65 | } -------------------------------------------------------------------------------- /src/assets/scss/components/_dialog.scss: -------------------------------------------------------------------------------- 1 | .live-dialog-container { 2 | position: fixed; 3 | top: 0; 4 | left: 0; 5 | right: 0; 6 | bottom: 0; 7 | background: $dialog-background; 8 | z-index: 200; 9 | display: flex; 10 | justify-content: center; 11 | align-items: center; 12 | overflow: auto; 13 | 14 | .live-dialog { 15 | width: 400px; 16 | min-height: 160px; 17 | background: #fff; 18 | // border: 1px solid #000; 19 | box-shadow: $dialog-box-shadow; 20 | box-sizing: border-box; 21 | border-radius: $dialog-border-radius; 22 | line-height: 1.5; 23 | display: flex; 24 | flex-direction: column; 25 | margin: 50px auto; 26 | 27 | .live-dialog-header { 28 | display: flex; 29 | justify-content: space-between; 30 | padding: 8px 0; 31 | font-size: 18px; 32 | flex-shrink: 0; 33 | 34 | .dialog-title { 35 | padding: 0 16px; 36 | flex: 1; 37 | } 38 | 39 | .dialog-close { 40 | margin-right: 8px; 41 | width: 28px; 42 | height: 28px; 43 | text-align: center; 44 | border-radius: 50%; 45 | flex-shrink: 0; 46 | cursor: pointer; 47 | transition: color 0.3s; 48 | &:hover { 49 | color: $main-color; 50 | } 51 | } 52 | } 53 | .live-dialog-content { 54 | padding: 8px 16px 16px; 55 | flex: 1; 56 | } 57 | .live-dialog-footer { 58 | padding: 8px 16px; 59 | text-align: right; 60 | flex-shrink: 0; 61 | } 62 | } 63 | } -------------------------------------------------------------------------------- /docs/.vuepress/config.js: -------------------------------------------------------------------------------- 1 | module.exports = { 2 | title: 'Live UI', 3 | description: 'Live UI', 4 | host: 'localhost', 5 | port: '9090', 6 | base: '/live/', 7 | docsDir: 'docs', 8 | head: [ 9 | ['link', { rel: 'icon', href: '/favicon-blue.png' }] 10 | ], 11 | siteConfig: { 12 | links: { 13 | github: 'https://github.com/EryouHao/live', 14 | }, 15 | }, 16 | themeConfig: { 17 | repo: 'eryouhao/live', 18 | nav: [ 19 | { text: '首页', link: '/' }, 20 | { text: '文档', link: '/live/' }, 21 | ], 22 | sidebar: [ 23 | { 24 | title: '文档', 25 | collapsable: false, 26 | children: [ 27 | '/live/', 28 | ], 29 | }, 30 | { 31 | title: '布局', 32 | collapsable: false, 33 | children: [ 34 | '/components/grid', 35 | ], 36 | }, 37 | { 38 | title: '组件', 39 | collapsable: false, 40 | children: [ 41 | '/components/button', 42 | '/components/input', 43 | '/components/select', 44 | '/components/radio', 45 | '/components/checkbox', 46 | '/components/date-picker', 47 | '/components/tooltip', 48 | '/components/notification', 49 | '/components/form', 50 | '/components/dialog', 51 | '/components/table', 52 | '/components/tag', 53 | '/components/alert', 54 | '/components/dropdown', 55 | ], 56 | }, 57 | ], 58 | lastUpdated: '最后更新于', 59 | }, 60 | } -------------------------------------------------------------------------------- /docs/.vuepress/components/Demos/LInput/Default.vue: -------------------------------------------------------------------------------- 1 | 29 | 30 | 39 | 40 | 47 | -------------------------------------------------------------------------------- /src/components/LTooltip/LTooltip.vue: -------------------------------------------------------------------------------- 1 | 17 | 18 | 60 | 61 | 63 | -------------------------------------------------------------------------------- /src/components/LNotification/index.js: -------------------------------------------------------------------------------- 1 | import Vue from 'vue' 2 | import LNotification from './LNotification.vue' 3 | import isVNode from '../../helpers/is-vnode' 4 | 5 | const NotificationConstructor = Vue.extend(LNotification) 6 | 7 | let instance 8 | 9 | const Notification = (options) => { 10 | instance = new NotificationConstructor({ 11 | data: options, 12 | }) 13 | // TODO: 更严谨的类型判断 14 | if (isVNode(options.content)) { 15 | instance.$slots.default = [options.content] 16 | options.content = 'render by vnode' 17 | } 18 | instance.vm = instance.$mount() 19 | instance.vm.visible = true 20 | instance.dom = instance.vm.$el 21 | 22 | let notificationWrapper = document.querySelector('.live-notification-wrapper') 23 | if (!notificationWrapper) { 24 | const div = document.createElement('div') 25 | div.className = 'live-notification-wrapper' 26 | document.body.appendChild(div) 27 | notificationWrapper = document.querySelector('.live-notification-wrapper') 28 | } 29 | notificationWrapper.appendChild(instance.dom) 30 | 31 | return instance.vm 32 | } 33 | 34 | // 带类型通知 35 | const notificationTypes = ['success', 'error'] 36 | notificationTypes.forEach((type) => { 37 | Notification[type] = (options) => { 38 | if (typeof options === 'string' || isVNode(options)) { 39 | options = { 40 | title: options, 41 | } 42 | } 43 | options.type = type 44 | return Notification(options) 45 | } 46 | }) 47 | 48 | export default { 49 | install: () => { 50 | Vue.prototype.$notification = Notification 51 | }, 52 | } 53 | -------------------------------------------------------------------------------- /src/index.js: -------------------------------------------------------------------------------- 1 | import 'material-design-icons' 2 | import 'material-design-icons/iconfont/material-icons.css' 3 | import 'font-awesome/css/font-awesome.css' 4 | 5 | import './assets/scss/main.scss' 6 | import LButton from './components/LButton' 7 | import LInput from './components/LInput' 8 | import LSelect from './components/LSelect' 9 | import LRadio from './components/LRadio' 10 | import LCheckbox from './components/LCheckbox' 11 | import LDatePicker from './components/LDatePicker' 12 | import LTooltip from './components/LTooltip' 13 | import LNotification from './components/LNotification' 14 | import LForm from './components/LForm' 15 | import LDialog from './components/LDialog' 16 | import LTable from './components/LTable' 17 | import LGrid from './components/LGrid' 18 | import LTag from './components/LTag' 19 | import LAlert from './components/LAlert' 20 | import LDropdown from './components/LDropdown' 21 | 22 | import ClickOutside from './directives/click-outside' 23 | 24 | const components = [ 25 | LButton, 26 | LInput, 27 | LSelect, 28 | LRadio, 29 | LCheckbox, 30 | LDatePicker, 31 | LTooltip, 32 | LNotification, 33 | LForm, 34 | LDialog, 35 | LTable, 36 | LGrid, 37 | LTag, 38 | LAlert, 39 | LDropdown, 40 | ] 41 | 42 | const Live = { 43 | install(Vue, options) { 44 | Object.values(components).forEach((component) => { 45 | Vue.use(component) 46 | Vue.directive('click-outside', ClickOutside) 47 | }) 48 | }, 49 | } 50 | 51 | if (typeof window !== 'undefined' && window.Vue) { 52 | window.Vue.use(Live) 53 | } 54 | 55 | export default Live 56 | -------------------------------------------------------------------------------- /src/assets/scss/components/_tooltip.scss: -------------------------------------------------------------------------------- 1 | .live-tooltip-container { 2 | display: inline-block; 3 | position: relative; 4 | 5 | .live-tooltip { 6 | position: absolute; 7 | padding: 8px; 8 | box-shadow: $tip-box-shadow; 9 | white-space: nowrap; 10 | width: max-content; 11 | background: #fff; 12 | border-radius: 2px; 13 | font-size: 12px; 14 | line-height: 1.5; 15 | z-index: 1000; 16 | &:after { 17 | content: ''; 18 | position: absolute; 19 | display: block; 20 | background: transparent; 21 | } 22 | &.is-left { 23 | right: 100%; 24 | transform: translateX(-4px); 25 | &:after { 26 | right: -4px; 27 | top: 0; 28 | height: 100%; 29 | width: 4px; 30 | } 31 | } 32 | &.is-top { 33 | bottom: 100%; 34 | transform: translateY(-4px); 35 | &:after { 36 | bottom: -4px; 37 | width: 100%; 38 | height: 4px; 39 | } 40 | } 41 | &.is-bottom { 42 | top: 100%; 43 | transform: translateY(4px); 44 | &:after { 45 | top: -4px; 46 | width: 100%; 47 | height: 4px; 48 | } 49 | } 50 | &.is-right { 51 | left: 100%; 52 | transform: translateX(4px); 53 | &:after { 54 | left: -4px; 55 | top: 0; 56 | height: 100%; 57 | width: 4px; 58 | } 59 | } 60 | 61 | &.is-dark { 62 | background: $dark-gray; 63 | color: $white; 64 | } 65 | } 66 | 67 | .live-tooltip-item { 68 | display: inline-block; 69 | } 70 | } -------------------------------------------------------------------------------- /src/assets/scss/components/_dropdown.scss: -------------------------------------------------------------------------------- 1 | .live-dropdown-container { 2 | position: relative; 3 | display: inline-block; 4 | 5 | .live-dropdown-control { 6 | display: inline-block; 7 | } 8 | 9 | .live-dropdown-list { 10 | position: absolute; 11 | display: inline-block; 12 | background: $white; 13 | box-shadow: 0 0 1px $default-gray; 14 | border-radius: 2px; 15 | z-index: 100; 16 | 17 | &:before { 18 | content: ''; 19 | display: block; 20 | position: absolute; 21 | left: 0; 22 | width: 100%; 23 | height: 4px; 24 | background: transparent; 25 | } 26 | 27 | &[class*="is-bottom-"] { 28 | top: 100%; 29 | margin-top: 4px; 30 | &:before { 31 | top: -4px; 32 | } 33 | } 34 | 35 | &[class*="is-top-"] { 36 | bottom: 100%; 37 | margin-bottom: 4px; 38 | &:before { 39 | bottom: -4px; 40 | } 41 | } 42 | 43 | &.is-bottom-left, &.is-top-left { 44 | left: 0; 45 | } 46 | 47 | &.is-bottom-center, &.is-top-center { 48 | left: 50%; 49 | transform: translateX(-50%); 50 | will-change: top, left; 51 | } 52 | 53 | &.is-bottom-right, &.is-top-right { 54 | right: 0; 55 | } 56 | } 57 | 58 | .live-dropdown-item { 59 | display: block; 60 | padding: 8px 16px; 61 | cursor: pointer; 62 | transition: all 0.2s; 63 | white-space: nowrap; 64 | &:not(.is-disabled):hover { 65 | background: $lighter-gray; 66 | } 67 | 68 | &.is-disabled { 69 | color: $default-gray; 70 | cursor: not-allowed; 71 | } 72 | } 73 | } -------------------------------------------------------------------------------- /docs/.vuepress/components/Demos/LAlert/Default.vue: -------------------------------------------------------------------------------- 1 | 26 | 27 | 34 | 35 | 42 | -------------------------------------------------------------------------------- /docs/.vuepress/components/Demos/LSelect/Default.vue: -------------------------------------------------------------------------------- 1 | 13 | 14 | 63 | 64 | 67 | -------------------------------------------------------------------------------- /src/components/LDialog/LDialog.vue: -------------------------------------------------------------------------------- 1 | 24 | 25 | 71 | -------------------------------------------------------------------------------- /src/components/LInput/LInput.vue: -------------------------------------------------------------------------------- 1 | 30 | 31 | 80 | -------------------------------------------------------------------------------- /src/components/LAlert/LAlert.vue: -------------------------------------------------------------------------------- 1 | 23 | 24 | 78 | 79 | 81 | -------------------------------------------------------------------------------- /src/components/LCheckbox/LCheckbox.vue: -------------------------------------------------------------------------------- 1 | 12 | 13 | 68 | 69 | 71 | -------------------------------------------------------------------------------- /src/assets/scss/components/_notification.scss: -------------------------------------------------------------------------------- 1 | .live-notification-wrapper { 2 | position: fixed; 3 | top: 24px; 4 | right: 24px; 5 | width: 358px; 6 | z-index: 1000; 7 | transition: all 0.3s; 8 | } 9 | 10 | .live-notification-container { 11 | width: 358px; 12 | background: $white; 13 | border-radius: 2px; 14 | box-shadow: $notification-box-shadow; 15 | transition: all 0.3s; 16 | margin-bottom: 16px; 17 | display: flex; 18 | overflow: hidden; 19 | 20 | .live-notification-icon-container { 21 | display: flex; 22 | align-items: center; 23 | padding: 4px; 24 | justify-content: center; 25 | 26 | .live-notification-icon { 27 | width: 22px; 28 | line-height: 1; 29 | font-size: 22px; 30 | } 31 | &.is-success, &.is-error { 32 | padding: 8px; 33 | color: $white; 34 | } 35 | &.is-success { 36 | background: $default-green; 37 | } 38 | &.is-error { 39 | background: $default-red; 40 | } 41 | } 42 | 43 | .live-nofication-content-container { 44 | flex: 1; 45 | } 46 | .live-notification-header { 47 | display: flex; 48 | justify-content: space-between; 49 | font-size: 16px; 50 | 51 | .live-notification-title { 52 | flex: 1; 53 | padding: 16px 16px 16px 8px; 54 | } 55 | .close { 56 | flex-shrink: 0; 57 | padding: 8px; 58 | cursor: pointer; 59 | height: 32px; 60 | transition: all 0.3s; 61 | &:hover { 62 | color: $main-color; 63 | } 64 | } 65 | } 66 | 67 | .live-notification-body { 68 | padding: 0 16px 24px 8px; 69 | font-size: 14px; 70 | line-height: 1.5; 71 | 72 | &.is-empty { 73 | padding: 0; 74 | } 75 | } 76 | 77 | // 主题 78 | &.is-dark { 79 | background: rgba(0, 0, 0, 0.7); 80 | color: $white; 81 | 82 | .live-notification-icon-container { 83 | &.is-success, &.is-error { 84 | color: rgba(0, 0, 0, 0.7); 85 | } 86 | } 87 | } 88 | } -------------------------------------------------------------------------------- /src/directives/click-outside.js: -------------------------------------------------------------------------------- 1 | function validate(binding) { 2 | if (typeof binding.value !== 'function') { 3 | console.warn('[Vue-click-outside:] provided expression', binding.expression, 'is not a function.') 4 | return false 5 | } 6 | 7 | return true 8 | } 9 | 10 | function isPopup(popupItem, elements) { 11 | if (!popupItem || !elements) { 12 | return false 13 | } 14 | 15 | for (let i = 0, len = elements.length; i < len; i += 1) { 16 | try { 17 | if (popupItem.contains(elements[i])) { 18 | return true 19 | } 20 | if (elements[i].contains(popupItem)) { 21 | return false 22 | } 23 | } catch (e) { 24 | return false 25 | } 26 | } 27 | 28 | return false 29 | } 30 | 31 | function isServer(vNode) { 32 | return typeof vNode.componentInstance !== 'undefined' && vNode.componentInstance.$isServer 33 | } 34 | 35 | export default { 36 | bind(el, binding, vNode) { 37 | if (!validate(binding)) return 38 | 39 | // Define Handler and cache it on the element 40 | function handler(e) { 41 | if (!vNode.context) return 42 | 43 | // some components may have related popup item, 44 | // on which we shall prevent the click outside event handler. 45 | const elements = e.path || (e.composedPath && e.composedPath()) 46 | elements && elements.length > 0 && elements.unshift(e.target) 47 | 48 | if (el.contains(e.target) || isPopup(vNode.context.popupItem, elements)) return 49 | 50 | el.__vueClickOutside__.callback(e) 51 | } 52 | 53 | // add Event Listeners 54 | el.__vueClickOutside__ = { 55 | handler: handler, 56 | callback: binding.value 57 | } 58 | !isServer(vNode) && document.addEventListener('click', handler) 59 | }, 60 | 61 | update(el, binding) { 62 | if (validate(binding)) el.__vueClickOutside__.callback = binding.value 63 | }, 64 | 65 | unbind(el, binding, vNode) { 66 | // Remove Event Listeners 67 | !isServer(vNode) && document.removeEventListener('click', el.__vueClickOutside__.handler) 68 | delete el.__vueClickOutside__ 69 | } 70 | } 71 | -------------------------------------------------------------------------------- /docs/.vuepress/components/Demos/LTooltip/Default.vue: -------------------------------------------------------------------------------- 1 | 58 | 59 | 66 | 67 | 75 | -------------------------------------------------------------------------------- /src/components/LNotification/LNotification.vue: -------------------------------------------------------------------------------- 1 | 32 | 33 | 90 | -------------------------------------------------------------------------------- /docs/.vuepress/components/Demos/LButton/Default.vue: -------------------------------------------------------------------------------- 1 | 59 | 60 | 69 | 70 | 80 | -------------------------------------------------------------------------------- /docs/.vuepress/components/Demos/LNotification/Default.vue: -------------------------------------------------------------------------------- 1 | 17 | 18 | 97 | 98 | 100 | -------------------------------------------------------------------------------- /src/assets/scss/components/_date-picker.scss: -------------------------------------------------------------------------------- 1 | .live-date-picker-container { 2 | display: inline-block; 3 | position: relative; 4 | 5 | .live-date-picker-input { 6 | .btn-close { 7 | opacity: 0; 8 | transition: all 0.2s; 9 | } 10 | &:hover { 11 | .btn-close { 12 | cursor: pointer; 13 | opacity: 1; 14 | } 15 | } 16 | } 17 | 18 | .live-calendar-container { 19 | width: 284px; 20 | height: 324px; 21 | position: absolute; 22 | top: 100%; 23 | left: 0; 24 | box-shadow: 0 0 1px $default-gray; 25 | background: $white; 26 | transform: translateY(4px); 27 | z-index: 100; 28 | padding: 16px; 29 | } 30 | 31 | .live-calendar-header { 32 | display: flex; 33 | justify-content: space-between; 34 | line-height: 32px; 35 | 36 | .year-month { 37 | font-weight: bold; 38 | } 39 | 40 | .btn-container { 41 | .btn-jump { 42 | width: 32px; 43 | height: 32px; 44 | line-height: 32px; 45 | display: inline-block; 46 | text-align: center; 47 | cursor: pointer; 48 | &.btn-jump-left { 49 | .arrow-left { 50 | transition: all 0.2s; 51 | } 52 | &:hover { 53 | .arrow-left { 54 | transform: translateX(-2px); 55 | font-weight: bold; 56 | } 57 | } 58 | } 59 | &.btn-jump-right { 60 | .arrow-right { 61 | transition: all 0.2s; 62 | } 63 | &:hover { 64 | .arrow-right { 65 | transform: translateX(2px); 66 | font-weight: bold; 67 | } 68 | } 69 | } 70 | } 71 | } 72 | } 73 | 74 | .live-calendar-body { 75 | 76 | .weeks { 77 | display: flex; 78 | padding: 8px 0; 79 | .week { 80 | width: 32px; 81 | text-align: center; 82 | margin: 2px; 83 | line-height: 24px; 84 | height: 24px; 85 | font-size: 12px; 86 | color: $dark-gray; 87 | } 88 | } 89 | 90 | .days { 91 | display: flex; 92 | flex-wrap: wrap; 93 | .day { 94 | width: 36px; 95 | height: 32px; 96 | margin: 2px 0; 97 | font-size: 14px; 98 | line-height: 32px; 99 | text-align: center; 100 | color: $black; 101 | transition: all 0.3s; 102 | &.today { 103 | color: $main-color; 104 | } 105 | &.active:hover { 106 | cursor: pointer; 107 | background: $main-color; 108 | color: $white; 109 | box-shadow: $default-box-shadow; 110 | border-radius: $btn-border-radius; 111 | } 112 | } 113 | } 114 | 115 | } 116 | } -------------------------------------------------------------------------------- /docs/.vuepress/components/Demos/LDialog/Default.vue: -------------------------------------------------------------------------------- 1 | 65 | 66 | 85 | 86 | 92 | -------------------------------------------------------------------------------- /src/assets/scss/components/_button.scss: -------------------------------------------------------------------------------- 1 | .live-btn { 2 | height: 32px; 3 | padding: 0 16px; 4 | border: 0; 5 | font-size: 14px; 6 | box-shadow: $default-border-box-shadow; 7 | color: $dark-gray; 8 | cursor: pointer; 9 | display: inline-block; 10 | background: $white; 11 | transition: all 0.2s; 12 | border-radius: $btn-border-radius; 13 | text-align: center; 14 | overflow: hidden; 15 | > .text { 16 | display: inline-flex; 17 | align-items: center; 18 | } 19 | 20 | // type 21 | &-default { 22 | &:hover { 23 | background: $lighter-gray; 24 | } 25 | &:active { 26 | background: $light-gray; 27 | } 28 | } 29 | &-primary { 30 | box-shadow: $default-box-shadow; 31 | background: $main-color; 32 | color: $white; 33 | &:hover { 34 | background: $dark-main-color; 35 | } 36 | &:active { 37 | background: $darker-main-color; 38 | } 39 | } 40 | &-danger { 41 | box-shadow: $default-box-shadow; 42 | background: $default-red; 43 | color: $white; 44 | &:hover { 45 | background: $dark-red; 46 | } 47 | &:active { 48 | background: $darker-red; 49 | } 50 | } 51 | &-text { 52 | box-shadow: none; 53 | background: none; 54 | .text { 55 | border-bottom: 1px dotted $light-gray; 56 | } 57 | &:hover { 58 | color: $dark-main-color; 59 | .text { 60 | border-bottom: 1px dotted $dark-main-color; 61 | } 62 | } 63 | &:active { 64 | color: $darker-main-color; 65 | } 66 | } 67 | 68 | // size 69 | &-large { 70 | height: 40px; 71 | &.live-btn-circle { 72 | width: 40px; 73 | font-size: 16px; 74 | .live-icon-circle-btn { 75 | font-size: 20px; 76 | } 77 | } 78 | } 79 | &-small { 80 | height: 24px; 81 | padding: 0 8px; 82 | &.live-btn-circle { 83 | width: 24px; 84 | font-size: 12px; 85 | .live-icon-circle-btn { 86 | font-size: 12px; 87 | } 88 | } 89 | } 90 | 91 | // long 92 | &-long { 93 | width: 100%; 94 | display: block; 95 | } 96 | 97 | // shape 98 | &-circle { 99 | border-radius: 50%; 100 | padding: 0; 101 | width: 32px; 102 | } 103 | &:disabled { 104 | background-color: $lighter-gray; 105 | color: $default-gray; 106 | cursor: auto; 107 | } 108 | .live-icon-circle-btn { 109 | font-size: 18px; 110 | line-height: 1.15; 111 | } 112 | .live-icon-btn { 113 | margin-right: 4px; 114 | font-size: 14px; 115 | vertical-align: middle; 116 | } 117 | 118 | // loading 119 | .icon-loading { 120 | position: absolute; 121 | top: 0; 122 | left: 0; 123 | bottom: 0; 124 | right: 0; 125 | display: flex; 126 | align-items: center; 127 | justify-content: center; 128 | } 129 | &-loading { 130 | pointer-events: none; 131 | position: relative; 132 | &:before { 133 | content: ''; 134 | position: absolute; 135 | top: 0; 136 | left: 0; 137 | bottom: 0; 138 | right: 0; 139 | background: rgba(200, 200, 200, 0.35); 140 | } 141 | .text { 142 | opacity: 0; 143 | } 144 | } 145 | 146 | } -------------------------------------------------------------------------------- /dist/live.css: -------------------------------------------------------------------------------- 1 | @font-face{font-family:Material Icons;font-style:normal;font-weight:400;src:url(fonts/MaterialIcons-Regular.e79bfd88.eot);src:local("Material Icons"),local("MaterialIcons-Regular"),url(fonts/MaterialIcons-Regular.570eb838.woff2) format("woff2"),url(fonts/MaterialIcons-Regular.012cf6a1.woff) format("woff"),url(fonts/MaterialIcons-Regular.a37b0c01.ttf) format("truetype")}.material-icons{font-family:Material Icons;font-weight:400;font-style:normal;font-size:24px;display:inline-block;line-height:1;text-transform:none;letter-spacing:normal;word-wrap:normal;white-space:nowrap;direction:ltr;-webkit-font-smoothing:antialiased;text-rendering:optimizeLegibility;-moz-osx-font-smoothing:grayscale;-webkit-font-feature-settings:"liga";font-feature-settings:"liga"} 2 | /*! modern-normalize | MIT License | https://github.com/sindresorhus/modern-normalize */html{-webkit-box-sizing:border-box;box-sizing:border-box}*,:after,:before{-webkit-box-sizing:inherit;box-sizing:inherit}:root{-moz-tab-size:4;-o-tab-size:4;tab-size:4}html{line-height:1.15}body{margin:0;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Helvetica,Arial,sans-serif}h1{font-size:2em;margin:.67em 0}hr{height:0}abbr[title]{-webkit-text-decoration:underline dotted;text-decoration:underline dotted}b,strong{font-weight:bolder}code,kbd,pre,samp{font-family:SFMono-Regular,Consolas,Liberation Mono,Menlo,Courier,monospace;font-size:1em}small{font-size:80%}sub,sup{font-size:75%;line-height:0;position:relative;vertical-align:baseline}sub{bottom:-.25em}sup{top:-.5em}button,input,optgroup,select,textarea{font-family:inherit;font-size:100%;line-height:1.15;margin:0;outline:none}button,select{text-transform:none}[type=button],[type=reset],[type=submit],button{-webkit-appearance:button}[type=button]::-moz-focus-inner,[type=reset]::-moz-focus-inner,[type=submit]::-moz-focus-inner,button::-moz-focus-inner{border-style:none;padding:0}[type=button]:-moz-focusring,[type=reset]:-moz-focusring,[type=submit]:-moz-focusring,button:-moz-focusring{outline:1px dotted ButtonText}fieldset{padding:.35em .75em .625em}legend{padding:0}progress{vertical-align:baseline}[type=number]::-webkit-inner-spin-button,[type=number]::-webkit-outer-spin-button{height:auto}[type=search]{-webkit-appearance:textfield;outline-offset:-2px}[type=search]::-webkit-search-decoration{-webkit-appearance:none}::-webkit-file-upload-button{-webkit-appearance:button;font:inherit}summary{display:list-item}.live-btn{height:32px;padding:0 16px;font-size:14px;border:2px solid #ccc;color:#666;cursor:pointer;display:inline-block;background:#fff;-webkit-transition:all .2s;transition:all .2s;border-radius:2px}.live-btn-default:hover{border-color:#b6c4cc;color:#788f9a;background:#eaf1f5}.live-btn-default:active{border-color:#788f9a;color:#788f9a}.live-btn-primary{border-color:#788f9a;background:#788f9a;color:#fff}.live-btn-primary:hover{background:#8ea7b3;border-color:#8ea7b3}.live-btn-primary:active{background:#52666f;border-color:#52666f}.live-btn-danger{border-color:#e8333c;background:#e8333c;color:#fff}.live-btn-danger:hover{background:#f3646b;border-color:#f3646b}.live-btn-danger:active{background:#b1272e;border-color:#b1272e}.live-btn-large{height:40px}.live-btn-large.live-btn-circle{width:40px;font-size:16px}.live-btn-large.live-btn-circle .live-icon-circle-btn{font-size:20px}.live-btn-small{height:24px;padding:0 8px}.live-btn-small.live-btn-circle{width:24px;font-size:12px}.live-btn-small.live-btn-circle .live-icon-circle-btn{font-size:12px}.live-btn-circle{border-radius:50%;padding:0;width:32px}.live-btn .live-icon-circle-btn{font-size:18px;line-height:1.15}.live-btn .live-icon-btn{margin-right:4px;font-size:14px;vertical-align:middle} -------------------------------------------------------------------------------- /src/components/LSelect/LSelect.vue: -------------------------------------------------------------------------------- 1 | 30 | 31 | 142 | 143 | 146 | -------------------------------------------------------------------------------- /src/components/LDatePicker/LDatePicker.vue: -------------------------------------------------------------------------------- 1 | 45 | 46 | 142 | 143 | 145 | -------------------------------------------------------------------------------- /src/assets/scss/base.scss: -------------------------------------------------------------------------------- 1 | /*! modern-normalize | MIT License | https://github.com/sindresorhus/modern-normalize */ 2 | 3 | /* Document 4 | ========================================================================== */ 5 | 6 | /** 7 | * Use a better box model (opinionated). 8 | */ 9 | 10 | html { 11 | box-sizing: border-box; 12 | } 13 | 14 | *, 15 | *::before, 16 | *::after { 17 | box-sizing: inherit; 18 | } 19 | 20 | /** 21 | * Use a more readable tab size (opinionated). 22 | */ 23 | 24 | :root { 25 | -moz-tab-size: 4; 26 | tab-size: 4; 27 | } 28 | 29 | /** 30 | * Correct the line height in all browsers. 31 | */ 32 | 33 | html { 34 | line-height: 1.15; 35 | } 36 | 37 | /* Sections 38 | ========================================================================== */ 39 | 40 | /** 41 | * Remove the margin in all browsers. 42 | */ 43 | 44 | body { 45 | margin: 0; 46 | -webkit-font-smoothing: antialiased; 47 | -moz-osx-font-smoothing: grayscale; 48 | } 49 | 50 | /** 51 | * Improve consistency of default fonts in all browsers. (https://github.com/sindresorhus/modern-normalize/issues/3) 52 | */ 53 | 54 | body { 55 | font-family: 56 | -apple-system, 57 | BlinkMacSystemFont, 58 | 'Segoe UI', 59 | Roboto, 60 | Helvetica, 61 | Arial, 62 | sans-serif, 63 | 'Apple Color Emoji', 64 | 'Segoe UI Emoji', 65 | 'Segoe UI Symbol'; 66 | } 67 | 68 | /** 69 | * Correct the font size and margin on `h1` elements within `section` and 70 | * `article` contexts in Chrome, Firefox, and Safari. 71 | */ 72 | 73 | h1 { 74 | font-size: 2em; 75 | margin: 0.67em 0; 76 | } 77 | 78 | /* Grouping content 79 | ========================================================================== */ 80 | 81 | /** 82 | * Add the correct height in Firefox. 83 | */ 84 | 85 | hr { 86 | height: 0; 87 | } 88 | 89 | /* Text-level semantics 90 | ========================================================================== */ 91 | 92 | /** 93 | * Add the correct text decoration in Chrome, Edge, and Safari. 94 | */ 95 | 96 | abbr[title] { 97 | text-decoration: underline dotted; 98 | } 99 | 100 | /** 101 | * Add the correct font weight in Chrome, Edge, and Safari. 102 | */ 103 | 104 | b, 105 | strong { 106 | font-weight: bolder; 107 | } 108 | 109 | /** 110 | * 1. Improve consistency of default fonts in all browsers. (https://github.com/sindresorhus/modern-normalize/issues/3) 111 | * 2. Correct the odd `em` font sizing in all browsers. 112 | */ 113 | 114 | code, 115 | kbd, 116 | samp, 117 | pre { 118 | font-family: SFMono-Regular, Consolas, 'Liberation Mono', Menlo, Courier, monospace; /* 1 */ 119 | font-size: 1em; /* 2 */ 120 | } 121 | 122 | /** 123 | * Add the correct font size in all browsers. 124 | */ 125 | 126 | small { 127 | font-size: 80%; 128 | } 129 | 130 | /** 131 | * Prevent `sub` and `sup` elements from affecting the line height in 132 | * all browsers. 133 | */ 134 | 135 | sub, 136 | sup { 137 | font-size: 75%; 138 | line-height: 0; 139 | position: relative; 140 | vertical-align: baseline; 141 | } 142 | 143 | sub { 144 | bottom: -0.25em; 145 | } 146 | 147 | sup { 148 | top: -0.5em; 149 | } 150 | 151 | /* Forms 152 | ========================================================================== */ 153 | 154 | /** 155 | * 1. Change the font styles in all browsers. 156 | * 2. Remove the margin in Firefox and Safari. 157 | */ 158 | 159 | button, 160 | input, 161 | optgroup, 162 | select, 163 | textarea { 164 | font-family: inherit; /* 1 */ 165 | font-size: 100%; /* 1 */ 166 | line-height: 1.15; /* 1 */ 167 | margin: 0; /* 2 */ 168 | outline: none; 169 | } 170 | 171 | /** 172 | * Remove the inheritance of text transform in Edge and Firefox. 173 | * 1. Remove the inheritance of text transform in Firefox. 174 | */ 175 | 176 | button, 177 | select { /* 1 */ 178 | text-transform: none; 179 | } 180 | 181 | /** 182 | * Correct the inability to style clickable types in iOS and Safari. 183 | */ 184 | 185 | button, 186 | [type='button'], 187 | [type='reset'], 188 | [type='submit'] { 189 | -webkit-appearance: button; 190 | } 191 | 192 | /** 193 | * Remove the inner border and padding in Firefox. 194 | */ 195 | 196 | button::-moz-focus-inner, 197 | [type='button']::-moz-focus-inner, 198 | [type='reset']::-moz-focus-inner, 199 | [type='submit']::-moz-focus-inner { 200 | border-style: none; 201 | padding: 0; 202 | } 203 | 204 | /** 205 | * Restore the focus styles unset by the previous rule. 206 | */ 207 | 208 | button:-moz-focusring, 209 | [type='button']:-moz-focusring, 210 | [type='reset']:-moz-focusring, 211 | [type='submit']:-moz-focusring { 212 | outline: 1px dotted ButtonText; 213 | } 214 | 215 | /** 216 | * Correct the padding in Firefox. 217 | */ 218 | 219 | fieldset { 220 | padding: 0.35em 0.75em 0.625em; 221 | } 222 | 223 | /** 224 | * Remove the padding so developers are not caught out when they zero out 225 | * `fieldset` elements in all browsers. 226 | */ 227 | 228 | legend { 229 | padding: 0; 230 | } 231 | 232 | /** 233 | * Add the correct vertical alignment in Chrome and Firefox. 234 | */ 235 | 236 | progress { 237 | vertical-align: baseline; 238 | } 239 | 240 | /** 241 | * Correct the cursor style of increment and decrement buttons in Chrome. 242 | */ 243 | 244 | [type='number']::-webkit-inner-spin-button, 245 | [type='number']::-webkit-outer-spin-button { 246 | height: auto; 247 | } 248 | 249 | /** 250 | * 1. Correct the odd appearance in Chrome and Safari. 251 | * 2. Correct the outline style in Safari. 252 | */ 253 | 254 | [type='search'] { 255 | -webkit-appearance: textfield; /* 1 */ 256 | outline-offset: -2px; /* 2 */ 257 | } 258 | 259 | /** 260 | * Remove the inner padding in Chrome and Safari on macOS. 261 | */ 262 | 263 | [type='search']::-webkit-search-decoration { 264 | -webkit-appearance: none; 265 | } 266 | 267 | /** 268 | * 1. Correct the inability to style clickable types in iOS and Safari. 269 | * 2. Change font properties to `inherit` in Safari. 270 | */ 271 | 272 | ::-webkit-file-upload-button { 273 | -webkit-appearance: button; /* 1 */ 274 | font: inherit; /* 2 */ 275 | } 276 | 277 | /* Interactive 278 | ========================================================================== */ 279 | 280 | /* 281 | * Add the correct display in Chrome and Safari. 282 | */ 283 | 284 | summary { 285 | display: list-item; 286 | } 287 | 288 | ul { 289 | padding: 0; 290 | margin: 0; 291 | } 292 | ul li { 293 | list-style: none; 294 | } 295 | tr:nth-child(2n) { 296 | background-color: initial; 297 | } 298 | -------------------------------------------------------------------------------- /dist/live.umd.min.js: -------------------------------------------------------------------------------- 1 | (function(t,n){"object"===typeof exports&&"object"===typeof module?module.exports=n():"function"===typeof define&&define.amd?define([],n):"object"===typeof exports?exports["live"]=n():t["live"]=n()})("undefined"!==typeof self?self:this,function(){return function(t){var n={};function e(r){if(n[r])return n[r].exports;var o=n[r]={i:r,l:!1,exports:{}};return t[r].call(o.exports,o,o.exports,e),o.l=!0,o.exports}return e.m=t,e.c=n,e.d=function(t,n,r){e.o(t,n)||Object.defineProperty(t,n,{enumerable:!0,get:r})},e.r=function(t){"undefined"!==typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(t,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(t,"__esModule",{value:!0})},e.t=function(t,n){if(1&n&&(t=e(t)),8&n)return t;if(4&n&&"object"===typeof t&&t&&t.__esModule)return t;var r=Object.create(null);if(e.r(r),Object.defineProperty(r,"default",{enumerable:!0,value:t}),2&n&&"string"!=typeof t)for(var o in t)e.d(r,o,function(n){return t[n]}.bind(null,o));return r},e.n=function(t){var n=t&&t.__esModule?function(){return t["default"]}:function(){return t};return e.d(n,"a",n),n},e.o=function(t,n){return Object.prototype.hasOwnProperty.call(t,n)},e.p="",e(e.s="wmdO")}({"/Ab0":function(t,n,e){var r=e("fASn"),o=Math.max,i=Math.min;t.exports=function(t,n){return t=r(t),t<0?o(t+n,0):i(t,n)}},"0LZ3":function(t,n,e){"use strict";var r=e("wpi5"),o=e("cXTM"),i=e("vFnv"),u={};e("9lDQ")(u,e("fTBS")("iterator"),function(){return this}),t.exports=function(t,n,e){t.prototype=r(u,{next:o(1,e)}),i(t,n+" Iterator")}},"0fhx":function(t,n,e){var r=e("35i+");t.exports=function(t){if(!r(t))throw TypeError(t+" is not an object!");return t}},"1KmH":function(t,n,e){var r=e("35i+"),o=e("J4V5").set;t.exports=function(t,n,e){var i,u=n.constructor;return u!==e&&"function"==typeof u&&(i=u.prototype)!==e.prototype&&r(i)&&o&&o(t,i),t}},"2d8b":function(t,n,e){var r=e("Ys9B"),o=e("PoVn"),i=e("kQxc"),u=e("3Uat"),c="["+u+"]",f="​…",s=RegExp("^"+c+c+"*"),a=RegExp(c+c+"*$"),l=function(t,n,e){var o={},c=i(function(){return!!u[t]()||f[t]()!=f}),s=o[t]=c?n(p):u[t];e&&(o[e]=s),r(r.P+r.F*c,"String",o)},p=l.trim=function(t,n){return t=String(o(t)),1&n&&(t=t.replace(s,"")),2&n&&(t=t.replace(a,"")),t};t.exports=l},"35i+":function(t,n){t.exports=function(t){return"object"===typeof t?null!==t:"function"===typeof t}},"36Wf":function(t,n){(function(n){t.exports={STATIC_PATH:n}}).call(this,"/")},"3SlG":function(t,n,e){var r=e("9JpJ");t.exports=function(t,n,e){if(r(t),void 0===n)return t;switch(e){case 1:return function(e){return t.call(n,e)};case 2:return function(e,r){return t.call(n,e,r)};case 3:return function(e,r,o){return t.call(n,e,r,o)}}return function(){return t.apply(n,arguments)}}},"3Uat":function(t,n){t.exports="\t\n\v\f\r   ᠎              \u2028\u2029\ufeff"},"4lhl":function(t,n,e){t.exports=!e("ZrbI")&&!e("kQxc")(function(){return 7!=Object.defineProperty(e("9E2N")("div"),"a",{get:function(){return 7}}).a})},"6lnQ":function(t,n){var e=0,r=Math.random();t.exports=function(t){return"Symbol(".concat(void 0===t?"":t,")_",(++e+r).toString(36))}},"7eYx":function(t,n,e){var r=e("iY+s"),o=e("9lDQ"),i=e("B/2H"),u=e("6lnQ")("src"),c="toString",f=Function[c],s=(""+f).split(c);e("IeQK").inspectSource=function(t){return f.call(t)},(t.exports=function(t,n,e,c){var f="function"==typeof e;f&&(i(e,"name")||o(e,"name",n)),t[n]!==e&&(f&&(i(e,u)||o(e,u,t[n]?""+t[n]:s.join(String(n)))),t===r?t[n]=e:c?t[n]?t[n]=e:o(t,n,e):(delete t[n],o(t,n,e)))})(Function.prototype,c,function(){return"function"==typeof this&&this[u]||f.call(this)})},"7gfC":function(t,n){t.exports={}},"9E2N":function(t,n,e){var r=e("35i+"),o=e("iY+s").document,i=r(o)&&r(o.createElement);t.exports=function(t){return i?o.createElement(t):{}}},"9JpJ":function(t,n){t.exports=function(t){if("function"!=typeof t)throw TypeError(t+" is not a function!");return t}},"9lDQ":function(t,n,e){var r=e("PHqZ"),o=e("cXTM");t.exports=e("ZrbI")?function(t,n,e){return r.f(t,n,o(1,e))}:function(t,n,e){return t[n]=e,t}},"B/2H":function(t,n){var e={}.hasOwnProperty;t.exports=function(t,n){return e.call(t,n)}},B0Zk:function(t,n,e){var r=e("Zyql"),o=e("ZNLW"),i=e("/Ab0");t.exports=function(t){return function(n,e,u){var c,f=r(n),s=o(f.length),a=i(u,s);if(t&&e!=e){while(s>a)if(c=f[a++],c!=c)return!0}else for(;s>a;a++)if((t||a in f)&&f[a]===e)return t||a||0;return!t&&-1}}},BWSN:function(t,n){n.f={}.propertyIsEnumerable},EHCt:function(t,n,e){var r=e("BWSN"),o=e("cXTM"),i=e("Zyql"),u=e("Fm9r"),c=e("B/2H"),f=e("4lhl"),s=Object.getOwnPropertyDescriptor;n.f=e("ZrbI")?s:function(t,n){if(t=i(t),n=u(n,!0),f)try{return s(t,n)}catch(t){}if(c(t,n))return o(!r.f.call(t,n),t[n])}},EzFN:function(t,n,e){var r=e("PHqZ"),o=e("0fhx"),i=e("I2nS");t.exports=e("ZrbI")?Object.defineProperties:function(t,n){o(t);var e,u=i(n),c=u.length,f=0;while(c>f)r.f(t,e=u[f++],n[e]);return t}},Fm9r:function(t,n,e){var r=e("35i+");t.exports=function(t,n){if(!r(t))return t;var e,o;if(n&&"function"==typeof(e=t.toString)&&!r(o=e.call(t)))return o;if("function"==typeof(e=t.valueOf)&&!r(o=e.call(t)))return o;if(!n&&"function"==typeof(e=t.toString)&&!r(o=e.call(t)))return o;throw TypeError("Can't convert object to primitive value")}},FsIF:function(t,n,e){if("undefined"!==typeof window){let t;(t=window.document.currentScript)&&(t=t.src.match(/(.+\/)[^/]+\.js$/))&&(e.p=t[1])}},I2nS:function(t,n,e){var r=e("tpGB"),o=e("cyEu");t.exports=Object.keys||function(t){return r(t,o)}},IeQK:function(t,n){var e=t.exports={version:"2.5.1"};"number"==typeof __e&&(__e=e)},J4V5:function(t,n,e){var r=e("35i+"),o=e("0fhx"),i=function(t,n){if(o(t),!r(n)&&null!==n)throw TypeError(n+": can't set as prototype!")};t.exports={set:Object.setPrototypeOf||("__proto__"in{}?function(t,n,r){try{r=e("3SlG")(Function.call,e("EHCt").f(Object.prototype,"__proto__").set,2),r(t,[]),n=!(t instanceof Array)}catch(t){n=!0}return function(t,e){return i(t,e),n?t.__proto__=e:r(t,e),t}}({},!1):void 0),check:i}},JLIw:function(t,n,e){var r=e("rRxW")("keys"),o=e("6lnQ");t.exports=function(t){return r[t]||(r[t]=o(t))}},M509:function(t,n,e){"use strict";var r=e("xhb2"),o=e("Ys9B"),i=e("7eYx"),u=e("9lDQ"),c=e("B/2H"),f=e("7gfC"),s=e("0LZ3"),a=e("vFnv"),l=e("aqQd"),p=e("fTBS")("iterator"),v=!([].keys&&"next"in[].keys()),y="@@iterator",d="keys",h="values",x=function(){return this};t.exports=function(t,n,e,b,S,m,_){s(e,n,b);var g,w,O,I=function(t){if(!v&&t in j)return j[t];switch(t){case d:return function(){return new e(this,t)};case h:return function(){return new e(this,t)}}return function(){return new e(this,t)}},E=n+" Iterator",T=S==h,P=!1,j=t.prototype,N=j[p]||j[y]||S&&j[S],F=N||I(S),L=S?T?I("entries"):F:void 0,M="Array"==n&&j.entries||N;if(M&&(O=l(M.call(new t)),O!==Object.prototype&&O.next&&(a(O,E,!0),r||c(O,p)||u(O,p,x))),T&&N&&N.name!==h&&(P=!0,F=function(){return N.call(this)}),r&&!_||!v&&!P&&j[p]||u(j,p,F),f[n]=F,f[E]=x,S)if(g={values:T?F:I(h),keys:m?F:I(d),entries:L},_)for(w in g)w in j||i(j,w,g[w]);else o(o.P+o.F*(v||P),n,g);return g}},PHqZ:function(t,n,e){var r=e("0fhx"),o=e("4lhl"),i=e("Fm9r"),u=Object.defineProperty;n.f=e("ZrbI")?Object.defineProperty:function(t,n,e){if(r(t),n=i(n,!0),r(e),o)try{return u(t,n,e)}catch(t){}if("get"in e||"set"in e)throw TypeError("Accessors not supported!");return"value"in e&&(t[n]=e.value),t}},PoVn:function(t,n){t.exports=function(t){if(void 0==t)throw TypeError("Can't call method on "+t);return t}},QFGi:function(t,n,e){var r=e("PoVn");t.exports=function(t){return Object(r(t))}},"R1+l":function(t,n,e){"use strict";var r=e("xZq9"),o=e.n(r);o.a},SCE9:function(t,n,e){for(var r=e("ilKk"),o=e("I2nS"),i=e("7eYx"),u=e("iY+s"),c=e("9lDQ"),f=e("7gfC"),s=e("fTBS"),a=s("iterator"),l=s("toStringTag"),p=f.Array,v={CSSRuleList:!0,CSSStyleDeclaration:!1,CSSValueList:!1,ClientRectList:!1,DOMRectList:!1,DOMStringList:!1,DOMTokenList:!0,DataTransferItemList:!1,FileList:!1,HTMLAllCollection:!1,HTMLCollection:!1,HTMLFormElement:!1,HTMLSelectElement:!1,MediaList:!0,MimeTypeArray:!1,NamedNodeMap:!1,NodeList:!0,PaintRequestList:!1,Plugin:!1,PluginArray:!1,SVGLengthList:!1,SVGNumberList:!1,SVGPathSegList:!1,SVGPointList:!1,SVGStringList:!1,SVGTransformList:!1,SourceBufferList:!1,StyleSheetList:!0,TextTrackCueList:!1,TextTrackList:!1,TouchList:!1},y=o(v),d=0;d0?o(r(t),9007199254740991):0}},ZNPN:function(t,n,e){var r=e("Ys9B"),o=e("sFf8")(!1);r(r.S,"Object",{values:function(t){return o(t)}})},ZrbI:function(t,n,e){t.exports=!e("kQxc")(function(){return 7!=Object.defineProperty({},"a",{get:function(){return 7}}).a})},Zyql:function(t,n,e){var r=e("aBWn"),o=e("PoVn");t.exports=function(t){return r(o(t))}},aBWn:function(t,n,e){var r=e("kIFj");t.exports=Object("z").propertyIsEnumerable(0)?Object:function(t){return"String"==r(t)?t.split(""):Object(t)}},aqQd:function(t,n,e){var r=e("B/2H"),o=e("QFGi"),i=e("JLIw")("IE_PROTO"),u=Object.prototype;t.exports=Object.getPrototypeOf||function(t){return t=o(t),r(t,i)?t[i]:"function"==typeof t.constructor&&t instanceof t.constructor?t.constructor.prototype:t instanceof Object?u:null}},cXTM:function(t,n){t.exports=function(t,n){return{enumerable:!(1&t),configurable:!(2&t),writable:!(4&t),value:n}}},cyEu:function(t,n){t.exports="constructor,hasOwnProperty,isPrototypeOf,propertyIsEnumerable,toLocaleString,toString,valueOf".split(",")},fASn:function(t,n){var e=Math.ceil,r=Math.floor;t.exports=function(t){return isNaN(t=+t)?0:(t>0?r:e)(t)}},fTBS:function(t,n,e){var r=e("rRxW")("wks"),o=e("6lnQ"),i=e("iY+s").Symbol,u="function"==typeof i,c=t.exports=function(t){return r[t]||(r[t]=u&&i[t]||(u?i:o)("Symbol."+t))};c.store=r},"iY+s":function(t,n){var e=t.exports="undefined"!=typeof window&&window.Math==Math?window:"undefined"!=typeof self&&self.Math==Math?self:Function("return this")();"number"==typeof __g&&(__g=e)},ilKk:function(t,n,e){"use strict";var r=e("SRpm"),o=e("r2X+"),i=e("7gfC"),u=e("Zyql");t.exports=e("M509")(Array,"Array",function(t,n){this._t=u(t),this._i=0,this._k=n},function(){var t=this._t,n=this._k,e=this._i++;return!t||e>=t.length?(this._t=void 0,o(1)):o(0,"keys"==n?e:"values"==n?t[e]:[e,t[e]])},"values"),i.Arguments=i.Array,r("keys"),r("values"),r("entries")},kIFj:function(t,n){var e={}.toString;t.exports=function(t){return e.call(t).slice(8,-1)}},kQxc:function(t,n){t.exports=function(t){try{return!!t()}catch(t){return!0}}},"r2X+":function(t,n){t.exports=function(t,n){return{value:n,done:!!t}}},rRxW:function(t,n,e){var r=e("iY+s"),o="__core-js_shared__",i=r[o]||(r[o]={});t.exports=function(t){return i[t]||(i[t]={})}},sFf8:function(t,n,e){var r=e("I2nS"),o=e("Zyql"),i=e("BWSN").f;t.exports=function(t){return function(n){var e,u=o(n),c=r(u),f=c.length,s=0,a=[];while(f>s)i.call(u,e=c[s++])&&a.push(t?[e,u[e]]:u[e]);return a}}},ss3V:function(t,n,e){"use strict";var r=e("iY+s"),o=e("B/2H"),i=e("kIFj"),u=e("1KmH"),c=e("Fm9r"),f=e("kQxc"),s=e("YHSo").f,a=e("EHCt").f,l=e("PHqZ").f,p=e("2d8b").trim,v="Number",y=r[v],d=y,h=y.prototype,x=i(e("wpi5")(h))==v,b="trim"in String.prototype,S=function(t){var n=c(t,!1);if("string"==typeof n&&n.length>2){n=b?n.trim():p(n,3);var e,r,o,i=n.charCodeAt(0);if(43===i||45===i){if(e=n.charCodeAt(2),88===e||120===e)return NaN}else if(48===i){switch(n.charCodeAt(1)){case 66:case 98:r=2,o=49;break;case 79:case 111:r=8,o=55;break;default:return+n}for(var u,f=n.slice(2),s=0,a=f.length;so)return NaN;return parseInt(f,r)}}return+n};if(!y(" 0o1")||!y("0b1")||y("+0x1")){y=function(t){var n=arguments.length<1?0:t,e=this;return e instanceof y&&(x?f(function(){h.valueOf.call(e)}):i(e)!=v)?u(new d(S(n)),e,y):S(n)};for(var m,_=e("ZrbI")?s(d):"MAX_VALUE,MIN_VALUE,NaN,NEGATIVE_INFINITY,POSITIVE_INFINITY,EPSILON,isFinite,isInteger,isNaN,isSafeInteger,MAX_SAFE_INTEGER,MIN_SAFE_INTEGER,parseFloat,parseInt,isInteger".split(","),g=0;_.length>g;g++)o(d,m=_[g])&&!o(y,m)&&l(y,m,a(d,m));y.prototype=h,h.constructor=y,e("7eYx")(r,v,y)}},tpGB:function(t,n,e){var r=e("B/2H"),o=e("Zyql"),i=e("B0Zk")(!1),u=e("JLIw")("IE_PROTO");t.exports=function(t,n){var e,c=o(t),f=0,s=[];for(e in c)e!=u&&r(c,e)&&s.push(e);while(n.length>f)r(c,e=n[f++])&&(~i(s,e)||s.push(e));return s}},vFnv:function(t,n,e){var r=e("PHqZ").f,o=e("B/2H"),i=e("fTBS")("toStringTag");t.exports=function(t,n,e){t&&!o(t=e?t:t.prototype,i)&&r(t,i,{configurable:!0,value:n})}},wcMv:function(t,n,e){},wmdO:function(t,n,e){"use strict";e.r(n);e("FsIF"),e("ilKk"),e("ZNPN"),e("SCE9"),e("36Wf"),e("yzsw"),e("wcMv"),e("Z9ym");var r=function(){var t=this,n=t.$createElement,e=t._self._c||n;return e("button",{class:t.classes,on:{click:t.click}},[t.icon?e("i",{class:{"material-icons":t.icon,"live-icon-btn":t.$slots.default,"live-icon-circle-btn":!t.$slots.default}},[t._v(t._s(t.icon))]):t._e(),t._t("default")],2)},o=[];function i(t,n,e){return n in t?Object.defineProperty(t,n,{value:e,enumerable:!0,configurable:!0,writable:!0}):t[n]=e,t}e("ss3V");var u={name:"LButton",props:{icon:String,type:{type:String,default:"default"},size:[String,Number],shape:String},data:function(){return{}},computed:{classes:function(){var t;return[(t={"live-btn":!0},i(t,"live-btn-".concat(this.type),!!this.type),i(t,"live-btn-".concat(this.size),!!this.size),i(t,"live-btn-".concat(this.shape),!!this.shape),t)]}},methods:{click:function(t){this.$emit("click",t)}}},c=u;e("R1+l");function f(t,n,e,r,o,i,u,c){var f,s="function"===typeof t?t.options:t;if(n&&(s.render=n,s.staticRenderFns=e,s._compiled=!0),r&&(s.functional=!0),i&&(s._scopeId="data-v-"+i),u?(f=function(t){t=t||this.$vnode&&this.$vnode.ssrContext||this.parent&&this.parent.$vnode&&this.parent.$vnode.ssrContext,t||"undefined"===typeof __VUE_SSR_CONTEXT__||(t=__VUE_SSR_CONTEXT__),o&&o.call(this,t),t&&t._registeredComponents&&t._registeredComponents.add(u)},s._ssrRegister=f):o&&(f=c?function(){o.call(this,this.$root.$options.shadowRoot)}:o),f)if(s.functional){s._injectStyles=f;var a=s.render;s.render=function(t,n){return f.call(n),a(t,n)}}else{var l=s.beforeCreate;s.beforeCreate=l?[].concat(l,f):[f]}return{exports:t,options:s}}var s=f(c,r,o,!1,null,"35b67ef8",null),a=s.exports,l=function(t){t.component(a.name,a)},p=[l],v={install:function(t,n){Object.values(p).forEach(function(n){t.use(n)})}};"undefined"!==typeof window&&window.Vue&&window.Vue.use(v);var y=v;n["default"]=y},wpi5:function(t,n,e){var r=e("0fhx"),o=e("EzFN"),i=e("cyEu"),u=e("JLIw")("IE_PROTO"),c=function(){},f="prototype",s=function(){var t,n=e("9E2N")("iframe"),r=i.length,o="<",u=">";n.style.display="none",e("zxRW").appendChild(n),n.src="javascript:",t=n.contentWindow.document,t.open(),t.write(o+"script"+u+"document.F=Object"+o+"/script"+u),t.close(),s=t.F;while(r--)delete s[f][i[r]];return s()};t.exports=Object.create||function(t,n){var e;return null!==t?(c[f]=r(t),e=new c,c[f]=null,e[u]=t):e=s(),void 0===n?e:o(e,n)}},xZq9:function(t,n,e){},xhb2:function(t,n){t.exports=!1},yzsw:function(t,n,e){},zxRW:function(t,n,e){var r=e("iY+s").document;t.exports=r&&r.documentElement}})["default"]}); 2 | //# sourceMappingURL=live.umd.min.js.map -------------------------------------------------------------------------------- /dist/live.common.js.map: -------------------------------------------------------------------------------- 1 | {"version":3,"sources":["webpack://live/webpack/bootstrap","webpack://live//Users/haoeryou/.config/yarn/global/node_modules/core-js/modules/_to-absolute-index.js","webpack://live//Users/haoeryou/.config/yarn/global/node_modules/core-js/modules/_iter-create.js","webpack://live//Users/haoeryou/.config/yarn/global/node_modules/core-js/modules/_an-object.js","webpack://live//Users/haoeryou/.config/yarn/global/node_modules/core-js/modules/_inherit-if-required.js","webpack://live//Users/haoeryou/.config/yarn/global/node_modules/core-js/modules/_string-trim.js","webpack://live//Users/haoeryou/.config/yarn/global/node_modules/core-js/modules/_is-object.js","webpack://live/./node_modules/_material-design-icons@3.0.1@material-design-icons/index.js","webpack://live//Users/haoeryou/.config/yarn/global/node_modules/core-js/modules/_ctx.js","webpack://live//Users/haoeryou/.config/yarn/global/node_modules/core-js/modules/_string-ws.js","webpack://live//Users/haoeryou/.config/yarn/global/node_modules/core-js/modules/_ie8-dom-define.js","webpack://live//Users/haoeryou/.config/yarn/global/node_modules/core-js/modules/_uid.js","webpack://live//Users/haoeryou/.config/yarn/global/node_modules/core-js/modules/_redefine.js","webpack://live//Users/haoeryou/.config/yarn/global/node_modules/core-js/modules/_iterators.js","webpack://live//Users/haoeryou/.config/yarn/global/node_modules/core-js/modules/_dom-create.js","webpack://live//Users/haoeryou/.config/yarn/global/node_modules/core-js/modules/_a-function.js","webpack://live//Users/haoeryou/.config/yarn/global/node_modules/core-js/modules/_hide.js","webpack://live//Users/haoeryou/.config/yarn/global/node_modules/core-js/modules/_has.js","webpack://live//Users/haoeryou/.config/yarn/global/node_modules/core-js/modules/_array-includes.js","webpack://live//Users/haoeryou/.config/yarn/global/node_modules/core-js/modules/_object-pie.js","webpack://live//Users/haoeryou/.config/yarn/global/node_modules/core-js/modules/_object-gopd.js","webpack://live//Users/haoeryou/.config/yarn/global/node_modules/core-js/modules/_object-dps.js","webpack://live//Users/haoeryou/.config/yarn/global/node_modules/core-js/modules/_to-primitive.js","webpack://live//Users/haoeryou/.config/yarn/global/node_modules/@vue/cli-service/lib/commands/build/setPublicPath.js","webpack://live//Users/haoeryou/.config/yarn/global/node_modules/core-js/modules/_object-keys.js","webpack://live//Users/haoeryou/.config/yarn/global/node_modules/core-js/modules/_core.js","webpack://live//Users/haoeryou/.config/yarn/global/node_modules/core-js/modules/_set-proto.js","webpack://live//Users/haoeryou/.config/yarn/global/node_modules/core-js/modules/_shared-key.js","webpack://live//Users/haoeryou/.config/yarn/global/node_modules/core-js/modules/_iter-define.js","webpack://live//Users/haoeryou/.config/yarn/global/node_modules/core-js/modules/_object-dp.js","webpack://live//Users/haoeryou/.config/yarn/global/node_modules/core-js/modules/_defined.js","webpack://live//Users/haoeryou/.config/yarn/global/node_modules/core-js/modules/_to-object.js","webpack://live/./src/components/LButton/LButton.vue?b3fa","webpack://live//Users/haoeryou/.config/yarn/global/node_modules/core-js/modules/web.dom.iterable.js","webpack://live//Users/haoeryou/.config/yarn/global/node_modules/core-js/modules/_add-to-unscopables.js","webpack://live//Users/haoeryou/.config/yarn/global/node_modules/core-js/modules/_object-gopn.js","webpack://live//Users/haoeryou/.config/yarn/global/node_modules/core-js/modules/_export.js","webpack://live//Users/haoeryou/.config/yarn/global/node_modules/core-js/modules/es6.function.name.js","webpack://live//Users/haoeryou/.config/yarn/global/node_modules/core-js/modules/_to-length.js","webpack://live//Users/haoeryou/.config/yarn/global/node_modules/core-js/modules/es7.object.values.js","webpack://live//Users/haoeryou/.config/yarn/global/node_modules/core-js/modules/_descriptors.js","webpack://live//Users/haoeryou/.config/yarn/global/node_modules/core-js/modules/_to-iobject.js","webpack://live//Users/haoeryou/.config/yarn/global/node_modules/core-js/modules/_iobject.js","webpack://live//Users/haoeryou/.config/yarn/global/node_modules/core-js/modules/_object-gpo.js","webpack://live//Users/haoeryou/.config/yarn/global/node_modules/core-js/modules/_property-desc.js","webpack://live//Users/haoeryou/.config/yarn/global/node_modules/core-js/modules/_enum-bug-keys.js","webpack://live//Users/haoeryou/.config/yarn/global/node_modules/core-js/modules/_to-integer.js","webpack://live//Users/haoeryou/.config/yarn/global/node_modules/core-js/modules/_wks.js","webpack://live//Users/haoeryou/.config/yarn/global/node_modules/core-js/modules/_global.js","webpack://live//Users/haoeryou/.config/yarn/global/node_modules/core-js/modules/es6.array.iterator.js","webpack://live//Users/haoeryou/.config/yarn/global/node_modules/core-js/modules/_cof.js","webpack://live//Users/haoeryou/.config/yarn/global/node_modules/core-js/modules/_fails.js","webpack://live//Users/haoeryou/.config/yarn/global/node_modules/core-js/modules/_iter-step.js","webpack://live//Users/haoeryou/.config/yarn/global/node_modules/core-js/modules/_shared.js","webpack://live//Users/haoeryou/.config/yarn/global/node_modules/core-js/modules/_object-to-array.js","webpack://live//Users/haoeryou/.config/yarn/global/node_modules/core-js/modules/es6.number.constructor.js","webpack://live//Users/haoeryou/.config/yarn/global/node_modules/core-js/modules/_object-keys-internal.js","webpack://live//Users/haoeryou/.config/yarn/global/node_modules/core-js/modules/_set-to-string-tag.js","webpack://live/./src/assets/scss/main.scss","webpack://live/./src/components/LButton/LButton.vue?323f","webpack://live/./node_modules/_@babel_runtime@7.0.0-beta.47@@babel/runtime/helpers/builtin/es6/defineProperty.js","webpack://live/src/components/LButton/LButton.vue","webpack://live/./src/components/LButton/LButton.vue?6b30","webpack://live/./node_modules/_vue-loader@15.2.4@vue-loader/lib/runtime/componentNormalizer.js","webpack://live/./src/components/LButton/LButton.vue","webpack://live/./src/components/LButton/index.js","webpack://live/./src/index.js","webpack://live//Users/haoeryou/.config/yarn/global/node_modules/@vue/cli-service/lib/commands/build/entry-lib.js","webpack://live//Users/haoeryou/.config/yarn/global/node_modules/core-js/modules/_object-create.js","webpack://live/./src/components/LButton/LButton.vue?9993","webpack://live//Users/haoeryou/.config/yarn/global/node_modules/core-js/modules/_library.js","webpack://live/./node_modules/_material-design-icons@3.0.1@material-design-icons/iconfont/material-icons.css","webpack://live//Users/haoeryou/.config/yarn/global/node_modules/core-js/modules/_html.js"],"names":["Vue","component","LButton","name","components","Live","install","options","Object","values","forEach","use","window"],"mappings":";;AAAA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;;AAGA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA,kDAA0C,gCAAgC;AAC1E;AACA;;AAEA;AACA;AACA;AACA,gEAAwD,kBAAkB;AAC1E;AACA,yDAAiD,cAAc;AAC/D;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iDAAyC,iCAAiC;AAC1E,wHAAgH,mBAAmB,EAAE;AACrI;AACA;;AAEA;AACA;AACA;AACA,mCAA2B,0BAA0B,EAAE;AACvD,yCAAiC,eAAe;AAChD;AACA;AACA;;AAEA;AACA,8DAAsD,+DAA+D;;AAErH;AACA;;;AAGA;AACA;;;;;;;;AClFA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;ACNA;AACA;AACA;AACA;AACA;;AAEA;AACA,qGAAkF,aAAa,EAAE;;AAEjG;AACA,qDAAqD,4BAA4B;AACjF;AACA;;;;;;;;ACZA;AACA;AACA;AACA;AACA;;;;;;;;ACJA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;;;;;;;;ACRA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;;;;;;;AC7BA;AACA;AACA;;;;;;;;ACFA;AACA;AACA;;;;;;;;;ACFA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;ACnBA;AACA;;;;;;;;ACDA;AACA,yEAAsE,mBAAmB,UAAU,EAAE,EAAE;AACvG,CAAC;;;;;;;;ACFD;AACA;AACA;AACA;AACA;;;;;;;;ACJA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA,GAAG;AACH;AACA,GAAG;AACH;AACA;AACA;AACA,CAAC;AACD;AACA,CAAC;;;;;;;;AC9BD;;;;;;;;ACAA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;ACNA;AACA;AACA;AACA;;;;;;;;ACHA;AACA;AACA;AACA;AACA,CAAC;AACD;AACA;AACA;;;;;;;;ACPA,uBAAuB;AACvB;AACA;AACA;;;;;;;;ACHA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK,YAAY,eAAe;AAChC;AACA,KAAK;AACL;AACA;;;;;;;;ACtBA,cAAc;;;;;;;;ACAd;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,GAAG,YAAY;AACf;AACA;;;;;;;;ACfA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;ACZA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;ACXA;;AAEA;AACA;AACA;AACA;AACA;AACA;;;;;;;;ACPA;AACA;AACA;;AAEA;AACA;AACA;;;;;;;;ACNA,6BAA6B;AAC7B,uCAAuC;;;;;;;;ACDvC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kDAAkD;AAClD;AACA;AACA;AACA;AACA;AACA,OAAO,YAAY,cAAc;AACjC;AACA;AACA;AACA;AACA;AACA;AACA,KAAK,GAAG;AACR;AACA;;;;;;;;ACxBA;AACA;AACA;AACA;AACA;;;;;;;;;ACJA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,8CAA8C;AAC9C;AACA;AACA;;AAEA,8BAA8B,aAAa;;AAE3C;AACA;AACA;AACA;AACA;AACA,yCAAyC,oCAAoC;AAC7E,6CAA6C,oCAAoC;AACjF,KAAK,4BAA4B,oCAAoC;AACrE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB,mBAAmB;AACnC;AACA;AACA,kCAAkC,2BAA2B;AAC7D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;;;;;;;;ACrEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG,YAAY;AACf;AACA;AACA;AACA;;;;;;;;ACfA;AACA;AACA;AACA;AACA;;;;;;;;ACJA;AACA;AACA;AACA;AACA;;;;;;;;;;;;ACJmrB,grBAAoB,C;;;;;;;ACAvsB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,oDAAoD,wBAAwB;AAC5E;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;ACzDA;AACA;AACA;AACA,iGAAwF;AACxF;AACA;AACA;;;;;;;;ACNA;AACA;AACA;;AAEA;AACA;AACA;;;;;;;;ACNA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,kFAAkF,uBAAuB;AACzG,iEAAiE;AACjE,+DAA+D;AAC/D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,cAAc;AACd,cAAc;AACd,cAAc;AACd,cAAc;AACd,eAAe;AACf,eAAe;AACf,eAAe;AACf,gBAAgB;AAChB;;;;;;;;AC1CA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,CAAC;;;;;;;;ACfD;AACA;AACA;AACA;AACA,2DAA2D;AAC3D;;;;;;;;ACLA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,CAAC;;;;;;;;ACRD;AACA;AACA,iCAAiC,QAAQ,mBAAmB,UAAU,EAAE,EAAE;AAC1E,CAAC;;;;;;;;ACHD;AACA;AACA;AACA;AACA;AACA;;;;;;;;ACLA;AACA;AACA;AACA;AACA;AACA;;;;;;;;ACLA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;;;;;;;;ACZA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;ACPA;AACA;AACA;AACA;;;;;;;;ACHA;AACA;AACA;AACA;AACA;AACA;;;;;;;;ACLA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;;;;;;;;ACVA;AACA;AACA;AACA;AACA;AACA,yCAAyC;;;;;;;;;ACLzC;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,gCAAgC;AAChC,cAAc;AACd,iBAAiB;AACjB;AACA,CAAC;AACD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;;AAED;AACA;;AAEA;AACA;AACA;;;;;;;;ACjCA,iBAAiB;;AAEjB;AACA;AACA;;;;;;;;ACJA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;;;;;;;;ACNA;AACA,UAAU;AACV;;;;;;;;ACFA;AACA;AACA,kDAAkD;AAClD;AACA,uCAAuC;AACvC;;;;;;;;ACLA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;;;;;;;;;ACfA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oDAAoD;AACpD,KAAK;AACL;AACA,oCAAoC,cAAc,OAAO;AACzD,qCAAqC,cAAc,OAAO;AAC1D;AACA;AACA,oEAAoE,OAAO;AAC3E;AACA;AACA;AACA;AACA,OAAO;AACP;AACA,GAAG;AACH;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,0CAA0C,0BAA0B,EAAE;AACtE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,2BAA2B,iBAAiB;AAC5C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;ACpEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;AChBA;AACA;AACA;;AAEA;AACA,oEAAoE,iCAAiC;AACrG;;;;;;;;ACNA,uC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;ACAA,0BAA0B,aAAa,0BAA0B,wBAAwB,oBAAoB,sBAAsB,mBAAmB,qBAAqB,OAAO,gHAAgH;AAClS;;;;;;ACDA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL,GAAG;AACH;AACA;;AAEA;AACA,C;;;;;;;;;;;;;;;ACLA;AACA,iBADA;AAEA;AACA,gBADA;AAEA;AACA,kBADA;AAEA;AAFA,KAFA;AAMA,0BANA;AAOA;AAPA,GAFA;AAWA,MAXA,kBAWA;AACA;AAEA,GAdA;AAeA;AACA,WADA,qBACA;AAAA;;AACA;AACA;AADA,kDAEA,SAFA,GAEA,WAFA,4CAGA,SAHA,GAGA,WAHA,4CAIA,UAJA,GAIA,YAJA;AAMA;AARA,GAfA;AAyBA;AACA,SADA,iBACA,CADA,EACA;AACA;AACA;AAHA;AAzBA,G;;ACRuX,4GAAoB,C;;;;;ACA3Y;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA,yBAAyB;AACzB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA,qBAAqB;AACrB;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;;AC5FkC;AAClC;AACA;AACA;;;AAGA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA,6D;;;;CCjBA;AACA;AACA;AAEA;;AAEA,uDAAe,UAACA,GAAD,EAAS;AACtBA,MAAIC,SAAJ,CAAc,OAAAC,CAAQC,IAAtB,EAA4B,OAA5B;AACD,CAFD,E;;;;;;;;ACRA;AACA;AAEA;AACA;AAEA,IAAMC,aAAa,CACjB,kBADiB,CAAnB,C,CAIA;AACA;AACA;AACA;AAEA;AACA;AACA;AAEA;AACA;AACA;AACA;;AAEA,IAAMC,OAAO;AACXC,SADW,mBACHN,GADG,EACEO,OADF,EACW;AACpBC,WAAOC,MAAP,CAAcL,UAAd,EAA0BM,OAA1B,CAAkC,UAACT,SAAD,EAAe;AAC/CD,UAAIW,GAAJ,CAAQV,SAAR;AACD,KAFD;AAGD;AALU,CAAb;;AAQA,IAAI,OAAOW,MAAP,KAAkB,WAAlB,IAAiCA,OAAOZ,GAA5C,EAAiD;AAC/CY,SAAOZ,GAAP,CAAWW,GAAX,CAAeN,IAAf;AACD;;AAED,wCAAeA,IAAf,E;;ACpCA;AACA;+EACA;AACA;;;;;;;;ACHA;AACA;AACA;AACA;AACA;AACA,yBAAyB;AACzB;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,6BAA6B;AAC7B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;;;;;;;;ACxCA,uC;;;;;;;ACAA;;;;;;;;ACAA,uC;;;;;;;ACAA;AACA","file":"live.common.js","sourcesContent":[" \t// The module cache\n \tvar installedModules = {};\n\n \t// The require function\n \tfunction __webpack_require__(moduleId) {\n\n \t\t// Check if module is in cache\n \t\tif(installedModules[moduleId]) {\n \t\t\treturn installedModules[moduleId].exports;\n \t\t}\n \t\t// Create a new module (and put it into the cache)\n \t\tvar module = installedModules[moduleId] = {\n \t\t\ti: moduleId,\n \t\t\tl: false,\n \t\t\texports: {}\n \t\t};\n\n \t\t// Execute the module function\n \t\tmodules[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n\n \t\t// Flag the module as loaded\n \t\tmodule.l = true;\n\n \t\t// Return the exports of the module\n \t\treturn module.exports;\n \t}\n\n\n \t// expose the modules object (__webpack_modules__)\n \t__webpack_require__.m = modules;\n\n \t// expose the module cache\n \t__webpack_require__.c = installedModules;\n\n \t// define getter function for harmony exports\n \t__webpack_require__.d = function(exports, name, getter) {\n \t\tif(!__webpack_require__.o(exports, name)) {\n \t\t\tObject.defineProperty(exports, name, { enumerable: true, get: getter });\n \t\t}\n \t};\n\n \t// define __esModule on exports\n \t__webpack_require__.r = function(exports) {\n \t\tif(typeof Symbol !== 'undefined' && Symbol.toStringTag) {\n \t\t\tObject.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });\n \t\t}\n \t\tObject.defineProperty(exports, '__esModule', { value: true });\n \t};\n\n \t// create a fake namespace object\n \t// mode & 1: value is a module id, require it\n \t// mode & 2: merge all properties of value into the ns\n \t// mode & 4: return value when already ns object\n \t// mode & 8|1: behave like require\n \t__webpack_require__.t = function(value, mode) {\n \t\tif(mode & 1) value = __webpack_require__(value);\n \t\tif(mode & 8) return value;\n \t\tif((mode & 4) && typeof value === 'object' && value && value.__esModule) return value;\n \t\tvar ns = Object.create(null);\n \t\t__webpack_require__.r(ns);\n \t\tObject.defineProperty(ns, 'default', { enumerable: true, value: value });\n \t\tif(mode & 2 && typeof value != 'string') for(var key in value) __webpack_require__.d(ns, key, function(key) { return value[key]; }.bind(null, key));\n \t\treturn ns;\n \t};\n\n \t// getDefaultExport function for compatibility with non-harmony modules\n \t__webpack_require__.n = function(module) {\n \t\tvar getter = module && module.__esModule ?\n \t\t\tfunction getDefault() { return module['default']; } :\n \t\t\tfunction getModuleExports() { return module; };\n \t\t__webpack_require__.d(getter, 'a', getter);\n \t\treturn getter;\n \t};\n\n \t// Object.prototype.hasOwnProperty.call\n \t__webpack_require__.o = function(object, property) { return Object.prototype.hasOwnProperty.call(object, property); };\n\n \t// __webpack_public_path__\n \t__webpack_require__.p = \"\";\n\n\n \t// Load entry module and return exports\n \treturn __webpack_require__(__webpack_require__.s = \"wmdO\");\n","var toInteger = require('./_to-integer');\nvar max = Math.max;\nvar min = Math.min;\nmodule.exports = function (index, length) {\n index = toInteger(index);\n return index < 0 ? max(index + length, 0) : min(index, length);\n};\n","'use strict';\nvar create = require('./_object-create');\nvar descriptor = require('./_property-desc');\nvar setToStringTag = require('./_set-to-string-tag');\nvar IteratorPrototype = {};\n\n// 25.1.2.1.1 %IteratorPrototype%[@@iterator]()\nrequire('./_hide')(IteratorPrototype, require('./_wks')('iterator'), function () { return this; });\n\nmodule.exports = function (Constructor, NAME, next) {\n Constructor.prototype = create(IteratorPrototype, { next: descriptor(1, next) });\n setToStringTag(Constructor, NAME + ' Iterator');\n};\n","var isObject = require('./_is-object');\nmodule.exports = function (it) {\n if (!isObject(it)) throw TypeError(it + ' is not an object!');\n return it;\n};\n","var isObject = require('./_is-object');\nvar setPrototypeOf = require('./_set-proto').set;\nmodule.exports = function (that, target, C) {\n var S = target.constructor;\n var P;\n if (S !== C && typeof S == 'function' && (P = S.prototype) !== C.prototype && isObject(P) && setPrototypeOf) {\n setPrototypeOf(that, P);\n } return that;\n};\n","var $export = require('./_export');\nvar defined = require('./_defined');\nvar fails = require('./_fails');\nvar spaces = require('./_string-ws');\nvar space = '[' + spaces + ']';\nvar non = '\\u200b\\u0085';\nvar ltrim = RegExp('^' + space + space + '*');\nvar rtrim = RegExp(space + space + '*$');\n\nvar exporter = function (KEY, exec, ALIAS) {\n var exp = {};\n var FORCE = fails(function () {\n return !!spaces[KEY]() || non[KEY]() != non;\n });\n var fn = exp[KEY] = FORCE ? exec(trim) : spaces[KEY];\n if (ALIAS) exp[ALIAS] = fn;\n $export($export.P + $export.F * FORCE, 'String', exp);\n};\n\n// 1 -> String#trimLeft\n// 2 -> String#trimRight\n// 3 -> String#trim\nvar trim = exporter.trim = function (string, TYPE) {\n string = String(defined(string));\n if (TYPE & 1) string = string.replace(ltrim, '');\n if (TYPE & 2) string = string.replace(rtrim, '');\n return string;\n};\n\nmodule.exports = exporter;\n","module.exports = function (it) {\n return typeof it === 'object' ? it !== null : typeof it === 'function';\n};\n","module.exports = {\n STATIC_PATH: __dirname,\n};\n","// optional / simple context binding\nvar aFunction = require('./_a-function');\nmodule.exports = function (fn, that, length) {\n aFunction(fn);\n if (that === undefined) return fn;\n switch (length) {\n case 1: return function (a) {\n return fn.call(that, a);\n };\n case 2: return function (a, b) {\n return fn.call(that, a, b);\n };\n case 3: return function (a, b, c) {\n return fn.call(that, a, b, c);\n };\n }\n return function (/* ...args */) {\n return fn.apply(that, arguments);\n };\n};\n","module.exports = '\\x09\\x0A\\x0B\\x0C\\x0D\\x20\\xA0\\u1680\\u180E\\u2000\\u2001\\u2002\\u2003' +\n '\\u2004\\u2005\\u2006\\u2007\\u2008\\u2009\\u200A\\u202F\\u205F\\u3000\\u2028\\u2029\\uFEFF';\n","module.exports = !require('./_descriptors') && !require('./_fails')(function () {\n return Object.defineProperty(require('./_dom-create')('div'), 'a', { get: function () { return 7; } }).a != 7;\n});\n","var id = 0;\nvar px = Math.random();\nmodule.exports = function (key) {\n return 'Symbol('.concat(key === undefined ? '' : key, ')_', (++id + px).toString(36));\n};\n","var global = require('./_global');\nvar hide = require('./_hide');\nvar has = require('./_has');\nvar SRC = require('./_uid')('src');\nvar TO_STRING = 'toString';\nvar $toString = Function[TO_STRING];\nvar TPL = ('' + $toString).split(TO_STRING);\n\nrequire('./_core').inspectSource = function (it) {\n return $toString.call(it);\n};\n\n(module.exports = function (O, key, val, safe) {\n var isFunction = typeof val == 'function';\n if (isFunction) has(val, 'name') || hide(val, 'name', key);\n if (O[key] === val) return;\n if (isFunction) has(val, SRC) || hide(val, SRC, O[key] ? '' + O[key] : TPL.join(String(key)));\n if (O === global) {\n O[key] = val;\n } else if (!safe) {\n delete O[key];\n hide(O, key, val);\n } else if (O[key]) {\n O[key] = val;\n } else {\n hide(O, key, val);\n }\n// add fake Function#toString for correct work wrapped methods / constructors with methods like LoDash isNative\n})(Function.prototype, TO_STRING, function toString() {\n return typeof this == 'function' && this[SRC] || $toString.call(this);\n});\n","module.exports = {};\n","var isObject = require('./_is-object');\nvar document = require('./_global').document;\n// typeof document.createElement is 'object' in old IE\nvar is = isObject(document) && isObject(document.createElement);\nmodule.exports = function (it) {\n return is ? document.createElement(it) : {};\n};\n","module.exports = function (it) {\n if (typeof it != 'function') throw TypeError(it + ' is not a function!');\n return it;\n};\n","var dP = require('./_object-dp');\nvar createDesc = require('./_property-desc');\nmodule.exports = require('./_descriptors') ? function (object, key, value) {\n return dP.f(object, key, createDesc(1, value));\n} : function (object, key, value) {\n object[key] = value;\n return object;\n};\n","var hasOwnProperty = {}.hasOwnProperty;\nmodule.exports = function (it, key) {\n return hasOwnProperty.call(it, key);\n};\n","// false -> Array#indexOf\n// true -> Array#includes\nvar toIObject = require('./_to-iobject');\nvar toLength = require('./_to-length');\nvar toAbsoluteIndex = require('./_to-absolute-index');\nmodule.exports = function (IS_INCLUDES) {\n return function ($this, el, fromIndex) {\n var O = toIObject($this);\n var length = toLength(O.length);\n var index = toAbsoluteIndex(fromIndex, length);\n var value;\n // Array#includes uses SameValueZero equality algorithm\n // eslint-disable-next-line no-self-compare\n if (IS_INCLUDES && el != el) while (length > index) {\n value = O[index++];\n // eslint-disable-next-line no-self-compare\n if (value != value) return true;\n // Array#indexOf ignores holes, Array#includes - not\n } else for (;length > index; index++) if (IS_INCLUDES || index in O) {\n if (O[index] === el) return IS_INCLUDES || index || 0;\n } return !IS_INCLUDES && -1;\n };\n};\n","exports.f = {}.propertyIsEnumerable;\n","var pIE = require('./_object-pie');\nvar createDesc = require('./_property-desc');\nvar toIObject = require('./_to-iobject');\nvar toPrimitive = require('./_to-primitive');\nvar has = require('./_has');\nvar IE8_DOM_DEFINE = require('./_ie8-dom-define');\nvar gOPD = Object.getOwnPropertyDescriptor;\n\nexports.f = require('./_descriptors') ? gOPD : function getOwnPropertyDescriptor(O, P) {\n O = toIObject(O);\n P = toPrimitive(P, true);\n if (IE8_DOM_DEFINE) try {\n return gOPD(O, P);\n } catch (e) { /* empty */ }\n if (has(O, P)) return createDesc(!pIE.f.call(O, P), O[P]);\n};\n","var dP = require('./_object-dp');\nvar anObject = require('./_an-object');\nvar getKeys = require('./_object-keys');\n\nmodule.exports = require('./_descriptors') ? Object.defineProperties : function defineProperties(O, Properties) {\n anObject(O);\n var keys = getKeys(Properties);\n var length = keys.length;\n var i = 0;\n var P;\n while (length > i) dP.f(O, P = keys[i++], Properties[P]);\n return O;\n};\n","// 7.1.1 ToPrimitive(input [, PreferredType])\nvar isObject = require('./_is-object');\n// instead of the ES6 spec version, we didn't implement @@toPrimitive case\n// and the second argument - flag - preferred type is a string\nmodule.exports = function (it, S) {\n if (!isObject(it)) return it;\n var fn, val;\n if (S && typeof (fn = it.toString) == 'function' && !isObject(val = fn.call(it))) return val;\n if (typeof (fn = it.valueOf) == 'function' && !isObject(val = fn.call(it))) return val;\n if (!S && typeof (fn = it.toString) == 'function' && !isObject(val = fn.call(it))) return val;\n throw TypeError(\"Can't convert object to primitive value\");\n};\n","// This file is imported into lib/wc client bundles.\n\nif (typeof window !== 'undefined') {\n let i\n if ((i = window.document.currentScript) && (i = i.src.match(/(.+\\/)[^/]+\\.js$/))) {\n __webpack_public_path__ = i[1] // eslint-disable-line\n }\n}\n","// 19.1.2.14 / 15.2.3.14 Object.keys(O)\nvar $keys = require('./_object-keys-internal');\nvar enumBugKeys = require('./_enum-bug-keys');\n\nmodule.exports = Object.keys || function keys(O) {\n return $keys(O, enumBugKeys);\n};\n","var core = module.exports = { version: '2.5.1' };\nif (typeof __e == 'number') __e = core; // eslint-disable-line no-undef\n","// Works with __proto__ only. Old v8 can't work with null proto objects.\n/* eslint-disable no-proto */\nvar isObject = require('./_is-object');\nvar anObject = require('./_an-object');\nvar check = function (O, proto) {\n anObject(O);\n if (!isObject(proto) && proto !== null) throw TypeError(proto + \": can't set as prototype!\");\n};\nmodule.exports = {\n set: Object.setPrototypeOf || ('__proto__' in {} ? // eslint-disable-line\n function (test, buggy, set) {\n try {\n set = require('./_ctx')(Function.call, require('./_object-gopd').f(Object.prototype, '__proto__').set, 2);\n set(test, []);\n buggy = !(test instanceof Array);\n } catch (e) { buggy = true; }\n return function setPrototypeOf(O, proto) {\n check(O, proto);\n if (buggy) O.__proto__ = proto;\n else set(O, proto);\n return O;\n };\n }({}, false) : undefined),\n check: check\n};\n","var shared = require('./_shared')('keys');\nvar uid = require('./_uid');\nmodule.exports = function (key) {\n return shared[key] || (shared[key] = uid(key));\n};\n","'use strict';\nvar LIBRARY = require('./_library');\nvar $export = require('./_export');\nvar redefine = require('./_redefine');\nvar hide = require('./_hide');\nvar has = require('./_has');\nvar Iterators = require('./_iterators');\nvar $iterCreate = require('./_iter-create');\nvar setToStringTag = require('./_set-to-string-tag');\nvar getPrototypeOf = require('./_object-gpo');\nvar ITERATOR = require('./_wks')('iterator');\nvar BUGGY = !([].keys && 'next' in [].keys()); // Safari has buggy iterators w/o `next`\nvar FF_ITERATOR = '@@iterator';\nvar KEYS = 'keys';\nvar VALUES = 'values';\n\nvar returnThis = function () { return this; };\n\nmodule.exports = function (Base, NAME, Constructor, next, DEFAULT, IS_SET, FORCED) {\n $iterCreate(Constructor, NAME, next);\n var getMethod = function (kind) {\n if (!BUGGY && kind in proto) return proto[kind];\n switch (kind) {\n case KEYS: return function keys() { return new Constructor(this, kind); };\n case VALUES: return function values() { return new Constructor(this, kind); };\n } return function entries() { return new Constructor(this, kind); };\n };\n var TAG = NAME + ' Iterator';\n var DEF_VALUES = DEFAULT == VALUES;\n var VALUES_BUG = false;\n var proto = Base.prototype;\n var $native = proto[ITERATOR] || proto[FF_ITERATOR] || DEFAULT && proto[DEFAULT];\n var $default = $native || getMethod(DEFAULT);\n var $entries = DEFAULT ? !DEF_VALUES ? $default : getMethod('entries') : undefined;\n var $anyNative = NAME == 'Array' ? proto.entries || $native : $native;\n var methods, key, IteratorPrototype;\n // Fix native\n if ($anyNative) {\n IteratorPrototype = getPrototypeOf($anyNative.call(new Base()));\n if (IteratorPrototype !== Object.prototype && IteratorPrototype.next) {\n // Set @@toStringTag to native iterators\n setToStringTag(IteratorPrototype, TAG, true);\n // fix for some old engines\n if (!LIBRARY && !has(IteratorPrototype, ITERATOR)) hide(IteratorPrototype, ITERATOR, returnThis);\n }\n }\n // fix Array#{values, @@iterator}.name in V8 / FF\n if (DEF_VALUES && $native && $native.name !== VALUES) {\n VALUES_BUG = true;\n $default = function values() { return $native.call(this); };\n }\n // Define iterator\n if ((!LIBRARY || FORCED) && (BUGGY || VALUES_BUG || !proto[ITERATOR])) {\n hide(proto, ITERATOR, $default);\n }\n // Plug for library\n Iterators[NAME] = $default;\n Iterators[TAG] = returnThis;\n if (DEFAULT) {\n methods = {\n values: DEF_VALUES ? $default : getMethod(VALUES),\n keys: IS_SET ? $default : getMethod(KEYS),\n entries: $entries\n };\n if (FORCED) for (key in methods) {\n if (!(key in proto)) redefine(proto, key, methods[key]);\n } else $export($export.P + $export.F * (BUGGY || VALUES_BUG), NAME, methods);\n }\n return methods;\n};\n","var anObject = require('./_an-object');\nvar IE8_DOM_DEFINE = require('./_ie8-dom-define');\nvar toPrimitive = require('./_to-primitive');\nvar dP = Object.defineProperty;\n\nexports.f = require('./_descriptors') ? Object.defineProperty : function defineProperty(O, P, Attributes) {\n anObject(O);\n P = toPrimitive(P, true);\n anObject(Attributes);\n if (IE8_DOM_DEFINE) try {\n return dP(O, P, Attributes);\n } catch (e) { /* empty */ }\n if ('get' in Attributes || 'set' in Attributes) throw TypeError('Accessors not supported!');\n if ('value' in Attributes) O[P] = Attributes.value;\n return O;\n};\n","// 7.2.1 RequireObjectCoercible(argument)\nmodule.exports = function (it) {\n if (it == undefined) throw TypeError(\"Can't call method on \" + it);\n return it;\n};\n","// 7.1.13 ToObject(argument)\nvar defined = require('./_defined');\nmodule.exports = function (it) {\n return Object(defined(it));\n};\n","import mod from \"-!../../../../../../.config/yarn/global/node_modules/mini-css-extract-plugin/dist/loader.js!../../../node_modules/_css-loader@0.28.11@css-loader/index.js??ref--8-oneOf-1-1!../../../../../../.config/yarn/global/node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../node_modules/_postcss-loader@2.1.5@postcss-loader/lib/index.js??ref--8-oneOf-1-2!../../../node_modules/_sass-loader@7.0.3@sass-loader/lib/loader.js??ref--8-oneOf-1-3!../../../node_modules/_cache-loader@1.2.2@cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/_vue-loader@15.2.4@vue-loader/lib/index.js??vue-loader-options!./LButton.vue?vue&type=style&index=0&id=35b67ef8&lang=scss&scoped=true\"; export default mod; export * from \"-!../../../../../../.config/yarn/global/node_modules/mini-css-extract-plugin/dist/loader.js!../../../node_modules/_css-loader@0.28.11@css-loader/index.js??ref--8-oneOf-1-1!../../../../../../.config/yarn/global/node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../node_modules/_postcss-loader@2.1.5@postcss-loader/lib/index.js??ref--8-oneOf-1-2!../../../node_modules/_sass-loader@7.0.3@sass-loader/lib/loader.js??ref--8-oneOf-1-3!../../../node_modules/_cache-loader@1.2.2@cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/_vue-loader@15.2.4@vue-loader/lib/index.js??vue-loader-options!./LButton.vue?vue&type=style&index=0&id=35b67ef8&lang=scss&scoped=true\"","var $iterators = require('./es6.array.iterator');\nvar getKeys = require('./_object-keys');\nvar redefine = require('./_redefine');\nvar global = require('./_global');\nvar hide = require('./_hide');\nvar Iterators = require('./_iterators');\nvar wks = require('./_wks');\nvar ITERATOR = wks('iterator');\nvar TO_STRING_TAG = wks('toStringTag');\nvar ArrayValues = Iterators.Array;\n\nvar DOMIterables = {\n CSSRuleList: true, // TODO: Not spec compliant, should be false.\n CSSStyleDeclaration: false,\n CSSValueList: false,\n ClientRectList: false,\n DOMRectList: false,\n DOMStringList: false,\n DOMTokenList: true,\n DataTransferItemList: false,\n FileList: false,\n HTMLAllCollection: false,\n HTMLCollection: false,\n HTMLFormElement: false,\n HTMLSelectElement: false,\n MediaList: true, // TODO: Not spec compliant, should be false.\n MimeTypeArray: false,\n NamedNodeMap: false,\n NodeList: true,\n PaintRequestList: false,\n Plugin: false,\n PluginArray: false,\n SVGLengthList: false,\n SVGNumberList: false,\n SVGPathSegList: false,\n SVGPointList: false,\n SVGStringList: false,\n SVGTransformList: false,\n SourceBufferList: false,\n StyleSheetList: true, // TODO: Not spec compliant, should be false.\n TextTrackCueList: false,\n TextTrackList: false,\n TouchList: false\n};\n\nfor (var collections = getKeys(DOMIterables), i = 0; i < collections.length; i++) {\n var NAME = collections[i];\n var explicit = DOMIterables[NAME];\n var Collection = global[NAME];\n var proto = Collection && Collection.prototype;\n var key;\n if (proto) {\n if (!proto[ITERATOR]) hide(proto, ITERATOR, ArrayValues);\n if (!proto[TO_STRING_TAG]) hide(proto, TO_STRING_TAG, NAME);\n Iterators[NAME] = ArrayValues;\n if (explicit) for (key in $iterators) if (!proto[key]) redefine(proto, key, $iterators[key], true);\n }\n}\n","// 22.1.3.31 Array.prototype[@@unscopables]\nvar UNSCOPABLES = require('./_wks')('unscopables');\nvar ArrayProto = Array.prototype;\nif (ArrayProto[UNSCOPABLES] == undefined) require('./_hide')(ArrayProto, UNSCOPABLES, {});\nmodule.exports = function (key) {\n ArrayProto[UNSCOPABLES][key] = true;\n};\n","// 19.1.2.7 / 15.2.3.4 Object.getOwnPropertyNames(O)\nvar $keys = require('./_object-keys-internal');\nvar hiddenKeys = require('./_enum-bug-keys').concat('length', 'prototype');\n\nexports.f = Object.getOwnPropertyNames || function getOwnPropertyNames(O) {\n return $keys(O, hiddenKeys);\n};\n","var global = require('./_global');\nvar core = require('./_core');\nvar hide = require('./_hide');\nvar redefine = require('./_redefine');\nvar ctx = require('./_ctx');\nvar PROTOTYPE = 'prototype';\n\nvar $export = function (type, name, source) {\n var IS_FORCED = type & $export.F;\n var IS_GLOBAL = type & $export.G;\n var IS_STATIC = type & $export.S;\n var IS_PROTO = type & $export.P;\n var IS_BIND = type & $export.B;\n var target = IS_GLOBAL ? global : IS_STATIC ? global[name] || (global[name] = {}) : (global[name] || {})[PROTOTYPE];\n var exports = IS_GLOBAL ? core : core[name] || (core[name] = {});\n var expProto = exports[PROTOTYPE] || (exports[PROTOTYPE] = {});\n var key, own, out, exp;\n if (IS_GLOBAL) source = name;\n for (key in source) {\n // contains in native\n own = !IS_FORCED && target && target[key] !== undefined;\n // export native or passed\n out = (own ? target : source)[key];\n // bind timers to global for call from export context\n exp = IS_BIND && own ? ctx(out, global) : IS_PROTO && typeof out == 'function' ? ctx(Function.call, out) : out;\n // extend global\n if (target) redefine(target, key, out, type & $export.U);\n // export\n if (exports[key] != out) hide(exports, key, exp);\n if (IS_PROTO && expProto[key] != out) expProto[key] = out;\n }\n};\nglobal.core = core;\n// type bitmap\n$export.F = 1; // forced\n$export.G = 2; // global\n$export.S = 4; // static\n$export.P = 8; // proto\n$export.B = 16; // bind\n$export.W = 32; // wrap\n$export.U = 64; // safe\n$export.R = 128; // real proto method for `library`\nmodule.exports = $export;\n","var dP = require('./_object-dp').f;\nvar FProto = Function.prototype;\nvar nameRE = /^\\s*function ([^ (]*)/;\nvar NAME = 'name';\n\n// 19.2.4.2 name\nNAME in FProto || require('./_descriptors') && dP(FProto, NAME, {\n configurable: true,\n get: function () {\n try {\n return ('' + this).match(nameRE)[1];\n } catch (e) {\n return '';\n }\n }\n});\n","// 7.1.15 ToLength\nvar toInteger = require('./_to-integer');\nvar min = Math.min;\nmodule.exports = function (it) {\n return it > 0 ? min(toInteger(it), 0x1fffffffffffff) : 0; // pow(2, 53) - 1 == 9007199254740991\n};\n","// https://github.com/tc39/proposal-object-values-entries\nvar $export = require('./_export');\nvar $values = require('./_object-to-array')(false);\n\n$export($export.S, 'Object', {\n values: function values(it) {\n return $values(it);\n }\n});\n","// Thank's IE8 for his funny defineProperty\nmodule.exports = !require('./_fails')(function () {\n return Object.defineProperty({}, 'a', { get: function () { return 7; } }).a != 7;\n});\n","// to indexed object, toObject with fallback for non-array-like ES3 strings\nvar IObject = require('./_iobject');\nvar defined = require('./_defined');\nmodule.exports = function (it) {\n return IObject(defined(it));\n};\n","// fallback for non-array-like ES3 and non-enumerable old V8 strings\nvar cof = require('./_cof');\n// eslint-disable-next-line no-prototype-builtins\nmodule.exports = Object('z').propertyIsEnumerable(0) ? Object : function (it) {\n return cof(it) == 'String' ? it.split('') : Object(it);\n};\n","// 19.1.2.9 / 15.2.3.2 Object.getPrototypeOf(O)\nvar has = require('./_has');\nvar toObject = require('./_to-object');\nvar IE_PROTO = require('./_shared-key')('IE_PROTO');\nvar ObjectProto = Object.prototype;\n\nmodule.exports = Object.getPrototypeOf || function (O) {\n O = toObject(O);\n if (has(O, IE_PROTO)) return O[IE_PROTO];\n if (typeof O.constructor == 'function' && O instanceof O.constructor) {\n return O.constructor.prototype;\n } return O instanceof Object ? ObjectProto : null;\n};\n","module.exports = function (bitmap, value) {\n return {\n enumerable: !(bitmap & 1),\n configurable: !(bitmap & 2),\n writable: !(bitmap & 4),\n value: value\n };\n};\n","// IE 8- don't enum bug keys\nmodule.exports = (\n 'constructor,hasOwnProperty,isPrototypeOf,propertyIsEnumerable,toLocaleString,toString,valueOf'\n).split(',');\n","// 7.1.4 ToInteger\nvar ceil = Math.ceil;\nvar floor = Math.floor;\nmodule.exports = function (it) {\n return isNaN(it = +it) ? 0 : (it > 0 ? floor : ceil)(it);\n};\n","var store = require('./_shared')('wks');\nvar uid = require('./_uid');\nvar Symbol = require('./_global').Symbol;\nvar USE_SYMBOL = typeof Symbol == 'function';\n\nvar $exports = module.exports = function (name) {\n return store[name] || (store[name] =\n USE_SYMBOL && Symbol[name] || (USE_SYMBOL ? Symbol : uid)('Symbol.' + name));\n};\n\n$exports.store = store;\n","// https://github.com/zloirock/core-js/issues/86#issuecomment-115759028\nvar global = module.exports = typeof window != 'undefined' && window.Math == Math\n ? window : typeof self != 'undefined' && self.Math == Math ? self\n // eslint-disable-next-line no-new-func\n : Function('return this')();\nif (typeof __g == 'number') __g = global; // eslint-disable-line no-undef\n","'use strict';\nvar addToUnscopables = require('./_add-to-unscopables');\nvar step = require('./_iter-step');\nvar Iterators = require('./_iterators');\nvar toIObject = require('./_to-iobject');\n\n// 22.1.3.4 Array.prototype.entries()\n// 22.1.3.13 Array.prototype.keys()\n// 22.1.3.29 Array.prototype.values()\n// 22.1.3.30 Array.prototype[@@iterator]()\nmodule.exports = require('./_iter-define')(Array, 'Array', function (iterated, kind) {\n this._t = toIObject(iterated); // target\n this._i = 0; // next index\n this._k = kind; // kind\n// 22.1.5.2.1 %ArrayIteratorPrototype%.next()\n}, function () {\n var O = this._t;\n var kind = this._k;\n var index = this._i++;\n if (!O || index >= O.length) {\n this._t = undefined;\n return step(1);\n }\n if (kind == 'keys') return step(0, index);\n if (kind == 'values') return step(0, O[index]);\n return step(0, [index, O[index]]);\n}, 'values');\n\n// argumentsList[@@iterator] is %ArrayProto_values% (9.4.4.6, 9.4.4.7)\nIterators.Arguments = Iterators.Array;\n\naddToUnscopables('keys');\naddToUnscopables('values');\naddToUnscopables('entries');\n","var toString = {}.toString;\n\nmodule.exports = function (it) {\n return toString.call(it).slice(8, -1);\n};\n","module.exports = function (exec) {\n try {\n return !!exec();\n } catch (e) {\n return true;\n }\n};\n","module.exports = function (done, value) {\n return { value: value, done: !!done };\n};\n","var global = require('./_global');\nvar SHARED = '__core-js_shared__';\nvar store = global[SHARED] || (global[SHARED] = {});\nmodule.exports = function (key) {\n return store[key] || (store[key] = {});\n};\n","var getKeys = require('./_object-keys');\nvar toIObject = require('./_to-iobject');\nvar isEnum = require('./_object-pie').f;\nmodule.exports = function (isEntries) {\n return function (it) {\n var O = toIObject(it);\n var keys = getKeys(O);\n var length = keys.length;\n var i = 0;\n var result = [];\n var key;\n while (length > i) if (isEnum.call(O, key = keys[i++])) {\n result.push(isEntries ? [key, O[key]] : O[key]);\n } return result;\n };\n};\n","'use strict';\nvar global = require('./_global');\nvar has = require('./_has');\nvar cof = require('./_cof');\nvar inheritIfRequired = require('./_inherit-if-required');\nvar toPrimitive = require('./_to-primitive');\nvar fails = require('./_fails');\nvar gOPN = require('./_object-gopn').f;\nvar gOPD = require('./_object-gopd').f;\nvar dP = require('./_object-dp').f;\nvar $trim = require('./_string-trim').trim;\nvar NUMBER = 'Number';\nvar $Number = global[NUMBER];\nvar Base = $Number;\nvar proto = $Number.prototype;\n// Opera ~12 has broken Object#toString\nvar BROKEN_COF = cof(require('./_object-create')(proto)) == NUMBER;\nvar TRIM = 'trim' in String.prototype;\n\n// 7.1.3 ToNumber(argument)\nvar toNumber = function (argument) {\n var it = toPrimitive(argument, false);\n if (typeof it == 'string' && it.length > 2) {\n it = TRIM ? it.trim() : $trim(it, 3);\n var first = it.charCodeAt(0);\n var third, radix, maxCode;\n if (first === 43 || first === 45) {\n third = it.charCodeAt(2);\n if (third === 88 || third === 120) return NaN; // Number('+0x1') should be NaN, old V8 fix\n } else if (first === 48) {\n switch (it.charCodeAt(1)) {\n case 66: case 98: radix = 2; maxCode = 49; break; // fast equal /^0b[01]+$/i\n case 79: case 111: radix = 8; maxCode = 55; break; // fast equal /^0o[0-7]+$/i\n default: return +it;\n }\n for (var digits = it.slice(2), i = 0, l = digits.length, code; i < l; i++) {\n code = digits.charCodeAt(i);\n // parseInt parses a string to a first unavailable symbol\n // but ToNumber should return NaN if a string contains unavailable symbols\n if (code < 48 || code > maxCode) return NaN;\n } return parseInt(digits, radix);\n }\n } return +it;\n};\n\nif (!$Number(' 0o1') || !$Number('0b1') || $Number('+0x1')) {\n $Number = function Number(value) {\n var it = arguments.length < 1 ? 0 : value;\n var that = this;\n return that instanceof $Number\n // check on 1..constructor(foo) case\n && (BROKEN_COF ? fails(function () { proto.valueOf.call(that); }) : cof(that) != NUMBER)\n ? inheritIfRequired(new Base(toNumber(it)), that, $Number) : toNumber(it);\n };\n for (var keys = require('./_descriptors') ? gOPN(Base) : (\n // ES3:\n 'MAX_VALUE,MIN_VALUE,NaN,NEGATIVE_INFINITY,POSITIVE_INFINITY,' +\n // ES6 (in case, if modules with ES6 Number statics required before):\n 'EPSILON,isFinite,isInteger,isNaN,isSafeInteger,MAX_SAFE_INTEGER,' +\n 'MIN_SAFE_INTEGER,parseFloat,parseInt,isInteger'\n ).split(','), j = 0, key; keys.length > j; j++) {\n if (has(Base, key = keys[j]) && !has($Number, key)) {\n dP($Number, key, gOPD(Base, key));\n }\n }\n $Number.prototype = proto;\n proto.constructor = $Number;\n require('./_redefine')(global, NUMBER, $Number);\n}\n","var has = require('./_has');\nvar toIObject = require('./_to-iobject');\nvar arrayIndexOf = require('./_array-includes')(false);\nvar IE_PROTO = require('./_shared-key')('IE_PROTO');\n\nmodule.exports = function (object, names) {\n var O = toIObject(object);\n var i = 0;\n var result = [];\n var key;\n for (key in O) if (key != IE_PROTO) has(O, key) && result.push(key);\n // Don't enum bug & hidden keys\n while (names.length > i) if (has(O, key = names[i++])) {\n ~arrayIndexOf(result, key) || result.push(key);\n }\n return result;\n};\n","var def = require('./_object-dp').f;\nvar has = require('./_has');\nvar TAG = require('./_wks')('toStringTag');\n\nmodule.exports = function (it, tag, stat) {\n if (it && !has(it = stat ? it : it.prototype, TAG)) def(it, TAG, { configurable: true, value: tag });\n};\n","// extracted by mini-css-extract-plugin","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('button',{class:_vm.classes,on:{\"click\":_vm.click}},[(_vm.icon)?_c('i',{class:{ 'material-icons': _vm.icon, 'live-icon-btn': _vm.$slots.default, 'live-icon-circle-btn': !_vm.$slots.default }},[_vm._v(_vm._s(_vm.icon))]):_vm._e(),_vm._t(\"default\")],2)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","export default function _defineProperty(obj, key, value) {\n if (key in obj) {\n Object.defineProperty(obj, key, {\n value: value,\n enumerable: true,\n configurable: true,\n writable: true\n });\n } else {\n obj[key] = value;\n }\n\n return obj;\n}","\n\n\n\n\n","import mod from \"-!../../../node_modules/_thread-loader@1.1.5@thread-loader/dist/cjs.js!../../../node_modules/_babel-loader@8.0.0-beta.3@babel-loader/lib/index.js??ref--12-1!../../../node_modules/_cache-loader@1.2.2@cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/_vue-loader@15.2.4@vue-loader/lib/index.js??vue-loader-options!./LButton.vue?vue&type=script&lang=js\"; export default mod; export * from \"-!../../../node_modules/_thread-loader@1.1.5@thread-loader/dist/cjs.js!../../../node_modules/_babel-loader@8.0.0-beta.3@babel-loader/lib/index.js??ref--12-1!../../../node_modules/_cache-loader@1.2.2@cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/_vue-loader@15.2.4@vue-loader/lib/index.js??vue-loader-options!./LButton.vue?vue&type=script&lang=js\"","/* globals __VUE_SSR_CONTEXT__ */\n\n// IMPORTANT: Do NOT use ES2015 features in this file (except for modules).\n// This module is a runtime utility for cleaner component module output and will\n// be included in the final webpack user bundle.\n\nexport default function normalizeComponent (\n scriptExports,\n render,\n staticRenderFns,\n functionalTemplate,\n injectStyles,\n scopeId,\n moduleIdentifier, /* server only */\n shadowMode /* vue-cli only */\n) {\n // Vue.extend constructor export interop\n var options = typeof scriptExports === 'function'\n ? scriptExports.options\n : scriptExports\n\n // render functions\n if (render) {\n options.render = render\n options.staticRenderFns = staticRenderFns\n options._compiled = true\n }\n\n // functional template\n if (functionalTemplate) {\n options.functional = true\n }\n\n // scopedId\n if (scopeId) {\n options._scopeId = 'data-v-' + scopeId\n }\n\n var hook\n if (moduleIdentifier) { // server build\n hook = function (context) {\n // 2.3 injection\n context =\n context || // cached call\n (this.$vnode && this.$vnode.ssrContext) || // stateful\n (this.parent && this.parent.$vnode && this.parent.$vnode.ssrContext) // functional\n // 2.2 with runInNewContext: true\n if (!context && typeof __VUE_SSR_CONTEXT__ !== 'undefined') {\n context = __VUE_SSR_CONTEXT__\n }\n // inject component styles\n if (injectStyles) {\n injectStyles.call(this, context)\n }\n // register component module identifier for async chunk inferrence\n if (context && context._registeredComponents) {\n context._registeredComponents.add(moduleIdentifier)\n }\n }\n // used by ssr in case component is cached and beforeCreate\n // never gets called\n options._ssrRegister = hook\n } else if (injectStyles) {\n hook = shadowMode\n ? function () { injectStyles.call(this, this.$root.$options.shadowRoot) }\n : injectStyles\n }\n\n if (hook) {\n if (options.functional) {\n // for template-only hot-reload because in that case the render fn doesn't\n // go through the normalizer\n options._injectStyles = hook\n // register for functioal component in vue file\n var originalRender = options.render\n options.render = function renderWithStyleInjection (h, context) {\n hook.call(context)\n return originalRender(h, context)\n }\n } else {\n // inject component registration as beforeCreate hook\n var existing = options.beforeCreate\n options.beforeCreate = existing\n ? [].concat(existing, hook)\n : [hook]\n }\n }\n\n return {\n exports: scriptExports,\n options: options\n }\n}\n","import { render, staticRenderFns } from \"./LButton.vue?vue&type=template&id=35b67ef8&scoped=true\"\nimport script from \"./LButton.vue?vue&type=script&lang=js\"\nexport * from \"./LButton.vue?vue&type=script&lang=js\"\nimport style0 from \"./LButton.vue?vue&type=style&index=0&id=35b67ef8&lang=scss&scoped=true\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/_vue-loader@15.2.4@vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"35b67ef8\",\n null\n \n)\n\nexport default component.exports","import LButton from './LButton.vue'\n\n// LButton.install = function (Vue) {\n// Vue.component(LButton.name, LButton)\n// }\n\n// export default LButton\n\nexport default (Vue) => {\n Vue.component(LButton.name, LButton)\n}\n","import 'material-design-icons'\nimport 'material-design-icons/iconfont/material-icons.css'\n\nimport './assets/scss/main.scss'\nimport LButton from './components/LButton'\n\nconst components = [\n LButton,\n]\n\n// const install = function (Vue) {\n// if (install.installed) return\n// components.map(component => Vue.component(component.name, component))\n// }\n\n// if (typeof window !== 'undefined' && window.Vue) {\n// install(window.Vue)\n// }\n\n// export default {\n// install,\n// LButton,\n// }\n\nconst Live = {\n install(Vue, options) {\n Object.values(components).forEach((component) => {\n Vue.use(component)\n })\n },\n}\n\nif (typeof window !== 'undefined' && window.Vue) {\n window.Vue.use(Live)\n}\n\nexport default Live\n","import './setPublicPath'\nimport mod from '~entry'\nexport default mod\nexport * from '~entry'\n","// 19.1.2.2 / 15.2.3.5 Object.create(O [, Properties])\nvar anObject = require('./_an-object');\nvar dPs = require('./_object-dps');\nvar enumBugKeys = require('./_enum-bug-keys');\nvar IE_PROTO = require('./_shared-key')('IE_PROTO');\nvar Empty = function () { /* empty */ };\nvar PROTOTYPE = 'prototype';\n\n// Create object with fake `null` prototype: use iframe Object with cleared prototype\nvar createDict = function () {\n // Thrash, waste and sodomy: IE GC bug\n var iframe = require('./_dom-create')('iframe');\n var i = enumBugKeys.length;\n var lt = '<';\n var gt = '>';\n var iframeDocument;\n iframe.style.display = 'none';\n require('./_html').appendChild(iframe);\n iframe.src = 'javascript:'; // eslint-disable-line no-script-url\n // createDict = iframe.contentWindow.Object;\n // html.removeChild(iframe);\n iframeDocument = iframe.contentWindow.document;\n iframeDocument.open();\n iframeDocument.write(lt + 'script' + gt + 'document.F=Object' + lt + '/script' + gt);\n iframeDocument.close();\n createDict = iframeDocument.F;\n while (i--) delete createDict[PROTOTYPE][enumBugKeys[i]];\n return createDict();\n};\n\nmodule.exports = Object.create || function create(O, Properties) {\n var result;\n if (O !== null) {\n Empty[PROTOTYPE] = anObject(O);\n result = new Empty();\n Empty[PROTOTYPE] = null;\n // add \"__proto__\" for Object.getPrototypeOf polyfill\n result[IE_PROTO] = O;\n } else result = createDict();\n return Properties === undefined ? result : dPs(result, Properties);\n};\n","// extracted by mini-css-extract-plugin","module.exports = false;\n","// extracted by mini-css-extract-plugin","var document = require('./_global').document;\nmodule.exports = document && document.documentElement;\n"],"sourceRoot":""} --------------------------------------------------------------------------------