From 6da5c662cf9ea6d29b73525bf0bd6428847b70ba Mon Sep 17 00:00:00 2001 From: mantou132 <709922234@qq.com> Date: Sun, 31 Dec 2023 16:05:44 +0800 Subject: [PATCH] [duoyun-ui] Fixed `document.createElement` error --- .../duoyun-ui/src/elements/action-text.ts | 3 +- packages/duoyun-ui/src/elements/button.ts | 4 +- .../duoyun-ui/src/elements/cascader-picker.ts | 5 +- packages/duoyun-ui/src/elements/checkbox.ts | 4 +- .../duoyun-ui/src/elements/color-picker.ts | 5 +- .../duoyun-ui/src/elements/contextmenu.ts | 6 +-- .../duoyun-ui/src/elements/date-picker.ts | 5 +- .../src/elements/date-range-picker.ts | 5 +- packages/duoyun-ui/src/elements/drawer.ts | 2 +- .../duoyun-ui/src/elements/file-picker.ts | 16 ++++--- packages/duoyun-ui/src/elements/input.ts | 3 +- packages/duoyun-ui/src/elements/link.ts | 2 + packages/duoyun-ui/src/elements/options.ts | 3 +- packages/duoyun-ui/src/elements/picker.ts | 6 +-- packages/duoyun-ui/src/elements/radio.ts | 4 +- packages/duoyun-ui/src/elements/rate.ts | 3 +- packages/duoyun-ui/src/elements/segmented.ts | 3 +- packages/duoyun-ui/src/elements/select.ts | 3 +- .../duoyun-ui/src/elements/shortcut-record.ts | 10 +--- packages/duoyun-ui/src/elements/slider.ts | 8 ++-- packages/duoyun-ui/src/elements/switch.ts | 4 +- .../duoyun-ui/src/elements/time-picker.ts | 5 +- packages/duoyun-ui/src/elements/tree.ts | 3 +- packages/duoyun-ui/src/elements/wait.ts | 2 +- .../gem-book/src/element/elements/footer.ts | 1 - packages/gem-book/src/element/helper/i18n.ts | 2 + .../gem/docs/en/003-api/001-gem-element.md | 1 + .../004-blog/001-create-standard-element.md | 10 ++-- .../gem/docs/zh/003-api/001-gem-element.md | 1 + .../004-blog/001-create-standard-element.md | 8 +++- packages/gem/src/elements/base/dialog.ts | 5 +- packages/gem/src/elements/base/link.ts | 3 +- packages/gem/src/elements/base/reflect.ts | 26 ++++++++--- packages/gem/src/elements/base/title.ts | 10 +++- packages/gem/src/helper/ssr-shim.ts | 18 ++++++-- packages/gem/src/lib/element.ts | 46 +++++++++++++++---- packages/gem/src/lib/utils.ts | 12 ++++- 37 files changed, 163 insertions(+), 94 deletions(-) diff --git a/packages/duoyun-ui/src/elements/action-text.ts b/packages/duoyun-ui/src/elements/action-text.ts index fe2c8a71..124565dc 100644 --- a/packages/duoyun-ui/src/elements/action-text.ts +++ b/packages/duoyun-ui/src/elements/action-text.ts @@ -41,8 +41,7 @@ export class DuoyunActionTextElement extends GemElement { @state active: boolean; constructor() { - super(); - this.tabIndex = 0; + super({ focusable: true }); this.internals.role = 'button'; this.addEventListener('keydown', commonHandle); } diff --git a/packages/duoyun-ui/src/elements/button.ts b/packages/duoyun-ui/src/elements/button.ts index af9a5089..e6eb152a 100644 --- a/packages/duoyun-ui/src/elements/button.ts +++ b/packages/duoyun-ui/src/elements/button.ts @@ -208,8 +208,8 @@ export class DuoyunButtonElement extends GemElement { }
; constructor() { - super(); + super({ focusable: true }); this.addEventListener('click', this.#onOpen); this.addEventListener('keydown', commonHandle); - this.tabIndex = 0; this.internals.role = 'combobox'; } diff --git a/packages/duoyun-ui/src/elements/checkbox.ts b/packages/duoyun-ui/src/elements/checkbox.ts index 92a17f72..0fe1b181 100644 --- a/packages/duoyun-ui/src/elements/checkbox.ts +++ b/packages/duoyun-ui/src/elements/checkbox.ts @@ -89,12 +89,12 @@ export class DuoyunCheckboxElement extends GemElement { return html` diff --git a/packages/duoyun-ui/src/elements/color-picker.ts b/packages/duoyun-ui/src/elements/color-picker.ts index ff8ee2f9..6209c8c0 100644 --- a/packages/duoyun-ui/src/elements/color-picker.ts +++ b/packages/duoyun-ui/src/elements/color-picker.ts @@ -56,7 +56,7 @@ const style = createCSSSheet(css` @customElement('dy-color-picker') @adoptedStyle(style) @adoptedStyle(focusStyle) -export class DuoyunColorPickElement extends GemElement implements BasePickerElement { +export class DuoyunColorPickerElement extends GemElement implements BasePickerElement { @attribute value: HexColor; @boolattribute alpha: boolean; @refobject popoverRef: RefObject; @@ -85,7 +85,8 @@ export class DuoyunColorPickElement extends GemElement implements BasePickerElem >
; - static instance?: DuoyunContextMenuElement; + static instance?: DuoyunContextmenuElement; static async open(contextmenu: Menu, options: ContextMenuOptions = {}) { const { @@ -365,4 +365,4 @@ export class DuoyunContextMenuElement extends GemElement { }; } -export const ContextMenu = DuoyunContextMenuElement; +export const ContextMenu = DuoyunContextmenuElement; diff --git a/packages/duoyun-ui/src/elements/date-picker.ts b/packages/duoyun-ui/src/elements/date-picker.ts index 019d583c..f5571973 100644 --- a/packages/duoyun-ui/src/elements/date-picker.ts +++ b/packages/duoyun-ui/src/elements/date-picker.ts @@ -69,7 +69,7 @@ const style = createCSSSheet(css` @adoptedStyle(style) @adoptedStyle(focusStyle) @connectStore(icons) -export class DuoyunDatePickElement extends GemElement implements BasePickerElement { +export class DuoyunDatePickerElement extends GemElement implements BasePickerElement { @attribute placeholder: string; @boolattribute time: boolean; @boolattribute clearable: boolean; @@ -89,10 +89,9 @@ export class DuoyunDatePickElement extends GemElement implements BasePickerEleme } constructor() { - super(); + super({ focusable: true }); this.addEventListener('click', this.#onOpen); this.addEventListener('keydown', commonHandle); - this.tabIndex = 0; this.internals.role = 'combobox'; } diff --git a/packages/duoyun-ui/src/elements/date-range-picker.ts b/packages/duoyun-ui/src/elements/date-range-picker.ts index 8e7911da..38695067 100644 --- a/packages/duoyun-ui/src/elements/date-range-picker.ts +++ b/packages/duoyun-ui/src/elements/date-range-picker.ts @@ -66,7 +66,7 @@ const style = createCSSSheet(css` @adoptedStyle(style) @adoptedStyle(pickerStyle) @adoptedStyle(focusStyle) -export class DuoyunDateRangePickElement extends GemElement implements BasePickerElement { +export class DuoyunDateRangePickerElement extends GemElement implements BasePickerElement { @attribute placeholder: string; @boolattribute clearable: boolean; @boolattribute disabled: boolean; @@ -78,10 +78,9 @@ export class DuoyunDateRangePickElement extends GemElement implements BasePicker @emitter clear: Emitter; constructor() { - super(); + super({ focusable: true }); this.addEventListener('click', this.#onOpen); this.addEventListener('keydown', commonHandle); - this.tabIndex = 0; this.internals.role = 'combobox'; } diff --git a/packages/duoyun-ui/src/elements/drawer.ts b/packages/duoyun-ui/src/elements/drawer.ts index cd1a8a8f..c044a3ac 100644 --- a/packages/duoyun-ui/src/elements/drawer.ts +++ b/packages/duoyun-ui/src/elements/drawer.ts @@ -27,7 +27,7 @@ const style = createCSSSheet(css` @customElement('dy-drawer') @adoptedStyle(style) export class DuoyunDrawerElement extends DuoyunModalElement { - constructor(options: ModalOptions) { + constructor(options: ModalOptions = {}) { super(options); this.addEventListener('maskclick', () => this.close(null)); this.openAnimation = slideInLeft; diff --git a/packages/duoyun-ui/src/elements/file-picker.ts b/packages/duoyun-ui/src/elements/file-picker.ts index 66f9e5b7..5ceeeed9 100644 --- a/packages/duoyun-ui/src/elements/file-picker.ts +++ b/packages/duoyun-ui/src/elements/file-picker.ts @@ -120,7 +120,7 @@ export interface FileItem extends File { @customElement('dy-file-picker') @adoptedStyle(style) @adoptedStyle(focusStyle) -export class DuoyunFilePickElement extends GemElement implements BasePickerElement { +export class DuoyunFilePickerElement extends GemElement implements BasePickerElement { @part static button: string; @part static item: string; @@ -131,6 +131,7 @@ export class DuoyunFilePickElement extends GemElement implements BasePickerEleme /**@deprecated Use children*/ @attribute placeholder: string; @boolattribute directory: boolean; + @boolattribute disabled: boolean; @boolattribute multiple: boolean; @globalemitter change: Emitter; @refobject inputRef: RefObject; @@ -173,13 +174,14 @@ export class DuoyunFilePickElement extends GemElement implements BasePickerEleme } }; return html` -
+
${name}
${progress ? html`
${Math.floor(progress)}%
` : ''}