* @date 2023/03/16 18:05:43
*/
-import { css, html, Component, bind, unbind, nextTick } from '@bd/core'
+import { css, html, Component, bind, unbind, nextTick } from 'wkit'
import '../icon/index.js'
class Passwd extends Component {
@@ -108,11 +108,6 @@ class Passwd extends Component {
w: 160px,
h: 44px,
f: 14px
- ),
- xxxl: (
- w: 192px,
- h: 52px,
- f: 16px
)
);
diff --git a/src/form/radio.js b/src/form/radio.js
index e18093d..bd2a8cb 100644
--- a/src/form/radio.js
+++ b/src/form/radio.js
@@ -4,7 +4,7 @@
* @date 2023/03/21 16:14:10
*/
-import { nextTick, css, html, Component } from '@bd/core'
+import { nextTick, css, html, Component } from 'wkit'
class Radio extends Component {
static props = {
@@ -153,11 +153,6 @@ class RadioItem extends Component {
w: 160px,
h: 44px,
f: 14px
- ),
- xxxl: (
- w: 192px,
- h: 52px,
- f: 16px
)
);
diff --git a/src/form/select.js b/src/form/select.js
index 0a3c80c..8cc053d 100644
--- a/src/form/select.js
+++ b/src/form/select.js
@@ -4,7 +4,7 @@
* @date 2023/03/21 16:14:10
*/
-import { nextTick, css, html, Component } from '@bd/core'
+import { nextTick, css, html, Component } from 'wkit'
import '../icon/index.js'
import '../form/input.js'
import '../scroll/index.js'
diff --git a/src/form/star.js b/src/form/star.js
index 725e195..08276b2 100644
--- a/src/form/star.js
+++ b/src/form/star.js
@@ -4,15 +4,15 @@
* @date 2023/03/21 16:14:10
*/
-import { nextTick, css, html, Component, classMap } from '@bd/core'
+import { nextTick, css, html, Component, classMap } from 'wkit'
import '../icon/index.js'
class Star extends Component {
static props = {
value: 0,
text: [],
- 'allow-half': false,
- 'show-value': false,
+ allowHalf: false,
+ showValue: false,
disabled: false,
clearable: false
}
@@ -115,7 +115,7 @@ class Star extends Component {
f = f < 0.5 ? 0.5 : 1
}
- if (!this['allow-half']) {
+ if (!this.allowHalf) {
f = f > 0 ? 1 : 0
}
// 数值没变化, 直接终止
@@ -171,6 +171,7 @@ class Star extends Component {
} else {
this.value = tmp.i + tmp.f
}
+ this.$emit('input', { value: this.value })
this.$emit('change', { value: this.value })
}
}
@@ -199,7 +200,7 @@ class Star extends Component {
- ${this['show-value'] ? val : ''}
+ ${this.showValue ? val : ''}
`
}
diff --git a/src/form/switch.js b/src/form/switch.js
index b140f32..939f9d6 100644
--- a/src/form/switch.js
+++ b/src/form/switch.js
@@ -4,19 +4,18 @@
* @date 2023/03/21 16:14:10
*/
-import { nextTick, css, html, Component, classMap } from '@bd/core'
+import { nextTick, css, html, Component, classMap } from 'wkit'
class Switch extends Component {
static props = {
size: 'l',
value: {
type: Boolean,
- default: false,
- attribute: false
+ default: false
},
- 'inactive-text': '',
- 'active-text': '',
- 'inline-text': false,
+ inactiveText: '',
+ activeText: '',
+ inlineText: false,
disabled: false,
readonly: false
}
@@ -111,11 +110,6 @@ class Switch extends Component {
w: 160px,
h: 44px,
f: 14px
- ),
- xxxl: (
- w: 192px,
- h: 52px,
- f: 16px
)
);
@@ -195,11 +189,13 @@ class Switch extends Component {
value: this.value
}
+ this.$emit('input')
this.$emit('change', data)
}
handleClick(ev) {
if (ev.type === 'click' || ev.keyCode === 32) {
+ ev.preventDefault()
this.toggleCheck(ev)
}
}
@@ -215,17 +211,17 @@ class Switch extends Component {
>
${!this['inline-text']
+ >${!this.inlineText
? this.value
- ? this['active-text']
- : this['inactive-text']
+ ? this.activeText
+ : this.inactiveText
: ''}
`
diff --git a/src/form/textarea.js b/src/form/textarea.js
index 2143869..2a19ddf 100644
--- a/src/form/textarea.js
+++ b/src/form/textarea.js
@@ -4,7 +4,7 @@
* @date 2023/03/18 14:14:25
*/
-import { css, html, Component, nextTick } from '@bd/core'
+import { css, html, Component, nextTick } from 'wkit'
class TextArea extends Component {
static props = {
diff --git a/src/icon/index.js b/src/icon/index.js
index f4d5e52..a44e704 100644
--- a/src/icon/index.js
+++ b/src/icon/index.js
@@ -4,7 +4,7 @@
* @date 2023/03/06 15:17:25
*/
-import { css, svg, html, Component } from '@bd/core'
+import { css, svg, html, Component } from 'wkit'
import SVG_DICT from './svg.js'
@@ -56,8 +56,7 @@ class Icon extends Component {
'm': 24px,
'l': 32px,
'xl': 36px,
- 'xxl': 44px,
- 'xxxl': 52px
+ 'xxl': 44px
);
@loop $k, $v in $gaps {
diff --git a/src/image-preview/index.js b/src/image-preview/index.js
index a200abd..132c1ae 100644
--- a/src/image-preview/index.js
+++ b/src/image-preview/index.js
@@ -4,7 +4,7 @@
* @date 2023/03/06 15:17:25
*/
-import { css, html, Component, styleMap, bind, unbind } from '@bd/core'
+import { css, html, Component, styleMap, bind, unbind } from 'wkit'
import '../icon/index.js'
class ImagePreview extends Component {
diff --git a/src/image/index.js b/src/image/index.js
index 133287e..068c38a 100644
--- a/src/image/index.js
+++ b/src/image/index.js
@@ -4,7 +4,7 @@
* @date 2023/03/06 15:17:25
*/
-import { css, html, Component, styleMap } from '@bd/core'
+import { css, html, Component, styleMap } from 'wkit'
import '../icon/index.js'
class Image extends Component {
diff --git a/src/layer/index.js b/src/layer/index.js
index 2bf54ba..e577436 100644
--- a/src/layer/index.js
+++ b/src/layer/index.js
@@ -4,7 +4,7 @@
* @date 2023/03/06 15:17:25
*/
-import { css, html, Component, bind, styleMap } from '@bd/core'
+import { css, html, Component, bind, styleMap } from 'wkit'
import '../form/input.js'
let uniqueInstance = null // 缓存当前打开的alert/confirm/prompt类型的弹窗
@@ -32,9 +32,9 @@ class Layer extends Component {
top: { type: String, attribute: false },
bottom: { type: String, attribute: false },
background: { type: String, attribute: false },
- 'mask-color': { type: String, attribute: false },
+ maskColor: { type: String, attribute: false },
mask: false,
- 'mask-close': false,
+ maskClose: false,
title: { type: String, default: '', attribute: false },
content: { type: String, default: '', attribute: false },
btns: []
@@ -356,7 +356,7 @@ class Layer extends Component {
return
}
- if (this['mask-close']) {
+ if (this.maskClose) {
if (this.#wrapped === false) {
this.#reject()
}
@@ -365,8 +365,8 @@ class Layer extends Component {
}
})
- if (this['mask-color']) {
- this.style.backgroundColor = this['mask-color']
+ if (this.maskColor) {
+ this.style.backgroundColor = this.maskColor
}
}
diff --git a/src/loading/index.js b/src/loading/index.js
index 69e9875..16ae068 100644
--- a/src/loading/index.js
+++ b/src/loading/index.js
@@ -4,7 +4,7 @@
* @date 2023/04/26 15:20:28
*/
-import { html, css, Component, styleMap, nextTick } from '@bd/core'
+import { html, css, Component, styleMap, nextTick } from 'wkit'
class Loading extends Component {
static props = {
diff --git a/src/markd/core.js b/src/markd/core.js
index 11abde5..f70bdc3 100644
--- a/src/markd/core.js
+++ b/src/markd/core.js
@@ -271,8 +271,7 @@ class Tool {
let isParagraph = false
let isList = false
- let orderListLevel = -1
- let unorderListLevel = -1
+ let listTagQueue = []
let isQuoteList = false // 引用中的列表, 只支持一层级
let quoteListStyle = 0 // 1有序, 2 无序
@@ -282,10 +281,19 @@ class Tool {
for (let it of this.list) {
// 非空行
if (it) {
+ let lastLineIsEmpty = emptyLineLength > 0
emptyLineLength = 0
if (~it.indexOf('')) {
- html += it
+ if (isList) {
+ if (isTable) {
+ html += it + `${' '.repeat(listTagQueue.length)}\n`
+ } else {
+ html = html.replace(/<\/li>\n*?$/, '') + it
+ }
+ } else {
+ html += it
+ }
isTable = !isTable
tableAlign = true
isHtmlBlock = false
@@ -328,7 +336,15 @@ class Tool {
isParagraph = false
html += '\n'
}
- html += it
+ if (isList) {
+ if (isCodeBlock) {
+ html += it + `${' '.repeat(listTagQueue.length)}\n`
+ } else {
+ html = html.replace(/<\/li>\n*?$/, '') + it
+ }
+ } else {
+ html += it
+ }
isCodeBlock = !isCodeBlock
isHtmlBlock = false
continue
@@ -345,6 +361,7 @@ class Tool {
let hrName = Helper.isHr(it)
if (typeof hrName === 'string') {
html += Decoder.hr(hrName)
+ emptyLineLength = 0
continue
}
@@ -368,13 +385,13 @@ class Tool {
}
// 有列表也先结束
if (isList) {
- while (orderListLevel > -1 || unorderListLevel > -1) {
- if (orderListLevel > unorderListLevel) {
- html += '\n'
- orderListLevel--
- } else {
- html += '\n'
- unorderListLevel--
+ while (listTagQueue.length) {
+ let tag = listTagQueue.pop()
+ html += `${' '.repeat(
+ listTagQueue.length ? listTagQueue.length + 1 : 0
+ )}${tag}>\n`
+ if (listTagQueue.length) {
+ html += `${' '.repeat(listTagQueue.length)}\n`
}
}
isList = false
@@ -469,45 +486,47 @@ class Tool {
let tmp = Helper.ltrim(it)
let ltrim = it.length - tmp.length
let word = tmp.replace(LIST_RE, '').trim()
- let level = Math.floor(ltrim / 2) //缩进级别
+ let _level = listTagQueue.length - 1 // 上一个缩进级别
+ let level = Math.floor(ltrim / 2) // 当前缩进级别
let tag = listChecked === 1 ? 'ol' : 'ul'
if (isParagraph) {
isParagraph = false
- html += '\n'
+ if (!isList) {
+ html = trimBr(html)
+ html += '\n'
+ }
}
if (isList) {
- let _level = listChecked === 1 ? orderListLevel : unorderListLevel
-
// 大于上一个缩进
if (level > _level) {
+ listTagQueue.push(tag)
// 需要先把上一个列表的结束符去掉
html = html.trim().replace(/<\/li>$/, '')
- html += `\n<${tag}>\n${word}\n`
+ html += `\n${' '.repeat(level + 1)}<${tag}>\n${' '.repeat(
+ level + 1
+ )}${word}\n`
}
// 跟上一个平级
else if (level === _level) {
- html += `${word}\n`
+ html += `${' '.repeat(level + 1)}${word}\n`
}
// 比上一个缩进要小
else {
- html += `${tag}>\n\n${word}\n`
- }
+ for (let i = _level - level; i > 0; i--) {
+ let _tag = listTagQueue.pop()
- if (listChecked === 1) {
- orderListLevel = level
- } else {
- unorderListLevel = level
+ html += `${' '.repeat(level + i + 1)}${_tag}>\n${' '.repeat(
+ level + i
+ )}\n`
+ }
+
+ html += `${' '.repeat(level + 1)}${word}\n`
}
} else {
- html += `<${tag}>\n`
- if (listChecked === 1) {
- orderListLevel = level
- } else {
- unorderListLevel = level
- }
- html += `${word}\n`
+ listTagQueue.push(tag)
+ html += `<${tag}>\n ${word}\n`
}
isList = true
@@ -521,6 +540,20 @@ class Tool {
continue
}
+ // 列表之后, 有段落时, 先结束列表
+ if (isList && lastLineIsEmpty) {
+ while (listTagQueue.length) {
+ let tag = listTagQueue.pop()
+ html += `${' '.repeat(
+ listTagQueue.length ? listTagQueue.length + 1 : 0
+ )}${tag}>\n`
+ if (listTagQueue.length) {
+ html += `${' '.repeat(listTagQueue.length)}\n`
+ }
+ }
+ isList = false
+ }
+
if (isHtmlBlock || isSingleLineHtml) {
if (isParagraph) {
isParagraph = false
@@ -537,12 +570,20 @@ class Tool {
isHtmlBlock = !isHtmlBlock
html += `${it}\n`
} else {
- if (isParagraph) {
- html += `${it}\n`
+ if (isList) {
+ if (isParagraph) {
+ html += it + `\n${' '.repeat(listTagQueue.length)}\n`
+ } else {
+ html = html.replace(/<\/li>\n*?$/, '') + `\n${it}`
+ }
} else {
- html += `\n
${it}`
- isParagraph = true
+ if (isParagraph) {
+ html += `${it}\n`
+ } else {
+ html += `\n
${it}`
+ }
}
+ isParagraph = true
}
} else {
// 如果是在代码中, 直接拼接, 并加上换行
@@ -566,13 +607,13 @@ class Tool {
if (isList) {
if (emptyLineLength > 1) {
- while (orderListLevel > -1 || unorderListLevel > -1) {
- if (orderListLevel > unorderListLevel) {
- html += '\n'
- orderListLevel--
- } else {
- html += '\n'
- unorderListLevel--
+ while (listTagQueue.length) {
+ let tag = listTagQueue.pop()
+ html += `${' '.repeat(
+ listTagQueue.length ? listTagQueue.length + 1 : 0
+ )}${tag}>\n`
+ if (listTagQueue.length) {
+ html += `${' '.repeat(listTagQueue.length)}\n`
}
}
isList = false
@@ -606,5 +647,5 @@ class Tool {
}
export default function (str) {
- return Tool.init(str).parse() //.replace(/\\/g, '>')
+ return Tool.init(str).parse()
}
diff --git a/src/markd/index.js b/src/markd/index.js
index 1d366a6..cbe5930 100644
--- a/src/markd/index.js
+++ b/src/markd/index.js
@@ -4,7 +4,7 @@
* @date 2023/03/06 15:17:25
*/
-import { css, html, raw, Component, bind, styleMap, classMap } from '@bd/core'
+import { css, html, raw, Component, bind, styleMap, classMap } from 'wkit'
import md2html from './core.js'
import '../code/index.js'
diff --git a/src/notify/index.js b/src/notify/index.js
index 424dbf9..b4ed352 100644
--- a/src/notify/index.js
+++ b/src/notify/index.js
@@ -4,7 +4,7 @@
* @date 2023/04/10 17:17:10
*/
-import { css, html, Component, bind, styleMap } from '@bd/core'
+import { css, html, Component, bind, styleMap } from 'wkit'
import '../icon/index.js'
const ANIMATION = [
diff --git a/src/option/index.js b/src/option/index.js
new file mode 100644
index 0000000..eacb482
--- /dev/null
+++ b/src/option/index.js
@@ -0,0 +1,68 @@
+/**
+ * {}
+ * @author yutent
+ * @date 2023/05/29 11:59:27
+ */
+
+import { nextTick, css, html, Component, bind } from 'wkit'
+
+class OptionGroup extends Component {
+ //
+ static props = {
+ label: ''
+ }
+
+ static styles = [
+ css`
+ :host {
+ display: block;
+ width: 100%;
+ line-height: 1.5;
+ }
+
+ label {
+ padding: 0 8px;
+ line-height: 1;
+ font-size: 12px;
+ color: var(--color-grey-2);
+ }
+ `
+ ]
+
+ render() {
+ return html`
+
+
+ `
+ }
+}
+
+class Option extends Component {
+ //
+ static props = {
+ action: '',
+ disabled: false
+ }
+
+ static styles = [
+ css`
+ .item {
+ display: flex;
+ padding: 0 16px;
+ line-height: 2;
+ color: var(--color-dark-1);
+
+ &:hover {
+ background: var(--color-plain-1);
+ }
+ }
+ `
+ ]
+
+ render() {
+ return html` `
+ }
+}
+
+OptionGroup.reg('option-group')
+Option.reg('option')
diff --git a/src/pager/index.js b/src/pager/index.js
index 21c6bfc..b3b9182 100644
--- a/src/pager/index.js
+++ b/src/pager/index.js
@@ -4,7 +4,7 @@
* @date 2023/04/18 09:38:01
*/
-import { css, html, Component, bind, styleMap } from '@bd/core'
+import { css, html, Component, bind, styleMap } from 'wkit'
import '../form/button.js'
const LAYOUT_DICT = {
@@ -243,7 +243,8 @@ class Pager extends Component {
this.page = num
- this.$emit('page-changed', { data: num })
+ console.log(this)
+ this.$emit('page-change', { data: num })
}
}
@@ -252,9 +253,9 @@ class Pager extends Component {
let n = +ev.target.value
if (n === n) {
this.page = n
- this.$emit('page-changed', { data: this.page })
+ this.$emit('page-change', { data: n })
}
- ev.target.value = this.page
+ ev.target.value = n
}
}
diff --git a/src/popconfirm/index.js b/src/popconfirm/index.js
index 41f893d..053606c 100644
--- a/src/popconfirm/index.js
+++ b/src/popconfirm/index.js
@@ -4,7 +4,7 @@
* @date 2023/04/28 16:14:10
*/
-import { css, html, Component, styleMap } from '@bd/core'
+import { css, html, Component, styleMap } from 'wkit'
import '../form/button.js'
class Popconfirm extends Component {
diff --git a/src/progress/index.js b/src/progress/index.js
index e1b4573..f974070 100644
--- a/src/progress/index.js
+++ b/src/progress/index.js
@@ -4,7 +4,7 @@
* @date 2023/04/28 16:14:10
*/
-import { css, html, Component, styleMap } from '@bd/core'
+import { css, html, Component, styleMap } from 'wkit'
class Progress extends Component {
static props = {
diff --git a/src/result/index.js b/src/result/index.js
index 77e3e9d..de4150a 100644
--- a/src/result/index.js
+++ b/src/result/index.js
@@ -4,7 +4,7 @@
* @date 2023/04/28 16:14:10
*/
-import { css, html, Component } from '@bd/core'
+import { css, html, Component } from 'wkit'
import '../icon/index.js'
class Result extends Component {
diff --git a/src/sandbox/index.js b/src/sandbox/index.js
index 8cf8248..9a8fb88 100644
--- a/src/sandbox/index.js
+++ b/src/sandbox/index.js
@@ -4,7 +4,7 @@
* @date 2023/03/06 15:17:25
*/
-import { css, html, raw, bind, Component, nextTick, classMap } from '@bd/core'
+import { css, html, raw, bind, Component, nextTick, classMap } from 'wkit'
import '../icon/index.js'
import { gzip } from '@bytedo/gzip'
import { colorHtml, colorJs, colorCss } from '../code/colorful.js'
@@ -16,7 +16,7 @@ const template = `
-
+
diff --git a/src/scroll/index.js b/src/scroll/index.js
index 962bda2..48acfa0 100644
--- a/src/scroll/index.js
+++ b/src/scroll/index.js
@@ -4,7 +4,7 @@
* @date 2023/03/20 15:17:25
*/
-import { css, html, bind, unbind, Component } from '@bd/core'
+import { css, html, bind, unbind, Component } from 'wkit'
class Scroll extends Component {
static props = {
diff --git a/src/slider/index.js b/src/slider/index.js
index ef87807..393aef9 100644
--- a/src/slider/index.js
+++ b/src/slider/index.js
@@ -4,7 +4,7 @@
* @date 2023/03/21 16:14:10
*/
-import { css, bind, unbind, html, Component } from '@bd/core'
+import { css, bind, unbind, html, Component } from 'wkit'
class Slider extends Component {
static props = {
diff --git a/src/space/index.js b/src/space/index.js
index 0e91287..5c52bc8 100644
--- a/src/space/index.js
+++ b/src/space/index.js
@@ -4,7 +4,7 @@
* @date 2023/03/06 15:17:25
*/
-import { css, html, Component } from '@bd/core'
+import { css, html, Component } from 'wkit'
class Space extends Component {
static styles = css`
diff --git a/src/steps/index.js b/src/steps/index.js
index 32c627b..57ee292 100644
--- a/src/steps/index.js
+++ b/src/steps/index.js
@@ -4,7 +4,7 @@
* @date 2023/04/18 09:38:01
*/
-import { css, html, Component, bind, styleMap, classMap } from '@bd/core'
+import { css, html, Component, bind, styleMap, classMap } from 'wkit'
import '../icon/index.js'
class Steps extends Component {
diff --git a/src/swipe/index.js b/src/swipe/index.js
index 5ce06db..9f7ce03 100644
--- a/src/swipe/index.js
+++ b/src/swipe/index.js
@@ -4,7 +4,7 @@
* @date 2023/03/26 16:14:10
*/
-import { css, html, Component, nextTick, styleMap } from '@bd/core'
+import { css, html, Component, nextTick, styleMap } from 'wkit'
import '../icon/index.js'
const CARD_SCALE = 0.83
diff --git a/src/tabs/index.js b/src/tabs/index.js
index 5feabba..0f55186 100644
--- a/src/tabs/index.js
+++ b/src/tabs/index.js
@@ -4,22 +4,14 @@
* @date 2023/03/06 15:17:25
*/
-import {
- css,
- html,
- bind,
- Component,
- nextTick,
- styleMap,
- classMap
-} from '@bd/core'
+import { css, html, bind, Component, nextTick, styleMap, classMap } from 'wkit'
import '../icon/index.js'
class Tabs extends Component {
static props = {
tab: { type: String, attribute: false },
type: 'default',
- 'tab-position': 'top',
+ tabPosition: 'top',
labels: []
}
@@ -51,7 +43,7 @@ class Tabs extends Component {
flex-shrink: 0;
display: flex;
width: 100%;
- height: 38px;
+ min-height: 38px;
color: var(--color-dark-1);
user-select: none;
}
@@ -163,11 +155,12 @@ class Tabs extends Component {
}
.navs {
flex-direction: column;
- }
- .label {
- margin: 0;
- height: 38px;
- padding: 0 16px;
+
+ > .label {
+ margin: 0;
+ min-height: 38px;
+ padding: 0 16px;
+ }
}
.active-bar {
width: 2px;
@@ -526,7 +519,7 @@ class Tabs extends Component {
render() {
let tabStyle = {}
- if (this['tab-position'] === 'top' || this['tab-position'] === 'bottom') {
+ if (this.tabPosition === 'top' || this.tabPosition === 'bottom') {
tabStyle = {
width: this.#tabWidth + 'px',
left: this.#tabLeft + 'px'
diff --git a/src/tag/index.js b/src/tag/index.js
index f7e4264..e6fbb6a 100644
--- a/src/tag/index.js
+++ b/src/tag/index.js
@@ -4,7 +4,7 @@
* @date 2023/04/28 16:14:10
*/
-import { css, html, Component, styleMap } from '@bd/core'
+import { css, html, Component, styleMap } from 'wkit'
import '../icon/index.js'
const ANIMATION = {
diff --git a/src/timeline/index.js b/src/timeline/index.js
index 3175ec2..7c914ee 100644
--- a/src/timeline/index.js
+++ b/src/timeline/index.js
@@ -4,7 +4,7 @@
* @date 2023/04/18 09:38:01
*/
-import { css, html, Component, bind, styleMap, classMap } from '@bd/core'
+import { css, html, Component, bind, styleMap, classMap } from 'wkit'
import '../icon/index.js'
function pad(n) {
diff --git a/开发规范.md b/开发规范.md
index 6f543ca..3a13171 100644
--- a/开发规范.md
+++ b/开发规范.md
@@ -20,7 +20,6 @@
- `size=l` 大号, 32px (默认值)
- `size=xl` 加大号, 36px
- `size=xxl` 加加大号, 44px
- - `size=xxxl` 加加加大号, 52px
4. 自带点击事件的组件, 统一增加"节流/防抖"逻辑
> 统一为增加 `lazy="1000"` 属性实现
\ No newline at end of file