@hkdigital/lib-sveltekit 0.1.5 → 0.1.6
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/README.md +127 -127
- package/dist/classes/data/IterableTree.js +243 -243
- package/dist/classes/data/Selector.js +190 -190
- package/dist/classes/data/index.js +2 -2
- package/dist/classes/index.js +3 -3
- package/dist/classes/promise/HkPromise.js +377 -377
- package/dist/classes/promise/index.js +1 -1
- package/dist/classes/stores/SubscribersCount.js +107 -107
- package/dist/classes/stores/index.js +1 -1
- package/dist/classes/streams/LogTransformStream.js +19 -19
- package/dist/classes/streams/ServerEventsStore.js +110 -110
- package/dist/classes/streams/TimeStampSource.js +26 -26
- package/dist/classes/streams/index.js +3 -3
- package/dist/classes/svelte/audio/AudioLoader.svelte.js +58 -58
- package/dist/classes/svelte/audio/AudioScene.svelte.js +282 -282
- package/dist/classes/svelte/audio/mocks.js +35 -35
- package/dist/classes/svelte/final-state-machine/FiniteStateMachine.svelte.js +133 -133
- package/dist/classes/svelte/final-state-machine/index.js +1 -1
- package/dist/classes/svelte/image/ImageLoader.svelte.js +47 -47
- package/dist/classes/svelte/image/ImageScene.svelte.js +253 -253
- package/dist/classes/svelte/image/ImageVariantsLoader.svelte.js +152 -152
- package/dist/classes/svelte/image/index.js +4 -4
- package/dist/classes/svelte/image/mocks.js +35 -35
- package/dist/classes/svelte/image/typedef.js +8 -8
- package/dist/classes/svelte/loading-state-machine/LoadingStateMachine.svelte.js +109 -109
- package/dist/classes/svelte/loading-state-machine/constants.js +16 -16
- package/dist/classes/svelte/loading-state-machine/index.js +3 -3
- package/dist/classes/svelte/network-loader/NetworkLoader.svelte.js +331 -331
- package/dist/classes/svelte/network-loader/constants.js +3 -3
- package/dist/classes/svelte/network-loader/index.js +3 -3
- package/dist/classes/svelte/network-loader/mocks.js +30 -30
- package/dist/classes/svelte/network-loader/typedef.js +8 -8
- package/dist/components/area/HkArea.svelte +49 -49
- package/dist/components/area/HkArea.svelte.d.ts +0 -14
- package/dist/components/area/HkGridArea.svelte +77 -77
- package/dist/components/area/HkGridArea.svelte.d.ts +0 -22
- package/dist/components/area/index.js +2 -2
- package/dist/components/boxes/game-box/GameBox.svelte +112 -112
- package/dist/components/boxes/game-box/GameBox.svelte.d.ts +0 -15
- package/dist/components/boxes/game-box/gamebox.util.js +83 -83
- package/dist/components/boxes/index.js +2 -2
- package/dist/components/boxes/virtual-viewport/VirtualViewport.svelte +199 -199
- package/dist/components/boxes/virtual-viewport/VirtualViewport.svelte.d.ts +0 -22
- package/dist/components/buttons/button/Button.svelte +75 -75
- package/dist/components/buttons/button/Button.svelte.d.ts +0 -21
- package/dist/components/buttons/button-text/TextButton.svelte +21 -21
- package/dist/components/buttons/button-text/TextButton.svelte.d.ts +0 -7
- package/dist/components/buttons/index.js +2 -2
- package/dist/components/hkdev/blocks/TextBlock.svelte +46 -46
- package/dist/components/hkdev/blocks/TextBlock.svelte.d.ts +0 -13
- package/dist/components/hkdev/buttons/CheckButton.svelte +62 -62
- package/dist/components/hkdev/buttons/CheckButton.svelte.d.ts +0 -18
- package/dist/components/icon/HkIcon.svelte +86 -86
- package/dist/components/icon/HkIcon.svelte.d.ts +0 -12
- package/dist/components/icon/HkTabIcon.svelte +116 -116
- package/dist/components/icon/HkTabIcon.svelte.d.ts +0 -21
- package/dist/components/icon/index.js +4 -4
- package/dist/components/icon/typedef.js +16 -16
- package/dist/components/image/ImageBox.svelte +208 -208
- package/dist/components/image/ImageBox.svelte.d.ts +0 -19
- package/dist/components/image/index.js +5 -5
- package/dist/components/image/typedef.js +32 -32
- package/dist/components/index.js +2 -2
- package/dist/components/inputs/index.js +1 -1
- package/dist/components/inputs/text-input/TestTextInput.svelte__ +102 -102
- package/dist/components/inputs/text-input/TextInput.svelte +226 -226
- package/dist/components/inputs/text-input/TextInput.svelte.d.ts +0 -28
- package/dist/components/inputs/text-input/TextInput.svelte___ +83 -83
- package/dist/components/inputs/text-input/assets/IconInvalid.svelte +14 -14
- package/dist/components/inputs/text-input/assets/IconValid.svelte +12 -12
- package/dist/components/layout/HkAppLayout.state.svelte.js +25 -25
- package/dist/components/layout/HkAppLayout.svelte +251 -251
- package/dist/components/layout/HkAppLayout.svelte.d.ts +0 -11
- package/dist/components/layout/HkGridLayers.svelte +82 -82
- package/dist/components/layout/HkGridLayers.svelte.d.ts +0 -23
- package/dist/components/layout/index.js +9 -9
- package/dist/components/panels/index.js +1 -1
- package/dist/components/panels/plain-panel/PlainPanel.svelte +33 -33
- package/dist/components/panels/plain-panel/PlainPanel.svelte.d.ts +0 -12
- package/dist/components/rows/index.js +3 -3
- package/dist/components/rows/panel-grid-row/PanelGridRow.svelte +104 -104
- package/dist/components/rows/panel-grid-row/PanelGridRow.svelte.d.ts +0 -14
- package/dist/components/rows/panel-row-2/PanelRow2.svelte +40 -40
- package/dist/components/rows/panel-row-2/PanelRow2.svelte.d.ts +0 -14
- package/dist/components/tab-bar/HkTabBar.state.svelte.js +149 -149
- package/dist/components/tab-bar/HkTabBar.svelte +74 -74
- package/dist/components/tab-bar/HkTabBar.svelte.d.ts +0 -18
- package/dist/components/tab-bar/HkTabBarSelector.state.svelte.js +93 -93
- package/dist/components/tab-bar/HkTabBarSelector.svelte +49 -49
- package/dist/components/tab-bar/HkTabBarSelector.svelte.d.ts +0 -19
- package/dist/components/tab-bar/index.js +17 -17
- package/dist/components/tab-bar/typedef.js +8 -8
- package/dist/components/widgets/compare-left-right/CompareLeftRight.svelte +179 -179
- package/dist/components/widgets/compare-left-right/CompareLeftRight.svelte.d.ts +0 -10
- package/dist/components/widgets/compare-left-right/index.js +1 -1
- package/dist/components/widgets/scale-control/index.js +1 -1
- package/dist/config/imagetools-config.js +189 -189
- package/dist/config/imagetools.d.ts +71 -71
- package/dist/config/typedef.js +8 -8
- package/dist/constants/errors/api.js +9 -9
- package/dist/constants/errors/generic.js +5 -5
- package/dist/constants/errors/index.js +3 -3
- package/dist/constants/errors/jwt.js +5 -5
- package/dist/constants/http/headers.js +6 -6
- package/dist/constants/http/index.js +2 -2
- package/dist/constants/http/methods.js +2 -2
- package/dist/constants/index.js +3 -3
- package/dist/constants/mime/application.js +5 -5
- package/dist/constants/mime/audio.js +13 -13
- package/dist/constants/mime/image.js +3 -3
- package/dist/constants/mime/index.js +4 -4
- package/dist/constants/mime/text.js +2 -2
- package/dist/constants/regexp/index.js +31 -31
- package/dist/constants/regexp/inspiratie.js__ +95 -95
- package/dist/constants/regexp/text.js +49 -49
- package/dist/constants/regexp/user.js +32 -32
- package/dist/constants/regexp/web.js +3 -3
- package/dist/constants/state-labels/input-states.js +11 -11
- package/dist/constants/state-labels/submit-states.js +4 -4
- package/dist/constants/time.js +28 -28
- package/dist/css/tw-prose.postcss__ +259 -259
- package/dist/css/utilities.postcss +43 -43
- package/dist/design/design-config.js +73 -73
- package/dist/design/tailwind-theme-extend.d.ts +4 -4
- package/dist/design/tailwind-theme-extend.js +151 -151
- package/dist/schemas/index.js +1 -1
- package/dist/schemas/validate-url.js +180 -180
- package/dist/server/index.js +1 -1
- package/dist/server/logger.js +94 -94
- package/dist/states/index.js +1 -1
- package/dist/states/navigation.svelte.js +55 -55
- package/dist/stores/index.js +1 -1
- package/dist/stores/theme.js +80 -80
- package/dist/themes/hkdev/components/blocks/text-block.postcss +40 -40
- package/dist/themes/hkdev/components/boxes/game-box.postcss +13 -13
- package/dist/themes/hkdev/components/buttons/button-text.postcss +34 -34
- package/dist/themes/hkdev/components/buttons/button.postcss +138 -138
- package/dist/themes/hkdev/components/buttons/skip-button.postcss +8 -8
- package/dist/themes/hkdev/components/inputs/text-input.postcss +108 -108
- package/dist/themes/hkdev/components/panels/plain-panel.postcss +46 -46
- package/dist/themes/hkdev/components/panels/speech-bubble.postcss +52 -52
- package/dist/themes/hkdev/components/rows/panel-grid-row.postcss +7 -7
- package/dist/themes/hkdev/components/rows/panel-row-2.postcss +9 -9
- package/dist/themes/hkdev/components.postcss +55 -55
- package/dist/themes/hkdev/debug.postcss +1 -1
- package/dist/themes/hkdev/global/layout.postcss +39 -39
- package/dist/themes/hkdev/global/on-colors.postcss +53 -53
- package/dist/themes/hkdev/global/text.postcss__ +34 -34
- package/dist/themes/hkdev/global/vars.postcss__ +7 -7
- package/dist/themes/hkdev/globals.postcss +11 -11
- package/dist/themes/hkdev/responsive.postcss +12 -12
- package/dist/themes/hkdev/theme-ext.js +15 -15
- package/dist/themes/hkdev/theme.js +227 -227
- package/dist/themes/index.js +1 -1
- package/dist/util/array/index.js +455 -455
- package/dist/util/compare/index.js +247 -247
- package/dist/util/css/css-vars.js +83 -83
- package/dist/util/css/index.js +1 -1
- package/dist/util/design-system/components/states.js +22 -22
- package/dist/util/design-system/css/clamp.d.ts +2 -2
- package/dist/util/design-system/css/clamp.js +66 -66
- package/dist/util/design-system/css/root-design-vars.js +100 -100
- package/dist/util/design-system/index.js +5 -5
- package/dist/util/design-system/layout/scaling.js +97 -97
- package/dist/util/design-system/tailwind.js +289 -289
- package/dist/util/expect/arrays.js +47 -47
- package/dist/util/expect/index.js +259 -259
- package/dist/util/expect/primitives.js +55 -55
- package/dist/util/expect/url.js +60 -60
- package/dist/util/function/index.js +218 -218
- package/dist/util/http/errors.js +97 -97
- package/dist/util/http/headers.js +45 -45
- package/dist/util/http/http-request.js +273 -273
- package/dist/util/http/index.js +22 -22
- package/dist/util/http/json-request.js +143 -143
- package/dist/util/http/mocks.js +65 -65
- package/dist/util/http/response.js +228 -228
- package/dist/util/http/url.js +52 -52
- package/dist/util/image/index.js +86 -86
- package/dist/util/index.js +2 -2
- package/dist/util/is/index.js +140 -140
- package/dist/util/iterate/index.js +234 -234
- package/dist/util/object/index.js +1361 -1361
- package/dist/util/singleton/index.js +97 -97
- package/dist/util/string/index.js +184 -184
- package/dist/util/svelte/index.js +2 -2
- package/dist/util/svelte/observe/index.js +49 -49
- package/dist/util/svelte/state-context/index.js +83 -83
- package/dist/util/svelte/wait/index.js +38 -38
- package/dist/util/sveltekit/index.js +1 -1
- package/dist/util/sveltekit/route-folders/index.js +82 -82
- package/dist/util/time/index.js +339 -339
- package/dist/valibot/date.js__ +10 -10
- package/dist/valibot/index.js +9 -9
- package/dist/valibot/url.js +95 -95
- package/dist/valibot/user.js +23 -23
- package/dist/zod/all.js +33 -33
- package/dist/zod/generic.js +11 -11
- package/dist/zod/javascript.js +32 -32
- package/dist/zod/user.js +16 -16
- package/dist/zod/web.js +52 -52
- package/package.json +99 -99
- package/dist/themes/hkdev/components/buttons/button.postcss__ +0 -40
- package/dist/themes/hkdev/components/buttons/button.postcss___ +0 -91
@@ -1,133 +1,133 @@
|
|
1
|
-
/**
|
2
|
-
* Initial code borrowed from:
|
3
|
-
*
|
4
|
-
* @see {@link https://runed.dev/docs/utilities/finite-state-machine}
|
5
|
-
*/
|
6
|
-
|
7
|
-
/**
|
8
|
-
* Check if the value is valid meta data
|
9
|
-
*
|
10
|
-
* @param {any} meta
|
11
|
-
*/
|
12
|
-
export function isLifecycleFnMeta(meta) {
|
13
|
-
return (
|
14
|
-
!!meta &&
|
15
|
-
typeof meta === 'object' &&
|
16
|
-
'to' in meta &&
|
17
|
-
'from' in meta &&
|
18
|
-
'event' in meta &&
|
19
|
-
'args' in meta
|
20
|
-
);
|
21
|
-
}
|
22
|
-
|
23
|
-
/**
|
24
|
-
* Defines a Finite State Machine
|
25
|
-
*/
|
26
|
-
export default class FiniteStateMachine {
|
27
|
-
#current = $state();
|
28
|
-
states;
|
29
|
-
#timeout = {};
|
30
|
-
|
31
|
-
/**
|
32
|
-
* Constructor
|
33
|
-
*
|
34
|
-
* @param {string} initial
|
35
|
-
* @param {{ [key: string]: { [key: string]: (string|((...args: any[])=>void)) } }} states
|
36
|
-
*/
|
37
|
-
constructor(initial, states) {
|
38
|
-
this.#current = initial;
|
39
|
-
this.states = states;
|
40
|
-
|
41
|
-
// synthetically trigger _enter for the initial state.
|
42
|
-
this.#dispatch('_enter', {
|
43
|
-
from: null,
|
44
|
-
to: initial,
|
45
|
-
event: null,
|
46
|
-
args: []
|
47
|
-
});
|
48
|
-
}
|
49
|
-
|
50
|
-
/**
|
51
|
-
* Transition to new state
|
52
|
-
*
|
53
|
-
* @param {string} newState
|
54
|
-
* @param {string} event
|
55
|
-
* @param {any[]} [args]
|
56
|
-
*/
|
57
|
-
#transition(newState, event, args) {
|
58
|
-
const metadata = { from: this.#current, to: newState, event, args };
|
59
|
-
this.#dispatch('_exit', metadata);
|
60
|
-
this.#current = newState;
|
61
|
-
this.#dispatch('_enter', metadata);
|
62
|
-
}
|
63
|
-
|
64
|
-
/**
|
65
|
-
* Dispatch an event
|
66
|
-
*
|
67
|
-
* @param {string} event
|
68
|
-
* @param {any[]} args
|
69
|
-
*/
|
70
|
-
#dispatch(event, ...args) {
|
71
|
-
const action =
|
72
|
-
this.states[this.#current]?.[event] ?? this.states['*']?.[event];
|
73
|
-
if (action instanceof Function) {
|
74
|
-
if (event === '_enter' || event === '_exit') {
|
75
|
-
if (isLifecycleFnMeta(args[0])) {
|
76
|
-
action(args[0]);
|
77
|
-
} else {
|
78
|
-
console.warn(
|
79
|
-
'Invalid metadata passed to lifecycle function of the FSM.'
|
80
|
-
);
|
81
|
-
}
|
82
|
-
} else {
|
83
|
-
return action(...args);
|
84
|
-
}
|
85
|
-
} else if (typeof action === 'string') {
|
86
|
-
return action;
|
87
|
-
} else if (event !== '_enter' && event !== '_exit') {
|
88
|
-
console.warn(
|
89
|
-
'No action defined for event',
|
90
|
-
event,
|
91
|
-
'in state',
|
92
|
-
this.#current
|
93
|
-
);
|
94
|
-
}
|
95
|
-
}
|
96
|
-
/**
|
97
|
-
* Triggers a new event and returns the new state.
|
98
|
-
*
|
99
|
-
* @param {string} event
|
100
|
-
* @param {any[]} args
|
101
|
-
*/
|
102
|
-
send(event, ...args) {
|
103
|
-
const newState = this.#dispatch(event, ...args);
|
104
|
-
if (newState && newState !== this.#current) {
|
105
|
-
this.#transition(newState, event, args);
|
106
|
-
}
|
107
|
-
|
108
|
-
return this.#current;
|
109
|
-
}
|
110
|
-
/**
|
111
|
-
* Debounces the triggering of an event.
|
112
|
-
*
|
113
|
-
* @param {number} wait
|
114
|
-
* @param {string} event
|
115
|
-
* @param {any[]} args
|
116
|
-
*/
|
117
|
-
async debounce(wait = 500, event, ...args) {
|
118
|
-
if (this.#timeout[event]) {
|
119
|
-
clearTimeout(this.#timeout[event]);
|
120
|
-
}
|
121
|
-
return new Promise((resolve) => {
|
122
|
-
this.#timeout[event] = setTimeout(() => {
|
123
|
-
delete this.#timeout[event];
|
124
|
-
resolve(this.send(event, ...args));
|
125
|
-
}, wait);
|
126
|
-
});
|
127
|
-
}
|
128
|
-
|
129
|
-
/** The current state. */
|
130
|
-
get current() {
|
131
|
-
return this.#current;
|
132
|
-
}
|
133
|
-
}
|
1
|
+
/**
|
2
|
+
* Initial code borrowed from:
|
3
|
+
*
|
4
|
+
* @see {@link https://runed.dev/docs/utilities/finite-state-machine}
|
5
|
+
*/
|
6
|
+
|
7
|
+
/**
|
8
|
+
* Check if the value is valid meta data
|
9
|
+
*
|
10
|
+
* @param {any} meta
|
11
|
+
*/
|
12
|
+
export function isLifecycleFnMeta(meta) {
|
13
|
+
return (
|
14
|
+
!!meta &&
|
15
|
+
typeof meta === 'object' &&
|
16
|
+
'to' in meta &&
|
17
|
+
'from' in meta &&
|
18
|
+
'event' in meta &&
|
19
|
+
'args' in meta
|
20
|
+
);
|
21
|
+
}
|
22
|
+
|
23
|
+
/**
|
24
|
+
* Defines a Finite State Machine
|
25
|
+
*/
|
26
|
+
export default class FiniteStateMachine {
|
27
|
+
#current = $state();
|
28
|
+
states;
|
29
|
+
#timeout = {};
|
30
|
+
|
31
|
+
/**
|
32
|
+
* Constructor
|
33
|
+
*
|
34
|
+
* @param {string} initial
|
35
|
+
* @param {{ [key: string]: { [key: string]: (string|((...args: any[])=>void)) } }} states
|
36
|
+
*/
|
37
|
+
constructor(initial, states) {
|
38
|
+
this.#current = initial;
|
39
|
+
this.states = states;
|
40
|
+
|
41
|
+
// synthetically trigger _enter for the initial state.
|
42
|
+
this.#dispatch('_enter', {
|
43
|
+
from: null,
|
44
|
+
to: initial,
|
45
|
+
event: null,
|
46
|
+
args: []
|
47
|
+
});
|
48
|
+
}
|
49
|
+
|
50
|
+
/**
|
51
|
+
* Transition to new state
|
52
|
+
*
|
53
|
+
* @param {string} newState
|
54
|
+
* @param {string} event
|
55
|
+
* @param {any[]} [args]
|
56
|
+
*/
|
57
|
+
#transition(newState, event, args) {
|
58
|
+
const metadata = { from: this.#current, to: newState, event, args };
|
59
|
+
this.#dispatch('_exit', metadata);
|
60
|
+
this.#current = newState;
|
61
|
+
this.#dispatch('_enter', metadata);
|
62
|
+
}
|
63
|
+
|
64
|
+
/**
|
65
|
+
* Dispatch an event
|
66
|
+
*
|
67
|
+
* @param {string} event
|
68
|
+
* @param {any[]} args
|
69
|
+
*/
|
70
|
+
#dispatch(event, ...args) {
|
71
|
+
const action =
|
72
|
+
this.states[this.#current]?.[event] ?? this.states['*']?.[event];
|
73
|
+
if (action instanceof Function) {
|
74
|
+
if (event === '_enter' || event === '_exit') {
|
75
|
+
if (isLifecycleFnMeta(args[0])) {
|
76
|
+
action(args[0]);
|
77
|
+
} else {
|
78
|
+
console.warn(
|
79
|
+
'Invalid metadata passed to lifecycle function of the FSM.'
|
80
|
+
);
|
81
|
+
}
|
82
|
+
} else {
|
83
|
+
return action(...args);
|
84
|
+
}
|
85
|
+
} else if (typeof action === 'string') {
|
86
|
+
return action;
|
87
|
+
} else if (event !== '_enter' && event !== '_exit') {
|
88
|
+
console.warn(
|
89
|
+
'No action defined for event',
|
90
|
+
event,
|
91
|
+
'in state',
|
92
|
+
this.#current
|
93
|
+
);
|
94
|
+
}
|
95
|
+
}
|
96
|
+
/**
|
97
|
+
* Triggers a new event and returns the new state.
|
98
|
+
*
|
99
|
+
* @param {string} event
|
100
|
+
* @param {any[]} args
|
101
|
+
*/
|
102
|
+
send(event, ...args) {
|
103
|
+
const newState = this.#dispatch(event, ...args);
|
104
|
+
if (newState && newState !== this.#current) {
|
105
|
+
this.#transition(newState, event, args);
|
106
|
+
}
|
107
|
+
|
108
|
+
return this.#current;
|
109
|
+
}
|
110
|
+
/**
|
111
|
+
* Debounces the triggering of an event.
|
112
|
+
*
|
113
|
+
* @param {number} wait
|
114
|
+
* @param {string} event
|
115
|
+
* @param {any[]} args
|
116
|
+
*/
|
117
|
+
async debounce(wait = 500, event, ...args) {
|
118
|
+
if (this.#timeout[event]) {
|
119
|
+
clearTimeout(this.#timeout[event]);
|
120
|
+
}
|
121
|
+
return new Promise((resolve) => {
|
122
|
+
this.#timeout[event] = setTimeout(() => {
|
123
|
+
delete this.#timeout[event];
|
124
|
+
resolve(this.send(event, ...args));
|
125
|
+
}, wait);
|
126
|
+
});
|
127
|
+
}
|
128
|
+
|
129
|
+
/** The current state. */
|
130
|
+
get current() {
|
131
|
+
return this.#current;
|
132
|
+
}
|
133
|
+
}
|
@@ -1 +1 @@
|
|
1
|
-
export { default as FiniteStateMachine } from './FiniteStateMachine.svelte';
|
1
|
+
export { default as FiniteStateMachine } from './FiniteStateMachine.svelte';
|
@@ -1,47 +1,47 @@
|
|
1
|
-
/** @typedef {import('./typedef.js').ImageMeta} ImageMeta */
|
2
|
-
|
3
|
-
import { toSingleImageMeta } from '../../../util/image/index.js';
|
4
|
-
|
5
|
-
import {
|
6
|
-
NetworkLoader
|
7
|
-
// ERROR_NOT_LOADED
|
8
|
-
// ERROR_TRANSFERRED
|
9
|
-
} from '../network-loader/index.js';
|
10
|
-
|
11
|
-
/**
|
12
|
-
* ImageLoader instance
|
13
|
-
* - Loads image data from network
|
14
|
-
* - The loading process can be monitored
|
15
|
-
*/
|
16
|
-
export default class ImageLoader extends NetworkLoader {
|
17
|
-
/** @type {ImageMeta} */
|
18
|
-
#imageMeta;
|
19
|
-
|
20
|
-
/**
|
21
|
-
* @param {object} _
|
22
|
-
* @param {ImageMeta|ImageMeta[]} _.imageMeta
|
23
|
-
*/
|
24
|
-
constructor({ imageMeta }) {
|
25
|
-
imageMeta = toSingleImageMeta(imageMeta);
|
26
|
-
|
27
|
-
super({ url: imageMeta.src });
|
28
|
-
|
29
|
-
this.#imageMeta = imageMeta;
|
30
|
-
}
|
31
|
-
|
32
|
-
get imageMeta() {
|
33
|
-
return this.#imageMeta;
|
34
|
-
}
|
35
|
-
|
36
|
-
get url() {
|
37
|
-
return this._url;
|
38
|
-
}
|
39
|
-
|
40
|
-
// /**
|
41
|
-
// * Get object URL that can be used as src parameter of an HTML image
|
42
|
-
// *
|
43
|
-
// * @note the objectURL should be revoked when no longer used
|
44
|
-
// */
|
45
|
-
// getObjectURL() {}
|
46
|
-
//
|
47
|
-
} // end class
|
1
|
+
/** @typedef {import('./typedef.js').ImageMeta} ImageMeta */
|
2
|
+
|
3
|
+
import { toSingleImageMeta } from '../../../util/image/index.js';
|
4
|
+
|
5
|
+
import {
|
6
|
+
NetworkLoader
|
7
|
+
// ERROR_NOT_LOADED
|
8
|
+
// ERROR_TRANSFERRED
|
9
|
+
} from '../network-loader/index.js';
|
10
|
+
|
11
|
+
/**
|
12
|
+
* ImageLoader instance
|
13
|
+
* - Loads image data from network
|
14
|
+
* - The loading process can be monitored
|
15
|
+
*/
|
16
|
+
export default class ImageLoader extends NetworkLoader {
|
17
|
+
/** @type {ImageMeta} */
|
18
|
+
#imageMeta;
|
19
|
+
|
20
|
+
/**
|
21
|
+
* @param {object} _
|
22
|
+
* @param {ImageMeta|ImageMeta[]} _.imageMeta
|
23
|
+
*/
|
24
|
+
constructor({ imageMeta }) {
|
25
|
+
imageMeta = toSingleImageMeta(imageMeta);
|
26
|
+
|
27
|
+
super({ url: imageMeta.src });
|
28
|
+
|
29
|
+
this.#imageMeta = imageMeta;
|
30
|
+
}
|
31
|
+
|
32
|
+
get imageMeta() {
|
33
|
+
return this.#imageMeta;
|
34
|
+
}
|
35
|
+
|
36
|
+
get url() {
|
37
|
+
return this._url;
|
38
|
+
}
|
39
|
+
|
40
|
+
// /**
|
41
|
+
// * Get object URL that can be used as src parameter of an HTML image
|
42
|
+
// *
|
43
|
+
// * @note the objectURL should be revoked when no longer used
|
44
|
+
// */
|
45
|
+
// getObjectURL() {}
|
46
|
+
//
|
47
|
+
} // end class
|