@rpg-engine/long-bow 0.1.42 → 0.1.47
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/components/Chat/Chat.d.ts +4 -0
- package/dist/index.d.ts +1 -0
- package/dist/long-bow.cjs.development.js +175 -48
- package/dist/long-bow.cjs.development.js.map +1 -1
- package/dist/long-bow.cjs.production.min.js +1 -1
- package/dist/long-bow.cjs.production.min.js.map +1 -1
- package/dist/long-bow.esm.js +177 -51
- package/dist/long-bow.esm.js.map +1 -1
- package/package.json +1 -1
- package/src/components/Chat/Chat.tsx +41 -5
- package/src/index.tsx +1 -0
|
@@ -3,5 +3,9 @@ import React from 'react';
|
|
|
3
3
|
export interface IChatProps {
|
|
4
4
|
chatMessages: IChatMessage[];
|
|
5
5
|
onSendChatMessage: (message: string) => void;
|
|
6
|
+
onCloseButton: () => void;
|
|
7
|
+
opacity?: number;
|
|
8
|
+
width?: string;
|
|
9
|
+
height?: string;
|
|
6
10
|
}
|
|
7
11
|
export declare const Chat: React.FC<IChatProps>;
|
package/dist/index.d.ts
CHANGED
|
@@ -7,6 +7,7 @@ function _interopDefault (ex) { return (ex && (typeof ex === 'object') && 'defau
|
|
|
7
7
|
var React = require('react');
|
|
8
8
|
var React__default = _interopDefault(React);
|
|
9
9
|
var styled = _interopDefault(require('styled-components'));
|
|
10
|
+
var dayjs = _interopDefault(require('dayjs'));
|
|
10
11
|
var uuid = require('uuid');
|
|
11
12
|
require('rpgui/rpgui.min.css');
|
|
12
13
|
require('rpgui/rpgui.min.js');
|
|
@@ -110,6 +111,167 @@ var CheckButton = function CheckButton(_ref) {
|
|
|
110
111
|
}));
|
|
111
112
|
};
|
|
112
113
|
|
|
114
|
+
var colors = {
|
|
115
|
+
darkGrey: '#3e3e3e'
|
|
116
|
+
};
|
|
117
|
+
|
|
118
|
+
var Input = function Input(_ref) {
|
|
119
|
+
var props = _extends({}, _ref);
|
|
120
|
+
|
|
121
|
+
return React__default.createElement("input", Object.assign({}, props));
|
|
122
|
+
};
|
|
123
|
+
|
|
124
|
+
(function (RPGUIContainerTypes) {
|
|
125
|
+
RPGUIContainerTypes["Framed"] = "framed";
|
|
126
|
+
RPGUIContainerTypes["FramedGold"] = "framed-golden";
|
|
127
|
+
RPGUIContainerTypes["FramedGold2"] = "framed-golden-2";
|
|
128
|
+
RPGUIContainerTypes["FramedGrey"] = "framed-grey";
|
|
129
|
+
})(exports.RPGUIContainerTypes || (exports.RPGUIContainerTypes = {}));
|
|
130
|
+
|
|
131
|
+
var RPGUIContainer = function RPGUIContainer(_ref) {
|
|
132
|
+
var children = _ref.children,
|
|
133
|
+
type = _ref.type,
|
|
134
|
+
_ref$width = _ref.width,
|
|
135
|
+
width = _ref$width === void 0 ? '50%' : _ref$width,
|
|
136
|
+
height = _ref.height,
|
|
137
|
+
className = _ref.className;
|
|
138
|
+
return React__default.createElement(Container, {
|
|
139
|
+
width: width,
|
|
140
|
+
height: height || 'auto',
|
|
141
|
+
className: "rpgui-container " + type + " " + className
|
|
142
|
+
}, children);
|
|
143
|
+
};
|
|
144
|
+
var Container = /*#__PURE__*/styled.div.withConfig({
|
|
145
|
+
displayName: "RPGUIContainer__Container",
|
|
146
|
+
componentId: "sc-a8l4p8-0"
|
|
147
|
+
})(["height:", ";width:", ";display:flex;flex-wrap:wrap;image-rendering:pixelated;"], function (props) {
|
|
148
|
+
return props.height;
|
|
149
|
+
}, function (_ref2) {
|
|
150
|
+
var width = _ref2.width;
|
|
151
|
+
return width;
|
|
152
|
+
});
|
|
153
|
+
|
|
154
|
+
var Column = /*#__PURE__*/styled.div.withConfig({
|
|
155
|
+
displayName: "Column",
|
|
156
|
+
componentId: "sc-1pesqff-0"
|
|
157
|
+
})(["flex:", ";display:flex;flex-wrap:", ";align-items:", ";justify-content:", ";"], function (props) {
|
|
158
|
+
return props.flex || 'auto';
|
|
159
|
+
}, function (props) {
|
|
160
|
+
return props.flexWrap || 'nowrap';
|
|
161
|
+
}, function (props) {
|
|
162
|
+
return props.alignItems || 'flex-start';
|
|
163
|
+
}, function (props) {
|
|
164
|
+
return props.justifyContent || 'flex-start';
|
|
165
|
+
});
|
|
166
|
+
|
|
167
|
+
var Chat = function Chat(_ref) {
|
|
168
|
+
var chatMessages = _ref.chatMessages,
|
|
169
|
+
onSendChatMessage = _ref.onSendChatMessage,
|
|
170
|
+
_ref$opacity = _ref.opacity,
|
|
171
|
+
opacity = _ref$opacity === void 0 ? 1 : _ref$opacity,
|
|
172
|
+
_ref$width = _ref.width,
|
|
173
|
+
width = _ref$width === void 0 ? '100%' : _ref$width,
|
|
174
|
+
_ref$height = _ref.height,
|
|
175
|
+
height = _ref$height === void 0 ? '250px' : _ref$height,
|
|
176
|
+
onCloseButton = _ref.onCloseButton;
|
|
177
|
+
|
|
178
|
+
var _useState = React.useState(''),
|
|
179
|
+
message = _useState[0],
|
|
180
|
+
setMessage = _useState[1];
|
|
181
|
+
|
|
182
|
+
React.useEffect(function () {
|
|
183
|
+
scrollChatToBottom();
|
|
184
|
+
}, []);
|
|
185
|
+
React.useEffect(function () {
|
|
186
|
+
scrollChatToBottom();
|
|
187
|
+
}, [chatMessages]);
|
|
188
|
+
|
|
189
|
+
var scrollChatToBottom = function scrollChatToBottom() {
|
|
190
|
+
var scrollingElement = document.querySelector('.chat-body');
|
|
191
|
+
|
|
192
|
+
if (scrollingElement) {
|
|
193
|
+
scrollingElement.scrollTop = scrollingElement.scrollHeight;
|
|
194
|
+
}
|
|
195
|
+
};
|
|
196
|
+
|
|
197
|
+
var handleSubmit = function handleSubmit(event) {
|
|
198
|
+
event.preventDefault();
|
|
199
|
+
onSendChatMessage(message);
|
|
200
|
+
setMessage('');
|
|
201
|
+
};
|
|
202
|
+
|
|
203
|
+
var getInputValue = function getInputValue(value) {
|
|
204
|
+
setMessage(value);
|
|
205
|
+
};
|
|
206
|
+
|
|
207
|
+
return React__default.createElement(Container$1, null, React__default.createElement(CustomContainer, {
|
|
208
|
+
type: exports.RPGUIContainerTypes.FramedGrey,
|
|
209
|
+
width: width,
|
|
210
|
+
height: height,
|
|
211
|
+
className: "chat-container",
|
|
212
|
+
opacity: opacity
|
|
213
|
+
}, onCloseButton && React__default.createElement(CloseButton, {
|
|
214
|
+
onClick: onCloseButton
|
|
215
|
+
}, "X"), React__default.createElement(RPGUIContainer, {
|
|
216
|
+
type: exports.RPGUIContainerTypes.FramedGrey,
|
|
217
|
+
width: '100%',
|
|
218
|
+
height: '80%',
|
|
219
|
+
className: "chat-body dark-background"
|
|
220
|
+
}, chatMessages.length ? chatMessages.map(function (_ref2, index) {
|
|
221
|
+
var _id = _ref2._id,
|
|
222
|
+
createdAt = _ref2.createdAt,
|
|
223
|
+
emitter = _ref2.emitter,
|
|
224
|
+
message = _ref2.message;
|
|
225
|
+
return React__default.createElement(MessageText, {
|
|
226
|
+
key: _id + "_" + index
|
|
227
|
+
}, dayjs(createdAt).format('HH:mm') + " " + emitter.name + ": " + message);
|
|
228
|
+
}) : React__default.createElement(MessageText, null, "No messages available.")), React__default.createElement(Form, {
|
|
229
|
+
onSubmit: handleSubmit
|
|
230
|
+
}, React__default.createElement(Column, {
|
|
231
|
+
flex: 70
|
|
232
|
+
}, React__default.createElement(CustomInput, {
|
|
233
|
+
value: message,
|
|
234
|
+
id: "inputMessage",
|
|
235
|
+
onChange: function onChange(e) {
|
|
236
|
+
return getInputValue(e.target.value);
|
|
237
|
+
},
|
|
238
|
+
height: 20,
|
|
239
|
+
className: "dark-background",
|
|
240
|
+
type: "text",
|
|
241
|
+
autoComplete: "off"
|
|
242
|
+
})), React__default.createElement(Column, {
|
|
243
|
+
justifyContent: "flex-end"
|
|
244
|
+
}, React__default.createElement(Button, {
|
|
245
|
+
buttonType: exports.ButtonTypes.RPGUIButton
|
|
246
|
+
}, "Send")))));
|
|
247
|
+
};
|
|
248
|
+
var Container$1 = /*#__PURE__*/styled.div.withConfig({
|
|
249
|
+
displayName: "Chat__Container",
|
|
250
|
+
componentId: "sc-1bk05n6-0"
|
|
251
|
+
})(["position:relative;"]);
|
|
252
|
+
var CloseButton = /*#__PURE__*/styled.div.withConfig({
|
|
253
|
+
displayName: "Chat__CloseButton",
|
|
254
|
+
componentId: "sc-1bk05n6-1"
|
|
255
|
+
})(["position:absolute;top:3px;right:0px;color:white;z-index:22;font-size:10px;"]);
|
|
256
|
+
var CustomInput = /*#__PURE__*/styled(Input).withConfig({
|
|
257
|
+
displayName: "Chat__CustomInput",
|
|
258
|
+
componentId: "sc-1bk05n6-2"
|
|
259
|
+
})(["height:30px;width:100%;.rpgui-content .input{min-height:39px;}"]);
|
|
260
|
+
var CustomContainer = /*#__PURE__*/styled(RPGUIContainer).withConfig({
|
|
261
|
+
displayName: "Chat__CustomContainer",
|
|
262
|
+
componentId: "sc-1bk05n6-3"
|
|
263
|
+
})(["display:block;opacity:", ";&:hover{opacity:1;}.dark-background{background-color:", " !important;}.chat-body{&.rpgui-container.framed-grey{background:unset;}max-height:170px;overflow-y:auto;}"], function (props) {
|
|
264
|
+
return props.opacity;
|
|
265
|
+
}, colors.darkGrey);
|
|
266
|
+
var Form = /*#__PURE__*/styled.form.withConfig({
|
|
267
|
+
displayName: "Chat__Form",
|
|
268
|
+
componentId: "sc-1bk05n6-4"
|
|
269
|
+
})(["display:flex;width:100%;justify-content:center;align-items:center;"]);
|
|
270
|
+
var MessageText = /*#__PURE__*/styled.p.withConfig({
|
|
271
|
+
displayName: "Chat__MessageText",
|
|
272
|
+
componentId: "sc-1bk05n6-5"
|
|
273
|
+
})(["display:block !important;width:100%;font-size:0.7rem !important;overflow-y:auto;margin:0;"]);
|
|
274
|
+
|
|
113
275
|
var _RPGUI = RPGUI;
|
|
114
276
|
var RPGUIRoot = function RPGUIRoot(_ref) {
|
|
115
277
|
var children = _ref.children;
|
|
@@ -157,12 +319,6 @@ var Dropdown = function Dropdown(_ref) {
|
|
|
157
319
|
}));
|
|
158
320
|
};
|
|
159
321
|
|
|
160
|
-
var Input = function Input(_ref) {
|
|
161
|
-
var props = _extends({}, _ref);
|
|
162
|
-
|
|
163
|
-
return React__default.createElement("input", Object.assign({}, props));
|
|
164
|
-
};
|
|
165
|
-
|
|
166
322
|
var ListMenu = function ListMenu(_ref) {
|
|
167
323
|
var options = _ref.options,
|
|
168
324
|
onSelected = _ref.onSelected,
|
|
@@ -170,7 +326,7 @@ var ListMenu = function ListMenu(_ref) {
|
|
|
170
326
|
y = _ref.y,
|
|
171
327
|
_ref$fontSize = _ref.fontSize,
|
|
172
328
|
fontSize = _ref$fontSize === void 0 ? 0.8 : _ref$fontSize;
|
|
173
|
-
return React__default.createElement(Container, {
|
|
329
|
+
return React__default.createElement(Container$2, {
|
|
174
330
|
x: x,
|
|
175
331
|
y: y,
|
|
176
332
|
fontSize: fontSize
|
|
@@ -188,7 +344,7 @@ var ListMenu = function ListMenu(_ref) {
|
|
|
188
344
|
}, params.text);
|
|
189
345
|
})));
|
|
190
346
|
};
|
|
191
|
-
var Container = /*#__PURE__*/styled.div.withConfig({
|
|
347
|
+
var Container$2 = /*#__PURE__*/styled.div.withConfig({
|
|
192
348
|
displayName: "ListMenu__Container",
|
|
193
349
|
componentId: "sc-i9097t-0"
|
|
194
350
|
})(["display:flex;flex-direction:column;width:100%;justify-content:start;align-items:flex-start;position:absolute;top:", "px;left:", "px;li{font-size:", "em;}"], function (props) {
|
|
@@ -203,36 +359,6 @@ var ListElement = /*#__PURE__*/styled.li.withConfig({
|
|
|
203
359
|
componentId: "sc-i9097t-1"
|
|
204
360
|
})(["margin-right:0.5rem;"]);
|
|
205
361
|
|
|
206
|
-
(function (RPGUIContainerTypes) {
|
|
207
|
-
RPGUIContainerTypes["Framed"] = "framed";
|
|
208
|
-
RPGUIContainerTypes["FramedGold"] = "framed-golden";
|
|
209
|
-
RPGUIContainerTypes["FramedGold2"] = "framed-golden-2";
|
|
210
|
-
RPGUIContainerTypes["FramedGrey"] = "framed-grey";
|
|
211
|
-
})(exports.RPGUIContainerTypes || (exports.RPGUIContainerTypes = {}));
|
|
212
|
-
|
|
213
|
-
var RPGUIContainer = function RPGUIContainer(_ref) {
|
|
214
|
-
var children = _ref.children,
|
|
215
|
-
type = _ref.type,
|
|
216
|
-
_ref$width = _ref.width,
|
|
217
|
-
width = _ref$width === void 0 ? '50%' : _ref$width,
|
|
218
|
-
height = _ref.height,
|
|
219
|
-
className = _ref.className;
|
|
220
|
-
return React__default.createElement(Container$1, {
|
|
221
|
-
width: width,
|
|
222
|
-
height: height || 'auto',
|
|
223
|
-
className: "rpgui-container " + type + " " + className
|
|
224
|
-
}, children);
|
|
225
|
-
};
|
|
226
|
-
var Container$1 = /*#__PURE__*/styled.div.withConfig({
|
|
227
|
-
displayName: "RPGUIContainer__Container",
|
|
228
|
-
componentId: "sc-a8l4p8-0"
|
|
229
|
-
})(["height:", ";width:", ";display:flex;flex-wrap:wrap;image-rendering:pixelated;"], function (props) {
|
|
230
|
-
return props.height;
|
|
231
|
-
}, function (_ref2) {
|
|
232
|
-
var width = _ref2.width;
|
|
233
|
-
return width;
|
|
234
|
-
});
|
|
235
|
-
|
|
236
362
|
const img = require('./alice.png');
|
|
237
363
|
|
|
238
364
|
const img$1 = require('./space.gif');
|
|
@@ -314,13 +440,13 @@ var NPCDialogText = function NPCDialogText(_ref) {
|
|
|
314
440
|
return document.removeEventListener('keydown', onHandleSpacePress);
|
|
315
441
|
};
|
|
316
442
|
}, [chunkIndex]);
|
|
317
|
-
return React__default.createElement(Container$
|
|
443
|
+
return React__default.createElement(Container$3, null, React__default.createElement(DynamicText, {
|
|
318
444
|
text: (textChunks == null ? void 0 : textChunks[chunkIndex]) || '',
|
|
319
445
|
onFinish: onEndStep,
|
|
320
446
|
onStart: onStartStep
|
|
321
447
|
}));
|
|
322
448
|
};
|
|
323
|
-
var Container$
|
|
449
|
+
var Container$3 = /*#__PURE__*/styled.div.withConfig({
|
|
324
450
|
displayName: "NPCDialogText__Container",
|
|
325
451
|
componentId: "sc-1cxkdh9-0"
|
|
326
452
|
})([""]);
|
|
@@ -492,7 +618,7 @@ var QuestionDialog = function QuestionDialog(_ref) {
|
|
|
492
618
|
});
|
|
493
619
|
};
|
|
494
620
|
|
|
495
|
-
return React__default.createElement(Container$
|
|
621
|
+
return React__default.createElement(Container$4, null, React__default.createElement(QuestionContainer, null, React__default.createElement(DynamicText, {
|
|
496
622
|
text: currentQuestion.text,
|
|
497
623
|
onStart: function onStart() {
|
|
498
624
|
return setCanShowAnswers(false);
|
|
@@ -502,7 +628,7 @@ var QuestionDialog = function QuestionDialog(_ref) {
|
|
|
502
628
|
}
|
|
503
629
|
})), canShowAnswers && React__default.createElement(AnswersContainer, null, onRenderCurrentAnswers()));
|
|
504
630
|
};
|
|
505
|
-
var Container$
|
|
631
|
+
var Container$4 = /*#__PURE__*/styled.div.withConfig({
|
|
506
632
|
displayName: "QuestionDialog__Container",
|
|
507
633
|
componentId: "sc-bxc5u0-0"
|
|
508
634
|
})(["display:flex;word-break:break-all;box-sizing:border-box;justify-content:flex-start;align-items:flex-start;flex-wrap:wrap;"]);
|
|
@@ -566,7 +692,7 @@ var NPCDialog = function NPCDialog(_ref) {
|
|
|
566
692
|
}
|
|
567
693
|
})), type === exports.NPCDialogType.TextAndThumbnail && React__default.createElement(ThumbnailContainer, null, React__default.createElement(NPCThumbnail, {
|
|
568
694
|
src: imagePath || img
|
|
569
|
-
}))) : React__default.createElement(React__default.Fragment, null, React__default.createElement(Container$
|
|
695
|
+
}))) : React__default.createElement(React__default.Fragment, null, React__default.createElement(Container$5, null, React__default.createElement(TextContainer$1, {
|
|
570
696
|
flex: type === exports.NPCDialogType.TextAndThumbnail ? '70%' : '100%'
|
|
571
697
|
}, React__default.createElement(NPCDialogText, {
|
|
572
698
|
onStartStep: function onStartStep() {
|
|
@@ -588,7 +714,7 @@ var NPCDialog = function NPCDialog(_ref) {
|
|
|
588
714
|
src: img$1
|
|
589
715
|
})));
|
|
590
716
|
};
|
|
591
|
-
var Container$
|
|
717
|
+
var Container$5 = /*#__PURE__*/styled.div.withConfig({
|
|
592
718
|
displayName: "NPCDialog__Container",
|
|
593
719
|
componentId: "sc-1b4aw74-0"
|
|
594
720
|
})(["display:flex;width:100%;height:100%;box-sizing:border-box;justify-content:center;align-items:flex-start;position:relative;"]);
|
|
@@ -635,7 +761,7 @@ var ProgressBar = function ProgressBar(_ref) {
|
|
|
635
761
|
return value * 100 / max;
|
|
636
762
|
};
|
|
637
763
|
|
|
638
|
-
return React__default.createElement(Container$
|
|
764
|
+
return React__default.createElement(Container$6, {
|
|
639
765
|
className: "rpgui-progress",
|
|
640
766
|
"data-value": calculatePercentageValue(max, value) / 100,
|
|
641
767
|
"data-rpguitype": "progress",
|
|
@@ -664,7 +790,7 @@ var TextOverlay = /*#__PURE__*/styled.div.withConfig({
|
|
|
664
790
|
displayName: "ProgressBar__TextOverlay",
|
|
665
791
|
componentId: "sc-qa6fzh-1"
|
|
666
792
|
})(["width:100%;position:relative;"]);
|
|
667
|
-
var Container$
|
|
793
|
+
var Container$6 = /*#__PURE__*/styled.div.withConfig({
|
|
668
794
|
displayName: "ProgressBar__Container",
|
|
669
795
|
componentId: "sc-qa6fzh-2"
|
|
670
796
|
})(["display:flex;flex-direction:column;min-width:", "px;width:", "%;justify-content:start;align-items:flex-start;", ""], function (props) {
|
|
@@ -775,11 +901,11 @@ var Truncate = function Truncate(_ref) {
|
|
|
775
901
|
var _ref$maxLines = _ref.maxLines,
|
|
776
902
|
maxLines = _ref$maxLines === void 0 ? 1 : _ref$maxLines,
|
|
777
903
|
children = _ref.children;
|
|
778
|
-
return React__default.createElement(Container$
|
|
904
|
+
return React__default.createElement(Container$7, {
|
|
779
905
|
maxLines: maxLines
|
|
780
906
|
}, children);
|
|
781
907
|
};
|
|
782
|
-
var Container$
|
|
908
|
+
var Container$7 = /*#__PURE__*/styled.div.withConfig({
|
|
783
909
|
displayName: "Truncate__Container",
|
|
784
910
|
componentId: "sc-6x00qb-0"
|
|
785
911
|
})(["display:-webkit-box;max-width:100%;max-height:100%;-webkit-line-clamp:", ";-webkit-box-orient:vertical;overflow:hidden;"], function (props) {
|
|
@@ -787,6 +913,7 @@ var Container$6 = /*#__PURE__*/styled.div.withConfig({
|
|
|
787
913
|
});
|
|
788
914
|
|
|
789
915
|
exports.Button = Button;
|
|
916
|
+
exports.Chat = Chat;
|
|
790
917
|
exports.CheckButton = CheckButton;
|
|
791
918
|
exports.Dropdown = Dropdown;
|
|
792
919
|
exports.DynamicText = DynamicText;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"long-bow.cjs.development.js","sources":["../src/components/Button.tsx","../src/components/CheckButton.tsx","../src/components/RPGUIRoot.tsx","../src/components/Dropdown.tsx","../src/components/Input.tsx","../src/components/ListMenu.tsx","../src/components/RPGUIContainer.tsx","../src/components/NPCDialog/img/npcDialog/npcThumbnails/alice.png","../src/components/NPCDialog/img/space.gif","../src/libs/StringHelpers.ts","../src/components/typography/DynamicText.tsx","../src/components/NPCDialog/NPCDialogText.tsx","../src/hooks/useEventListener.ts","../src/components/NPCDialog/QuestionDialog/QuestionDialog.tsx","../src/components/NPCDialog/NPCDialog.tsx","../src/components/ProgressBar.tsx","../src/components/RadioButton.tsx","../src/components/RangeSlider.tsx","../src/components/TextArea.tsx","../src/components/Truncate.tsx"],"sourcesContent":["import React from 'react';\nimport styled from 'styled-components';\n\nexport enum ButtonTypes {\n RPGUIButton = 'rpgui-button',\n RPGUIGoldButton = 'rpgui-button golden',\n}\n\nexport interface IButtonProps {\n children: React.ReactNode;\n buttonType: ButtonTypes;\n}\n\nexport const Button: React.FC<\n IButtonProps &\n React.DetailedHTMLProps<\n React.ButtonHTMLAttributes<HTMLButtonElement>,\n HTMLButtonElement\n >\n> = ({ children, buttonType, ...props }) => {\n return (\n <ButtonContainer className={`${buttonType}`} {...props}>\n <p>{children}</p>\n </ButtonContainer>\n );\n};\n\nconst ButtonContainer = styled.button<any>`\n height: 45px;\n font-size: 11.5px;\n`;\n","import React, { useEffect, useState } from 'react';\n\nexport interface ICheckItems {\n label: string;\n value: string;\n}\n\nexport interface ICheckProps {\n items: ICheckItems[];\n onChange: (selectedValues: IChecklistSelectedValues) => void;\n}\n\ninterface IChecklistSelectedValues {\n [label: string]: boolean;\n}\n\nexport const CheckButton: React.FC<ICheckProps> = ({ items, onChange }) => {\n const generateSelectedValuesList = () => {\n const selectedValues: IChecklistSelectedValues = {};\n\n items.forEach((item) => {\n selectedValues[item.label] = false;\n });\n\n return selectedValues;\n };\n\n const [selectedValues, setSelectedValues] =\n useState<IChecklistSelectedValues>(generateSelectedValuesList());\n\n const handleClick = (label: string) => {\n setSelectedValues({\n ...selectedValues,\n [label]: !selectedValues[label],\n });\n };\n\n useEffect(() => {\n if (selectedValues) {\n onChange(selectedValues);\n }\n }, [selectedValues]);\n\n return (\n <div id=\"elemento-checkbox\">\n {items?.map((element, index) => {\n return (\n <div key={`${element.label}_${index}`}>\n <input\n className=\"rpgui-checkbox\"\n type=\"checkbox\"\n checked={selectedValues[element.label]}\n onChange={() => {}}\n />\n <label onClick={() => handleClick(element.label)}>\n {element.label}\n </label>\n <br />\n </div>\n );\n })}\n </div>\n );\n};\n","import React from 'react';\nimport 'rpgui/rpgui.min.css';\nimport 'rpgui/rpgui.min.js';\n\ninterface IProps {\n children: React.ReactNode;\n}\n\n//@ts-ignore\nexport const _RPGUI = RPGUI;\n\nexport const RPGUIRoot: React.FC<IProps> = ({ children }) => {\n return <div className=\"rpgui-content\">{children}</div>;\n};\n","import React, { useEffect, useState } from 'react';\nimport { v4 as uuidv4 } from 'uuid';\nimport { _RPGUI } from './RPGUIRoot';\n\nexport interface IOptionsProps {\n id: number;\n value: string;\n option: string;\n}\n\nexport interface IDropdownProps {\n options: IOptionsProps[];\n width?: string;\n onChange: (value: string) => void;\n}\n\nexport const Dropdown: React.FC<IDropdownProps> = ({\n options,\n width,\n onChange,\n}) => {\n const dropdownId = uuidv4();\n\n const [selectedValue, setSelectedValue] = useState<string>('');\n\n useEffect(() => {\n const element = document.getElementById(`rpgui-dropdown-${dropdownId}`);\n const dropdownValue = _RPGUI.get_value(element);\n setSelectedValue(dropdownValue);\n\n element?.addEventListener('change', (event: any) => {\n setSelectedValue(event?.target.value);\n });\n }, []);\n\n useEffect(() => {\n if (selectedValue) {\n onChange(selectedValue);\n }\n }, [selectedValue]);\n\n return (\n <select\n id={`rpgui-dropdown-${dropdownId}`}\n style={{ width: width }}\n className=\"rpgui-dropdown\"\n >\n {options.map((option) => {\n return (\n <option key={option.id} value={option.value}>\n {option.option}\n </option>\n );\n })}\n </select>\n );\n};\n","import React from 'react';\n\nexport interface IInputProps\n extends React.DetailedHTMLProps<\n React.InputHTMLAttributes<HTMLInputElement>,\n HTMLInputElement\n > {}\n\nexport const Input: React.FC<IInputProps> = ({ ...props }) => {\n return <input {...props} />;\n};\n","import React from 'react';\nimport styled from 'styled-components';\n\ninterface IListMenuOption {\n id: string;\n text: string;\n}\n\nexport interface IListMenuProps {\n x: number;\n y: number;\n options: IListMenuOption[];\n onSelected: (selectedOptionId: string) => void;\n fontSize?: number;\n}\n\nexport const ListMenu: React.FC<IListMenuProps> = ({\n options,\n onSelected,\n x,\n y,\n fontSize = 0.8,\n}) => {\n return (\n <Container x={x} y={y} fontSize={fontSize}>\n <ul className=\"rpgui-list-imp\" style={{ overflow: 'hidden' }}>\n {options.map((params) => (\n <ListElement\n key={params.text}\n onClick={() => {\n onSelected(params.id);\n }}\n >\n {params.text}\n </ListElement>\n ))}\n </ul>\n </Container>\n );\n};\n\ninterface IContainerProps {\n x?: number;\n y?: number;\n fontSize?: number;\n}\n\nconst Container = styled.div<IContainerProps>`\n display: flex;\n flex-direction: column;\n width: 100%;\n justify-content: start;\n align-items: flex-start;\n position: absolute;\n top: ${(props) => props.y || 0}px;\n left: ${(props) => props.x || 0}px;\n\n li {\n font-size: ${(props) => props.fontSize}em;\n }\n`;\n\nconst ListElement = styled.li`\n margin-right: 0.5rem;\n`;\n","import React from 'react';\nimport styled from 'styled-components';\n\nexport enum RPGUIContainerTypes {\n Framed = 'framed',\n FramedGold = 'framed-golden',\n FramedGold2 = 'framed-golden-2',\n FramedGrey = 'framed-grey',\n}\nexport interface IRPGUIContainerProps {\n type: RPGUIContainerTypes;\n children: React.ReactNode;\n width?: string;\n height?: string;\n className?: string;\n}\n\nexport const RPGUIContainer: React.FC<IRPGUIContainerProps> = ({\n children,\n type,\n width = '50%',\n height,\n className,\n}) => {\n return (\n <Container\n width={width}\n height={height || 'auto'}\n className={`rpgui-container ${type} ${className}`}\n >\n {children}\n </Container>\n );\n};\n\ninterface IContainerProps {\n width: string;\n height: string;\n}\n\nconst Container = styled.div<IContainerProps>`\n height: ${(props) => props.height};\n width: ${({ width }) => width};\n display: flex;\n flex-wrap: wrap;\n image-rendering: pixelated;\n`;\n","const img = require('./alice.png'); export default img;","const img = require('./space.gif'); export default img;","export const chunkString = (str: string, length: number) => {\n return str.match(new RegExp('.{1,' + length + '}', 'g'));\n};\n","import React, { useEffect, useState } from 'react';\nimport styled from 'styled-components';\n\ninterface IProps {\n text: string;\n onFinish?: () => void;\n onStart?: () => void;\n}\n\nexport const DynamicText: React.FC<IProps> = ({ text, onFinish, onStart }) => {\n const [textState, setTextState] = useState<string>('');\n\n useEffect(() => {\n let i = 0;\n const interval = setInterval(() => {\n // on every interval, show one more character\n\n if (i === 0) {\n if (onStart) {\n onStart();\n }\n }\n\n if (i < text.length) {\n setTextState(text.substring(0, i + 1));\n i++;\n } else {\n clearInterval(interval);\n if (onFinish) {\n onFinish();\n }\n }\n }, 50);\n\n return () => {\n clearInterval(interval);\n };\n }, [text]);\n\n return <TextContainer>{textState}</TextContainer>;\n};\n\nconst TextContainer = styled.p`\n font-size: 0.7rem !important;\n color: white;\n text-shadow: 1px 1px 0px #000000;\n letter-spacing: 1.2px;\n word-break: normal;\n`;\n","import React, { useEffect, useState } from 'react';\nimport styled from 'styled-components';\nimport { chunkString } from '../../libs/StringHelpers';\nimport { DynamicText } from '../typography/DynamicText';\n\ninterface IProps {\n text: string;\n onClose: () => void;\n onEndStep: () => void;\n onStartStep: () => void;\n}\n\nexport const NPCDialogText: React.FC<IProps> = ({\n text,\n onClose,\n onEndStep,\n onStartStep,\n}) => {\n const textChunks = chunkString(text, 85);\n\n const [chunkIndex, setChunkIndex] = useState<number>(0);\n\n const onHandleSpacePress = (event: KeyboardEvent) => {\n if (event.code === 'Space') {\n const hasNextChunk = textChunks?.[chunkIndex + 1] || false;\n\n if (hasNextChunk) {\n setChunkIndex((prev) => prev + 1);\n } else {\n // if there's no more text chunks, close the dialog\n onClose();\n }\n }\n };\n\n useEffect(() => {\n document.addEventListener('keydown', onHandleSpacePress);\n\n return () => document.removeEventListener('keydown', onHandleSpacePress);\n }, [chunkIndex]);\n\n return (\n <Container>\n <DynamicText\n text={textChunks?.[chunkIndex] || ''}\n onFinish={onEndStep}\n onStart={onStartStep}\n />\n </Container>\n );\n};\n\nconst Container = styled.div``;\n","import React from 'react';\n\n//@ts-ignore\nexport const useEventListener = (type, handler, el = window) => {\n const savedHandler = React.useRef();\n\n React.useEffect(() => {\n savedHandler.current = handler;\n }, [handler]);\n\n React.useEffect(() => {\n //@ts-ignore\n const listener = (e) => savedHandler.current(e);\n\n el.addEventListener(type, listener);\n\n return () => {\n el.removeEventListener(type, listener);\n };\n }, [type, el]);\n};\n","import React, { useEffect, useState } from 'react';\nimport styled from 'styled-components';\nimport { useEventListener } from '../../../hooks/useEventListener';\nimport { DynamicText } from '../../typography/DynamicText';\n\nexport interface IQuestionDialogAnswer {\n id: number;\n text: string;\n nextQuestionId?: number;\n}\n\nexport interface IQuestionDialog {\n id: number;\n text: string;\n answerIds?: number[];\n}\n\nexport interface IProps {\n questions: IQuestionDialog[];\n answers: IQuestionDialogAnswer[];\n onClose: () => void;\n}\n\nexport const QuestionDialog: React.FC<IProps> = ({\n questions,\n answers,\n onClose,\n}) => {\n const [currentQuestion, setCurrentQuestion] = useState(questions[0]);\n\n const [canShowAnswers, setCanShowAnswers] = useState<boolean>(false);\n\n const onGetFirstAnswer = () => {\n if (!currentQuestion.answerIds || currentQuestion.answerIds.length === 0) {\n return null;\n }\n\n const firstAnswerId = currentQuestion.answerIds![0];\n\n return answers.find((answer) => answer.id === firstAnswerId);\n };\n\n const [currentAnswer, setCurrentAnswer] =\n useState<IQuestionDialogAnswer | null>(onGetFirstAnswer()!);\n\n useEffect(() => {\n setCurrentAnswer(onGetFirstAnswer()!);\n }, [currentQuestion]);\n\n const onGetAnswers = (answerIds: number[]) => {\n return answerIds.map((answerId: number) =>\n answers.find((answer) => answer.id === answerId)\n );\n };\n\n const onKeyPress = (e: KeyboardEvent) => {\n switch (e.key) {\n case 'ArrowDown':\n // select next answer, if any.\n // if no next answer, select first answer\n // const nextAnswer = onGetAnswers(currentQuestion.answerIds!).find(\n // (answer) => answer?.id === currentAnswer!.id + 1\n // );\n\n const nextAnswerIndex = onGetAnswers(\n currentQuestion.answerIds!\n ).findIndex((answer) => answer?.id === currentAnswer!.id + 1);\n\n const nextAnswerID = currentQuestion.answerIds![nextAnswerIndex];\n\n // console.log(nextAnswerIndex);\n\n const nextAnswer = onGetAnswers(currentQuestion.answerIds!).find(\n (answer) => answer?.id === nextAnswerID\n );\n\n setCurrentAnswer(nextAnswer || onGetFirstAnswer()!);\n\n break;\n case 'ArrowUp':\n // select previous answer, if any.\n // if no previous answer, select last answer\n\n const previousAnswerIndex = onGetAnswers(\n currentQuestion.answerIds!\n ).findIndex((answer) => answer?.id === currentAnswer!.id - 1);\n\n const previousAnswerID =\n currentQuestion.answerIds &&\n currentQuestion.answerIds[previousAnswerIndex];\n\n const previousAnswer = onGetAnswers(currentQuestion.answerIds!).find(\n (answer) => answer?.id === previousAnswerID\n );\n\n if (previousAnswer) {\n setCurrentAnswer(previousAnswer);\n } else {\n setCurrentAnswer(onGetAnswers(currentQuestion.answerIds!).pop()!);\n }\n\n break;\n case 'Enter':\n setCanShowAnswers(false);\n\n if (!currentAnswer?.nextQuestionId) {\n onClose();\n return;\n } else {\n setCurrentQuestion(\n questions.find(\n (question) => question.id === currentAnswer!.nextQuestionId\n )!\n );\n }\n\n break;\n }\n };\n useEventListener('keydown', onKeyPress);\n\n const onAnswerClick = (answer: IQuestionDialogAnswer) => {\n setCanShowAnswers(false);\n if (answer.nextQuestionId) {\n // if there is a next question, go to it\n setCurrentQuestion(\n questions.find((question) => question.id === answer.nextQuestionId)!\n );\n } else {\n // else, finish dialog!\n onClose();\n }\n };\n\n const onRenderCurrentAnswers = () => {\n const answerIds = currentQuestion.answerIds;\n if (!answerIds) {\n return null;\n }\n\n const answers = onGetAnswers(answerIds);\n\n if (!answers) {\n return null;\n }\n\n return answers.map((answer) => {\n const isSelected = currentAnswer?.id === answer?.id;\n const selectedColor = isSelected ? 'yellow' : 'white';\n\n if (answer) {\n return (\n <AnswerRow key={`answer_${answer.id}`}>\n <AnswerSelectedIcon color={selectedColor}>\n {isSelected ? 'X' : null}\n </AnswerSelectedIcon>\n\n <Answer\n key={answer.id}\n onClick={() => onAnswerClick(answer)}\n color={selectedColor}\n >\n {answer.text}\n </Answer>\n </AnswerRow>\n );\n }\n\n return null;\n });\n };\n\n return (\n <Container>\n <QuestionContainer>\n <DynamicText\n text={currentQuestion.text}\n onStart={() => setCanShowAnswers(false)}\n onFinish={() => setCanShowAnswers(true)}\n />\n </QuestionContainer>\n\n {canShowAnswers && (\n <AnswersContainer>{onRenderCurrentAnswers()}</AnswersContainer>\n )}\n </Container>\n );\n};\n\nconst Container = styled.div`\n display: flex;\n\n word-break: break-all;\n\n box-sizing: border-box;\n justify-content: flex-start;\n align-items: flex-start;\n flex-wrap: wrap;\n`;\n\nconst QuestionContainer = styled.div`\n flex: 100%;\n width: 100%;\n`;\n\nconst AnswersContainer = styled.div`\n flex: 100%;\n`;\n\ninterface IAnswerProps {\n color: string;\n}\n\nconst Answer = styled.p<IAnswerProps>`\n flex: auto;\n color: ${(props) => props.color} !important;\n font-size: 0.65rem !important;\n background: inherit;\n border: none;\n`;\n\nconst AnswerSelectedIcon = styled.span<IAnswerProps>`\n flex: 5% 0 0;\n color: ${(props) => props.color} !important;\n`;\n\nconst AnswerRow = styled.div`\n display: flex;\n flex-wrap: wrap;\n justify-content: center;\n align-items: center;\n margin-bottom: 0.5rem;\n height: 22px;\n\n p {\n line-height: unset;\n margin-top: 0;\n margin-bottom: 0rem;\n }\n`;\n","import React, { useState } from 'react';\nimport styled from 'styled-components';\nimport { RPGUIContainer, RPGUIContainerTypes } from '../RPGUIContainer';\nimport aliceDefaultThumbnail from './img/npcDialog/npcThumbnails/alice.png';\nimport pressSpaceGif from './img/space.gif';\nimport { NPCDialogText } from './NPCDialogText';\nimport {\n IQuestionDialog,\n IQuestionDialogAnswer,\n QuestionDialog,\n} from './QuestionDialog/QuestionDialog';\n\nexport enum NPCDialogType {\n TextOnly = 'TextOnly',\n TextAndThumbnail = 'TextAndThumbnail',\n}\n\nexport interface INPCDialogProps {\n text?: string;\n type: NPCDialogType;\n imagePath?: string;\n onClose?: () => void;\n isQuestionDialog?: boolean;\n answers?: IQuestionDialogAnswer[];\n questions?: IQuestionDialog[];\n}\n\nexport const NPCDialog: React.FC<INPCDialogProps> = ({\n text,\n type,\n onClose,\n imagePath,\n isQuestionDialog = false,\n questions,\n answers,\n}) => {\n const [showGoNextIndicator, setShowGoNextIndicator] =\n useState<boolean>(false);\n\n return (\n <RPGUIContainer\n type={RPGUIContainerTypes.FramedGold}\n width={isQuestionDialog ? '600px' : '50%'}\n height={'180px'}\n >\n {isQuestionDialog && questions && answers ? (\n <>\n <TextContainer\n flex={type === NPCDialogType.TextAndThumbnail ? '70%' : '100%'}\n >\n <QuestionDialog\n questions={questions}\n answers={answers}\n onClose={() => {\n if (onClose) {\n onClose();\n }\n }}\n />\n </TextContainer>\n {type === NPCDialogType.TextAndThumbnail && (\n <ThumbnailContainer>\n <NPCThumbnail src={imagePath || aliceDefaultThumbnail} />\n </ThumbnailContainer>\n )}\n </>\n ) : (\n <>\n <Container>\n <TextContainer\n flex={type === NPCDialogType.TextAndThumbnail ? '70%' : '100%'}\n >\n <NPCDialogText\n onStartStep={() => setShowGoNextIndicator(false)}\n onEndStep={() => setShowGoNextIndicator(true)}\n text={text || 'No text provided.'}\n onClose={() => {\n if (onClose) {\n onClose();\n }\n }}\n />\n </TextContainer>\n {type === NPCDialogType.TextAndThumbnail && (\n <ThumbnailContainer>\n <NPCThumbnail src={imagePath || aliceDefaultThumbnail} />\n </ThumbnailContainer>\n )}\n </Container>\n {showGoNextIndicator && (\n <PressSpaceIndicator\n right={type === NPCDialogType.TextOnly ? '1rem' : '10.5rem'}\n src={pressSpaceGif}\n />\n )}\n </>\n )}\n </RPGUIContainer>\n );\n};\n\nconst Container = styled.div`\n display: flex;\n width: 100%;\n height: 100%;\n\n box-sizing: border-box;\n justify-content: center;\n align-items: flex-start;\n position: relative;\n`;\n\ninterface ITextContainerProps {\n flex: string;\n}\n\nconst TextContainer = styled.div<ITextContainerProps>`\n flex: ${({ flex }) => flex} 0 0;\n width: 355px;\n`;\n\nconst ThumbnailContainer = styled.div`\n flex: 30% 0 0;\n display: flex;\n justify-content: flex-end;\n`;\n\nconst NPCThumbnail = styled.img`\n image-rendering: pixelated;\n height: 128px;\n width: 128px;\n`;\n\ninterface IPressSpaceIndicatorProps {\n right: string;\n}\n\nconst PressSpaceIndicator = styled.img<IPressSpaceIndicatorProps>`\n position: absolute;\n right: ${({ right }) => right};\n bottom: 1rem;\n height: 20.7px;\n image-rendering: -webkit-optimize-contrast;\n`;\n","import React from 'react';\nimport styled from 'styled-components';\n\nexport interface IBarProps {\n max: number;\n value: number;\n color: 'red' | 'blue' | 'green';\n style?: Record<string, any>;\n displayText?: boolean;\n percentageWidth?: number;\n minWidth?: number;\n}\n\nexport const ProgressBar: React.FC<IBarProps> = ({\n max,\n value,\n color,\n displayText = true,\n percentageWidth = 40,\n minWidth = 100,\n style,\n}) => {\n const calculatePercentageValue = function (max: number, value: number) {\n if (value > max) {\n value = max;\n }\n return (value * 100) / max;\n };\n\n return (\n <Container\n className=\"rpgui-progress\"\n data-value={calculatePercentageValue(max, value) / 100}\n data-rpguitype=\"progress\"\n percentageWidth={percentageWidth}\n minWidth={minWidth}\n style={style}\n >\n {displayText && (\n <TextOverlay>\n <ProgressBarText>\n {value}/{max}\n </ProgressBarText>\n </TextOverlay>\n )}\n <div className=\" rpgui-progress-track\">\n <div\n className={`rpgui-progress-fill ${color} `}\n style={{\n left: '0px',\n width: calculatePercentageValue(max, value) + '%',\n }}\n ></div>\n </div>\n <div className=\" rpgui-progress-left-edge\"></div>\n <div className=\" rpgui-progress-right-edge\"></div>\n </Container>\n );\n};\n\nconst ProgressBarText = styled.span`\n font-size: 1rem;\n color: white;\n text-align: center;\n z-index: 1;\n position: absolute;\n left: 50%;\n transform: translateX(-50%);\n top: 12px;\n`;\n\nconst TextOverlay = styled.div`\n width: 100%;\n position: relative;\n`;\n\ninterface IContainerProps {\n percentageWidth?: number;\n minWidth?: number;\n style?: Record<string, any>;\n}\n\nconst Container = styled.div<IContainerProps>`\n display: flex;\n flex-direction: column;\n min-width: ${(props) => props.minWidth}px;\n width: ${(props) => props.percentageWidth}%;\n justify-content: start;\n align-items: flex-start;\n ${(props) => props.style}\n`;\n","import React, { useEffect, useState } from 'react';\n\nexport interface IRadioItems {\n label: string;\n value: string;\n}\n\nexport interface IRadioProps {\n name: string;\n items: IRadioItems[];\n onChange: (value: string) => void;\n}\n\nexport const InputRadio: React.FC<IRadioProps> = ({\n name,\n items,\n onChange,\n}) => {\n const [selectedValue, setSelectedValue] = useState<string>();\n const handleClick = () => {\n let element = document.querySelector(\n `input[name=${name}]:checked`\n ) as HTMLInputElement;\n const elementValue = element.value;\n setSelectedValue(elementValue);\n };\n\n useEffect(() => {\n if (selectedValue) {\n onChange(selectedValue);\n }\n }, [selectedValue]);\n\n return (\n <div id=\"elemento-radio\">\n {items.map((element) => {\n return (\n <>\n <input\n key={element.value}\n className=\"rpgui-radio\"\n value={element.value}\n name={name}\n type=\"radio\"\n />\n <label onClick={handleClick}>{element.label}</label>\n <br />\n </>\n );\n })}\n </div>\n );\n};\n","import React, { useState } from 'react';\nimport styled from 'styled-components';\nimport { v4 as uuidv4 } from 'uuid';\nimport { useEventListener } from '../hooks/useEventListener';\nimport { _RPGUI } from './RPGUIRoot';\n\nexport enum RangeSliderType {\n Slider = 'rpgui-slider',\n GoldSlider = 'rpgui-slider golden',\n}\n\nexport interface IRangeSliderProps {\n type: RangeSliderType;\n valueMin: number;\n valueMax: number;\n width: string;\n onChange: (value: number) => void;\n}\n\nexport const RangeSlider: React.FC<IRangeSliderProps> = ({\n type,\n valueMin,\n valueMax,\n width,\n onChange,\n}) => {\n const sliderId = uuidv4();\n\n const [wasMouseDownFirst, setWasMouseDownFirst] = useState<boolean>(false);\n\n useEventListener('mouseup', () => {\n if (wasMouseDownFirst) {\n onHandleMouseUp();\n }\n setWasMouseDownFirst(false);\n });\n\n const onHandleMouseUp = () => {\n const rpguiSlider = document.getElementById(`rpgui-slider-${sliderId}`);\n const value = _RPGUI.get_value(rpguiSlider);\n\n onChange(Number(value));\n };\n\n return (\n <div\n onMouseUp={onHandleMouseUp}\n onMouseDown={() => setWasMouseDownFirst(true)}\n >\n <Input\n className={\n type === RangeSliderType.Slider\n ? RangeSliderType.Slider\n : RangeSliderType.GoldSlider\n }\n type=\"range\"\n style={{ width: width }}\n min={valueMin}\n max={valueMax}\n id={`rpgui-slider-${sliderId}`}\n />\n </div>\n );\n};\n\nconst Input = styled.input`\n opacity: 0;\n`;\n","import React from 'react';\n\nexport interface ITextArea\n extends React.DetailedHTMLProps<\n React.TextareaHTMLAttributes<HTMLTextAreaElement>,\n HTMLTextAreaElement\n > {}\n\nexport const TextArea: React.FC<ITextArea> = ({ ...props }) => {\n return <textarea {...props} />;\n};\n","/* eslint-disable react/require-default-props */\nimport React from 'react';\nimport styled from 'styled-components';\n\ninterface IProps {\n maxLines?: number;\n children: React.ReactNode;\n}\n\nexport const Truncate: React.FC<IProps> = ({ maxLines = 1, children }) => {\n return <Container maxLines={maxLines}>{children}</Container>;\n};\n\ninterface IContainerProps {\n maxLines: number;\n}\n\nconst Container = styled.div<IContainerProps>`\n display: -webkit-box;\n max-width: 100%;\n max-height: 100%;\n -webkit-line-clamp: ${(props) => props.maxLines};\n -webkit-box-orient: vertical;\n overflow: hidden;\n`;\n"],"names":["ButtonTypes","Button","children","buttonType","props","React","ButtonContainer","className","styled","button","CheckButton","items","onChange","generateSelectedValuesList","selectedValues","forEach","item","label","useState","setSelectedValues","handleClick","useEffect","id","map","element","index","key","type","checked","onClick","_RPGUI","RPGUI","RPGUIRoot","Dropdown","options","width","dropdownId","uuidv4","selectedValue","setSelectedValue","document","getElementById","dropdownValue","get_value","addEventListener","event","target","value","style","option","Input","ListMenu","onSelected","x","y","fontSize","Container","overflow","params","ListElement","text","div","li","RPGUIContainerTypes","RPGUIContainer","height","img","chunkString","str","length","match","RegExp","DynamicText","onFinish","onStart","textState","setTextState","i","interval","setInterval","substring","clearInterval","TextContainer","p","NPCDialogText","onClose","onEndStep","onStartStep","textChunks","chunkIndex","setChunkIndex","onHandleSpacePress","code","hasNextChunk","prev","removeEventListener","useEventListener","handler","el","window","savedHandler","useRef","current","listener","e","QuestionDialog","questions","answers","currentQuestion","setCurrentQuestion","canShowAnswers","setCanShowAnswers","onGetFirstAnswer","answerIds","firstAnswerId","find","answer","currentAnswer","setCurrentAnswer","onGetAnswers","answerId","onKeyPress","nextAnswerIndex","findIndex","nextAnswerID","nextAnswer","previousAnswerIndex","previousAnswerID","previousAnswer","pop","nextQuestionId","question","onAnswerClick","onRenderCurrentAnswers","isSelected","selectedColor","AnswerRow","AnswerSelectedIcon","color","Answer","QuestionContainer","AnswersContainer","span","NPCDialogType","NPCDialog","imagePath","isQuestionDialog","showGoNextIndicator","setShowGoNextIndicator","FramedGold","flex","TextAndThumbnail","ThumbnailContainer","NPCThumbnail","src","aliceDefaultThumbnail","PressSpaceIndicator","right","TextOnly","pressSpaceGif","ProgressBar","max","displayText","percentageWidth","minWidth","calculatePercentageValue","TextOverlay","ProgressBarText","left","InputRadio","name","querySelector","elementValue","RangeSliderType","RangeSlider","valueMin","valueMax","sliderId","wasMouseDownFirst","setWasMouseDownFirst","onHandleMouseUp","rpguiSlider","Number","onMouseUp","onMouseDown","Slider","GoldSlider","min","input","TextArea","Truncate","maxLines"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"long-bow.cjs.development.js","sources":["../src/components/Button.tsx","../src/components/CheckButton.tsx","../src/constants/uiColors.ts","../src/components/Input.tsx","../src/components/RPGUIContainer.tsx","../src/components/shared/Column.tsx","../src/components/Chat/Chat.tsx","../src/components/RPGUIRoot.tsx","../src/components/Dropdown.tsx","../src/components/ListMenu.tsx","../src/components/NPCDialog/img/npcDialog/npcThumbnails/alice.png","../src/components/NPCDialog/img/space.gif","../src/libs/StringHelpers.ts","../src/components/typography/DynamicText.tsx","../src/components/NPCDialog/NPCDialogText.tsx","../src/hooks/useEventListener.ts","../src/components/NPCDialog/QuestionDialog/QuestionDialog.tsx","../src/components/NPCDialog/NPCDialog.tsx","../src/components/ProgressBar.tsx","../src/components/RadioButton.tsx","../src/components/RangeSlider.tsx","../src/components/TextArea.tsx","../src/components/Truncate.tsx"],"sourcesContent":["import React from 'react';\nimport styled from 'styled-components';\n\nexport enum ButtonTypes {\n RPGUIButton = 'rpgui-button',\n RPGUIGoldButton = 'rpgui-button golden',\n}\n\nexport interface IButtonProps {\n children: React.ReactNode;\n buttonType: ButtonTypes;\n}\n\nexport const Button: React.FC<\n IButtonProps &\n React.DetailedHTMLProps<\n React.ButtonHTMLAttributes<HTMLButtonElement>,\n HTMLButtonElement\n >\n> = ({ children, buttonType, ...props }) => {\n return (\n <ButtonContainer className={`${buttonType}`} {...props}>\n <p>{children}</p>\n </ButtonContainer>\n );\n};\n\nconst ButtonContainer = styled.button<any>`\n height: 45px;\n font-size: 11.5px;\n`;\n","import React, { useEffect, useState } from 'react';\n\nexport interface ICheckItems {\n label: string;\n value: string;\n}\n\nexport interface ICheckProps {\n items: ICheckItems[];\n onChange: (selectedValues: IChecklistSelectedValues) => void;\n}\n\ninterface IChecklistSelectedValues {\n [label: string]: boolean;\n}\n\nexport const CheckButton: React.FC<ICheckProps> = ({ items, onChange }) => {\n const generateSelectedValuesList = () => {\n const selectedValues: IChecklistSelectedValues = {};\n\n items.forEach((item) => {\n selectedValues[item.label] = false;\n });\n\n return selectedValues;\n };\n\n const [selectedValues, setSelectedValues] =\n useState<IChecklistSelectedValues>(generateSelectedValuesList());\n\n const handleClick = (label: string) => {\n setSelectedValues({\n ...selectedValues,\n [label]: !selectedValues[label],\n });\n };\n\n useEffect(() => {\n if (selectedValues) {\n onChange(selectedValues);\n }\n }, [selectedValues]);\n\n return (\n <div id=\"elemento-checkbox\">\n {items?.map((element, index) => {\n return (\n <div key={`${element.label}_${index}`}>\n <input\n className=\"rpgui-checkbox\"\n type=\"checkbox\"\n checked={selectedValues[element.label]}\n onChange={() => {}}\n />\n <label onClick={() => handleClick(element.label)}>\n {element.label}\n </label>\n <br />\n </div>\n );\n })}\n </div>\n );\n};\n","export const colors = {\n darkGrey: '#3e3e3e',\n};\n","import React from 'react';\n\nexport interface IInputProps\n extends React.DetailedHTMLProps<\n React.InputHTMLAttributes<HTMLInputElement>,\n HTMLInputElement\n > {}\n\nexport const Input: React.FC<IInputProps> = ({ ...props }) => {\n return <input {...props} />;\n};\n","import React from 'react';\nimport styled from 'styled-components';\n\nexport enum RPGUIContainerTypes {\n Framed = 'framed',\n FramedGold = 'framed-golden',\n FramedGold2 = 'framed-golden-2',\n FramedGrey = 'framed-grey',\n}\nexport interface IRPGUIContainerProps {\n type: RPGUIContainerTypes;\n children: React.ReactNode;\n width?: string;\n height?: string;\n className?: string;\n}\n\nexport const RPGUIContainer: React.FC<IRPGUIContainerProps> = ({\n children,\n type,\n width = '50%',\n height,\n className,\n}) => {\n return (\n <Container\n width={width}\n height={height || 'auto'}\n className={`rpgui-container ${type} ${className}`}\n >\n {children}\n </Container>\n );\n};\n\ninterface IContainerProps {\n width: string;\n height: string;\n}\n\nconst Container = styled.div<IContainerProps>`\n height: ${(props) => props.height};\n width: ${({ width }) => width};\n display: flex;\n flex-wrap: wrap;\n image-rendering: pixelated;\n`;\n","import styled from 'styled-components';\n\ninterface IColumn {\n flex?: number;\n alignItems?: string;\n justifyContent?: string;\n flexWrap?: string;\n}\n\nexport const Column = styled.div<IColumn>`\n flex: ${(props) => props.flex || 'auto'};\n display: flex;\n flex-wrap: ${(props) => props.flexWrap || 'nowrap'};\n align-items: ${(props) => props.alignItems || 'flex-start'};\n justify-content: ${(props) => props.justifyContent || 'flex-start'};\n`;\n","import { IChatMessage } from '@rpg-engine/shared';\nimport dayjs from 'dayjs';\nimport React, { useEffect, useState } from 'react';\nimport styled from 'styled-components';\nimport { colors } from '../../constants/uiColors';\nimport { Button, ButtonTypes } from '../Button';\nimport { Input } from '../Input';\nimport { RPGUIContainer, RPGUIContainerTypes } from '../RPGUIContainer';\nimport { Column } from '../shared/Column';\n\nexport interface IChatProps {\n chatMessages: IChatMessage[];\n onSendChatMessage: (message: string) => void;\n onCloseButton: () => void;\n opacity?: number;\n width?: string;\n height?: string;\n}\n\nexport const Chat: React.FC<IChatProps> = ({\n chatMessages,\n onSendChatMessage,\n opacity = 1,\n width = '100%',\n height = '250px',\n onCloseButton,\n}) => {\n const [message, setMessage] = useState('');\n\n useEffect(() => {\n scrollChatToBottom();\n }, []);\n\n useEffect(() => {\n scrollChatToBottom();\n }, [chatMessages]);\n\n const scrollChatToBottom = () => {\n const scrollingElement = document.querySelector('.chat-body');\n if (scrollingElement) {\n scrollingElement.scrollTop = scrollingElement.scrollHeight;\n }\n };\n\n const handleSubmit = (event: React.SyntheticEvent<HTMLFormElement>) => {\n event.preventDefault();\n onSendChatMessage(message);\n setMessage('');\n };\n const getInputValue = (value: string) => {\n setMessage(value);\n };\n\n return (\n <Container>\n <CustomContainer\n type={RPGUIContainerTypes.FramedGrey}\n width={width}\n height={height}\n className=\"chat-container\"\n opacity={opacity}\n >\n {onCloseButton && <CloseButton onClick={onCloseButton}>X</CloseButton>}\n <RPGUIContainer\n type={RPGUIContainerTypes.FramedGrey}\n width={'100%'}\n height={'80%'}\n className=\"chat-body dark-background\"\n >\n {chatMessages.length ? (\n chatMessages.map(({ _id, createdAt, emitter, message }, index) => (\n <MessageText key={`${_id}_${index}`}>{`${dayjs(createdAt).format(\n 'HH:mm'\n )} ${emitter.name}: ${message}`}</MessageText>\n ))\n ) : (\n <MessageText>No messages available.</MessageText>\n )}\n </RPGUIContainer>\n\n <Form onSubmit={handleSubmit}>\n <Column flex={70}>\n <CustomInput\n value={message}\n id=\"inputMessage\"\n onChange={(e) => getInputValue(e.target.value)}\n height={20}\n className=\"dark-background\"\n type=\"text\"\n autoComplete=\"off\"\n />\n </Column>\n <Column justifyContent=\"flex-end\">\n <Button buttonType={ButtonTypes.RPGUIButton}>Send</Button>\n </Column>\n </Form>\n </CustomContainer>\n </Container>\n );\n};\n\nconst Container = styled.div`\n position: relative;\n`;\n\nconst CloseButton = styled.div`\n position: absolute;\n top: 3px;\n right: 0px;\n color: white;\n z-index: 22;\n font-size: 10px;\n`;\n\nconst CustomInput = styled(Input)`\n height: 30px;\n width: 100%;\n\n .rpgui-content .input {\n min-height: 39px;\n }\n`;\n\ninterface ICustomContainerProps {\n opacity: number;\n}\n\nconst CustomContainer = styled(RPGUIContainer)`\n display: block;\n\n opacity: ${(props: ICustomContainerProps) => props.opacity};\n\n &:hover {\n opacity: 1;\n }\n\n .dark-background {\n background-color: ${colors.darkGrey} !important;\n }\n\n .chat-body {\n &.rpgui-container.framed-grey {\n background: unset;\n }\n max-height: 170px;\n overflow-y: auto;\n }\n`;\n\nconst Form = styled.form`\n display: flex;\n width: 100%;\n justify-content: center;\n align-items: center;\n`;\n\nconst MessageText = styled.p`\n display: block !important;\n width: 100%;\n font-size: 0.7rem !important;\n overflow-y: auto;\n margin: 0;\n`;\n","import React from 'react';\nimport 'rpgui/rpgui.min.css';\nimport 'rpgui/rpgui.min.js';\n\ninterface IProps {\n children: React.ReactNode;\n}\n\n//@ts-ignore\nexport const _RPGUI = RPGUI;\n\nexport const RPGUIRoot: React.FC<IProps> = ({ children }) => {\n return <div className=\"rpgui-content\">{children}</div>;\n};\n","import React, { useEffect, useState } from 'react';\nimport { v4 as uuidv4 } from 'uuid';\nimport { _RPGUI } from './RPGUIRoot';\n\nexport interface IOptionsProps {\n id: number;\n value: string;\n option: string;\n}\n\nexport interface IDropdownProps {\n options: IOptionsProps[];\n width?: string;\n onChange: (value: string) => void;\n}\n\nexport const Dropdown: React.FC<IDropdownProps> = ({\n options,\n width,\n onChange,\n}) => {\n const dropdownId = uuidv4();\n\n const [selectedValue, setSelectedValue] = useState<string>('');\n\n useEffect(() => {\n const element = document.getElementById(`rpgui-dropdown-${dropdownId}`);\n const dropdownValue = _RPGUI.get_value(element);\n setSelectedValue(dropdownValue);\n\n element?.addEventListener('change', (event: any) => {\n setSelectedValue(event?.target.value);\n });\n }, []);\n\n useEffect(() => {\n if (selectedValue) {\n onChange(selectedValue);\n }\n }, [selectedValue]);\n\n return (\n <select\n id={`rpgui-dropdown-${dropdownId}`}\n style={{ width: width }}\n className=\"rpgui-dropdown\"\n >\n {options.map((option) => {\n return (\n <option key={option.id} value={option.value}>\n {option.option}\n </option>\n );\n })}\n </select>\n );\n};\n","import React from 'react';\nimport styled from 'styled-components';\n\ninterface IListMenuOption {\n id: string;\n text: string;\n}\n\nexport interface IListMenuProps {\n x: number;\n y: number;\n options: IListMenuOption[];\n onSelected: (selectedOptionId: string) => void;\n fontSize?: number;\n}\n\nexport const ListMenu: React.FC<IListMenuProps> = ({\n options,\n onSelected,\n x,\n y,\n fontSize = 0.8,\n}) => {\n return (\n <Container x={x} y={y} fontSize={fontSize}>\n <ul className=\"rpgui-list-imp\" style={{ overflow: 'hidden' }}>\n {options.map((params) => (\n <ListElement\n key={params.text}\n onClick={() => {\n onSelected(params.id);\n }}\n >\n {params.text}\n </ListElement>\n ))}\n </ul>\n </Container>\n );\n};\n\ninterface IContainerProps {\n x?: number;\n y?: number;\n fontSize?: number;\n}\n\nconst Container = styled.div<IContainerProps>`\n display: flex;\n flex-direction: column;\n width: 100%;\n justify-content: start;\n align-items: flex-start;\n position: absolute;\n top: ${(props) => props.y || 0}px;\n left: ${(props) => props.x || 0}px;\n\n li {\n font-size: ${(props) => props.fontSize}em;\n }\n`;\n\nconst ListElement = styled.li`\n margin-right: 0.5rem;\n`;\n","const img = require('./alice.png'); export default img;","const img = require('./space.gif'); export default img;","export const chunkString = (str: string, length: number) => {\n return str.match(new RegExp('.{1,' + length + '}', 'g'));\n};\n","import React, { useEffect, useState } from 'react';\nimport styled from 'styled-components';\n\ninterface IProps {\n text: string;\n onFinish?: () => void;\n onStart?: () => void;\n}\n\nexport const DynamicText: React.FC<IProps> = ({ text, onFinish, onStart }) => {\n const [textState, setTextState] = useState<string>('');\n\n useEffect(() => {\n let i = 0;\n const interval = setInterval(() => {\n // on every interval, show one more character\n\n if (i === 0) {\n if (onStart) {\n onStart();\n }\n }\n\n if (i < text.length) {\n setTextState(text.substring(0, i + 1));\n i++;\n } else {\n clearInterval(interval);\n if (onFinish) {\n onFinish();\n }\n }\n }, 50);\n\n return () => {\n clearInterval(interval);\n };\n }, [text]);\n\n return <TextContainer>{textState}</TextContainer>;\n};\n\nconst TextContainer = styled.p`\n font-size: 0.7rem !important;\n color: white;\n text-shadow: 1px 1px 0px #000000;\n letter-spacing: 1.2px;\n word-break: normal;\n`;\n","import React, { useEffect, useState } from 'react';\nimport styled from 'styled-components';\nimport { chunkString } from '../../libs/StringHelpers';\nimport { DynamicText } from '../typography/DynamicText';\n\ninterface IProps {\n text: string;\n onClose: () => void;\n onEndStep: () => void;\n onStartStep: () => void;\n}\n\nexport const NPCDialogText: React.FC<IProps> = ({\n text,\n onClose,\n onEndStep,\n onStartStep,\n}) => {\n const textChunks = chunkString(text, 85);\n\n const [chunkIndex, setChunkIndex] = useState<number>(0);\n\n const onHandleSpacePress = (event: KeyboardEvent) => {\n if (event.code === 'Space') {\n const hasNextChunk = textChunks?.[chunkIndex + 1] || false;\n\n if (hasNextChunk) {\n setChunkIndex((prev) => prev + 1);\n } else {\n // if there's no more text chunks, close the dialog\n onClose();\n }\n }\n };\n\n useEffect(() => {\n document.addEventListener('keydown', onHandleSpacePress);\n\n return () => document.removeEventListener('keydown', onHandleSpacePress);\n }, [chunkIndex]);\n\n return (\n <Container>\n <DynamicText\n text={textChunks?.[chunkIndex] || ''}\n onFinish={onEndStep}\n onStart={onStartStep}\n />\n </Container>\n );\n};\n\nconst Container = styled.div``;\n","import React from 'react';\n\n//@ts-ignore\nexport const useEventListener = (type, handler, el = window) => {\n const savedHandler = React.useRef();\n\n React.useEffect(() => {\n savedHandler.current = handler;\n }, [handler]);\n\n React.useEffect(() => {\n //@ts-ignore\n const listener = (e) => savedHandler.current(e);\n\n el.addEventListener(type, listener);\n\n return () => {\n el.removeEventListener(type, listener);\n };\n }, [type, el]);\n};\n","import React, { useEffect, useState } from 'react';\nimport styled from 'styled-components';\nimport { useEventListener } from '../../../hooks/useEventListener';\nimport { DynamicText } from '../../typography/DynamicText';\n\nexport interface IQuestionDialogAnswer {\n id: number;\n text: string;\n nextQuestionId?: number;\n}\n\nexport interface IQuestionDialog {\n id: number;\n text: string;\n answerIds?: number[];\n}\n\nexport interface IProps {\n questions: IQuestionDialog[];\n answers: IQuestionDialogAnswer[];\n onClose: () => void;\n}\n\nexport const QuestionDialog: React.FC<IProps> = ({\n questions,\n answers,\n onClose,\n}) => {\n const [currentQuestion, setCurrentQuestion] = useState(questions[0]);\n\n const [canShowAnswers, setCanShowAnswers] = useState<boolean>(false);\n\n const onGetFirstAnswer = () => {\n if (!currentQuestion.answerIds || currentQuestion.answerIds.length === 0) {\n return null;\n }\n\n const firstAnswerId = currentQuestion.answerIds![0];\n\n return answers.find((answer) => answer.id === firstAnswerId);\n };\n\n const [currentAnswer, setCurrentAnswer] =\n useState<IQuestionDialogAnswer | null>(onGetFirstAnswer()!);\n\n useEffect(() => {\n setCurrentAnswer(onGetFirstAnswer()!);\n }, [currentQuestion]);\n\n const onGetAnswers = (answerIds: number[]) => {\n return answerIds.map((answerId: number) =>\n answers.find((answer) => answer.id === answerId)\n );\n };\n\n const onKeyPress = (e: KeyboardEvent) => {\n switch (e.key) {\n case 'ArrowDown':\n // select next answer, if any.\n // if no next answer, select first answer\n // const nextAnswer = onGetAnswers(currentQuestion.answerIds!).find(\n // (answer) => answer?.id === currentAnswer!.id + 1\n // );\n\n const nextAnswerIndex = onGetAnswers(\n currentQuestion.answerIds!\n ).findIndex((answer) => answer?.id === currentAnswer!.id + 1);\n\n const nextAnswerID = currentQuestion.answerIds![nextAnswerIndex];\n\n // console.log(nextAnswerIndex);\n\n const nextAnswer = onGetAnswers(currentQuestion.answerIds!).find(\n (answer) => answer?.id === nextAnswerID\n );\n\n setCurrentAnswer(nextAnswer || onGetFirstAnswer()!);\n\n break;\n case 'ArrowUp':\n // select previous answer, if any.\n // if no previous answer, select last answer\n\n const previousAnswerIndex = onGetAnswers(\n currentQuestion.answerIds!\n ).findIndex((answer) => answer?.id === currentAnswer!.id - 1);\n\n const previousAnswerID =\n currentQuestion.answerIds &&\n currentQuestion.answerIds[previousAnswerIndex];\n\n const previousAnswer = onGetAnswers(currentQuestion.answerIds!).find(\n (answer) => answer?.id === previousAnswerID\n );\n\n if (previousAnswer) {\n setCurrentAnswer(previousAnswer);\n } else {\n setCurrentAnswer(onGetAnswers(currentQuestion.answerIds!).pop()!);\n }\n\n break;\n case 'Enter':\n setCanShowAnswers(false);\n\n if (!currentAnswer?.nextQuestionId) {\n onClose();\n return;\n } else {\n setCurrentQuestion(\n questions.find(\n (question) => question.id === currentAnswer!.nextQuestionId\n )!\n );\n }\n\n break;\n }\n };\n useEventListener('keydown', onKeyPress);\n\n const onAnswerClick = (answer: IQuestionDialogAnswer) => {\n setCanShowAnswers(false);\n if (answer.nextQuestionId) {\n // if there is a next question, go to it\n setCurrentQuestion(\n questions.find((question) => question.id === answer.nextQuestionId)!\n );\n } else {\n // else, finish dialog!\n onClose();\n }\n };\n\n const onRenderCurrentAnswers = () => {\n const answerIds = currentQuestion.answerIds;\n if (!answerIds) {\n return null;\n }\n\n const answers = onGetAnswers(answerIds);\n\n if (!answers) {\n return null;\n }\n\n return answers.map((answer) => {\n const isSelected = currentAnswer?.id === answer?.id;\n const selectedColor = isSelected ? 'yellow' : 'white';\n\n if (answer) {\n return (\n <AnswerRow key={`answer_${answer.id}`}>\n <AnswerSelectedIcon color={selectedColor}>\n {isSelected ? 'X' : null}\n </AnswerSelectedIcon>\n\n <Answer\n key={answer.id}\n onClick={() => onAnswerClick(answer)}\n color={selectedColor}\n >\n {answer.text}\n </Answer>\n </AnswerRow>\n );\n }\n\n return null;\n });\n };\n\n return (\n <Container>\n <QuestionContainer>\n <DynamicText\n text={currentQuestion.text}\n onStart={() => setCanShowAnswers(false)}\n onFinish={() => setCanShowAnswers(true)}\n />\n </QuestionContainer>\n\n {canShowAnswers && (\n <AnswersContainer>{onRenderCurrentAnswers()}</AnswersContainer>\n )}\n </Container>\n );\n};\n\nconst Container = styled.div`\n display: flex;\n\n word-break: break-all;\n\n box-sizing: border-box;\n justify-content: flex-start;\n align-items: flex-start;\n flex-wrap: wrap;\n`;\n\nconst QuestionContainer = styled.div`\n flex: 100%;\n width: 100%;\n`;\n\nconst AnswersContainer = styled.div`\n flex: 100%;\n`;\n\ninterface IAnswerProps {\n color: string;\n}\n\nconst Answer = styled.p<IAnswerProps>`\n flex: auto;\n color: ${(props) => props.color} !important;\n font-size: 0.65rem !important;\n background: inherit;\n border: none;\n`;\n\nconst AnswerSelectedIcon = styled.span<IAnswerProps>`\n flex: 5% 0 0;\n color: ${(props) => props.color} !important;\n`;\n\nconst AnswerRow = styled.div`\n display: flex;\n flex-wrap: wrap;\n justify-content: center;\n align-items: center;\n margin-bottom: 0.5rem;\n height: 22px;\n\n p {\n line-height: unset;\n margin-top: 0;\n margin-bottom: 0rem;\n }\n`;\n","import React, { useState } from 'react';\nimport styled from 'styled-components';\nimport { RPGUIContainer, RPGUIContainerTypes } from '../RPGUIContainer';\nimport aliceDefaultThumbnail from './img/npcDialog/npcThumbnails/alice.png';\nimport pressSpaceGif from './img/space.gif';\nimport { NPCDialogText } from './NPCDialogText';\nimport {\n IQuestionDialog,\n IQuestionDialogAnswer,\n QuestionDialog,\n} from './QuestionDialog/QuestionDialog';\n\nexport enum NPCDialogType {\n TextOnly = 'TextOnly',\n TextAndThumbnail = 'TextAndThumbnail',\n}\n\nexport interface INPCDialogProps {\n text?: string;\n type: NPCDialogType;\n imagePath?: string;\n onClose?: () => void;\n isQuestionDialog?: boolean;\n answers?: IQuestionDialogAnswer[];\n questions?: IQuestionDialog[];\n}\n\nexport const NPCDialog: React.FC<INPCDialogProps> = ({\n text,\n type,\n onClose,\n imagePath,\n isQuestionDialog = false,\n questions,\n answers,\n}) => {\n const [showGoNextIndicator, setShowGoNextIndicator] =\n useState<boolean>(false);\n\n return (\n <RPGUIContainer\n type={RPGUIContainerTypes.FramedGold}\n width={isQuestionDialog ? '600px' : '50%'}\n height={'180px'}\n >\n {isQuestionDialog && questions && answers ? (\n <>\n <TextContainer\n flex={type === NPCDialogType.TextAndThumbnail ? '70%' : '100%'}\n >\n <QuestionDialog\n questions={questions}\n answers={answers}\n onClose={() => {\n if (onClose) {\n onClose();\n }\n }}\n />\n </TextContainer>\n {type === NPCDialogType.TextAndThumbnail && (\n <ThumbnailContainer>\n <NPCThumbnail src={imagePath || aliceDefaultThumbnail} />\n </ThumbnailContainer>\n )}\n </>\n ) : (\n <>\n <Container>\n <TextContainer\n flex={type === NPCDialogType.TextAndThumbnail ? '70%' : '100%'}\n >\n <NPCDialogText\n onStartStep={() => setShowGoNextIndicator(false)}\n onEndStep={() => setShowGoNextIndicator(true)}\n text={text || 'No text provided.'}\n onClose={() => {\n if (onClose) {\n onClose();\n }\n }}\n />\n </TextContainer>\n {type === NPCDialogType.TextAndThumbnail && (\n <ThumbnailContainer>\n <NPCThumbnail src={imagePath || aliceDefaultThumbnail} />\n </ThumbnailContainer>\n )}\n </Container>\n {showGoNextIndicator && (\n <PressSpaceIndicator\n right={type === NPCDialogType.TextOnly ? '1rem' : '10.5rem'}\n src={pressSpaceGif}\n />\n )}\n </>\n )}\n </RPGUIContainer>\n );\n};\n\nconst Container = styled.div`\n display: flex;\n width: 100%;\n height: 100%;\n\n box-sizing: border-box;\n justify-content: center;\n align-items: flex-start;\n position: relative;\n`;\n\ninterface ITextContainerProps {\n flex: string;\n}\n\nconst TextContainer = styled.div<ITextContainerProps>`\n flex: ${({ flex }) => flex} 0 0;\n width: 355px;\n`;\n\nconst ThumbnailContainer = styled.div`\n flex: 30% 0 0;\n display: flex;\n justify-content: flex-end;\n`;\n\nconst NPCThumbnail = styled.img`\n image-rendering: pixelated;\n height: 128px;\n width: 128px;\n`;\n\ninterface IPressSpaceIndicatorProps {\n right: string;\n}\n\nconst PressSpaceIndicator = styled.img<IPressSpaceIndicatorProps>`\n position: absolute;\n right: ${({ right }) => right};\n bottom: 1rem;\n height: 20.7px;\n image-rendering: -webkit-optimize-contrast;\n`;\n","import React from 'react';\nimport styled from 'styled-components';\n\nexport interface IBarProps {\n max: number;\n value: number;\n color: 'red' | 'blue' | 'green';\n style?: Record<string, any>;\n displayText?: boolean;\n percentageWidth?: number;\n minWidth?: number;\n}\n\nexport const ProgressBar: React.FC<IBarProps> = ({\n max,\n value,\n color,\n displayText = true,\n percentageWidth = 40,\n minWidth = 100,\n style,\n}) => {\n const calculatePercentageValue = function (max: number, value: number) {\n if (value > max) {\n value = max;\n }\n return (value * 100) / max;\n };\n\n return (\n <Container\n className=\"rpgui-progress\"\n data-value={calculatePercentageValue(max, value) / 100}\n data-rpguitype=\"progress\"\n percentageWidth={percentageWidth}\n minWidth={minWidth}\n style={style}\n >\n {displayText && (\n <TextOverlay>\n <ProgressBarText>\n {value}/{max}\n </ProgressBarText>\n </TextOverlay>\n )}\n <div className=\" rpgui-progress-track\">\n <div\n className={`rpgui-progress-fill ${color} `}\n style={{\n left: '0px',\n width: calculatePercentageValue(max, value) + '%',\n }}\n ></div>\n </div>\n <div className=\" rpgui-progress-left-edge\"></div>\n <div className=\" rpgui-progress-right-edge\"></div>\n </Container>\n );\n};\n\nconst ProgressBarText = styled.span`\n font-size: 1rem;\n color: white;\n text-align: center;\n z-index: 1;\n position: absolute;\n left: 50%;\n transform: translateX(-50%);\n top: 12px;\n`;\n\nconst TextOverlay = styled.div`\n width: 100%;\n position: relative;\n`;\n\ninterface IContainerProps {\n percentageWidth?: number;\n minWidth?: number;\n style?: Record<string, any>;\n}\n\nconst Container = styled.div<IContainerProps>`\n display: flex;\n flex-direction: column;\n min-width: ${(props) => props.minWidth}px;\n width: ${(props) => props.percentageWidth}%;\n justify-content: start;\n align-items: flex-start;\n ${(props) => props.style}\n`;\n","import React, { useEffect, useState } from 'react';\n\nexport interface IRadioItems {\n label: string;\n value: string;\n}\n\nexport interface IRadioProps {\n name: string;\n items: IRadioItems[];\n onChange: (value: string) => void;\n}\n\nexport const InputRadio: React.FC<IRadioProps> = ({\n name,\n items,\n onChange,\n}) => {\n const [selectedValue, setSelectedValue] = useState<string>();\n const handleClick = () => {\n let element = document.querySelector(\n `input[name=${name}]:checked`\n ) as HTMLInputElement;\n const elementValue = element.value;\n setSelectedValue(elementValue);\n };\n\n useEffect(() => {\n if (selectedValue) {\n onChange(selectedValue);\n }\n }, [selectedValue]);\n\n return (\n <div id=\"elemento-radio\">\n {items.map((element) => {\n return (\n <>\n <input\n key={element.value}\n className=\"rpgui-radio\"\n value={element.value}\n name={name}\n type=\"radio\"\n />\n <label onClick={handleClick}>{element.label}</label>\n <br />\n </>\n );\n })}\n </div>\n );\n};\n","import React, { useState } from 'react';\nimport styled from 'styled-components';\nimport { v4 as uuidv4 } from 'uuid';\nimport { useEventListener } from '../hooks/useEventListener';\nimport { _RPGUI } from './RPGUIRoot';\n\nexport enum RangeSliderType {\n Slider = 'rpgui-slider',\n GoldSlider = 'rpgui-slider golden',\n}\n\nexport interface IRangeSliderProps {\n type: RangeSliderType;\n valueMin: number;\n valueMax: number;\n width: string;\n onChange: (value: number) => void;\n}\n\nexport const RangeSlider: React.FC<IRangeSliderProps> = ({\n type,\n valueMin,\n valueMax,\n width,\n onChange,\n}) => {\n const sliderId = uuidv4();\n\n const [wasMouseDownFirst, setWasMouseDownFirst] = useState<boolean>(false);\n\n useEventListener('mouseup', () => {\n if (wasMouseDownFirst) {\n onHandleMouseUp();\n }\n setWasMouseDownFirst(false);\n });\n\n const onHandleMouseUp = () => {\n const rpguiSlider = document.getElementById(`rpgui-slider-${sliderId}`);\n const value = _RPGUI.get_value(rpguiSlider);\n\n onChange(Number(value));\n };\n\n return (\n <div\n onMouseUp={onHandleMouseUp}\n onMouseDown={() => setWasMouseDownFirst(true)}\n >\n <Input\n className={\n type === RangeSliderType.Slider\n ? RangeSliderType.Slider\n : RangeSliderType.GoldSlider\n }\n type=\"range\"\n style={{ width: width }}\n min={valueMin}\n max={valueMax}\n id={`rpgui-slider-${sliderId}`}\n />\n </div>\n );\n};\n\nconst Input = styled.input`\n opacity: 0;\n`;\n","import React from 'react';\n\nexport interface ITextArea\n extends React.DetailedHTMLProps<\n React.TextareaHTMLAttributes<HTMLTextAreaElement>,\n HTMLTextAreaElement\n > {}\n\nexport const TextArea: React.FC<ITextArea> = ({ ...props }) => {\n return <textarea {...props} />;\n};\n","/* eslint-disable react/require-default-props */\nimport React from 'react';\nimport styled from 'styled-components';\n\ninterface IProps {\n maxLines?: number;\n children: React.ReactNode;\n}\n\nexport const Truncate: React.FC<IProps> = ({ maxLines = 1, children }) => {\n return <Container maxLines={maxLines}>{children}</Container>;\n};\n\ninterface IContainerProps {\n maxLines: number;\n}\n\nconst Container = styled.div<IContainerProps>`\n display: -webkit-box;\n max-width: 100%;\n max-height: 100%;\n -webkit-line-clamp: ${(props) => props.maxLines};\n -webkit-box-orient: vertical;\n overflow: hidden;\n`;\n"],"names":["ButtonTypes","Button","children","buttonType","props","React","ButtonContainer","className","styled","button","CheckButton","items","onChange","generateSelectedValuesList","selectedValues","forEach","item","label","useState","setSelectedValues","handleClick","useEffect","id","map","element","index","key","type","checked","onClick","colors","darkGrey","Input","RPGUIContainerTypes","RPGUIContainer","width","height","Container","div","Column","flex","flexWrap","alignItems","justifyContent","Chat","chatMessages","onSendChatMessage","opacity","onCloseButton","message","setMessage","scrollChatToBottom","scrollingElement","document","querySelector","scrollTop","scrollHeight","handleSubmit","event","preventDefault","getInputValue","value","CustomContainer","FramedGrey","CloseButton","length","_id","createdAt","emitter","MessageText","dayjs","format","name","Form","onSubmit","CustomInput","e","target","autoComplete","RPGUIButton","form","p","_RPGUI","RPGUI","RPGUIRoot","Dropdown","options","dropdownId","uuidv4","selectedValue","setSelectedValue","getElementById","dropdownValue","get_value","addEventListener","style","option","ListMenu","onSelected","x","y","fontSize","overflow","params","ListElement","text","li","img","chunkString","str","match","RegExp","DynamicText","onFinish","onStart","textState","setTextState","i","interval","setInterval","substring","clearInterval","TextContainer","NPCDialogText","onClose","onEndStep","onStartStep","textChunks","chunkIndex","setChunkIndex","onHandleSpacePress","code","hasNextChunk","prev","removeEventListener","useEventListener","handler","el","window","savedHandler","useRef","current","listener","QuestionDialog","questions","answers","currentQuestion","setCurrentQuestion","canShowAnswers","setCanShowAnswers","onGetFirstAnswer","answerIds","firstAnswerId","find","answer","currentAnswer","setCurrentAnswer","onGetAnswers","answerId","onKeyPress","nextAnswerIndex","findIndex","nextAnswerID","nextAnswer","previousAnswerIndex","previousAnswerID","previousAnswer","pop","nextQuestionId","question","onAnswerClick","onRenderCurrentAnswers","isSelected","selectedColor","AnswerRow","AnswerSelectedIcon","color","Answer","QuestionContainer","AnswersContainer","span","NPCDialogType","NPCDialog","imagePath","isQuestionDialog","showGoNextIndicator","setShowGoNextIndicator","FramedGold","TextAndThumbnail","ThumbnailContainer","NPCThumbnail","src","aliceDefaultThumbnail","PressSpaceIndicator","right","TextOnly","pressSpaceGif","ProgressBar","max","displayText","percentageWidth","minWidth","calculatePercentageValue","TextOverlay","ProgressBarText","left","InputRadio","elementValue","RangeSliderType","RangeSlider","valueMin","valueMax","sliderId","wasMouseDownFirst","setWasMouseDownFirst","onHandleMouseUp","rpguiSlider","Number","onMouseUp","onMouseDown","Slider","GoldSlider","min","input","TextArea","Truncate","maxLines"],"mappings":"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"}
|