From cda9e7f06308fda3d99f634ad87c065fcb07f668 Mon Sep 17 00:00:00 2001 From: shijian <2954700422@qq.com> Date: Thu, 11 Jan 2024 16:31:31 +0800 Subject: [PATCH] =?UTF-8?q?=E6=B7=BB=E5=8A=A0=E4=B8=80=E4=BA=9Bjsdoc?= =?UTF-8?q?=E6=B3=A8=E9=87=8A?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- node_modules/noname-typings/type.d.ts | 1 + noname/library/element/dialog.js | 65 ++++++++++++++++++++++----- noname/library/index.js | 1 + noname/ui/index.js | 40 +++++++++++++++++ 4 files changed, 95 insertions(+), 12 deletions(-) diff --git a/node_modules/noname-typings/type.d.ts b/node_modules/noname-typings/type.d.ts index 847852a74..2ca05dbe7 100644 --- a/node_modules/noname-typings/type.d.ts +++ b/node_modules/noname-typings/type.d.ts @@ -31,6 +31,7 @@ declare type GameEvent = import('../../noname/library/index.js').GameEvent; declare type GameEventPromise = import('../../noname/library/index.js').GameEventPromise; declare type Player = import('../../noname/library/index.js').Player; declare type VCard = import('../../noname/library/index.js').VCard; +declare type Control = import('../../noname/library/index.js').Control; declare type Video = import('../../noname/game/index.js').Video; declare type Videos = import('../../noname/game/index.js').Videos; diff --git a/noname/library/element/dialog.js b/noname/library/element/dialog.js index ed819d971..5db38f405 100644 --- a/noname/library/element/dialog.js +++ b/noname/library/element/dialog.js @@ -6,6 +6,23 @@ import { status as _status } from '../../status/index.js'; import { UI as ui } from '../../ui/index.js'; export class Dialog extends HTMLDivElement { + /** @type { HTMLDivElement } */ + contentContainer; + /** @type { HTMLDivElement } */ + content; + /** @type { HTMLDivElement } */ + bar1; + /** @type { HTMLDivElement } */ + bar2; + /** @type { Button[] } */ + buttons; + /** @type { boolean } */ + static; + /** @type { boolean } */ + noforcebutton; + /** @type { boolean } */ + noopen; + // @ts-ignore constructor(...args) { if (args[0] instanceof Dialog) { @@ -18,7 +35,7 @@ export class Dialog extends HTMLDivElement { let noTouchScroll = false; let forceButton = false; let noForceButton = false; - /** @type {this} */ + /** @type { this } */ // @ts-ignore const dialog = ui.create.div('.dialog'); Object.setPrototypeOf(dialog, Dialog.prototype); @@ -40,6 +57,7 @@ export class Dialog extends HTMLDivElement { if (!noTouchScroll) { dialog.contentContainer.ontouchstart = ui.click.dialogtouchStart; dialog.contentContainer.ontouchmove = ui.click.touchScroll; + // @ts-ignore dialog.contentContainer.style.webkitOverflowScrolling = 'touch'; dialog.ontouchstart = ui.click.dragtouchdialog; } @@ -52,15 +70,21 @@ export class Dialog extends HTMLDivElement { dialog._args = args; return dialog; } + /** + * + * @param { string | HTMLDivElement | Card[] | Player[] } item + * @param {*} [noclick] + * @param { boolean } [zoom] + */ add(item, noclick, zoom) { if (typeof item == 'string') { if (item.startsWith('###')) { - var items = item.slice(3).split('###'); + const items = item.slice(3).split('###'); this.add(items[0], noclick, zoom); this.addText(items[1], items[1].length <= 20, zoom); } else if (noclick) { - var strstr = item; + const strstr = item; item = ui.create.div('', this.content); item.innerHTML = strstr; } @@ -68,17 +92,23 @@ export class Dialog extends HTMLDivElement { item = ui.create.caption(item, this.content); } } + // @ts-ignore else if (['div', 'fragment'].includes(get.objtype(item))) { + // @ts-ignore this.content.appendChild(item); } + // @ts-ignore else if (get.itemtype(item) == 'cards') { - var buttons = ui.create.div('.buttons', this.content); + const buttons = ui.create.div('.buttons', this.content); if (zoom) buttons.classList.add('smallzoom'); + // @ts-ignore this.buttons = this.buttons.concat(ui.create.buttons(item, 'card', buttons, noclick)); } + // @ts-ignore else if (get.itemtype(item) == 'players') { var buttons = ui.create.div('.buttons', this.content); if (zoom) buttons.classList.add('smallzoom'); + // @ts-ignore this.buttons = this.buttons.concat(ui.create.buttons(item, 'player', buttons, noclick)); } else if (item[1] == 'textbutton') { @@ -87,6 +117,7 @@ export class Dialog extends HTMLDivElement { else { var buttons = ui.create.div('.buttons', this.content); if (zoom) buttons.classList.add('smallzoom'); + // @ts-ignore this.buttons = this.buttons.concat(ui.create.buttons(item[0], item[1], buttons, noclick)); } if (this.buttons.length) { @@ -101,6 +132,10 @@ export class Dialog extends HTMLDivElement { ui.update(); return item; } + /** + * @param { string } str + * @param { boolean } [center] + */ addText(str, center) { if (str && str.startsWith('