@esportsplus/reactivity 0.17.2 → 0.18.0
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/build/reactive/array.d.ts +3 -0
- package/build/reactive/array.js +18 -0
- package/package.json +2 -2
- package/src/reactive/array.ts +22 -0
|
@@ -33,7 +33,10 @@ type Listeners = Record<string, (Listener<any> | null)[]>;
|
|
|
33
33
|
declare class ReactiveArray<T> extends Array<T> {
|
|
34
34
|
[REACTIVE_ARRAY]: boolean;
|
|
35
35
|
listeners: Listeners;
|
|
36
|
+
trigger: import("../system.js").Signal<boolean>;
|
|
36
37
|
constructor(...items: T[]);
|
|
38
|
+
get length(): number;
|
|
39
|
+
set length(n: number);
|
|
37
40
|
clear(): void;
|
|
38
41
|
dispatch<K extends keyof Events<T>, V>(event: K, value?: V): void;
|
|
39
42
|
dispose(): void;
|
package/build/reactive/array.js
CHANGED
|
@@ -1,14 +1,25 @@
|
|
|
1
1
|
import { REACTIVE_ARRAY } from '../constants.js';
|
|
2
|
+
import { read, set, signal } from '../system.js';
|
|
2
3
|
import { isReactiveObject } from './object.js';
|
|
3
4
|
class ReactiveArray extends Array {
|
|
4
5
|
[REACTIVE_ARRAY] = true;
|
|
5
6
|
listeners = {};
|
|
7
|
+
trigger = signal(false);
|
|
6
8
|
constructor(...items) {
|
|
7
9
|
super(...items);
|
|
8
10
|
}
|
|
11
|
+
get length() {
|
|
12
|
+
read(this.trigger);
|
|
13
|
+
return super.length;
|
|
14
|
+
}
|
|
15
|
+
set length(n) {
|
|
16
|
+
super.length = n;
|
|
17
|
+
set(this.trigger, !this.trigger.value);
|
|
18
|
+
}
|
|
9
19
|
clear() {
|
|
10
20
|
this.dispose();
|
|
11
21
|
this.dispatch('clear');
|
|
22
|
+
set(this.trigger, !this.trigger.value);
|
|
12
23
|
}
|
|
13
24
|
dispatch(event, value) {
|
|
14
25
|
let listeners = this.listeners[event];
|
|
@@ -69,17 +80,20 @@ class ReactiveArray extends Array {
|
|
|
69
80
|
item.dispose();
|
|
70
81
|
}
|
|
71
82
|
this.dispatch('pop', { item });
|
|
83
|
+
set(this.trigger, !this.trigger.value);
|
|
72
84
|
}
|
|
73
85
|
return item;
|
|
74
86
|
}
|
|
75
87
|
push(...items) {
|
|
76
88
|
let length = super.push(...items);
|
|
77
89
|
this.dispatch('push', { items });
|
|
90
|
+
set(this.trigger, !this.trigger.value);
|
|
78
91
|
return length;
|
|
79
92
|
}
|
|
80
93
|
reverse() {
|
|
81
94
|
super.reverse();
|
|
82
95
|
this.dispatch('reverse');
|
|
96
|
+
set(this.trigger, !this.trigger.value);
|
|
83
97
|
return this;
|
|
84
98
|
}
|
|
85
99
|
shift() {
|
|
@@ -89,12 +103,14 @@ class ReactiveArray extends Array {
|
|
|
89
103
|
item.dispose();
|
|
90
104
|
}
|
|
91
105
|
this.dispatch('shift', { item });
|
|
106
|
+
set(this.trigger, !this.trigger.value);
|
|
92
107
|
}
|
|
93
108
|
return item;
|
|
94
109
|
}
|
|
95
110
|
sort(fn) {
|
|
96
111
|
super.sort(fn);
|
|
97
112
|
this.dispatch('sort');
|
|
113
|
+
set(this.trigger, !this.trigger.value);
|
|
98
114
|
return this;
|
|
99
115
|
}
|
|
100
116
|
splice(start, deleteCount = this.length, ...items) {
|
|
@@ -107,12 +123,14 @@ class ReactiveArray extends Array {
|
|
|
107
123
|
}
|
|
108
124
|
}
|
|
109
125
|
this.dispatch('splice', { deleteCount, items, start });
|
|
126
|
+
set(this.trigger, !this.trigger.value);
|
|
110
127
|
}
|
|
111
128
|
return removed;
|
|
112
129
|
}
|
|
113
130
|
unshift(...items) {
|
|
114
131
|
let length = super.unshift(...items);
|
|
115
132
|
this.dispatch('unshift', { items });
|
|
133
|
+
set(this.trigger, !this.trigger.value);
|
|
116
134
|
return length;
|
|
117
135
|
}
|
|
118
136
|
}
|
package/package.json
CHANGED
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
"author": "ICJR",
|
|
3
3
|
"dependencies": {
|
|
4
4
|
"@esportsplus/custom-function": "^0.0.13",
|
|
5
|
-
"@esportsplus/utilities": "^0.22.
|
|
5
|
+
"@esportsplus/utilities": "^0.22.2"
|
|
6
6
|
},
|
|
7
7
|
"devDependencies": {
|
|
8
8
|
"@esportsplus/typescript": "^0.9.2"
|
|
@@ -12,7 +12,7 @@
|
|
|
12
12
|
"private": false,
|
|
13
13
|
"type": "module",
|
|
14
14
|
"types": "build/index.d.ts",
|
|
15
|
-
"version": "0.
|
|
15
|
+
"version": "0.18.0",
|
|
16
16
|
"scripts": {
|
|
17
17
|
"build": "tsc && tsc-alias",
|
|
18
18
|
"-": "-"
|
package/src/reactive/array.ts
CHANGED
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
import { REACTIVE_ARRAY } from '~/constants';
|
|
2
|
+
import { read, set, signal } from '~/system';
|
|
2
3
|
import { isReactiveObject } from './object';
|
|
3
4
|
|
|
4
5
|
|
|
@@ -40,6 +41,7 @@ type Listeners = Record<string, (Listener<any> | null)[]>;
|
|
|
40
41
|
class ReactiveArray<T> extends Array<T> {
|
|
41
42
|
[REACTIVE_ARRAY] = true;
|
|
42
43
|
listeners: Listeners = {};
|
|
44
|
+
trigger = signal(false);
|
|
43
45
|
|
|
44
46
|
|
|
45
47
|
constructor(...items: T[]) {
|
|
@@ -47,9 +49,22 @@ class ReactiveArray<T> extends Array<T> {
|
|
|
47
49
|
}
|
|
48
50
|
|
|
49
51
|
|
|
52
|
+
get length() {
|
|
53
|
+
read(this.trigger);
|
|
54
|
+
|
|
55
|
+
return super.length;
|
|
56
|
+
}
|
|
57
|
+
|
|
58
|
+
set length(n: number) {
|
|
59
|
+
super.length = n;
|
|
60
|
+
set(this.trigger, !this.trigger.value);
|
|
61
|
+
}
|
|
62
|
+
|
|
63
|
+
|
|
50
64
|
clear() {
|
|
51
65
|
this.dispose();
|
|
52
66
|
this.dispatch('clear');
|
|
67
|
+
set(this.trigger, !this.trigger.value);
|
|
53
68
|
}
|
|
54
69
|
|
|
55
70
|
dispatch<K extends keyof Events<T>, V>(event: K, value?: V) {
|
|
@@ -126,6 +141,7 @@ class ReactiveArray<T> extends Array<T> {
|
|
|
126
141
|
item.dispose();
|
|
127
142
|
}
|
|
128
143
|
this.dispatch('pop', { item });
|
|
144
|
+
set(this.trigger, !this.trigger.value);
|
|
129
145
|
}
|
|
130
146
|
|
|
131
147
|
return item;
|
|
@@ -135,6 +151,7 @@ class ReactiveArray<T> extends Array<T> {
|
|
|
135
151
|
let length = super.push(...items);
|
|
136
152
|
|
|
137
153
|
this.dispatch('push', { items });
|
|
154
|
+
set(this.trigger, !this.trigger.value);
|
|
138
155
|
|
|
139
156
|
return length;
|
|
140
157
|
}
|
|
@@ -142,6 +159,7 @@ class ReactiveArray<T> extends Array<T> {
|
|
|
142
159
|
reverse() {
|
|
143
160
|
super.reverse();
|
|
144
161
|
this.dispatch('reverse');
|
|
162
|
+
set(this.trigger, !this.trigger.value);
|
|
145
163
|
|
|
146
164
|
return this;
|
|
147
165
|
}
|
|
@@ -154,6 +172,7 @@ class ReactiveArray<T> extends Array<T> {
|
|
|
154
172
|
item.dispose();
|
|
155
173
|
}
|
|
156
174
|
this.dispatch('shift', { item });
|
|
175
|
+
set(this.trigger, !this.trigger.value);
|
|
157
176
|
}
|
|
158
177
|
|
|
159
178
|
return item;
|
|
@@ -162,6 +181,7 @@ class ReactiveArray<T> extends Array<T> {
|
|
|
162
181
|
sort(fn: (a: T, b: T) => number) {
|
|
163
182
|
super.sort(fn);
|
|
164
183
|
this.dispatch('sort');
|
|
184
|
+
set(this.trigger, !this.trigger.value);
|
|
165
185
|
|
|
166
186
|
return this;
|
|
167
187
|
}
|
|
@@ -179,6 +199,7 @@ class ReactiveArray<T> extends Array<T> {
|
|
|
179
199
|
}
|
|
180
200
|
|
|
181
201
|
this.dispatch('splice', { deleteCount, items, start });
|
|
202
|
+
set(this.trigger, !this.trigger.value);
|
|
182
203
|
}
|
|
183
204
|
|
|
184
205
|
return removed;
|
|
@@ -188,6 +209,7 @@ class ReactiveArray<T> extends Array<T> {
|
|
|
188
209
|
let length = super.unshift(...items);
|
|
189
210
|
|
|
190
211
|
this.dispatch('unshift', { items });
|
|
212
|
+
set(this.trigger, !this.trigger.value);
|
|
191
213
|
|
|
192
214
|
return length;
|
|
193
215
|
}
|