From 01ebaf0e534e5acd129504da9ec8e33c81b095fa Mon Sep 17 00:00:00 2001 From: Mateusz Paprocki Date: Wed, 28 Feb 2024 20:59:32 +0100 Subject: [PATCH] Fix any outstanding type errors --- panel/models/customselect.ts | 4 +++- panel/models/event-to-object.ts | 4 ++-- panel/models/json.ts | 4 ++-- panel/models/quill.ts | 8 ++++---- 4 files changed, 11 insertions(+), 9 deletions(-) diff --git a/panel/models/customselect.ts b/panel/models/customselect.ts index ae24fd1d1c..bd8749b037 100644 --- a/panel/models/customselect.ts +++ b/panel/models/customselect.ts @@ -11,8 +11,10 @@ export class CustomSelectView extends SelectView { protected override options_el(): HTMLOptionElement[] | HTMLOptGroupElement[] { const opts = super.options_el() + const {disabled_options} = this.model opts.forEach((element) => { - if (this.model.disabled_options.includes(element.value)) { + // XXX: what about HTMLOptGroupElement? + if (element instanceof HTMLOptionElement && disabled_options.includes(element.value)) { element.setAttribute("disabled", "true") } }) diff --git a/panel/models/event-to-object.ts b/panel/models/event-to-object.ts index 037b0129a6..237f600f4b 100644 --- a/panel/models/event-to-object.ts +++ b/panel/models/event-to-object.ts @@ -64,10 +64,10 @@ const elementTransformCategories: any = { hasCurrentTime: (element: any) => ({ currentTime: element.currentTime, }), - hasFiles: (element: any) => { + hasFiles: (element: HTMLInputElement) => { if (element?.type === "file") { return { - files: Array.from(element.files).map((file: File) => ({ + files: [...element.files ?? []].map((file) => ({ lastModified: file.lastModified, name: file.name, size: file.size, diff --git a/panel/models/json.ts b/panel/models/json.ts index 13e052e118..dc14ae031a 100644 --- a/panel/models/json.ts +++ b/panel/models/json.ts @@ -19,8 +19,8 @@ export class JSONView extends PanelMarkupView { let json try { json = window.JSON.parse(text) - } catch (err) { - this.container.innerHTML = `Invalid JSON: ${err.toString()}` + } catch (err: unknown) { + this.container.innerHTML = `Invalid JSON: ${err}` return } const config = {hoverPreviewEnabled: this.model.hover_preview, theme: this.model.theme} diff --git a/panel/models/quill.ts b/panel/models/quill.ts index b996b65020..8cdc15c42f 100644 --- a/panel/models/quill.ts +++ b/panel/models/quill.ts @@ -115,7 +115,7 @@ export class QuillInputView extends HTMLBoxView { * Original implementation relies on Selection.addRange to programmatically set the range, which does not work * in Webkit with Native Shadow. Selection.addRange works fine in Chromium and Gecko. **/ - this.quill.selection.setNativeRange = (startNode: any, startOffset: any) => { + this.quill.selection.setNativeRange = (startNode: Element, startOffset: number) => { let endNode = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : startNode let endOffset = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : startOffset const force = arguments.length > 4 && arguments[4] !== undefined ? arguments[4] : false @@ -133,11 +133,11 @@ export class QuillInputView extends HTMLBoxView { const native = (this.quill.selection.getNativeRange() || {}).native if (native == null || force || startNode !== native.startContainer || startOffset !== native.startOffset || endNode !== native.endContainer || endOffset !== native.endOffset) { if (startNode.tagName == "BR") { - startOffset = [].indexOf.call(startNode.parentNode.childNodes, startNode) - startNode = startNode.parentNode + startOffset = Array.prototype.indexOf.call(startNode.parentNode?.childNodes ?? [], startNode) + startNode = startNode.parentNode as any } if (endNode.tagName == "BR") { - endOffset = [].indexOf.call(endNode.parentNode.childNodes, endNode) + endOffset = Array.prototype.indexOf(endNode.parentNode?.childNodes ?? [], endNode) endNode = endNode.parentNode } selection.setBaseAndExtent(startNode, startOffset, endNode, endOffset)