@arcanejs/toolkit 0.2.0 → 0.2.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/backend/components/base.d.mts +69 -2
- package/dist/backend/components/base.d.ts +69 -2
- package/dist/backend/components/base.js +10 -188
- package/dist/backend/components/base.mjs +2 -1
- package/dist/backend/components/button.d.mts +5 -4
- package/dist/backend/components/button.d.ts +5 -4
- package/dist/backend/components/button.js +5 -165
- package/dist/backend/components/button.mjs +3 -2
- package/dist/backend/components/group.d.mts +9 -7
- package/dist/backend/components/group.d.ts +9 -7
- package/dist/backend/components/group.js +6 -282
- package/dist/backend/components/group.mjs +3 -2
- package/dist/backend/components/label.d.mts +5 -3
- package/dist/backend/components/label.d.ts +5 -3
- package/dist/backend/components/label.js +5 -102
- package/dist/backend/components/label.mjs +3 -2
- package/dist/backend/components/rect.d.mts +4 -3
- package/dist/backend/components/rect.d.ts +4 -3
- package/dist/backend/components/rect.js +5 -102
- package/dist/backend/components/rect.mjs +3 -2
- package/dist/backend/components/slider-button.d.mts +5 -4
- package/dist/backend/components/slider-button.d.ts +5 -4
- package/dist/backend/components/slider-button.js +5 -158
- package/dist/backend/components/slider-button.mjs +3 -2
- package/dist/backend/components/switch.d.mts +5 -4
- package/dist/backend/components/switch.d.ts +5 -4
- package/dist/backend/components/switch.js +5 -141
- package/dist/backend/components/switch.mjs +3 -2
- package/dist/backend/components/tabs.d.mts +5 -4
- package/dist/backend/components/tabs.d.ts +5 -4
- package/dist/backend/components/tabs.js +7 -206
- package/dist/backend/components/tabs.mjs +3 -2
- package/dist/backend/components/text-input.d.mts +5 -4
- package/dist/backend/components/text-input.d.ts +5 -4
- package/dist/backend/components/text-input.js +5 -143
- package/dist/backend/components/text-input.mjs +3 -2
- package/dist/backend/components/timeline.d.mts +6 -5
- package/dist/backend/components/timeline.d.ts +6 -5
- package/dist/backend/components/timeline.js +5 -106
- package/dist/backend/components/timeline.mjs +3 -2
- package/dist/backend/util/index.d.mts +7 -0
- package/dist/backend/util/index.d.ts +7 -0
- package/dist/backend/util/index.js +7 -0
- package/dist/backend/util/index.mjs +7 -0
- package/dist/{chunk-L243ZOAR.mjs → chunk-3O4P67DM.mjs} +2 -4
- package/dist/chunk-3RG5ZIWI.js +10 -0
- package/dist/{chunk-37VNFO5S.mjs → chunk-APCR3ITH.mjs} +1 -1
- package/dist/chunk-EABM5X65.js +17 -0
- package/dist/{chunk-P6X5GIDT.mjs → chunk-HNEUZVCX.mjs} +1 -1
- package/dist/{chunk-6LL3X7ZZ.mjs → chunk-IXTM35YM.mjs} +1 -1
- package/dist/{chunk-HVFTRNLQ.mjs → chunk-JW4GXS54.mjs} +1 -1
- package/dist/chunk-K24YPCR5.js +104 -0
- package/dist/chunk-KVJU3EAD.js +66 -0
- package/dist/chunk-M6EFK4GP.js +42 -0
- package/dist/chunk-MDFDWKGW.js +44 -0
- package/dist/chunk-OEIGZ3NQ.js +33 -0
- package/dist/chunk-P43QUQ4T.js +29 -0
- package/dist/chunk-RGHJEMWG.mjs +17 -0
- package/dist/chunk-RGIB65TI.js +29 -0
- package/dist/chunk-RJS32OOA.js +55 -0
- package/dist/{chunk-DBW4OPGN.mjs → chunk-SOC4TF3J.mjs} +1 -1
- package/dist/chunk-T2PJEXYO.js +59 -0
- package/dist/{chunk-DP3QFYSS.mjs → chunk-TAZH4BBH.mjs} +1 -1
- package/dist/{chunk-3ZBM7Q4A.mjs → chunk-TQ27Y7F4.mjs} +1 -1
- package/dist/chunk-UBWCVW2U.js +163 -0
- package/dist/chunk-Y6FXYEAI.mjs +10 -0
- package/dist/{chunk-HF77PS7J.mjs → chunk-ZCHM3JJJ.mjs} +0 -8
- package/dist/{chunk-GQZA5K4M.mjs → chunk-ZU5H6SVA.mjs} +1 -1
- package/dist/frontend.js +1345 -398
- package/dist/frontend.js.map +4 -4
- package/dist/index.d.mts +4 -2
- package/dist/index.d.ts +4 -2
- package/dist/index.js +82 -658
- package/dist/index.mjs +14 -24
- package/package.json +10 -2
- package/dist/base-BJAPu0O1.d.mts +0 -234
- package/dist/base-BJAPu0O1.d.ts +0 -234
|
@@ -1,2 +1,69 @@
|
|
|
1
|
-
|
|
2
|
-
import '
|
|
1
|
+
import * as proto from '@arcanejs/protocol';
|
|
2
|
+
import { IDMap } from '../util/index.mjs';
|
|
3
|
+
|
|
4
|
+
interface Component {
|
|
5
|
+
getProtoInfo(idMap: IDMap): proto.Component;
|
|
6
|
+
handleMessage(message: proto.ClientComponentMessage): void;
|
|
7
|
+
routeMessage(idMap: IDMap, message: proto.ClientComponentMessage): void;
|
|
8
|
+
setParent(parent: Parent | null): void;
|
|
9
|
+
}
|
|
10
|
+
declare abstract class Base<Props> implements Component {
|
|
11
|
+
/** @hidden */
|
|
12
|
+
private parent;
|
|
13
|
+
/** @hidden */
|
|
14
|
+
private readonly defaultProps;
|
|
15
|
+
/** @hidden */
|
|
16
|
+
private _props;
|
|
17
|
+
constructor(defaultProps: Props, props?: Partial<Props>);
|
|
18
|
+
get props(): Props;
|
|
19
|
+
set props(props: Partial<Props>);
|
|
20
|
+
setProps: (props: Partial<Props>) => void;
|
|
21
|
+
updateProps: (updates: Partial<Props>) => void;
|
|
22
|
+
/** @hidden */
|
|
23
|
+
setParent(parent: Parent | null): void;
|
|
24
|
+
/** @hidden */
|
|
25
|
+
updateTree(): void;
|
|
26
|
+
/** @hidden */
|
|
27
|
+
abstract getProtoInfo(idMap: IDMap): proto.Component;
|
|
28
|
+
/** @hidden */
|
|
29
|
+
handleMessage(message: proto.ClientComponentMessage): void;
|
|
30
|
+
routeMessage(_idMap: IDMap, _message: proto.ClientComponentMessage): void;
|
|
31
|
+
}
|
|
32
|
+
/** @hidden */
|
|
33
|
+
interface Parent {
|
|
34
|
+
updateTree(): void;
|
|
35
|
+
removeChild(component: Component): void;
|
|
36
|
+
}
|
|
37
|
+
declare abstract class BaseParent<T> extends Base<T> implements Parent {
|
|
38
|
+
/** @hidden */
|
|
39
|
+
private children;
|
|
40
|
+
abstract validateChildren(children: Component[]): void;
|
|
41
|
+
appendChildren: <CS extends Component[]>(...children: CS) => CS;
|
|
42
|
+
appendChild: <C extends Component>(child: C) => C;
|
|
43
|
+
removeChild: (component: Component) => void;
|
|
44
|
+
removeAllChildren: () => void;
|
|
45
|
+
/**
|
|
46
|
+
* Return all children components that messages need to be routed to
|
|
47
|
+
*/
|
|
48
|
+
getChildren: () => readonly Component[];
|
|
49
|
+
/**
|
|
50
|
+
* TODO: we can do this better, right now it broadcasts the message to all
|
|
51
|
+
* components of the tree
|
|
52
|
+
*
|
|
53
|
+
* @hidden
|
|
54
|
+
*/
|
|
55
|
+
routeMessage(idMap: IDMap, message: proto.ClientComponentMessage): void;
|
|
56
|
+
insertBefore(child: Component, beforeChild: Component): void;
|
|
57
|
+
}
|
|
58
|
+
interface Listenable<Map extends Record<string, (...args: any[]) => void>> {
|
|
59
|
+
addListener<T extends keyof Map>(type: T, listener: Map[T]): void;
|
|
60
|
+
removeListener<T extends keyof Map>(type: T, listener: Map[T]): void;
|
|
61
|
+
}
|
|
62
|
+
declare class EventEmitter<Map extends Record<string, (...args: any[]) => void>> implements Listenable<Map> {
|
|
63
|
+
private readonly listeners;
|
|
64
|
+
addListener: <T extends keyof Map>(type: T, listener: Map[T]) => void;
|
|
65
|
+
removeListener: <T extends keyof Map>(type: T, listener: Map[T]) => void;
|
|
66
|
+
emit: <T extends keyof Map>(type: T, ...args: Parameters<Map[T]>) => Promise<unknown>;
|
|
67
|
+
}
|
|
68
|
+
|
|
69
|
+
export { Base, BaseParent, type Component, EventEmitter, type Listenable, type Parent };
|
|
@@ -1,2 +1,69 @@
|
|
|
1
|
-
|
|
2
|
-
import '
|
|
1
|
+
import * as proto from '@arcanejs/protocol';
|
|
2
|
+
import { IDMap } from '../util/index.js';
|
|
3
|
+
|
|
4
|
+
interface Component {
|
|
5
|
+
getProtoInfo(idMap: IDMap): proto.Component;
|
|
6
|
+
handleMessage(message: proto.ClientComponentMessage): void;
|
|
7
|
+
routeMessage(idMap: IDMap, message: proto.ClientComponentMessage): void;
|
|
8
|
+
setParent(parent: Parent | null): void;
|
|
9
|
+
}
|
|
10
|
+
declare abstract class Base<Props> implements Component {
|
|
11
|
+
/** @hidden */
|
|
12
|
+
private parent;
|
|
13
|
+
/** @hidden */
|
|
14
|
+
private readonly defaultProps;
|
|
15
|
+
/** @hidden */
|
|
16
|
+
private _props;
|
|
17
|
+
constructor(defaultProps: Props, props?: Partial<Props>);
|
|
18
|
+
get props(): Props;
|
|
19
|
+
set props(props: Partial<Props>);
|
|
20
|
+
setProps: (props: Partial<Props>) => void;
|
|
21
|
+
updateProps: (updates: Partial<Props>) => void;
|
|
22
|
+
/** @hidden */
|
|
23
|
+
setParent(parent: Parent | null): void;
|
|
24
|
+
/** @hidden */
|
|
25
|
+
updateTree(): void;
|
|
26
|
+
/** @hidden */
|
|
27
|
+
abstract getProtoInfo(idMap: IDMap): proto.Component;
|
|
28
|
+
/** @hidden */
|
|
29
|
+
handleMessage(message: proto.ClientComponentMessage): void;
|
|
30
|
+
routeMessage(_idMap: IDMap, _message: proto.ClientComponentMessage): void;
|
|
31
|
+
}
|
|
32
|
+
/** @hidden */
|
|
33
|
+
interface Parent {
|
|
34
|
+
updateTree(): void;
|
|
35
|
+
removeChild(component: Component): void;
|
|
36
|
+
}
|
|
37
|
+
declare abstract class BaseParent<T> extends Base<T> implements Parent {
|
|
38
|
+
/** @hidden */
|
|
39
|
+
private children;
|
|
40
|
+
abstract validateChildren(children: Component[]): void;
|
|
41
|
+
appendChildren: <CS extends Component[]>(...children: CS) => CS;
|
|
42
|
+
appendChild: <C extends Component>(child: C) => C;
|
|
43
|
+
removeChild: (component: Component) => void;
|
|
44
|
+
removeAllChildren: () => void;
|
|
45
|
+
/**
|
|
46
|
+
* Return all children components that messages need to be routed to
|
|
47
|
+
*/
|
|
48
|
+
getChildren: () => readonly Component[];
|
|
49
|
+
/**
|
|
50
|
+
* TODO: we can do this better, right now it broadcasts the message to all
|
|
51
|
+
* components of the tree
|
|
52
|
+
*
|
|
53
|
+
* @hidden
|
|
54
|
+
*/
|
|
55
|
+
routeMessage(idMap: IDMap, message: proto.ClientComponentMessage): void;
|
|
56
|
+
insertBefore(child: Component, beforeChild: Component): void;
|
|
57
|
+
}
|
|
58
|
+
interface Listenable<Map extends Record<string, (...args: any[]) => void>> {
|
|
59
|
+
addListener<T extends keyof Map>(type: T, listener: Map[T]): void;
|
|
60
|
+
removeListener<T extends keyof Map>(type: T, listener: Map[T]): void;
|
|
61
|
+
}
|
|
62
|
+
declare class EventEmitter<Map extends Record<string, (...args: any[]) => void>> implements Listenable<Map> {
|
|
63
|
+
private readonly listeners;
|
|
64
|
+
addListener: <T extends keyof Map>(type: T, listener: Map[T]) => void;
|
|
65
|
+
removeListener: <T extends keyof Map>(type: T, listener: Map[T]) => void;
|
|
66
|
+
emit: <T extends keyof Map>(type: T, ...args: Parameters<Map[T]>) => Promise<unknown>;
|
|
67
|
+
}
|
|
68
|
+
|
|
69
|
+
export { Base, BaseParent, type Component, EventEmitter, type Listenable, type Parent };
|
|
@@ -1,189 +1,11 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
var __defProp = Object.defineProperty;
|
|
3
|
-
var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
|
|
4
|
-
var __getOwnPropNames = Object.getOwnPropertyNames;
|
|
5
|
-
var __hasOwnProp = Object.prototype.hasOwnProperty;
|
|
6
|
-
var __export = (target, all) => {
|
|
7
|
-
for (var name in all)
|
|
8
|
-
__defProp(target, name, { get: all[name], enumerable: true });
|
|
9
|
-
};
|
|
10
|
-
var __copyProps = (to, from, except, desc) => {
|
|
11
|
-
if (from && typeof from === "object" || typeof from === "function") {
|
|
12
|
-
for (let key of __getOwnPropNames(from))
|
|
13
|
-
if (!__hasOwnProp.call(to, key) && key !== except)
|
|
14
|
-
__defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
|
|
15
|
-
}
|
|
16
|
-
return to;
|
|
17
|
-
};
|
|
18
|
-
var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
|
|
1
|
+
"use strict";Object.defineProperty(exports, "__esModule", {value: true});
|
|
19
2
|
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
/** @hidden */
|
|
30
|
-
parent = null;
|
|
31
|
-
/** @hidden */
|
|
32
|
-
defaultProps;
|
|
33
|
-
/** @hidden */
|
|
34
|
-
_props;
|
|
35
|
-
constructor(defaultProps, props) {
|
|
36
|
-
this.defaultProps = defaultProps;
|
|
37
|
-
this._props = Object.freeze({
|
|
38
|
-
...defaultProps,
|
|
39
|
-
...props
|
|
40
|
-
});
|
|
41
|
-
}
|
|
42
|
-
get props() {
|
|
43
|
-
return this._props;
|
|
44
|
-
}
|
|
45
|
-
set props(props) {
|
|
46
|
-
this.setProps(props);
|
|
47
|
-
}
|
|
48
|
-
setProps = (props) => {
|
|
49
|
-
this._props = Object.freeze({
|
|
50
|
-
...this.defaultProps,
|
|
51
|
-
...props
|
|
52
|
-
});
|
|
53
|
-
this.updateTree();
|
|
54
|
-
};
|
|
55
|
-
updateProps = (updates) => {
|
|
56
|
-
this._props = Object.freeze({
|
|
57
|
-
...this._props,
|
|
58
|
-
...updates
|
|
59
|
-
});
|
|
60
|
-
this.updateTree();
|
|
61
|
-
};
|
|
62
|
-
/** @hidden */
|
|
63
|
-
setParent(parent) {
|
|
64
|
-
if (this.parent && this.parent !== parent) {
|
|
65
|
-
this.parent.removeChild(this);
|
|
66
|
-
}
|
|
67
|
-
this.parent = parent;
|
|
68
|
-
}
|
|
69
|
-
/** @hidden */
|
|
70
|
-
updateTree() {
|
|
71
|
-
if (this.parent) this.parent.updateTree();
|
|
72
|
-
}
|
|
73
|
-
/** @hidden */
|
|
74
|
-
handleMessage(message) {
|
|
75
|
-
console.log("Component Received Message:", message);
|
|
76
|
-
}
|
|
77
|
-
routeMessage(_idMap, _message) {
|
|
78
|
-
}
|
|
79
|
-
};
|
|
80
|
-
var BaseParent = class extends Base {
|
|
81
|
-
/** @hidden */
|
|
82
|
-
children = [];
|
|
83
|
-
appendChildren = (...children) => {
|
|
84
|
-
for (const c of children) {
|
|
85
|
-
const newChildren = [...this.children.filter((ch) => ch !== c), c];
|
|
86
|
-
this.validateChildren(newChildren);
|
|
87
|
-
this.children = Object.freeze(newChildren);
|
|
88
|
-
c.setParent(this);
|
|
89
|
-
}
|
|
90
|
-
this.updateTree();
|
|
91
|
-
return children;
|
|
92
|
-
};
|
|
93
|
-
appendChild = (child) => {
|
|
94
|
-
this.appendChildren(child);
|
|
95
|
-
return child;
|
|
96
|
-
};
|
|
97
|
-
removeChild = (component) => {
|
|
98
|
-
const match = this.children.findIndex((c) => c === component);
|
|
99
|
-
if (match >= 0) {
|
|
100
|
-
const removingChild = this.children[match];
|
|
101
|
-
const newChildren = [
|
|
102
|
-
...this.children.slice(0, match),
|
|
103
|
-
...this.children.slice(match + 1)
|
|
104
|
-
];
|
|
105
|
-
this.validateChildren(newChildren);
|
|
106
|
-
this.children = Object.freeze(newChildren);
|
|
107
|
-
removingChild?.setParent(null);
|
|
108
|
-
this.updateTree();
|
|
109
|
-
}
|
|
110
|
-
};
|
|
111
|
-
removeAllChildren = () => {
|
|
112
|
-
this.children.map((c) => c.setParent(null));
|
|
113
|
-
this.children = Object.freeze([]);
|
|
114
|
-
this.updateTree();
|
|
115
|
-
};
|
|
116
|
-
/**
|
|
117
|
-
* Return all children components that messages need to be routed to
|
|
118
|
-
*/
|
|
119
|
-
getChildren = () => this.children;
|
|
120
|
-
/**
|
|
121
|
-
* TODO: we can do this better, right now it broadcasts the message to all
|
|
122
|
-
* components of the tree
|
|
123
|
-
*
|
|
124
|
-
* @hidden
|
|
125
|
-
*/
|
|
126
|
-
routeMessage(idMap, message) {
|
|
127
|
-
if (idMap.getId(this) === message.componentKey) {
|
|
128
|
-
this.handleMessage(message);
|
|
129
|
-
} else {
|
|
130
|
-
for (const c of this.children) {
|
|
131
|
-
if (idMap.getId(c) === message.componentKey) {
|
|
132
|
-
c.handleMessage(message);
|
|
133
|
-
} else {
|
|
134
|
-
c.routeMessage(idMap, message);
|
|
135
|
-
}
|
|
136
|
-
}
|
|
137
|
-
}
|
|
138
|
-
}
|
|
139
|
-
insertBefore(child, beforeChild) {
|
|
140
|
-
const filteredChildren = this.children.filter((c) => c !== child);
|
|
141
|
-
let match = filteredChildren.findIndex((c) => c === beforeChild);
|
|
142
|
-
console.log("match", match);
|
|
143
|
-
if (match === -1) {
|
|
144
|
-
match = filteredChildren.length;
|
|
145
|
-
}
|
|
146
|
-
const newChildren = [
|
|
147
|
-
...filteredChildren.slice(0, match),
|
|
148
|
-
child,
|
|
149
|
-
...filteredChildren.slice(match)
|
|
150
|
-
];
|
|
151
|
-
this.validateChildren(newChildren);
|
|
152
|
-
this.children = Object.freeze(newChildren);
|
|
153
|
-
child.setParent(this);
|
|
154
|
-
this.updateTree();
|
|
155
|
-
}
|
|
156
|
-
};
|
|
157
|
-
var EventEmitter = class {
|
|
158
|
-
listeners = /* @__PURE__ */ new Map();
|
|
159
|
-
addListener = (type, listener) => {
|
|
160
|
-
let set = this.listeners.get(type);
|
|
161
|
-
if (!set) {
|
|
162
|
-
set = /* @__PURE__ */ new Set();
|
|
163
|
-
this.listeners.set(type, set);
|
|
164
|
-
}
|
|
165
|
-
set.add(listener);
|
|
166
|
-
};
|
|
167
|
-
removeListener = (type, listener) => {
|
|
168
|
-
this.listeners.get(type)?.delete(listener);
|
|
169
|
-
};
|
|
170
|
-
emit = (type, ...args) => {
|
|
171
|
-
return Promise.all(
|
|
172
|
-
[...this.listeners.get(type) || []].map(
|
|
173
|
-
(l) => new Promise((resolve, reject) => {
|
|
174
|
-
try {
|
|
175
|
-
resolve(l(...args));
|
|
176
|
-
} catch (e) {
|
|
177
|
-
reject(e);
|
|
178
|
-
}
|
|
179
|
-
})
|
|
180
|
-
)
|
|
181
|
-
);
|
|
182
|
-
};
|
|
183
|
-
};
|
|
184
|
-
// Annotate the CommonJS export names for ESM import in node:
|
|
185
|
-
0 && (module.exports = {
|
|
186
|
-
Base,
|
|
187
|
-
BaseParent,
|
|
188
|
-
EventEmitter
|
|
189
|
-
});
|
|
3
|
+
|
|
4
|
+
|
|
5
|
+
var _chunkUBWCVW2Ujs = require('../../chunk-UBWCVW2U.js');
|
|
6
|
+
require('../../chunk-3RG5ZIWI.js');
|
|
7
|
+
|
|
8
|
+
|
|
9
|
+
|
|
10
|
+
|
|
11
|
+
exports.Base = _chunkUBWCVW2Ujs.Base; exports.BaseParent = _chunkUBWCVW2Ujs.BaseParent; exports.EventEmitter = _chunkUBWCVW2Ujs.EventEmitter;
|
|
@@ -1,5 +1,6 @@
|
|
|
1
|
-
import
|
|
2
|
-
import '
|
|
1
|
+
import * as proto from '@arcanejs/protocol';
|
|
2
|
+
import { IDMap } from '../util/index.mjs';
|
|
3
|
+
import { Base, Listenable } from './base.mjs';
|
|
3
4
|
|
|
4
5
|
type Events = {
|
|
5
6
|
click: () => void | Promise<void>;
|
|
@@ -22,9 +23,9 @@ declare class Button extends Base<InternalProps> implements Listenable<Events> {
|
|
|
22
23
|
setIcon: (icon: string | undefined | null) => this;
|
|
23
24
|
setMode: (mode: ButtonMode) => this;
|
|
24
25
|
/** @hidden */
|
|
25
|
-
getProtoInfo: (idMap: IDMap) => ButtonComponent;
|
|
26
|
+
getProtoInfo: (idMap: IDMap) => proto.ButtonComponent;
|
|
26
27
|
/** @hidden */
|
|
27
|
-
handleMessage: (message: ClientComponentMessage) => void;
|
|
28
|
+
handleMessage: (message: proto.ClientComponentMessage) => void;
|
|
28
29
|
}
|
|
29
30
|
|
|
30
31
|
export { Button, type ButtonMode, type Events, type InternalProps, type Props };
|
|
@@ -1,5 +1,6 @@
|
|
|
1
|
-
import
|
|
2
|
-
import '
|
|
1
|
+
import * as proto from '@arcanejs/protocol';
|
|
2
|
+
import { IDMap } from '../util/index.js';
|
|
3
|
+
import { Base, Listenable } from './base.js';
|
|
3
4
|
|
|
4
5
|
type Events = {
|
|
5
6
|
click: () => void | Promise<void>;
|
|
@@ -22,9 +23,9 @@ declare class Button extends Base<InternalProps> implements Listenable<Events> {
|
|
|
22
23
|
setIcon: (icon: string | undefined | null) => this;
|
|
23
24
|
setMode: (mode: ButtonMode) => this;
|
|
24
25
|
/** @hidden */
|
|
25
|
-
getProtoInfo: (idMap: IDMap) => ButtonComponent;
|
|
26
|
+
getProtoInfo: (idMap: IDMap) => proto.ButtonComponent;
|
|
26
27
|
/** @hidden */
|
|
27
|
-
handleMessage: (message: ClientComponentMessage) => void;
|
|
28
|
+
handleMessage: (message: proto.ClientComponentMessage) => void;
|
|
28
29
|
}
|
|
29
30
|
|
|
30
31
|
export { Button, type ButtonMode, type Events, type InternalProps, type Props };
|
|
@@ -1,168 +1,8 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
var __defProp = Object.defineProperty;
|
|
3
|
-
var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
|
|
4
|
-
var __getOwnPropNames = Object.getOwnPropertyNames;
|
|
5
|
-
var __hasOwnProp = Object.prototype.hasOwnProperty;
|
|
6
|
-
var __export = (target, all) => {
|
|
7
|
-
for (var name in all)
|
|
8
|
-
__defProp(target, name, { get: all[name], enumerable: true });
|
|
9
|
-
};
|
|
10
|
-
var __copyProps = (to, from, except, desc) => {
|
|
11
|
-
if (from && typeof from === "object" || typeof from === "function") {
|
|
12
|
-
for (let key of __getOwnPropNames(from))
|
|
13
|
-
if (!__hasOwnProp.call(to, key) && key !== except)
|
|
14
|
-
__defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
|
|
15
|
-
}
|
|
16
|
-
return to;
|
|
17
|
-
};
|
|
18
|
-
var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
|
|
1
|
+
"use strict";Object.defineProperty(exports, "__esModule", {value: true});
|
|
19
2
|
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
Button: () => Button
|
|
24
|
-
});
|
|
25
|
-
module.exports = __toCommonJS(button_exports);
|
|
3
|
+
var _chunkKVJU3EADjs = require('../../chunk-KVJU3EAD.js');
|
|
4
|
+
require('../../chunk-UBWCVW2U.js');
|
|
5
|
+
require('../../chunk-3RG5ZIWI.js');
|
|
26
6
|
|
|
27
|
-
// src/backend/components/base.ts
|
|
28
|
-
var Base = class {
|
|
29
|
-
/** @hidden */
|
|
30
|
-
parent = null;
|
|
31
|
-
/** @hidden */
|
|
32
|
-
defaultProps;
|
|
33
|
-
/** @hidden */
|
|
34
|
-
_props;
|
|
35
|
-
constructor(defaultProps, props) {
|
|
36
|
-
this.defaultProps = defaultProps;
|
|
37
|
-
this._props = Object.freeze({
|
|
38
|
-
...defaultProps,
|
|
39
|
-
...props
|
|
40
|
-
});
|
|
41
|
-
}
|
|
42
|
-
get props() {
|
|
43
|
-
return this._props;
|
|
44
|
-
}
|
|
45
|
-
set props(props) {
|
|
46
|
-
this.setProps(props);
|
|
47
|
-
}
|
|
48
|
-
setProps = (props) => {
|
|
49
|
-
this._props = Object.freeze({
|
|
50
|
-
...this.defaultProps,
|
|
51
|
-
...props
|
|
52
|
-
});
|
|
53
|
-
this.updateTree();
|
|
54
|
-
};
|
|
55
|
-
updateProps = (updates) => {
|
|
56
|
-
this._props = Object.freeze({
|
|
57
|
-
...this._props,
|
|
58
|
-
...updates
|
|
59
|
-
});
|
|
60
|
-
this.updateTree();
|
|
61
|
-
};
|
|
62
|
-
/** @hidden */
|
|
63
|
-
setParent(parent) {
|
|
64
|
-
if (this.parent && this.parent !== parent) {
|
|
65
|
-
this.parent.removeChild(this);
|
|
66
|
-
}
|
|
67
|
-
this.parent = parent;
|
|
68
|
-
}
|
|
69
|
-
/** @hidden */
|
|
70
|
-
updateTree() {
|
|
71
|
-
if (this.parent) this.parent.updateTree();
|
|
72
|
-
}
|
|
73
|
-
/** @hidden */
|
|
74
|
-
handleMessage(message) {
|
|
75
|
-
console.log("Component Received Message:", message);
|
|
76
|
-
}
|
|
77
|
-
routeMessage(_idMap, _message) {
|
|
78
|
-
}
|
|
79
|
-
};
|
|
80
|
-
var EventEmitter = class {
|
|
81
|
-
listeners = /* @__PURE__ */ new Map();
|
|
82
|
-
addListener = (type, listener) => {
|
|
83
|
-
let set = this.listeners.get(type);
|
|
84
|
-
if (!set) {
|
|
85
|
-
set = /* @__PURE__ */ new Set();
|
|
86
|
-
this.listeners.set(type, set);
|
|
87
|
-
}
|
|
88
|
-
set.add(listener);
|
|
89
|
-
};
|
|
90
|
-
removeListener = (type, listener) => {
|
|
91
|
-
this.listeners.get(type)?.delete(listener);
|
|
92
|
-
};
|
|
93
|
-
emit = (type, ...args) => {
|
|
94
|
-
return Promise.all(
|
|
95
|
-
[...this.listeners.get(type) || []].map(
|
|
96
|
-
(l) => new Promise((resolve, reject) => {
|
|
97
|
-
try {
|
|
98
|
-
resolve(l(...args));
|
|
99
|
-
} catch (e) {
|
|
100
|
-
reject(e);
|
|
101
|
-
}
|
|
102
|
-
})
|
|
103
|
-
)
|
|
104
|
-
);
|
|
105
|
-
};
|
|
106
|
-
};
|
|
107
7
|
|
|
108
|
-
|
|
109
|
-
var DEFAULT_PROPS = {
|
|
110
|
-
text: null,
|
|
111
|
-
icon: null,
|
|
112
|
-
mode: "normal",
|
|
113
|
-
error: null
|
|
114
|
-
};
|
|
115
|
-
var Button = class extends Base {
|
|
116
|
-
/** @hidden */
|
|
117
|
-
events = new EventEmitter();
|
|
118
|
-
constructor(props) {
|
|
119
|
-
super(DEFAULT_PROPS, props);
|
|
120
|
-
}
|
|
121
|
-
addListener = this.events.addListener;
|
|
122
|
-
removeListener = this.events.removeListener;
|
|
123
|
-
setText = (text) => {
|
|
124
|
-
this.updateProps({ text });
|
|
125
|
-
return this;
|
|
126
|
-
};
|
|
127
|
-
setIcon = (icon) => {
|
|
128
|
-
this.updateProps({ icon: icon ?? null });
|
|
129
|
-
return this;
|
|
130
|
-
};
|
|
131
|
-
setMode = (mode) => {
|
|
132
|
-
this.updateProps({
|
|
133
|
-
mode,
|
|
134
|
-
error: null
|
|
135
|
-
});
|
|
136
|
-
return this;
|
|
137
|
-
};
|
|
138
|
-
/** @hidden */
|
|
139
|
-
getProtoInfo = (idMap) => {
|
|
140
|
-
return {
|
|
141
|
-
component: "button",
|
|
142
|
-
key: idMap.getId(this),
|
|
143
|
-
text: this.props.text || "",
|
|
144
|
-
state: this.props.error ? { state: "error", error: this.props.error } : { state: this.props.mode },
|
|
145
|
-
icon: this.props.icon ?? void 0
|
|
146
|
-
};
|
|
147
|
-
};
|
|
148
|
-
/** @hidden */
|
|
149
|
-
handleMessage = (message) => {
|
|
150
|
-
if (message.component === "button") {
|
|
151
|
-
this.events.emit("click").then(() => {
|
|
152
|
-
if (this.props.error) {
|
|
153
|
-
this.updateProps({
|
|
154
|
-
error: null
|
|
155
|
-
});
|
|
156
|
-
}
|
|
157
|
-
}).catch((e) => {
|
|
158
|
-
this.updateProps({
|
|
159
|
-
error: `${e}`
|
|
160
|
-
});
|
|
161
|
-
});
|
|
162
|
-
}
|
|
163
|
-
};
|
|
164
|
-
};
|
|
165
|
-
// Annotate the CommonJS export names for ESM import in node:
|
|
166
|
-
0 && (module.exports = {
|
|
167
|
-
Button
|
|
168
|
-
});
|
|
8
|
+
exports.Button = _chunkKVJU3EADjs.Button;
|
|
@@ -1,11 +1,13 @@
|
|
|
1
|
-
import
|
|
1
|
+
import * as proto from '@arcanejs/protocol';
|
|
2
|
+
import { GroupComponentStyle } from '@arcanejs/protocol/styles';
|
|
3
|
+
import { IDMap } from '../util/index.mjs';
|
|
4
|
+
import { BaseParent, Listenable } from './base.mjs';
|
|
2
5
|
import { Button } from './button.mjs';
|
|
3
|
-
import '@arcanejs/diff';
|
|
4
6
|
|
|
5
|
-
type Label = (GroupComponent['labels'] & Array<unknown>)[number];
|
|
7
|
+
type Label = (proto.GroupComponent['labels'] & Array<unknown>)[number];
|
|
6
8
|
type GroupOptions = {
|
|
7
9
|
editableTitle?: boolean;
|
|
8
|
-
defaultCollapsibleState?: GroupComponent['defaultCollapsibleState'];
|
|
10
|
+
defaultCollapsibleState?: proto.GroupComponent['defaultCollapsibleState'];
|
|
9
11
|
};
|
|
10
12
|
type Events = {
|
|
11
13
|
'title-changed': (title: string) => void;
|
|
@@ -18,7 +20,7 @@ type Props = Partial<InternalProps>;
|
|
|
18
20
|
declare class GroupHeader extends BaseParent<Record<never, never>> {
|
|
19
21
|
validateChildren: () => void;
|
|
20
22
|
/** @hidden */
|
|
21
|
-
getProtoInfo: (idMap: IDMap) => GroupHeaderComponent;
|
|
23
|
+
getProtoInfo: (idMap: IDMap) => proto.GroupHeaderComponent;
|
|
22
24
|
}
|
|
23
25
|
/**
|
|
24
26
|
* A collection of components, grouped in either a row or column. Can contain
|
|
@@ -42,9 +44,9 @@ declare class Group extends BaseParent<InternalProps> implements Listenable<Even
|
|
|
42
44
|
removeHeaderChild: (child: Button) => void;
|
|
43
45
|
removeAllHeaderChildren: () => void;
|
|
44
46
|
/** @hidden */
|
|
45
|
-
getProtoInfo: (idMap: IDMap) => GroupComponent;
|
|
47
|
+
getProtoInfo: (idMap: IDMap) => proto.GroupComponent;
|
|
46
48
|
/** @hidden */
|
|
47
|
-
handleMessage: (message: ClientComponentMessage) => void;
|
|
49
|
+
handleMessage: (message: proto.ClientComponentMessage) => void;
|
|
48
50
|
}
|
|
49
51
|
|
|
50
52
|
export { type Events, Group, GroupHeader, type InternalProps, type Props };
|
|
@@ -1,11 +1,13 @@
|
|
|
1
|
-
import
|
|
1
|
+
import * as proto from '@arcanejs/protocol';
|
|
2
|
+
import { GroupComponentStyle } from '@arcanejs/protocol/styles';
|
|
3
|
+
import { IDMap } from '../util/index.js';
|
|
4
|
+
import { BaseParent, Listenable } from './base.js';
|
|
2
5
|
import { Button } from './button.js';
|
|
3
|
-
import '@arcanejs/diff';
|
|
4
6
|
|
|
5
|
-
type Label = (GroupComponent['labels'] & Array<unknown>)[number];
|
|
7
|
+
type Label = (proto.GroupComponent['labels'] & Array<unknown>)[number];
|
|
6
8
|
type GroupOptions = {
|
|
7
9
|
editableTitle?: boolean;
|
|
8
|
-
defaultCollapsibleState?: GroupComponent['defaultCollapsibleState'];
|
|
10
|
+
defaultCollapsibleState?: proto.GroupComponent['defaultCollapsibleState'];
|
|
9
11
|
};
|
|
10
12
|
type Events = {
|
|
11
13
|
'title-changed': (title: string) => void;
|
|
@@ -18,7 +20,7 @@ type Props = Partial<InternalProps>;
|
|
|
18
20
|
declare class GroupHeader extends BaseParent<Record<never, never>> {
|
|
19
21
|
validateChildren: () => void;
|
|
20
22
|
/** @hidden */
|
|
21
|
-
getProtoInfo: (idMap: IDMap) => GroupHeaderComponent;
|
|
23
|
+
getProtoInfo: (idMap: IDMap) => proto.GroupHeaderComponent;
|
|
22
24
|
}
|
|
23
25
|
/**
|
|
24
26
|
* A collection of components, grouped in either a row or column. Can contain
|
|
@@ -42,9 +44,9 @@ declare class Group extends BaseParent<InternalProps> implements Listenable<Even
|
|
|
42
44
|
removeHeaderChild: (child: Button) => void;
|
|
43
45
|
removeAllHeaderChildren: () => void;
|
|
44
46
|
/** @hidden */
|
|
45
|
-
getProtoInfo: (idMap: IDMap) => GroupComponent;
|
|
47
|
+
getProtoInfo: (idMap: IDMap) => proto.GroupComponent;
|
|
46
48
|
/** @hidden */
|
|
47
|
-
handleMessage: (message: ClientComponentMessage) => void;
|
|
49
|
+
handleMessage: (message: proto.ClientComponentMessage) => void;
|
|
48
50
|
}
|
|
49
51
|
|
|
50
52
|
export { type Events, Group, GroupHeader, type InternalProps, type Props };
|