@rb-games/core 0.1.2 → 0.1.4
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/{chunk-DOHQE2YZ.js → chunk-C45KDREE.js} +46 -50
- package/dist/chunk-C45KDREE.js.map +1 -0
- package/dist/chunk-JHN6RF66.js +1580 -0
- package/dist/chunk-JHN6RF66.js.map +1 -0
- package/dist/chunk-NAQG7TMS.js +5517 -0
- package/dist/chunk-NAQG7TMS.js.map +1 -0
- package/dist/{chunk-RAEOBW6E.js → chunk-P4GCINNA.js} +3 -3
- package/dist/{chunk-RAEOBW6E.js.map → chunk-P4GCINNA.js.map} +1 -1
- package/dist/{chunk-KOHCRCV3.js → chunk-XHUPUPPW.js} +12 -12
- package/dist/chunk-XHUPUPPW.js.map +1 -0
- package/dist/engine/index.js +5 -6
- package/dist/engine/index.js.map +1 -1
- package/dist/helpers/index.js +12 -9
- package/dist/helpers/index.js.map +1 -1
- package/dist/i18n/index.js +2 -2
- package/dist/particle/index.js +109 -476
- package/dist/particle/index.js.map +1 -1
- package/dist/plugins/index.js +163 -205
- package/dist/plugins/index.js.map +1 -1
- package/dist/state-machine/index.js +12 -12
- package/dist/state-machine/index.js.map +1 -1
- package/dist/store/index.js +3 -4
- package/dist/store/index.js.map +1 -1
- package/dist/ui/components/Skinable.d.ts.map +1 -1
- package/dist/ui/index.js +170 -201
- package/dist/ui/index.js.map +1 -1
- package/dist/utils/index.js +3 -2
- package/dist/vite/index.js +5 -3
- package/dist/vite/index.js.map +1 -1
- package/package.json +1 -1
- package/dist/chunk-DOHQE2YZ.js.map +0 -1
- package/dist/chunk-KOHCRCV3.js.map +0 -1
package/dist/ui/index.js
CHANGED
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
import { Align, Flow } from '../chunk-FOZO6TLY.js';
|
|
2
2
|
import { getNestedValue } from '../chunk-5BLUF2HG.js';
|
|
3
|
+
import { require_lodash } from '../chunk-NAQG7TMS.js';
|
|
3
4
|
import { __commonJS, __toESM } from '../chunk-G3PMV62Z.js';
|
|
4
|
-
import { Rectangle, Color, Texture, Sprite, Graphics, Container, Text,
|
|
5
|
-
import { merge } from 'lodash';
|
|
5
|
+
import { Rectangle, Color, Texture, Sprite, Graphics, Container, Text, Assets, ColorMatrixFilter } from 'pixi.js';
|
|
6
6
|
|
|
7
7
|
// ../../node_modules/eventemitter3/index.js
|
|
8
8
|
var require_eventemitter3 = __commonJS({
|
|
@@ -170,34 +170,25 @@ var import_index = __toESM(require_eventemitter3(), 1);
|
|
|
170
170
|
|
|
171
171
|
// ui/behaviors/ButtonBehavior.ts
|
|
172
172
|
var ButtonBehavior = class _ButtonBehavior extends import_index.default {
|
|
173
|
-
_view = null;
|
|
174
|
-
_enabled = true;
|
|
175
|
-
_isPressed = false;
|
|
176
|
-
_isHolding = false;
|
|
177
|
-
_pointerDownOnThis = false;
|
|
178
|
-
_isOver = false;
|
|
179
|
-
// 👈 isOver added
|
|
180
|
-
_holdTimer = null;
|
|
181
|
-
_holdInterval = null;
|
|
182
|
-
_holdDelay;
|
|
183
|
-
_holdIntervalTime;
|
|
184
|
-
_cursor = "pointer";
|
|
185
|
-
// Toggle properties
|
|
186
|
-
_isToggle = false;
|
|
187
|
-
_selected = false;
|
|
188
|
-
_allowHoldWhenToggle = false;
|
|
189
|
-
_holdMode;
|
|
190
|
-
// Track if events are bound to current view
|
|
191
|
-
_eventsBound = false;
|
|
192
|
-
// Static factory methods
|
|
193
|
-
static withView(view, options = {}) {
|
|
194
|
-
const button = new _ButtonBehavior(options);
|
|
195
|
-
button.attachView(view);
|
|
196
|
-
return button;
|
|
197
|
-
}
|
|
198
173
|
// Method overloads - now only takes options
|
|
199
174
|
constructor(options = {}) {
|
|
200
175
|
super();
|
|
176
|
+
this._view = null;
|
|
177
|
+
this._enabled = true;
|
|
178
|
+
this._isPressed = false;
|
|
179
|
+
this._isHolding = false;
|
|
180
|
+
this._pointerDownOnThis = false;
|
|
181
|
+
this._isOver = false;
|
|
182
|
+
// 👈 isOver added
|
|
183
|
+
this._holdTimer = null;
|
|
184
|
+
this._holdInterval = null;
|
|
185
|
+
this._cursor = "pointer";
|
|
186
|
+
// Toggle properties
|
|
187
|
+
this._isToggle = false;
|
|
188
|
+
this._selected = false;
|
|
189
|
+
this._allowHoldWhenToggle = false;
|
|
190
|
+
// Track if events are bound to current view
|
|
191
|
+
this._eventsBound = false;
|
|
201
192
|
this._holdDelay = options.holdDelay || 500;
|
|
202
193
|
this._holdIntervalTime = options.holdInterval || 100;
|
|
203
194
|
this._holdMode = options.holdMode ?? "none";
|
|
@@ -209,6 +200,12 @@ var ButtonBehavior = class _ButtonBehavior extends import_index.default {
|
|
|
209
200
|
this.attachView(options.view);
|
|
210
201
|
}
|
|
211
202
|
}
|
|
203
|
+
// Static factory methods
|
|
204
|
+
static withView(view, options = {}) {
|
|
205
|
+
const button = new _ButtonBehavior(options);
|
|
206
|
+
button.attachView(view);
|
|
207
|
+
return button;
|
|
208
|
+
}
|
|
212
209
|
// View Management Methods
|
|
213
210
|
attachView(view) {
|
|
214
211
|
if (this._view === view) return;
|
|
@@ -553,45 +550,26 @@ var ButtonBehavior = class _ButtonBehavior extends import_index.default {
|
|
|
553
550
|
}
|
|
554
551
|
};
|
|
555
552
|
var ScrollbarBehavior = class _ScrollbarBehavior extends import_index.default {
|
|
556
|
-
_trackView = null;
|
|
557
|
-
_knobView = null;
|
|
558
|
-
_enabled = true;
|
|
559
|
-
_isDragging = false;
|
|
560
|
-
_dragStartPosition = 0;
|
|
561
|
-
_dragStartValue = 0;
|
|
562
|
-
_dragOffset = 0;
|
|
563
|
-
// Configuration
|
|
564
|
-
_orientation;
|
|
565
|
-
_min;
|
|
566
|
-
_max;
|
|
567
|
-
_value;
|
|
568
|
-
_step;
|
|
569
|
-
_margin;
|
|
570
|
-
// Wheel options
|
|
571
|
-
_wheelStep;
|
|
572
|
-
_enableWheel;
|
|
573
|
-
// Cursor options
|
|
574
|
-
_trackCursor;
|
|
575
|
-
_knobCursor;
|
|
576
|
-
// Track if events are bound
|
|
577
|
-
_eventsBound = false;
|
|
578
|
-
// Arrow function event handlers for proper cleanup
|
|
579
|
-
_onTrackPointerDown = (event) => this._handleTrackPointerDown(event);
|
|
580
|
-
_onKnobPointerDown = (event) => this._handleKnobPointerDown(event);
|
|
581
|
-
_onKnobPointerUp = (event) => this._handleKnobPointerUp(event);
|
|
582
|
-
_onKnobPointerUpOutside = (event) => this._handleKnobPointerUp(event);
|
|
583
|
-
_onGlobalPointerMove = (event) => this._handleGlobalPointerMove(event);
|
|
584
|
-
_onTrackWheel = (event) => this._handleWheel(event);
|
|
585
|
-
_onKnobWheel = (event) => this._handleWheel(event);
|
|
586
|
-
// Static factory methods
|
|
587
|
-
static withViews(trackView, knobView, options = {}) {
|
|
588
|
-
const scrollbar = new _ScrollbarBehavior(options);
|
|
589
|
-
scrollbar.attachViews(trackView, knobView);
|
|
590
|
-
return scrollbar;
|
|
591
|
-
}
|
|
592
553
|
constructor(options = {}) {
|
|
593
554
|
var _a, _b;
|
|
594
555
|
super();
|
|
556
|
+
this._trackView = null;
|
|
557
|
+
this._knobView = null;
|
|
558
|
+
this._enabled = true;
|
|
559
|
+
this._isDragging = false;
|
|
560
|
+
this._dragStartPosition = 0;
|
|
561
|
+
this._dragStartValue = 0;
|
|
562
|
+
this._dragOffset = 0;
|
|
563
|
+
// Track if events are bound
|
|
564
|
+
this._eventsBound = false;
|
|
565
|
+
// Arrow function event handlers for proper cleanup
|
|
566
|
+
this._onTrackPointerDown = (event) => this._handleTrackPointerDown(event);
|
|
567
|
+
this._onKnobPointerDown = (event) => this._handleKnobPointerDown(event);
|
|
568
|
+
this._onKnobPointerUp = (event) => this._handleKnobPointerUp(event);
|
|
569
|
+
this._onKnobPointerUpOutside = (event) => this._handleKnobPointerUp(event);
|
|
570
|
+
this._onGlobalPointerMove = (event) => this._handleGlobalPointerMove(event);
|
|
571
|
+
this._onTrackWheel = (event) => this._handleWheel(event);
|
|
572
|
+
this._onKnobWheel = (event) => this._handleWheel(event);
|
|
595
573
|
this._orientation = options.orientation || "horizontal";
|
|
596
574
|
this._margin = {
|
|
597
575
|
start: ((_a = options.margin) == null ? void 0 : _a.start) || 0,
|
|
@@ -606,6 +584,12 @@ var ScrollbarBehavior = class _ScrollbarBehavior extends import_index.default {
|
|
|
606
584
|
this._trackCursor = options.trackCursor || "pointer";
|
|
607
585
|
this._knobCursor = options.knobCursor || "grab";
|
|
608
586
|
}
|
|
587
|
+
// Static factory methods
|
|
588
|
+
static withViews(trackView, knobView, options = {}) {
|
|
589
|
+
const scrollbar = new _ScrollbarBehavior(options);
|
|
590
|
+
scrollbar.attachViews(trackView, knobView);
|
|
591
|
+
return scrollbar;
|
|
592
|
+
}
|
|
609
593
|
// View Management Methods
|
|
610
594
|
attachTrackView(trackView) {
|
|
611
595
|
if (this._trackView === trackView) return;
|
|
@@ -1041,12 +1025,12 @@ var ScrollbarBehavior = class _ScrollbarBehavior extends import_index.default {
|
|
|
1041
1025
|
|
|
1042
1026
|
// ui/behaviors/InputBehavior.ts
|
|
1043
1027
|
var InputBehavior = class extends import_index.default {
|
|
1044
|
-
_domInput;
|
|
1045
|
-
_state;
|
|
1046
|
-
_options;
|
|
1047
|
-
_view = null;
|
|
1048
1028
|
constructor(options = {}) {
|
|
1049
1029
|
super();
|
|
1030
|
+
this._view = null;
|
|
1031
|
+
this._onViewPointerDown = () => {
|
|
1032
|
+
this.activateView();
|
|
1033
|
+
};
|
|
1050
1034
|
this._options = options;
|
|
1051
1035
|
const guid = "input-" + Math.random().toString(36).slice(2, 11);
|
|
1052
1036
|
if (options.multiline) {
|
|
@@ -1111,9 +1095,6 @@ var InputBehavior = class extends import_index.default {
|
|
|
1111
1095
|
this._view.on("pointerdown", this._onViewPointerDown);
|
|
1112
1096
|
this.updateDomPosition();
|
|
1113
1097
|
}
|
|
1114
|
-
_onViewPointerDown = () => {
|
|
1115
|
-
this.activateView();
|
|
1116
|
-
};
|
|
1117
1098
|
detachView() {
|
|
1118
1099
|
if (this._view) {
|
|
1119
1100
|
this._view.off("pointerdown", this._onViewPointerDown);
|
|
@@ -1174,33 +1155,46 @@ var InputBehavior = class extends import_index.default {
|
|
|
1174
1155
|
this.removeAllListeners();
|
|
1175
1156
|
}
|
|
1176
1157
|
};
|
|
1158
|
+
|
|
1159
|
+
// ui/components/ButtonComp.ts
|
|
1160
|
+
var import_lodash2 = __toESM(require_lodash(), 1);
|
|
1161
|
+
|
|
1162
|
+
// ui/components/Skinable.ts
|
|
1163
|
+
var import_lodash = __toESM(require_lodash(), 1);
|
|
1177
1164
|
var SKIN = Symbol("skinData");
|
|
1178
1165
|
function Skinable(Base) {
|
|
1179
|
-
|
|
1180
|
-
|
|
1181
|
-
|
|
1182
|
-
|
|
1166
|
+
var _a, _b;
|
|
1167
|
+
class SkinableClass extends (_b = Base, _a = SKIN, _b) {
|
|
1168
|
+
constructor() {
|
|
1169
|
+
super(...arguments);
|
|
1170
|
+
this[_a] = null;
|
|
1171
|
+
}
|
|
1172
|
+
/**
|
|
1173
|
+
* Prototype hook for subclasses. Must be a method, not a class field:
|
|
1174
|
+
* `skinApply?: (...) => void` is compiled to `this.skinApply = undefined`,
|
|
1175
|
+
* which shadows the subclass override and silently skips skin application.
|
|
1176
|
+
*/
|
|
1177
|
+
skinApply(_skin) {
|
|
1178
|
+
}
|
|
1183
1179
|
setSkinData(data, opts = {}) {
|
|
1184
|
-
var _a, _b;
|
|
1185
1180
|
const { mergeWithExisting = false } = opts;
|
|
1186
1181
|
if (data === null) {
|
|
1187
1182
|
this[SKIN] = null;
|
|
1188
|
-
|
|
1183
|
+
this.skinApply(null);
|
|
1189
1184
|
return;
|
|
1190
1185
|
}
|
|
1191
1186
|
const current = this[SKIN];
|
|
1192
1187
|
if (mergeWithExisting && current) {
|
|
1193
|
-
this[SKIN] = merge({}, current, data);
|
|
1188
|
+
this[SKIN] = (0, import_lodash.merge)({}, current, data);
|
|
1194
1189
|
} else {
|
|
1195
|
-
this[SKIN] = merge({}, data);
|
|
1190
|
+
this[SKIN] = (0, import_lodash.merge)({}, data);
|
|
1196
1191
|
}
|
|
1197
|
-
|
|
1192
|
+
this.skinApply(this[SKIN] ?? null);
|
|
1198
1193
|
}
|
|
1199
1194
|
getSkinData() {
|
|
1200
1195
|
return this[SKIN];
|
|
1201
1196
|
}
|
|
1202
|
-
// Subclasses
|
|
1203
|
-
// protected skinApply?(skin: TSkinData | null): void
|
|
1197
|
+
// Subclasses override skinApply(skin) to apply visual properties.
|
|
1204
1198
|
}
|
|
1205
1199
|
return SkinableClass;
|
|
1206
1200
|
}
|
|
@@ -2019,38 +2013,36 @@ function resolveSpriteTextAlignment(container, ctx) {
|
|
|
2019
2013
|
}
|
|
2020
2014
|
|
|
2021
2015
|
// ui/components/spriteText/SpriteText.ts
|
|
2022
|
-
var
|
|
2023
|
-
static globalSkin = defineGlobalSkin();
|
|
2024
|
-
_glyphs = [];
|
|
2025
|
-
_text = "";
|
|
2026
|
-
_fonts = [];
|
|
2027
|
-
_font = "";
|
|
2028
|
-
_bbcodeEnabled = false;
|
|
2029
|
-
_richTextExplicit;
|
|
2030
|
-
_bbcodeAliases = {};
|
|
2031
|
-
_fontStyles = [];
|
|
2032
|
-
_runsOverride = null;
|
|
2033
|
-
_tint = 16777215;
|
|
2034
|
-
_pivotHorizontal = "center";
|
|
2035
|
-
_pivotVertical = "middle";
|
|
2036
|
-
_lineAlign = "left";
|
|
2037
|
-
_letterSpacing = 0;
|
|
2038
|
-
_spaceWidth = 0.5;
|
|
2039
|
-
_wordWrap = false;
|
|
2040
|
-
_wordWrapWidth = 100;
|
|
2041
|
-
_breakWord = false;
|
|
2042
|
-
_allowLineBreak = false;
|
|
2043
|
-
_kerningEnabled = false;
|
|
2044
|
-
_kerningMap = /* @__PURE__ */ new Map();
|
|
2045
|
-
_glyphAnchor = { x: 0, y: 0 };
|
|
2046
|
-
_glyphMap = {};
|
|
2047
|
-
_fixedWidth = false;
|
|
2048
|
-
_glyphScale = 1;
|
|
2049
|
-
_curveEnabled = false;
|
|
2050
|
-
_curveControlXPercent = 0.5;
|
|
2051
|
-
_curveControlYPercent = -0.5;
|
|
2016
|
+
var _SpriteText = class _SpriteText extends Skinable(Container) {
|
|
2052
2017
|
constructor(options = {}) {
|
|
2053
2018
|
super();
|
|
2019
|
+
this._glyphs = [];
|
|
2020
|
+
this._text = "";
|
|
2021
|
+
this._fonts = [];
|
|
2022
|
+
this._font = "";
|
|
2023
|
+
this._bbcodeEnabled = false;
|
|
2024
|
+
this._bbcodeAliases = {};
|
|
2025
|
+
this._fontStyles = [];
|
|
2026
|
+
this._runsOverride = null;
|
|
2027
|
+
this._tint = 16777215;
|
|
2028
|
+
this._pivotHorizontal = "center";
|
|
2029
|
+
this._pivotVertical = "middle";
|
|
2030
|
+
this._lineAlign = "left";
|
|
2031
|
+
this._letterSpacing = 0;
|
|
2032
|
+
this._spaceWidth = 0.5;
|
|
2033
|
+
this._wordWrap = false;
|
|
2034
|
+
this._wordWrapWidth = 100;
|
|
2035
|
+
this._breakWord = false;
|
|
2036
|
+
this._allowLineBreak = false;
|
|
2037
|
+
this._kerningEnabled = false;
|
|
2038
|
+
this._kerningMap = /* @__PURE__ */ new Map();
|
|
2039
|
+
this._glyphAnchor = { x: 0, y: 0 };
|
|
2040
|
+
this._glyphMap = {};
|
|
2041
|
+
this._fixedWidth = false;
|
|
2042
|
+
this._glyphScale = 1;
|
|
2043
|
+
this._curveEnabled = false;
|
|
2044
|
+
this._curveControlXPercent = 0.5;
|
|
2045
|
+
this._curveControlYPercent = -0.5;
|
|
2054
2046
|
if (options.text !== void 0) {
|
|
2055
2047
|
this._text = options.text;
|
|
2056
2048
|
}
|
|
@@ -2546,23 +2538,22 @@ var SpriteText = class _SpriteText extends Skinable(Container) {
|
|
|
2546
2538
|
}
|
|
2547
2539
|
}
|
|
2548
2540
|
};
|
|
2541
|
+
_SpriteText.globalSkin = defineGlobalSkin();
|
|
2542
|
+
var SpriteText = _SpriteText;
|
|
2549
2543
|
|
|
2550
2544
|
// ui/components/ButtonComp.ts
|
|
2551
|
-
var
|
|
2552
|
-
_buttonBehaviors;
|
|
2553
|
-
_background;
|
|
2554
|
-
_placeHolder;
|
|
2555
|
-
_icon;
|
|
2556
|
-
_labelText = null;
|
|
2557
|
-
_buttonLabel = "";
|
|
2558
|
-
_iconTextures = null;
|
|
2559
|
-
_currentState = "up";
|
|
2560
|
-
_enabled = true;
|
|
2561
|
-
_effects = /* @__PURE__ */ new Map();
|
|
2562
|
-
_previousState;
|
|
2563
|
-
_stateDataCache = /* @__PURE__ */ new Map();
|
|
2545
|
+
var _ButtonComp = class _ButtonComp extends Skinable(Container) {
|
|
2564
2546
|
constructor(options = {}) {
|
|
2565
2547
|
super({ label: options.label });
|
|
2548
|
+
this._labelText = null;
|
|
2549
|
+
this._buttonLabel = "";
|
|
2550
|
+
this._iconTextures = null;
|
|
2551
|
+
this._currentState = "up";
|
|
2552
|
+
this._enabled = true;
|
|
2553
|
+
this._effects = /* @__PURE__ */ new Map();
|
|
2554
|
+
this._stateDataCache = /* @__PURE__ */ new Map();
|
|
2555
|
+
this._lastLayout = null;
|
|
2556
|
+
this._lastPlaceHolderLayout = null;
|
|
2566
2557
|
this.eventMode = "static";
|
|
2567
2558
|
this._background = new Graphics();
|
|
2568
2559
|
this._placeHolder = new Container({ label: "placeHolder" });
|
|
@@ -2593,12 +2584,6 @@ var ButtonComp = class _ButtonComp extends Skinable(Container) {
|
|
|
2593
2584
|
this.updateVisualState();
|
|
2594
2585
|
this.notifyEffectsStateChange();
|
|
2595
2586
|
}
|
|
2596
|
-
_lastLayout = null;
|
|
2597
|
-
_lastPlaceHolderLayout = null;
|
|
2598
|
-
_lastBackgroundConfig;
|
|
2599
|
-
_lastIconConfig;
|
|
2600
|
-
_lastTextConfig;
|
|
2601
|
-
_lastZIndex;
|
|
2602
2587
|
updateVisualState() {
|
|
2603
2588
|
const currentStateData = this.getCurrentStateData();
|
|
2604
2589
|
if (!currentStateData) return;
|
|
@@ -2658,13 +2643,13 @@ var ButtonComp = class _ButtonComp extends Skinable(Container) {
|
|
|
2658
2643
|
base = stateData.base;
|
|
2659
2644
|
}
|
|
2660
2645
|
if (stateData.background !== void 0) {
|
|
2661
|
-
background = background ? merge({}, background, stateData.background) : stateData.background;
|
|
2646
|
+
background = background ? (0, import_lodash2.merge)({}, background, stateData.background) : stateData.background;
|
|
2662
2647
|
}
|
|
2663
2648
|
if (stateData.textConfig !== void 0) {
|
|
2664
|
-
textConfig = textConfig ? merge({}, textConfig, stateData.textConfig) : stateData.textConfig;
|
|
2649
|
+
textConfig = textConfig ? (0, import_lodash2.merge)({}, textConfig, stateData.textConfig) : stateData.textConfig;
|
|
2665
2650
|
}
|
|
2666
2651
|
if (stateData.icon !== void 0) {
|
|
2667
|
-
icon = icon ? merge({}, icon, stateData.icon) : stateData.icon;
|
|
2652
|
+
icon = icon ? (0, import_lodash2.merge)({}, icon, stateData.icon) : stateData.icon;
|
|
2668
2653
|
}
|
|
2669
2654
|
if (stateData.layout !== void 0) {
|
|
2670
2655
|
layout = stateData.layout;
|
|
@@ -2680,19 +2665,6 @@ var ButtonComp = class _ButtonComp extends Skinable(Container) {
|
|
|
2680
2665
|
this._stateDataCache.set(state, { base, background, textConfig, icon, layout, placeHolderLayout, zIndex });
|
|
2681
2666
|
}
|
|
2682
2667
|
}
|
|
2683
|
-
static stateFallbackChain = {
|
|
2684
|
-
// Normal flow: up -> over -> down
|
|
2685
|
-
up: ["up"],
|
|
2686
|
-
over: ["up", "over"],
|
|
2687
|
-
down: ["up", "over", "down"],
|
|
2688
|
-
// Selected flow: selected_up -> selected_over -> selected_down
|
|
2689
|
-
selected_up: ["up", "selected_up"],
|
|
2690
|
-
selected_over: ["up", "selected_up", "selected_over"],
|
|
2691
|
-
selected_down: ["up", "selected_up", "selected_over", "selected_down"],
|
|
2692
|
-
// Disabled states
|
|
2693
|
-
disabled: ["up", "disabled"],
|
|
2694
|
-
selected_disabled: ["up", "selected_up", "selected_disabled"]
|
|
2695
|
-
};
|
|
2696
2668
|
getCurrentStateData() {
|
|
2697
2669
|
return this._stateDataCache.get(this._currentState) ?? null;
|
|
2698
2670
|
}
|
|
@@ -2939,15 +2911,28 @@ var ButtonComp = class _ButtonComp extends Skinable(Container) {
|
|
|
2939
2911
|
return this._buttonBehaviors;
|
|
2940
2912
|
}
|
|
2941
2913
|
};
|
|
2914
|
+
_ButtonComp.stateFallbackChain = {
|
|
2915
|
+
// Normal flow: up -> over -> down
|
|
2916
|
+
up: ["up"],
|
|
2917
|
+
over: ["up", "over"],
|
|
2918
|
+
down: ["up", "over", "down"],
|
|
2919
|
+
// Selected flow: selected_up -> selected_over -> selected_down
|
|
2920
|
+
selected_up: ["up", "selected_up"],
|
|
2921
|
+
selected_over: ["up", "selected_up", "selected_over"],
|
|
2922
|
+
selected_down: ["up", "selected_up", "selected_over", "selected_down"],
|
|
2923
|
+
// Disabled states
|
|
2924
|
+
disabled: ["up", "disabled"],
|
|
2925
|
+
selected_disabled: ["up", "selected_up", "selected_disabled"]
|
|
2926
|
+
};
|
|
2927
|
+
var ButtonComp = _ButtonComp;
|
|
2928
|
+
|
|
2929
|
+
// ui/components/InputComp.ts
|
|
2930
|
+
var import_lodash3 = __toESM(require_lodash(), 1);
|
|
2942
2931
|
var InputComp = class extends Skinable(Container) {
|
|
2943
|
-
_background;
|
|
2944
|
-
_textMask;
|
|
2945
|
-
_textLabel;
|
|
2946
|
-
_behavior;
|
|
2947
|
-
_currentState = "up";
|
|
2948
|
-
_isFocused = false;
|
|
2949
2932
|
constructor(options = {}) {
|
|
2950
2933
|
super();
|
|
2934
|
+
this._currentState = "up";
|
|
2935
|
+
this._isFocused = false;
|
|
2951
2936
|
this.eventMode = "static";
|
|
2952
2937
|
this._background = new Graphics();
|
|
2953
2938
|
this._textLabel = new Text({
|
|
@@ -3022,7 +3007,7 @@ var InputComp = class extends Skinable(Container) {
|
|
|
3022
3007
|
if (!skin) return null;
|
|
3023
3008
|
const baseData = skin.up;
|
|
3024
3009
|
const stateData = skin[this._currentState] || {};
|
|
3025
|
-
return merge({}, baseData, stateData);
|
|
3010
|
+
return (0, import_lodash3.merge)({}, baseData, stateData);
|
|
3026
3011
|
}
|
|
3027
3012
|
updateBackground(stateData) {
|
|
3028
3013
|
const bg = stateData.background;
|
|
@@ -3076,16 +3061,15 @@ var InputComp = class extends Skinable(Container) {
|
|
|
3076
3061
|
super.destroy();
|
|
3077
3062
|
}
|
|
3078
3063
|
};
|
|
3064
|
+
|
|
3065
|
+
// ui/components/SliderComp.ts
|
|
3066
|
+
var import_lodash4 = __toESM(require_lodash(), 1);
|
|
3079
3067
|
var SliderComp = class extends Skinable(Container) {
|
|
3080
|
-
_slider;
|
|
3081
|
-
_trackContainer;
|
|
3082
|
-
_progressContainer;
|
|
3083
|
-
_knobContainer;
|
|
3084
|
-
_currentState = "up";
|
|
3085
|
-
_progressGraphics = null;
|
|
3086
|
-
_progressConfig = null;
|
|
3087
3068
|
constructor(options = {}) {
|
|
3088
3069
|
super();
|
|
3070
|
+
this._currentState = "up";
|
|
3071
|
+
this._progressGraphics = null;
|
|
3072
|
+
this._progressConfig = null;
|
|
3089
3073
|
this.layout = true;
|
|
3090
3074
|
this.eventMode = "passive";
|
|
3091
3075
|
this._trackContainer = new Container();
|
|
@@ -3155,7 +3139,7 @@ var SliderComp = class extends Skinable(Container) {
|
|
|
3155
3139
|
if (!skin) return null;
|
|
3156
3140
|
const baseData = skin.up;
|
|
3157
3141
|
const stateData = skin[this._currentState] || {};
|
|
3158
|
-
return merge({}, baseData, stateData);
|
|
3142
|
+
return (0, import_lodash4.merge)({}, baseData, stateData);
|
|
3159
3143
|
}
|
|
3160
3144
|
updateTrack(stateData) {
|
|
3161
3145
|
var _a, _b;
|
|
@@ -3540,24 +3524,22 @@ function createFlatButtonEffect(options) {
|
|
|
3540
3524
|
}
|
|
3541
3525
|
});
|
|
3542
3526
|
}
|
|
3527
|
+
|
|
3528
|
+
// ui/components/StepperComp.ts
|
|
3529
|
+
var import_lodash5 = __toESM(require_lodash(), 1);
|
|
3543
3530
|
var StepperComp = class extends Skinable(Container) {
|
|
3544
|
-
_minusButton;
|
|
3545
|
-
_plusButton;
|
|
3546
|
-
_displayContainer;
|
|
3547
|
-
_displayBackground;
|
|
3548
|
-
_displayText;
|
|
3549
|
-
_value = 0;
|
|
3550
|
-
_min = 0;
|
|
3551
|
-
_max = 100;
|
|
3552
|
-
_step = 1;
|
|
3553
|
-
_formatFunction = (val) => val.toString();
|
|
3554
|
-
_enabled = true;
|
|
3555
|
-
_currentState = "up";
|
|
3556
|
-
_holdEnabled = true;
|
|
3557
|
-
_holdDelay = 500;
|
|
3558
|
-
_holdInterval = 100;
|
|
3559
3531
|
constructor(options = {}) {
|
|
3560
3532
|
super();
|
|
3533
|
+
this._value = 0;
|
|
3534
|
+
this._min = 0;
|
|
3535
|
+
this._max = 100;
|
|
3536
|
+
this._step = 1;
|
|
3537
|
+
this._formatFunction = (val) => val.toString();
|
|
3538
|
+
this._enabled = true;
|
|
3539
|
+
this._currentState = "up";
|
|
3540
|
+
this._holdEnabled = true;
|
|
3541
|
+
this._holdDelay = 500;
|
|
3542
|
+
this._holdInterval = 100;
|
|
3561
3543
|
this.layout = true;
|
|
3562
3544
|
this.eventMode = "passive";
|
|
3563
3545
|
this._min = options.min ?? 0;
|
|
@@ -3664,7 +3646,7 @@ var StepperComp = class extends Skinable(Container) {
|
|
|
3664
3646
|
if (!skin) return null;
|
|
3665
3647
|
const baseData = skin.up;
|
|
3666
3648
|
const stateData = skin[this._currentState] || {};
|
|
3667
|
-
return merge({}, baseData, stateData);
|
|
3649
|
+
return (0, import_lodash5.merge)({}, baseData, stateData);
|
|
3668
3650
|
}
|
|
3669
3651
|
updateDisplay(stateData) {
|
|
3670
3652
|
const displayConfig = stateData.display;
|
|
@@ -3831,13 +3813,14 @@ var StepperComp = class extends Skinable(Container) {
|
|
|
3831
3813
|
super.destroy();
|
|
3832
3814
|
}
|
|
3833
3815
|
};
|
|
3816
|
+
|
|
3817
|
+
// ui/components/LabelBox.ts
|
|
3818
|
+
var import_lodash6 = __toESM(require_lodash(), 1);
|
|
3834
3819
|
var LabelBox = class extends Skinable(Container) {
|
|
3835
|
-
_background;
|
|
3836
|
-
_text;
|
|
3837
|
-
_currentState = "default";
|
|
3838
|
-
_stateDataCache = /* @__PURE__ */ new Map();
|
|
3839
3820
|
constructor(options = {}) {
|
|
3840
3821
|
super({ label: options.label });
|
|
3822
|
+
this._currentState = "default";
|
|
3823
|
+
this._stateDataCache = /* @__PURE__ */ new Map();
|
|
3841
3824
|
this.eventMode = "passive";
|
|
3842
3825
|
this._background = new Graphics();
|
|
3843
3826
|
this._text = new Text({
|
|
@@ -3875,7 +3858,7 @@ var LabelBox = class extends Skinable(Container) {
|
|
|
3875
3858
|
if (!skin) return {};
|
|
3876
3859
|
const baseState = skin.default;
|
|
3877
3860
|
const stateOverride = skin[state];
|
|
3878
|
-
const merged = stateOverride ? merge({}, baseState, stateOverride) : baseState;
|
|
3861
|
+
const merged = stateOverride ? (0, import_lodash6.merge)({}, baseState, stateOverride) : baseState;
|
|
3879
3862
|
this._stateDataCache.set(state, merged);
|
|
3880
3863
|
return merged;
|
|
3881
3864
|
}
|
|
@@ -3932,27 +3915,13 @@ var LabelBox = class extends Skinable(Container) {
|
|
|
3932
3915
|
}
|
|
3933
3916
|
};
|
|
3934
3917
|
var ListTableComp = class extends Skinable(Container) {
|
|
3935
|
-
_columns;
|
|
3936
|
-
_tableWidth;
|
|
3937
|
-
_tableHeight;
|
|
3938
|
-
_rowHeight;
|
|
3939
|
-
_headerHeight;
|
|
3940
|
-
_rowGap;
|
|
3941
|
-
_cellGap;
|
|
3942
|
-
_showHeader;
|
|
3943
|
-
_showScrollbar;
|
|
3944
|
-
_headerContainer;
|
|
3945
|
-
_headerCells = [];
|
|
3946
|
-
_listContainer;
|
|
3947
|
-
_listContent;
|
|
3948
|
-
_listMask;
|
|
3949
|
-
_scrollbar;
|
|
3950
|
-
_data = [];
|
|
3951
|
-
_rowViews = [];
|
|
3952
|
-
_hoveredRowIndex = -1;
|
|
3953
|
-
_scrollValue = 0;
|
|
3954
3918
|
constructor(options) {
|
|
3955
3919
|
super();
|
|
3920
|
+
this._headerCells = [];
|
|
3921
|
+
this._data = [];
|
|
3922
|
+
this._rowViews = [];
|
|
3923
|
+
this._hoveredRowIndex = -1;
|
|
3924
|
+
this._scrollValue = 0;
|
|
3956
3925
|
this.eventMode = "static";
|
|
3957
3926
|
this._columns = options.columns;
|
|
3958
3927
|
this._tableWidth = options.tableWidth;
|