iobroker.telegram-menu 2.2.4 → 2.3.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +12 -0
- package/admin/build/index.js +49 -49
- package/admin/build/index.js.map +3 -3
- package/admin/css/button.css +3 -0
- package/admin/css/row-editor.css +1 -1
- package/admin/css/style.css +46 -25
- package/admin/css/textarea.css +7 -11
- package/admin/i18n/de/translations.json +124 -123
- package/admin/i18n/en/translations.json +3 -2
- package/admin/i18n/es/translations.json +3 -2
- package/admin/i18n/fr/translations.json +3 -2
- package/admin/i18n/it/translations.json +3 -2
- package/admin/i18n/nl/translations.json +3 -2
- package/admin/i18n/pl/translations.json +3 -2
- package/admin/i18n/pt/translations.json +3 -2
- package/admin/i18n/ru/translations.json +3 -2
- package/admin/i18n/uk/translations.json +3 -2
- package/admin/i18n/zh-cn/translations.json +3 -2
- package/admin/words.js +3 -1
- package/build/admin/src/config/helper.js +178 -0
- package/build/admin/src/config/helper.js.map +1 -0
- package/build/admin/src/lib/Utils.js +64 -0
- package/build/admin/src/lib/Utils.js.map +1 -0
- package/build/admin/src/types/event.js +3 -0
- package/build/admin/src/types/event.js.map +1 -0
- package/build/app/action.js +270 -0
- package/build/app/action.js.map +7 -0
- package/build/app/adapterManager.js +36 -0
- package/build/app/adapterManager.js.map +7 -0
- package/build/app/adapterStartMenuSend.js +59 -0
- package/build/app/adapterStartMenuSend.js.map +7 -0
- package/build/app/backMenu.js +110 -0
- package/build/app/backMenu.js.map +7 -0
- package/build/app/botAction.js +47 -0
- package/build/app/botAction.js.map +7 -0
- package/build/app/configVariables.js +56 -0
- package/build/app/configVariables.js.map +7 -0
- package/build/app/connection.js +42 -0
- package/build/app/connection.js.map +7 -0
- package/build/app/createState.js +42 -0
- package/build/app/createState.js.map +7 -0
- package/build/app/dynamicSwitch.js +69 -0
- package/build/app/dynamicSwitch.js.map +7 -0
- package/build/app/dynamicSwitchMenu.js +69 -0
- package/build/app/dynamicSwitchMenu.js.map +7 -0
- package/build/app/dynamicValue.js +80 -0
- package/build/app/dynamicValue.js.map +7 -0
- package/build/app/echarts.js +60 -0
- package/build/app/echarts.js.map +7 -0
- package/build/app/getstate.js +148 -0
- package/build/app/getstate.js.map +7 -0
- package/build/app/global.js +2 -0
- package/build/app/global.js.map +7 -0
- package/build/app/httpRequest.js +84 -0
- package/build/app/httpRequest.js.map +7 -0
- package/build/app/jsonTable.js +158 -0
- package/build/app/jsonTable.js.map +7 -0
- package/build/app/logging.js +46 -0
- package/build/app/logging.js.map +7 -0
- package/build/app/messageIds.js +116 -0
- package/build/app/messageIds.js.map +7 -0
- package/build/app/processData.js +198 -0
- package/build/app/processData.js.map +7 -0
- package/build/app/sendNav.js +49 -0
- package/build/app/sendNav.js.map +7 -0
- package/build/app/sendpic.js +95 -0
- package/build/app/sendpic.js.map +7 -0
- package/build/app/sentry.js +43 -0
- package/build/app/sentry.js.map +7 -0
- package/build/app/setStateIdsToListenTo.js +42 -0
- package/build/app/setStateIdsToListenTo.js.map +7 -0
- package/build/app/setstate.js +145 -0
- package/build/app/setstate.js.map +7 -0
- package/build/app/shoppingList.js +97 -0
- package/build/app/shoppingList.js.map +7 -0
- package/build/app/subMenu.js +281 -0
- package/build/app/subMenu.js.map +7 -0
- package/build/app/subscribeStates.js +41 -0
- package/build/app/subscribeStates.js.map +7 -0
- package/build/app/telegram.js +131 -0
- package/build/app/telegram.js.map +7 -0
- package/build/app/validateMenus.js +64 -0
- package/build/app/validateMenus.js.map +7 -0
- package/build/build/src/app/action.js +447 -0
- package/build/build/src/app/adapterStartMenuSend.js +37 -0
- package/build/build/src/app/backMenu.js +70 -0
- package/build/build/src/app/botAction.js +25 -0
- package/build/build/src/app/connection.js +19 -0
- package/build/build/src/app/createState.js +19 -0
- package/build/build/src/app/dynamicSwitch.js +51 -0
- package/build/build/src/app/dynamicValue.js +64 -0
- package/build/build/src/app/echarts.js +45 -0
- package/build/build/src/app/getstate.js +157 -0
- package/build/build/src/app/global.js +59 -0
- package/build/build/src/app/httpRequest.js +64 -0
- package/build/build/src/app/jsonTable.js +147 -0
- package/build/build/src/app/logging.js +13 -0
- package/build/build/src/app/messageIds.js +88 -0
- package/build/build/src/app/processData.js +208 -0
- package/build/build/src/app/sendNav.js +30 -0
- package/build/build/src/app/sendpic.js +69 -0
- package/build/build/src/app/setstate.js +126 -0
- package/build/build/src/app/shoppingList.js +72 -0
- package/build/build/src/app/subMenu.js +361 -0
- package/build/build/src/app/subscribeStates.js +25 -0
- package/build/build/src/app/telegram.js +101 -0
- package/build/build/src/lib/string.js +28 -0
- package/build/build/src/lib/time.js +23 -0
- package/build/build/src/lib/utilities.js +263 -0
- package/build/build/src/lib/utils.js +13 -0
- package/build/build/src/main.js +402 -0
- package/build/config/config.js +134 -0
- package/build/config/config.js.map +7 -0
- package/build/io-package.json +87 -87
- package/build/lib/action.js +1 -3
- package/build/lib/action.js.map +2 -2
- package/build/lib/adapterStartMenuSend.js.map +1 -1
- package/build/lib/appUtils.js +158 -0
- package/build/lib/appUtils.js.map +7 -0
- package/build/lib/appUtilsString.js +37 -0
- package/build/lib/appUtilsString.js.map +7 -0
- package/build/lib/backMenu.js.map +2 -2
- package/build/lib/botAction.js.map +1 -1
- package/build/lib/dynamicSwitch.js.map +1 -1
- package/build/lib/dynamicValue.js.map +1 -1
- package/build/lib/echarts.js.map +1 -1
- package/build/lib/getstate.js.map +1 -1
- package/build/lib/global.js.map +1 -1
- package/build/lib/httpRequest.js.map +1 -1
- package/build/lib/json.js +54 -0
- package/build/lib/json.js.map +7 -0
- package/build/lib/jsonTable.js.map +1 -1
- package/build/lib/math.js +41 -0
- package/build/lib/math.js.map +7 -0
- package/build/lib/messageIds.js.map +1 -1
- package/build/lib/object.js +35 -0
- package/build/lib/object.js.map +7 -0
- package/build/lib/processData.js +4 -18
- package/build/lib/processData.js.map +3 -3
- package/build/lib/sendNav.js.map +1 -1
- package/build/lib/sendpic.js +23 -22
- package/build/lib/sendpic.js.map +2 -2
- package/build/lib/setstate.js.map +1 -1
- package/build/lib/shoppingList.js.map +1 -1
- package/build/lib/splitValues.js +63 -0
- package/build/lib/splitValues.js.map +7 -0
- package/build/lib/string.js +125 -3
- package/build/lib/string.js.map +2 -2
- package/build/lib/subMenu.js +1 -2
- package/build/lib/subMenu.js.map +2 -2
- package/build/lib/subscribeStates.js.map +1 -1
- package/build/lib/telegram.js.map +1 -1
- package/build/lib/time.js +93 -0
- package/build/lib/time.js.map +7 -0
- package/build/lib/utilities.js +84 -281
- package/build/lib/utilities.js.map +3 -3
- package/build/lib/utils.js +66 -0
- package/build/lib/utils.js.map +7 -0
- package/build/main.js +151 -233
- package/build/main.js.map +3 -3
- package/build/src/app/action.js +239 -0
- package/build/src/app/action.js.map +1 -0
- package/build/src/app/adapterManager.js +12 -0
- package/build/src/app/adapterManager.js.map +1 -0
- package/build/src/app/adapterStartMenuSend.js +36 -0
- package/build/src/app/adapterStartMenuSend.js.map +1 -0
- package/build/src/app/backMenu.js +81 -0
- package/build/src/app/backMenu.js.map +1 -0
- package/build/src/app/botAction.js +25 -0
- package/build/src/app/botAction.js.map +1 -0
- package/build/src/app/configVariables.js +32 -0
- package/build/src/app/configVariables.js.map +1 -0
- package/build/src/app/connection.js +20 -0
- package/build/src/app/connection.js.map +1 -0
- package/build/src/app/createState.js +19 -0
- package/build/src/app/createState.js.map +1 -0
- package/build/src/app/dynamicSwitch.js +52 -0
- package/build/src/app/dynamicSwitch.js.map +1 -0
- package/build/src/app/dynamicSwitchMenu.js +52 -0
- package/build/src/app/dynamicSwitchMenu.js.map +1 -0
- package/build/src/app/dynamicValue.js +52 -0
- package/build/src/app/dynamicValue.js.map +1 -0
- package/build/src/app/echarts.js +33 -0
- package/build/src/app/echarts.js.map +1 -0
- package/build/src/app/getstate.js +122 -0
- package/build/src/app/getstate.js.map +1 -0
- package/build/src/app/global.js +8 -0
- package/build/src/app/global.js.map +1 -0
- package/build/src/app/httpRequest.js +55 -0
- package/build/src/app/httpRequest.js.map +1 -0
- package/build/src/app/jsonTable.js +147 -0
- package/build/src/app/jsonTable.js.map +1 -0
- package/build/src/app/logging.js +22 -0
- package/build/src/app/logging.js.map +1 -0
- package/build/src/app/messageIds.js +89 -0
- package/build/src/app/messageIds.js.map +1 -0
- package/build/src/app/processData.js +153 -0
- package/build/src/app/processData.js.map +1 -0
- package/build/src/app/sendNav.js +26 -0
- package/build/src/app/sendNav.js.map +1 -0
- package/build/src/app/sendpic.js +66 -0
- package/build/src/app/sendpic.js.map +1 -0
- package/build/src/app/sentry.js +18 -0
- package/build/src/app/sentry.js.map +1 -0
- package/build/src/app/setStateIdsToListenTo.js +17 -0
- package/build/src/app/setStateIdsToListenTo.js.map +1 -0
- package/build/src/app/setstate.js +114 -0
- package/build/src/app/setstate.js.map +1 -0
- package/build/src/app/shoppingList.js +74 -0
- package/build/src/app/shoppingList.js.map +1 -0
- package/build/src/app/subMenu.js +237 -0
- package/build/src/app/subMenu.js.map +1 -0
- package/build/src/app/subscribeStates.js +17 -0
- package/build/src/app/subscribeStates.js.map +1 -0
- package/build/src/app/telegram.js +83 -0
- package/build/src/app/telegram.js.map +1 -0
- package/build/src/app/validateMenus.js +30 -0
- package/build/src/app/validateMenus.js.map +1 -0
- package/build/src/config/config.js +100 -0
- package/build/src/config/config.js.map +1 -0
- package/build/src/lib/appUtils.js +126 -0
- package/build/src/lib/appUtils.js.map +1 -0
- package/build/src/lib/appUtilsString.js +13 -0
- package/build/src/lib/appUtilsString.js.map +1 -0
- package/build/src/lib/json.js +37 -0
- package/build/src/lib/json.js.map +1 -0
- package/build/src/lib/math.js +17 -0
- package/build/src/lib/math.js.map +1 -0
- package/build/src/lib/object.js +10 -0
- package/build/src/lib/object.js.map +1 -0
- package/build/src/lib/splitValues.js +35 -0
- package/build/src/lib/splitValues.js.map +1 -0
- package/build/src/lib/string.js +121 -0
- package/build/src/lib/string.js.map +1 -0
- package/build/src/lib/time.js +57 -0
- package/build/src/lib/time.js.map +1 -0
- package/build/src/lib/utilities.js +111 -0
- package/build/src/lib/utilities.js.map +1 -0
- package/build/src/lib/utils.js +37 -0
- package/build/src/lib/utils.js.map +1 -0
- package/build/src/main.js +332 -0
- package/build/src/main.js.map +1 -0
- package/build/src/test/setup.js +12 -0
- package/build/src/test/setup.js.map +1 -0
- package/build/src/types/types.js +3 -0
- package/build/src/types/types.js.map +1 -0
- package/build/test/integration.js +0 -1
- package/build/test/integration.js.map +1 -1
- package/build/test/mocha.setup.js +0 -1
- package/build/test/mocha.setup.js.map +1 -1
- package/build/test/package.js +0 -1
- package/build/test/package.js.map +1 -1
- package/build/test/setup.js +12 -0
- package/build/test/setup.js.map +1 -0
- package/build/test/test/appUtils.test.js +507 -0
- package/build/test/test/appUtils.test.js.map +1 -0
- package/build/test/test/appUtilsString.test.js +16 -0
- package/build/test/test/appUtilsString.test.js.map +1 -0
- package/build/test/test/math.test.js +33 -0
- package/build/test/test/math.test.js.map +1 -0
- package/build/test/test/object.test.js +54 -0
- package/build/test/test/object.test.js.map +1 -0
- package/build/test/test/string.test.js +361 -0
- package/build/test/test/string.test.js.map +1 -0
- package/build/test/test/time.test.js +201 -0
- package/build/test/test/time.test.js.map +1 -0
- package/build/test/test/utils.test.js +115 -0
- package/build/test/test/utils.test.js.map +1 -0
- package/build/types/types.js +15 -0
- package/build/types/types.js.map +3 -3
- package/io-package.json +19 -14
- package/package.json +14 -10
- package/build/main.test.js +0 -24
- package/build/main.test.js.map +0 -1
package/build/lib/string.js
CHANGED
|
@@ -18,12 +18,134 @@ var __copyProps = (to, from, except, desc) => {
|
|
|
18
18
|
var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
|
|
19
19
|
var string_exports = {};
|
|
20
20
|
__export(string_exports, {
|
|
21
|
-
|
|
21
|
+
cleanUpString: () => cleanUpString,
|
|
22
|
+
decomposeText: () => decomposeText,
|
|
23
|
+
getNewline: () => getNewline,
|
|
24
|
+
getValueToExchange: () => getValueToExchange,
|
|
25
|
+
isBooleanString: () => isBooleanString,
|
|
26
|
+
isEmptyString: () => isEmptyString,
|
|
27
|
+
isNonEmptyString: () => isNonEmptyString,
|
|
28
|
+
isString: () => isString,
|
|
29
|
+
jsonString: () => jsonString,
|
|
30
|
+
pad: () => pad,
|
|
31
|
+
parseJSON: () => parseJSON,
|
|
32
|
+
removeQuotes: () => removeQuotes,
|
|
33
|
+
replaceAll: () => replaceAll,
|
|
34
|
+
replaceAllItems: () => replaceAllItems,
|
|
35
|
+
stringReplacer: () => stringReplacer
|
|
22
36
|
});
|
|
23
37
|
module.exports = __toCommonJS(string_exports);
|
|
24
|
-
|
|
38
|
+
var import_config = require("../config/config");
|
|
39
|
+
var import_utils = require("./utils");
|
|
40
|
+
var import_logging = require("../app/logging");
|
|
41
|
+
const jsonString = (val) => JSON.stringify(val);
|
|
42
|
+
function parseJSON(val, adapter) {
|
|
43
|
+
try {
|
|
44
|
+
return { json: JSON.parse(val), isValidJson: true };
|
|
45
|
+
} catch (e) {
|
|
46
|
+
if (adapter) {
|
|
47
|
+
(0, import_logging.errorLogger)("Error parseJSON:", e, adapter);
|
|
48
|
+
}
|
|
49
|
+
return { json: val, isValidJson: false };
|
|
50
|
+
}
|
|
51
|
+
}
|
|
52
|
+
const replaceAll = (text, searchValue, replaceValue) => {
|
|
53
|
+
const escapedSearchValue = searchValue.replace(/[.*+?^${}()|[\]\\]/g, "\\$&");
|
|
54
|
+
return text.replace(new RegExp(escapedSearchValue, "g"), replaceValue);
|
|
55
|
+
};
|
|
56
|
+
const replaceAllItems = (text, searched) => {
|
|
57
|
+
searched.forEach((item) => {
|
|
58
|
+
if (typeof item === "string") {
|
|
59
|
+
text = replaceAll(text, item, "");
|
|
60
|
+
} else {
|
|
61
|
+
text = replaceAll(text, item.search, item.val);
|
|
62
|
+
}
|
|
63
|
+
});
|
|
64
|
+
return text;
|
|
65
|
+
};
|
|
66
|
+
const removeQuotes = (text) => text.replace(/['"]/g, "");
|
|
67
|
+
const cleanUpString = (text) => {
|
|
68
|
+
if (!text) {
|
|
69
|
+
return "";
|
|
70
|
+
}
|
|
71
|
+
return text.replace(/^['"]|['"]$/g, "").replace(/\\n/g, "\n").replace(/ \\\n/g, "\n").replace(/\\(?!n)/g, "");
|
|
72
|
+
};
|
|
73
|
+
function decomposeText(text, firstSearch, secondSearch) {
|
|
74
|
+
const startindex = text.indexOf(firstSearch);
|
|
75
|
+
const endindex = text.indexOf(secondSearch, startindex);
|
|
76
|
+
const substring = text.substring(startindex, endindex + secondSearch.length);
|
|
77
|
+
const substringExcludedSearch = stringReplacer(substring, [firstSearch, secondSearch]);
|
|
78
|
+
const textWithoutSubstring = text.replace(substring, "").trim();
|
|
79
|
+
return {
|
|
80
|
+
startindex,
|
|
81
|
+
endindex,
|
|
82
|
+
substring,
|
|
83
|
+
textExcludeSubstring: textWithoutSubstring,
|
|
84
|
+
substringExcludeSearch: substringExcludedSearch
|
|
85
|
+
};
|
|
86
|
+
}
|
|
87
|
+
const getValueToExchange = (adapter, textToSend, val) => {
|
|
88
|
+
var _a;
|
|
89
|
+
if (textToSend.includes(import_config.config.change.start)) {
|
|
90
|
+
const { start, end, command } = import_config.config.change;
|
|
91
|
+
const { startindex, endindex, substring } = decomposeText(textToSend, start, end);
|
|
92
|
+
const modifiedString = replaceAll(substring, "'", '"').replace(command, "");
|
|
93
|
+
const { json, isValidJson } = parseJSON(modifiedString);
|
|
94
|
+
if (isValidJson) {
|
|
95
|
+
return {
|
|
96
|
+
newValue: (_a = json[String(val)]) != null ? _a : val,
|
|
97
|
+
textToSend: textToSend.substring(0, startindex) + textToSend.substring(endindex + 1),
|
|
98
|
+
error: false
|
|
99
|
+
};
|
|
100
|
+
}
|
|
101
|
+
adapter.log.error(`There is a error in your input: ${modifiedString}`);
|
|
102
|
+
return { newValue: val, textToSend, error: true };
|
|
103
|
+
}
|
|
104
|
+
return { textToSend, newValue: val, error: false };
|
|
105
|
+
};
|
|
106
|
+
const isString = (value) => typeof value === "string";
|
|
107
|
+
function stringReplacer(substring, valueToReplace) {
|
|
108
|
+
if (typeof valueToReplace[0] === "string") {
|
|
109
|
+
valueToReplace.forEach((item) => {
|
|
110
|
+
substring = substring.replace(item, "");
|
|
111
|
+
});
|
|
112
|
+
return substring;
|
|
113
|
+
}
|
|
114
|
+
valueToReplace.forEach(({ val, newValue }) => {
|
|
115
|
+
substring = substring.replace(val, newValue);
|
|
116
|
+
});
|
|
117
|
+
return substring;
|
|
118
|
+
}
|
|
119
|
+
const pad = (value, length = 2) => {
|
|
120
|
+
if (value < 0) {
|
|
121
|
+
return `-${(value * -1).toString().padStart(length - 1, "0")}`;
|
|
122
|
+
}
|
|
123
|
+
return value.toString().padStart(length, "0");
|
|
124
|
+
};
|
|
125
|
+
function getNewline(newline) {
|
|
126
|
+
return (0, import_utils.isTruthy)(newline) ? "\n" : "";
|
|
127
|
+
}
|
|
128
|
+
function isBooleanString(str) {
|
|
129
|
+
return str === "true" || str === "false";
|
|
130
|
+
}
|
|
131
|
+
const isNonEmptyString = (str) => str.trim() !== "";
|
|
132
|
+
const isEmptyString = (str) => str.trim() === "";
|
|
25
133
|
// Annotate the CommonJS export names for ESM import in node:
|
|
26
134
|
0 && (module.exports = {
|
|
27
|
-
|
|
135
|
+
cleanUpString,
|
|
136
|
+
decomposeText,
|
|
137
|
+
getNewline,
|
|
138
|
+
getValueToExchange,
|
|
139
|
+
isBooleanString,
|
|
140
|
+
isEmptyString,
|
|
141
|
+
isNonEmptyString,
|
|
142
|
+
isString,
|
|
143
|
+
jsonString,
|
|
144
|
+
pad,
|
|
145
|
+
parseJSON,
|
|
146
|
+
removeQuotes,
|
|
147
|
+
replaceAll,
|
|
148
|
+
replaceAllItems,
|
|
149
|
+
stringReplacer
|
|
28
150
|
});
|
|
29
151
|
//# sourceMappingURL=string.js.map
|
package/build/lib/string.js.map
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"version": 3,
|
|
3
3
|
"sources": ["../../src/lib/string.ts"],
|
|
4
|
-
"sourcesContent": ["
|
|
5
|
-
"mappings": ";;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;
|
|
4
|
+
"sourcesContent": ["import { config } from '../config/config';\nimport type {\n Adapter,\n BooleanString,\n DecomposeTextReturnType,\n ExchangeValueReturn,\n PrimitiveType,\n StringReplacerObj,\n} from '../types/types';\nimport { isTruthy } from './utils';\nimport { errorLogger } from '../app/logging';\n\nexport const jsonString = (val?: string | number | boolean | object | null): string => JSON.stringify(val);\n\nexport function parseJSON<T>(\n val: string,\n adapter?: Adapter,\n): { json: string; isValidJson: false } | { json: T; isValidJson: true } {\n try {\n return { json: JSON.parse(val) as T, isValidJson: true };\n } catch (e) {\n if (adapter) {\n errorLogger('Error parseJSON:', e, adapter);\n }\n return { json: val, isValidJson: false };\n }\n}\n\nexport const replaceAll = (text: string, searchValue: string, replaceValue: string): string => {\n const escapedSearchValue = searchValue.replace(/[.*+?^${}()|[\\]\\\\]/g, '\\\\$&'); // Escape-Sonderzeichen\n return text.replace(new RegExp(escapedSearchValue, 'g'), replaceValue);\n};\n\nexport const replaceAllItems = (text: string, searched: (string | { search: string; val: string })[]): string => {\n searched.forEach(item => {\n if (typeof item === 'string') {\n text = replaceAll(text, item, '');\n } else {\n text = replaceAll(text, item.search, item.val);\n }\n });\n return text;\n};\n\nexport const removeQuotes = (text: string): string => text.replace(/['\"]/g, '');\n\nexport const cleanUpString = (text?: string): string => {\n if (!text) {\n return '';\n }\n return text\n .replace(/^['\"]|['\"]$/g, '') // Entferne Anf\u00FChrungszeichen am Anfang/Ende\n .replace(/\\\\n/g, '\\n') // Ersetze \\n durch einen echten Zeilenumbruch\n .replace(/ \\\\\\n/g, '\\n') // Ersetze \\n mit Leerzeichen davor durch einen echten Zeilenumbruch\n .replace(/\\\\(?!n)/g, ''); // Entferne alle Backslashes, die nicht von einem 'n' gefolgt werden\n};\n\nexport function decomposeText(text: string, firstSearch: string, secondSearch: string): DecomposeTextReturnType {\n const startindex = text.indexOf(firstSearch);\n const endindex = text.indexOf(secondSearch, startindex);\n const substring = text.substring(startindex, endindex + secondSearch.length);\n const substringExcludedSearch = stringReplacer(substring, [firstSearch, secondSearch]);\n const textWithoutSubstring = text.replace(substring, '').trim();\n return {\n startindex,\n endindex,\n substring,\n textExcludeSubstring: textWithoutSubstring,\n substringExcludeSearch: substringExcludedSearch,\n };\n}\n// TODO : Move to utils\nexport const getValueToExchange = (adapter: Adapter, textToSend: string, val: PrimitiveType): ExchangeValueReturn => {\n //TODO Use JSON => change{\"true\":\"W\u00E4rmepumpe ist verbunden\",\"false\":\"W\u00E4rmepumpe ist nicht verbunden\"}\n if (textToSend.includes(config.change.start)) {\n const { start, end, command } = config.change;\n const { startindex, endindex, substring } = decomposeText(textToSend, start, end); // change{\"true\":\"an\",\"false\":\"aus\"}\n\n const modifiedString = replaceAll(substring, \"'\", '\"').replace(command, ''); // {\"true\":\"an\",\"false\":\"aus\"}\n\n const { json, isValidJson } = parseJSON<Record<string, string>>(modifiedString);\n\n if (isValidJson) {\n return {\n newValue: json[String(val)] ?? val,\n textToSend: textToSend.substring(0, startindex) + textToSend.substring(endindex + 1),\n error: false,\n };\n }\n adapter.log.error(`There is a error in your input: ${modifiedString}`);\n return { newValue: val, textToSend, error: true };\n }\n return { textToSend, newValue: val, error: false };\n};\n\nexport const isString = (value: unknown): value is string => typeof value === 'string';\n\nexport function stringReplacer(substring: string, valueToReplace: string[] | StringReplacerObj[]): string {\n if (typeof valueToReplace[0] === 'string') {\n (valueToReplace as string[]).forEach(item => {\n substring = substring.replace(item, '');\n });\n return substring;\n }\n\n (valueToReplace as StringReplacerObj[]).forEach(({ val, newValue }) => {\n substring = substring.replace(val, newValue);\n });\n return substring;\n}\n\nexport const pad = (value: number, length: number = 2): string => {\n if (value < 0) {\n return `-${(value * -1).toString().padStart(length - 1, '0')}`;\n }\n return value.toString().padStart(length, '0');\n};\n\nexport function getNewline(newline: BooleanString): '' | '\\n' {\n return isTruthy(newline) ? '\\n' : '';\n}\n\nexport function isBooleanString(str: string): boolean {\n return str === 'true' || str === 'false';\n}\n\nexport const isNonEmptyString = (str: string): boolean => str.trim() !== '';\nexport const isEmptyString = (str: string): boolean => str.trim() === '';\n"],
|
|
5
|
+
"mappings": "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",
|
|
6
6
|
"names": []
|
|
7
7
|
}
|
package/build/lib/subMenu.js
CHANGED
|
@@ -70,8 +70,7 @@ const setDynamicValue = async (obj) => {
|
|
|
70
70
|
};
|
|
71
71
|
};
|
|
72
72
|
const createSubmenuPercent = (obj) => {
|
|
73
|
-
const callbackData = obj
|
|
74
|
-
const device2Switch = obj.device2Switch;
|
|
73
|
+
const { callbackData, device2Switch } = obj;
|
|
75
74
|
step = parseFloat(callbackData.replace("percent", ""));
|
|
76
75
|
let rowEntries = 0;
|
|
77
76
|
let menu = [];
|
package/build/lib/subMenu.js.map
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"version": 3,
|
|
3
3
|
"sources": ["../../src/lib/subMenu.ts"],
|
|
4
|
-
"sourcesContent": ["import { switchBack } from './backMenu';\nimport { setState } from './setstate';\nimport { sendToTelegram, sendToTelegramSubmenu } from './telegram';\nimport { checkStatusInfo } from './utilities';\nimport { _subscribeAndUnSubscribeForeignStatesAsync } from './subscribeStates';\nimport { deleteMessageIds } from './messageIds';\nimport { dynamicSwitch } from './dynamicSwitch';\nimport { debug } from './logging';\nimport { error } from 'console';\nimport type {\n SetStateIds,\n SplittedData,\n DeleteMessageIds,\n SetDynamicValueType,\n CreateSubmenuPercent,\n KeyboardItems,\n SetFirstMenuValue,\n SetSecondMenuValue,\n CreateSubmenuNumber,\n CreateSwitchMenu,\n SetValueForSubmenuPercent,\n SetValueForSubmenuNumber,\n BackMenuType,\n NewObjectNavStructure,\n UserListWithChatId,\n Part,\n NavPart,\n Keyboard,\n} from './telegram-menu';\nimport { parseJSON } from './global';\nimport { _this } from '../main';\n\nlet step = 0;\nlet returnIDToListenTo: SetStateIds[] = [];\nlet splittedData: SplittedData = [];\n\nconst getMenuValues = (obj: string[]): { callbackData: string; device: string; val: string } => {\n const splitText = obj[0].split(':');\n\n return { callbackData: splitText[1], device: splitText[2], val: splitText[3] };\n};\n\nconst deleteMessages = async (obj: DeleteMessageIds): Promise<{ navToGoBack: string } | undefined> => {\n const navToGoBack = obj.device2Switch;\n if (obj.callbackData.includes('deleteAll')) {\n await deleteMessageIds(obj.userToSend, obj.userListWithChatID, obj.instanceTelegram, 'all');\n }\n if (navToGoBack && navToGoBack != '') {\n return { navToGoBack: navToGoBack };\n }\n return;\n};\n\nconst setDynamicValue = async (obj: SetDynamicValueType): Promise<{ returnIds: SetStateIds[] }> => {\n debug([{ text: 'SplittedData:', val: obj.val }]);\n\n const result = await setState(\n obj.part,\n obj.userToSend,\n obj.val,\n true,\n obj.instanceTelegram,\n obj.resize_keyboard,\n obj.one_time_keyboard,\n obj.userListWithChatID,\n );\n if (Array.isArray(result)) {\n returnIDToListenTo = result;\n }\n return {\n returnIds: returnIDToListenTo,\n };\n};\n\nconst createSubmenuPercent = (\n obj: CreateSubmenuPercent,\n): { text: string | undefined; keyboard: Keyboard; device: string } => {\n const callbackData = obj.callbackData;\n const device2Switch = obj.device2Switch;\n step = parseFloat(callbackData.replace('percent', ''));\n let rowEntries = 0;\n let menu: KeyboardItems[] = [];\n const keyboard: Keyboard = {\n inline_keyboard: [],\n };\n for (let i = 100; i >= 0; i -= step) {\n menu.push({\n text: `${i}%`,\n callback_data: `submenu:percent${step},${i}:${device2Switch}`,\n });\n if (i != 0 && i - step < 0) {\n menu.push({\n text: `0%`,\n callback_data: `submenu:percent${step},${0}:${device2Switch}`,\n });\n }\n rowEntries++;\n if (rowEntries == 8) {\n keyboard.inline_keyboard.push(menu);\n menu = [];\n rowEntries = 0;\n }\n }\n\n if (rowEntries != 0) {\n keyboard.inline_keyboard.push(menu);\n }\n return { text: obj.text, keyboard: keyboard, device: device2Switch };\n};\n\nconst setFirstMenuValue = async (obj: SetFirstMenuValue): Promise<{ returnIds: SetStateIds[] }> => {\n let val;\n debug([{ text: 'SplitData:', val: splittedData }]);\n if (splittedData[1].split('.')[1] == 'false') {\n val = false;\n } else if (splittedData[1].split('.')[1] == 'true') {\n val = true;\n } else {\n val = splittedData[1].split('.')[1];\n }\n const result = await setState(\n obj.part,\n obj.userToSend,\n val as string,\n true,\n obj.instanceTelegram,\n obj.resize_keyboard,\n obj.one_time_keyboard,\n obj.userListWithChatID,\n );\n if (Array.isArray(result)) {\n returnIDToListenTo = result;\n }\n return { returnIds: returnIDToListenTo };\n};\n\nconst setSecondMenuValue = async (obj: SetSecondMenuValue): Promise<{ returnIds: SetStateIds[] }> => {\n let val;\n if (splittedData[2].split('.')[1] == 'false') {\n val = false;\n } else if (splittedData[2].split('.')[1] == 'true') {\n val = true;\n } else {\n val = splittedData[2].split('.')[1];\n }\n const result = await setState(\n obj.part,\n obj.userToSend,\n val as string,\n true,\n obj.instanceTelegram,\n obj.one_time_keyboard,\n obj.resize_keyboard,\n obj.userListWithChatID,\n );\n if (Array.isArray(result)) {\n returnIDToListenTo = result;\n }\n return { returnIds: returnIDToListenTo };\n};\n\nconst createSubmenuNumber = (\n obj: CreateSubmenuNumber,\n): { text: string | undefined; keyboard: Keyboard; device: string } => {\n let callbackData = obj.callbackData;\n const device2Switch = obj.device2Switch;\n\n if (callbackData.includes('(-)')) {\n callbackData = callbackData.replace('(-)', 'negativ');\n }\n const splittedData = callbackData.replace('number', '').split('-');\n let rowEntries = 0;\n let menu: { text: string; callback_data: string }[] = [];\n const keyboard = {\n inline_keyboard: [] as any[],\n };\n let unit = '';\n if (splittedData[3] != '') {\n unit = splittedData[3];\n }\n let start: number, end: number;\n const firstValueInText = parseFloat(\n splittedData[0].includes('negativ') ? splittedData[0].replace('negativ', '-') : splittedData[0],\n );\n const secondValueInText = parseFloat(\n splittedData[1].includes('negativ') ? splittedData[1].replace('negativ', '-') : splittedData[1],\n );\n\n if (firstValueInText < secondValueInText) {\n start = secondValueInText;\n end = firstValueInText;\n } else {\n start = firstValueInText;\n end = secondValueInText;\n }\n let index = -1;\n\n let maxEntriesPerRow = 8;\n const step = parseFloat(\n splittedData[2].includes('negativ') ? splittedData[2].replace('negativ', '-') : splittedData[2],\n );\n if (step < 1) {\n maxEntriesPerRow = 6;\n }\n\n for (let i = start; i >= end; i -= step) {\n // Zahlen umdrehen\n if (parseFloat(splittedData[0]) < parseFloat(splittedData[1])) {\n if (i === start) {\n index = end - step;\n }\n index = index + step;\n } else {\n index = i;\n }\n menu.push({\n text: `${index}${unit}`,\n callback_data: `submenu:${callbackData}:${device2Switch}:${index}`,\n });\n rowEntries++;\n if (rowEntries == maxEntriesPerRow) {\n keyboard.inline_keyboard.push(menu);\n menu = [];\n rowEntries = 0;\n }\n }\n\n if (rowEntries != 0) {\n keyboard.inline_keyboard.push(menu);\n }\n debug([{ text: 'keyboard:', val: keyboard }]);\n return { text: obj.text, keyboard, device: device2Switch };\n};\n\nconst createSwitchMenu = ({\n device2Switch,\n callbackData,\n text,\n}: CreateSwitchMenu): { text?: string; keyboard: Keyboard; device: string } => {\n splittedData = callbackData.split('-');\n const keyboard = {\n inline_keyboard: [\n [\n {\n text: splittedData[1].split('.')[0],\n callback_data: `menu:first:${device2Switch}`,\n },\n {\n text: splittedData[2].split('.')[0],\n callback_data: `menu:second:${device2Switch}`,\n },\n ],\n ],\n };\n return { text: text, keyboard, device: device2Switch };\n};\n\nconst setValueForSubmenuPercent = async (obj: SetValueForSubmenuPercent): Promise<{ returnIds: SetStateIds[] }> => {\n const value = parseInt(obj.calledValue.split(':')[1].split(',')[1]);\n\n const result = await setState(\n obj.part,\n obj.userToSend,\n value,\n true,\n obj.instanceTelegram,\n obj.resize_keyboard,\n obj.one_time_keyboard,\n obj.userListWithChatID,\n );\n if (Array.isArray(result)) {\n returnIDToListenTo = result;\n }\n return { returnIds: returnIDToListenTo };\n};\n\nconst setValueForSubmenuNumber = async (\n obj: SetValueForSubmenuNumber,\n): Promise<{ returnIds: SetStateIds[]; device2Switch: string }> => {\n debug([{ text: 'CallbackData:', val: obj.callbackData }]);\n\n const value = parseFloat(obj.calledValue.split(':')[3]);\n const device2Switch = obj.calledValue.split(':')[2];\n\n const result = await setState(\n obj.part,\n obj.userToSend,\n value,\n true,\n obj.instanceTelegram,\n obj.resize_keyboard,\n obj.one_time_keyboard,\n obj.userListWithChatID,\n );\n if (Array.isArray(result)) {\n returnIDToListenTo = result;\n }\n return { returnIds: returnIDToListenTo, device2Switch };\n};\n\nconst back = async (obj: BackMenuType): Promise<void> => {\n const result = await switchBack(obj.userToSend, obj.allMenusWithData, obj.menus);\n if (result) {\n await sendToTelegram({\n user: obj.userToSend,\n textToSend: result.texttosend as string,\n keyboard: result.menuToSend,\n instance: obj.instanceTelegram,\n resize_keyboard: obj.resize_keyboard,\n one_time_keyboard: obj.one_time_keyboard,\n userListWithChatID: obj.userListWithChatID,\n parse_mode: result.parseMode,\n });\n }\n};\nasync function callSubMenu(\n jsonStringNav: string,\n newObjectNavStructure: NewObjectNavStructure,\n userToSend: string,\n instanceTelegram: string,\n resize_keyboard: boolean,\n one_time_keyboard: boolean,\n userListWithChatID: UserListWithChatId[],\n part: Part,\n allMenusWithData: { [key: string]: NewObjectNavStructure },\n menus: string[],\n setStateIdsToListenTo: SetStateIds[] | null,\n navObj: NavPart,\n): Promise<{ setStateIdsToListenTo: SetStateIds[] | null; newNav: string | undefined } | undefined> {\n try {\n const obj = await subMenu({\n jsonStringNav: jsonStringNav,\n userToSend: userToSend,\n instanceTelegram: instanceTelegram,\n resize_keyboard: resize_keyboard,\n one_time_keyboard: one_time_keyboard,\n userListWithChatID: userListWithChatID,\n part,\n allMenusWithData: allMenusWithData,\n menus,\n navObj,\n });\n debug([{ text: 'Submenu data:', val: obj?.text }]);\n debug([{ text: 'Submenu data:', val: obj?.keyboard }]);\n debug([{ text: 'Submenu data:', val: obj?.device }]);\n debug([{ text: 'Submenu data:', val: obj?.navToGoBack }]);\n\n if (obj?.returnIds) {\n setStateIdsToListenTo = obj.returnIds;\n\n await _subscribeAndUnSubscribeForeignStatesAsync({ array: obj.returnIds });\n }\n\n if (obj?.text && obj?.keyboard) {\n sendToTelegramSubmenu(\n userToSend,\n obj.text,\n obj.keyboard,\n instanceTelegram,\n userListWithChatID,\n part.parse_mode || 'false',\n );\n }\n return { setStateIdsToListenTo: setStateIdsToListenTo, newNav: obj?.navToGoBack };\n } catch (e: any) {\n error({\n array: [\n { text: 'Error callSubMenu:', val: e.message },\n { text: 'Stack:', val: e.stack },\n ],\n });\n }\n}\n\nasync function subMenu({\n jsonStringNav,\n userToSend,\n instanceTelegram,\n resize_keyboard,\n one_time_keyboard,\n userListWithChatID,\n part,\n allMenusWithData,\n menus,\n navObj,\n}: {\n jsonStringNav: string;\n userToSend: string;\n instanceTelegram: string;\n resize_keyboard: boolean;\n one_time_keyboard: boolean;\n userListWithChatID: UserListWithChatId[];\n part: Part;\n allMenusWithData: { [p: string]: NewObjectNavStructure };\n menus: string[];\n navObj: NavPart;\n}): Promise<\n { text?: string; keyboard?: Keyboard; device?: string; returnIds?: SetStateIds[]; navToGoBack?: string } | undefined\n> {\n try {\n _this.log.debug(`Menu : ${navObj[0][0]}`);\n\n let text: string | undefined = '';\n if (part?.text && part.text != '') {\n text = await checkStatusInfo(part.text);\n }\n\n const called = parseJSON<NavPart>(jsonStringNav);\n if (!called?.length) {\n return;\n }\n const { callbackData, device: device2Switch, val } = getMenuValues(called[0]);\n\n if (callbackData.includes('delete')) {\n return await deleteMessages({\n userToSend,\n userListWithChatID,\n instanceTelegram,\n device2Switch,\n callbackData,\n });\n } else if (callbackData.includes('switch')) {\n return createSwitchMenu({ callbackData, text, device2Switch });\n } else if (callbackData.includes('first')) {\n return await setFirstMenuValue({\n part,\n userToSend,\n instanceTelegram,\n resize_keyboard,\n one_time_keyboard,\n userListWithChatID,\n });\n } else if (callbackData.includes('second')) {\n return await setSecondMenuValue({\n part,\n userToSend,\n instanceTelegram,\n resize_keyboard,\n one_time_keyboard,\n userListWithChatID,\n });\n } else if (callbackData.includes('dynSwitch')) {\n return dynamicSwitch(jsonStringNav, device2Switch, text as string);\n } else if (callbackData.includes('dynS')) {\n return await setDynamicValue({\n val,\n userToSend,\n instanceTelegram,\n resize_keyboard,\n one_time_keyboard,\n userListWithChatID,\n part,\n });\n } else if (!jsonStringNav.includes('submenu') && callbackData.includes('percent')) {\n return createSubmenuPercent({ callbackData, text, device2Switch });\n } else if (jsonStringNav.includes(`submenu:percent${step}`)) {\n return await setValueForSubmenuPercent({\n callbackData,\n calledValue: jsonStringNav,\n userToSend,\n instanceTelegram,\n resize_keyboard,\n one_time_keyboard,\n userListWithChatID,\n part,\n allMenusWithData,\n menus,\n });\n } else if (!jsonStringNav.includes('submenu') && callbackData.includes('number')) {\n return createSubmenuNumber({ callbackData, text, device2Switch });\n } else if (jsonStringNav.includes(`submenu:${callbackData}`)) {\n const result = await setValueForSubmenuNumber({\n callbackData,\n calledValue: jsonStringNav,\n userToSend,\n instanceTelegram,\n resize_keyboard,\n one_time_keyboard,\n userListWithChatID,\n part,\n });\n // device2Switch = result.device2Switch;\n return result.returnIds ? { returnIds: result.returnIds } : undefined;\n } else if (callbackData === 'back') {\n await back({\n userToSend,\n allMenusWithData,\n menus,\n instanceTelegram,\n resize_keyboard,\n one_time_keyboard,\n userListWithChatID,\n });\n }\n return;\n } catch (error: any) {\n error([\n { text: 'Error subMenu:', val: error.message },\n { text: 'Stack', val: error.stack },\n ]);\n }\n}\n\nexport { subMenu, callSubMenu };\n"],
|
|
5
|
-
"mappings": ";;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,sBAA2B;AAC3B,sBAAyB;AACzB,sBAAsD;AACtD,uBAAgC;AAChC,6BAA2D;AAC3D,wBAAiC;AACjC,2BAA8B;AAC9B,qBAAsB;AACtB,qBAAsB;
|
|
4
|
+
"sourcesContent": ["import { switchBack } from './backMenu';\nimport { setState } from './setstate';\nimport { sendToTelegram, sendToTelegramSubmenu } from './telegram';\nimport { checkStatusInfo } from './utilities';\nimport { _subscribeAndUnSubscribeForeignStatesAsync } from './subscribeStates';\nimport { deleteMessageIds } from './messageIds';\nimport { dynamicSwitch } from './dynamicSwitch';\nimport { debug } from './logging';\nimport { error } from 'console';\nimport type {\n SetStateIds,\n SplittedData,\n DeleteMessageIds,\n SetDynamicValueType,\n KeyboardItems,\n SetFirstMenuValue,\n SetSecondMenuValue,\n CreateMenu,\n SetValueForSubmenuPercent,\n SetValueForSubmenuNumber,\n BackMenuType,\n NewObjectNavStructure,\n UserListWithChatId,\n Part,\n NavPart,\n Keyboard,\n} from '../types/types';\nimport { parseJSON } from './global';\nimport { _this } from '../main';\n\nlet step = 0;\nlet returnIDToListenTo: SetStateIds[] = [];\nlet splittedData: SplittedData = [];\n\nconst getMenuValues = (obj: string[]): { callbackData: string; device: string; val: string } => {\n const splitText = obj[0].split(':');\n\n return { callbackData: splitText[1], device: splitText[2], val: splitText[3] };\n};\n\nconst deleteMessages = async (obj: DeleteMessageIds): Promise<{ navToGoBack: string } | undefined> => {\n const navToGoBack = obj.device2Switch;\n if (obj.callbackData.includes('deleteAll')) {\n await deleteMessageIds(obj.userToSend, obj.userListWithChatID, obj.instanceTelegram, 'all');\n }\n if (navToGoBack && navToGoBack != '') {\n return { navToGoBack: navToGoBack };\n }\n return;\n};\n\nconst setDynamicValue = async (obj: SetDynamicValueType): Promise<{ returnIds: SetStateIds[] }> => {\n debug([{ text: 'SplittedData:', val: obj.val }]);\n\n const result = await setState(\n obj.part,\n obj.userToSend,\n obj.val,\n true,\n obj.instanceTelegram,\n obj.resize_keyboard,\n obj.one_time_keyboard,\n obj.userListWithChatID,\n );\n if (Array.isArray(result)) {\n returnIDToListenTo = result;\n }\n return {\n returnIds: returnIDToListenTo,\n };\n};\n\nconst createSubmenuPercent = (obj: CreateMenu): { text?: string; keyboard: Keyboard; device: string } => {\n const { callbackData, device2Switch } = obj;\n\n step = parseFloat(callbackData.replace('percent', ''));\n let rowEntries = 0;\n let menu: KeyboardItems[] = [];\n const keyboard: Keyboard = {\n inline_keyboard: [],\n };\n for (let i = 100; i >= 0; i -= step) {\n menu.push({\n text: `${i}%`,\n callback_data: `submenu:percent${step},${i}:${device2Switch}`,\n });\n if (i != 0 && i - step < 0) {\n menu.push({\n text: `0%`,\n callback_data: `submenu:percent${step},${0}:${device2Switch}`,\n });\n }\n rowEntries++;\n if (rowEntries == 8) {\n keyboard.inline_keyboard.push(menu);\n menu = [];\n rowEntries = 0;\n }\n }\n\n if (rowEntries != 0) {\n keyboard.inline_keyboard.push(menu);\n }\n return { text: obj.text, keyboard: keyboard, device: device2Switch };\n};\n\nconst setFirstMenuValue = async (obj: SetFirstMenuValue): Promise<{ returnIds: SetStateIds[] }> => {\n let val;\n debug([{ text: 'SplitData:', val: splittedData }]);\n if (splittedData[1].split('.')[1] == 'false') {\n val = false;\n } else if (splittedData[1].split('.')[1] == 'true') {\n val = true;\n } else {\n val = splittedData[1].split('.')[1];\n }\n const result = await setState(\n obj.part,\n obj.userToSend,\n val as string,\n true,\n obj.instanceTelegram,\n obj.resize_keyboard,\n obj.one_time_keyboard,\n obj.userListWithChatID,\n );\n if (Array.isArray(result)) {\n returnIDToListenTo = result;\n }\n return { returnIds: returnIDToListenTo };\n};\n\nconst setSecondMenuValue = async (obj: SetSecondMenuValue): Promise<{ returnIds: SetStateIds[] }> => {\n let val;\n if (splittedData[2].split('.')[1] == 'false') {\n val = false;\n } else if (splittedData[2].split('.')[1] == 'true') {\n val = true;\n } else {\n val = splittedData[2].split('.')[1];\n }\n const result = await setState(\n obj.part,\n obj.userToSend,\n val as string,\n true,\n obj.instanceTelegram,\n obj.one_time_keyboard,\n obj.resize_keyboard,\n obj.userListWithChatID,\n );\n if (Array.isArray(result)) {\n returnIDToListenTo = result;\n }\n return { returnIds: returnIDToListenTo };\n};\n\nconst createSubmenuNumber = (obj: CreateMenu): { text?: string; keyboard: Keyboard; device: string } => {\n let callbackData = obj.callbackData;\n const device2Switch = obj.device2Switch;\n\n if (callbackData.includes('(-)')) {\n callbackData = callbackData.replace('(-)', 'negativ');\n }\n const splittedData = callbackData.replace('number', '').split('-');\n let rowEntries = 0;\n let menu: { text: string; callback_data: string }[] = [];\n const keyboard: Keyboard = {\n inline_keyboard: [],\n };\n let unit = '';\n if (splittedData[3] != '') {\n unit = splittedData[3];\n }\n let start: number, end: number;\n const firstValueInText = parseFloat(\n splittedData[0].includes('negativ') ? splittedData[0].replace('negativ', '-') : splittedData[0],\n );\n const secondValueInText = parseFloat(\n splittedData[1].includes('negativ') ? splittedData[1].replace('negativ', '-') : splittedData[1],\n );\n\n if (firstValueInText < secondValueInText) {\n start = secondValueInText;\n end = firstValueInText;\n } else {\n start = firstValueInText;\n end = secondValueInText;\n }\n let index = -1;\n\n let maxEntriesPerRow = 8;\n const step = parseFloat(\n splittedData[2].includes('negativ') ? splittedData[2].replace('negativ', '-') : splittedData[2],\n );\n if (step < 1) {\n maxEntriesPerRow = 6;\n }\n\n for (let i = start; i >= end; i -= step) {\n // Zahlen umdrehen\n if (parseFloat(splittedData[0]) < parseFloat(splittedData[1])) {\n if (i === start) {\n index = end - step;\n }\n index = index + step;\n } else {\n index = i;\n }\n menu.push({\n text: `${index}${unit}`,\n callback_data: `submenu:${callbackData}:${device2Switch}:${index}`,\n });\n rowEntries++;\n if (rowEntries == maxEntriesPerRow) {\n keyboard.inline_keyboard.push(menu);\n menu = [];\n rowEntries = 0;\n }\n }\n\n if (rowEntries != 0) {\n keyboard.inline_keyboard.push(menu);\n }\n debug([{ text: 'keyboard:', val: keyboard }]);\n return { text: obj.text, keyboard, device: device2Switch };\n};\n\nconst createSwitchMenu = ({\n device2Switch,\n callbackData,\n text,\n}: CreateMenu): { text?: string; keyboard: Keyboard; device: string } => {\n splittedData = callbackData.split('-');\n const keyboard = {\n inline_keyboard: [\n [\n {\n text: splittedData[1].split('.')[0],\n callback_data: `menu:first:${device2Switch}`,\n },\n {\n text: splittedData[2].split('.')[0],\n callback_data: `menu:second:${device2Switch}`,\n },\n ],\n ],\n };\n return { text: text, keyboard, device: device2Switch };\n};\n\nconst setValueForSubmenuPercent = async (obj: SetValueForSubmenuPercent): Promise<{ returnIds: SetStateIds[] }> => {\n const value = parseInt(obj.calledValue.split(':')[1].split(',')[1]);\n\n const result = await setState(\n obj.part,\n obj.userToSend,\n value,\n true,\n obj.instanceTelegram,\n obj.resize_keyboard,\n obj.one_time_keyboard,\n obj.userListWithChatID,\n );\n if (Array.isArray(result)) {\n returnIDToListenTo = result;\n }\n return { returnIds: returnIDToListenTo };\n};\n\nconst setValueForSubmenuNumber = async (\n obj: SetValueForSubmenuNumber,\n): Promise<{ returnIds: SetStateIds[]; device2Switch: string }> => {\n debug([{ text: 'CallbackData:', val: obj.callbackData }]);\n\n const value = parseFloat(obj.calledValue.split(':')[3]);\n const device2Switch = obj.calledValue.split(':')[2];\n\n const result = await setState(\n obj.part,\n obj.userToSend,\n value,\n true,\n obj.instanceTelegram,\n obj.resize_keyboard,\n obj.one_time_keyboard,\n obj.userListWithChatID,\n );\n if (Array.isArray(result)) {\n returnIDToListenTo = result;\n }\n return { returnIds: returnIDToListenTo, device2Switch };\n};\n\nconst back = async (obj: BackMenuType): Promise<void> => {\n const result = await switchBack(obj.userToSend, obj.allMenusWithData, obj.menus);\n if (result) {\n await sendToTelegram({\n user: obj.userToSend,\n textToSend: result.texttosend as string,\n keyboard: result.menuToSend,\n instance: obj.instanceTelegram,\n resize_keyboard: obj.resize_keyboard,\n one_time_keyboard: obj.one_time_keyboard,\n userListWithChatID: obj.userListWithChatID,\n parse_mode: result.parseMode,\n });\n }\n};\nasync function callSubMenu(\n jsonStringNav: string,\n newObjectNavStructure: NewObjectNavStructure,\n userToSend: string,\n instanceTelegram: string,\n resize_keyboard: boolean,\n one_time_keyboard: boolean,\n userListWithChatID: UserListWithChatId[],\n part: Part,\n allMenusWithData: { [key: string]: NewObjectNavStructure },\n menus: string[],\n setStateIdsToListenTo: SetStateIds[] | null,\n navObj: NavPart,\n): Promise<{ setStateIdsToListenTo: SetStateIds[] | null; newNav: string | undefined } | undefined> {\n try {\n const obj = await subMenu({\n jsonStringNav: jsonStringNav,\n userToSend: userToSend,\n instanceTelegram: instanceTelegram,\n resize_keyboard: resize_keyboard,\n one_time_keyboard: one_time_keyboard,\n userListWithChatID: userListWithChatID,\n part,\n allMenusWithData: allMenusWithData,\n menus,\n navObj,\n });\n debug([{ text: 'Submenu data:', val: obj?.text }]);\n debug([{ text: 'Submenu data:', val: obj?.keyboard }]);\n debug([{ text: 'Submenu data:', val: obj?.device }]);\n debug([{ text: 'Submenu data:', val: obj?.navToGoBack }]);\n\n if (obj?.returnIds) {\n setStateIdsToListenTo = obj.returnIds;\n\n await _subscribeAndUnSubscribeForeignStatesAsync({ array: obj.returnIds });\n }\n\n if (obj?.text && obj?.keyboard) {\n sendToTelegramSubmenu(\n userToSend,\n obj.text,\n obj.keyboard,\n instanceTelegram,\n userListWithChatID,\n part.parse_mode || 'false',\n );\n }\n return { setStateIdsToListenTo: setStateIdsToListenTo, newNav: obj?.navToGoBack };\n } catch (e: any) {\n error({\n array: [\n { text: 'Error callSubMenu:', val: e.message },\n { text: 'Stack:', val: e.stack },\n ],\n });\n }\n}\n\nasync function subMenu({\n jsonStringNav,\n userToSend,\n instanceTelegram,\n resize_keyboard,\n one_time_keyboard,\n userListWithChatID,\n part,\n allMenusWithData,\n menus,\n navObj,\n}: {\n jsonStringNav: string;\n userToSend: string;\n instanceTelegram: string;\n resize_keyboard: boolean;\n one_time_keyboard: boolean;\n userListWithChatID: UserListWithChatId[];\n part: Part;\n allMenusWithData: { [p: string]: NewObjectNavStructure };\n menus: string[];\n navObj: NavPart;\n}): Promise<\n { text?: string; keyboard?: Keyboard; device?: string; returnIds?: SetStateIds[]; navToGoBack?: string } | undefined\n> {\n try {\n _this.log.debug(`Menu : ${navObj[0][0]}`);\n\n let text: string | undefined = '';\n if (part?.text && part.text != '') {\n text = await checkStatusInfo(part.text);\n }\n\n const called = parseJSON<NavPart>(jsonStringNav);\n if (!called?.length) {\n return;\n }\n const { callbackData, device: device2Switch, val } = getMenuValues(called[0]);\n\n if (callbackData.includes('delete')) {\n return await deleteMessages({\n userToSend,\n userListWithChatID,\n instanceTelegram,\n device2Switch,\n callbackData,\n });\n } else if (callbackData.includes('switch')) {\n return createSwitchMenu({ callbackData, text, device2Switch });\n } else if (callbackData.includes('first')) {\n return await setFirstMenuValue({\n part,\n userToSend,\n instanceTelegram,\n resize_keyboard,\n one_time_keyboard,\n userListWithChatID,\n });\n } else if (callbackData.includes('second')) {\n return await setSecondMenuValue({\n part,\n userToSend,\n instanceTelegram,\n resize_keyboard,\n one_time_keyboard,\n userListWithChatID,\n });\n } else if (callbackData.includes('dynSwitch')) {\n return dynamicSwitch(jsonStringNav, device2Switch, text as string);\n } else if (callbackData.includes('dynS')) {\n return await setDynamicValue({\n val,\n userToSend,\n instanceTelegram,\n resize_keyboard,\n one_time_keyboard,\n userListWithChatID,\n part,\n });\n } else if (!jsonStringNav.includes('submenu') && callbackData.includes('percent')) {\n return createSubmenuPercent({ callbackData, text, device2Switch });\n } else if (jsonStringNav.includes(`submenu:percent${step}`)) {\n return await setValueForSubmenuPercent({\n callbackData,\n calledValue: jsonStringNav,\n userToSend,\n instanceTelegram,\n resize_keyboard,\n one_time_keyboard,\n userListWithChatID,\n part,\n allMenusWithData,\n menus,\n });\n } else if (!jsonStringNav.includes('submenu') && callbackData.includes('number')) {\n return createSubmenuNumber({ callbackData, text, device2Switch });\n } else if (jsonStringNav.includes(`submenu:${callbackData}`)) {\n const result = await setValueForSubmenuNumber({\n callbackData,\n calledValue: jsonStringNav,\n userToSend,\n instanceTelegram,\n resize_keyboard,\n one_time_keyboard,\n userListWithChatID,\n part,\n });\n // device2Switch = result.device2Switch;\n return result.returnIds ? { returnIds: result.returnIds } : undefined;\n } else if (callbackData === 'back') {\n await back({\n userToSend,\n allMenusWithData,\n menus,\n instanceTelegram,\n resize_keyboard,\n one_time_keyboard,\n userListWithChatID,\n });\n }\n return;\n } catch (error: any) {\n error([\n { text: 'Error subMenu:', val: error.message },\n { text: 'Stack', val: error.stack },\n ]);\n }\n}\n\nexport { subMenu, callSubMenu };\n"],
|
|
5
|
+
"mappings": ";;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,sBAA2B;AAC3B,sBAAyB;AACzB,sBAAsD;AACtD,uBAAgC;AAChC,6BAA2D;AAC3D,wBAAiC;AACjC,2BAA8B;AAC9B,qBAAsB;AACtB,qBAAsB;AAmBtB,oBAA0B;AAC1B,kBAAsB;AAEtB,IAAI,OAAO;AACX,IAAI,qBAAoC,CAAC;AACzC,IAAI,eAA6B,CAAC;AAElC,MAAM,gBAAgB,CAAC,QAAyE;AAC5F,QAAM,YAAY,IAAI,CAAC,EAAE,MAAM,GAAG;AAElC,SAAO,EAAE,cAAc,UAAU,CAAC,GAAG,QAAQ,UAAU,CAAC,GAAG,KAAK,UAAU,CAAC,EAAE;AACjF;AAEA,MAAM,iBAAiB,OAAO,QAAwE;AAClG,QAAM,cAAc,IAAI;AACxB,MAAI,IAAI,aAAa,SAAS,WAAW,GAAG;AACxC,cAAM,oCAAiB,IAAI,YAAY,IAAI,oBAAoB,IAAI,kBAAkB,KAAK;AAAA,EAC9F;AACA,MAAI,eAAe,eAAe,IAAI;AAClC,WAAO,EAAE,YAAyB;AAAA,EACtC;AACA;AACJ;AAEA,MAAM,kBAAkB,OAAO,QAAoE;AAC/F,4BAAM,CAAC,EAAE,MAAM,iBAAiB,KAAK,IAAI,IAAI,CAAC,CAAC;AAE/C,QAAM,SAAS,UAAM;AAAA,IACjB,IAAI;AAAA,IACJ,IAAI;AAAA,IACJ,IAAI;AAAA,IACJ;AAAA,IACA,IAAI;AAAA,IACJ,IAAI;AAAA,IACJ,IAAI;AAAA,IACJ,IAAI;AAAA,EACR;AACA,MAAI,MAAM,QAAQ,MAAM,GAAG;AACvB,yBAAqB;AAAA,EACzB;AACA,SAAO;AAAA,IACH,WAAW;AAAA,EACf;AACJ;AAEA,MAAM,uBAAuB,CAAC,QAA2E;AACrG,QAAM,EAAE,cAAc,cAAc,IAAI;AAExC,SAAO,WAAW,aAAa,QAAQ,WAAW,EAAE,CAAC;AACrD,MAAI,aAAa;AACjB,MAAI,OAAwB,CAAC;AAC7B,QAAM,WAAqB;AAAA,IACvB,iBAAiB,CAAC;AAAA,EACtB;AACA,WAAS,IAAI,KAAK,KAAK,GAAG,KAAK,MAAM;AACjC,SAAK,KAAK;AAAA,MACN,MAAM,GAAG,CAAC;AAAA,MACV,eAAe,kBAAkB,IAAI,IAAI,CAAC,IAAI,aAAa;AAAA,IAC/D,CAAC;AACD,QAAI,KAAK,KAAK,IAAI,OAAO,GAAG;AACxB,WAAK,KAAK;AAAA,QACN,MAAM;AAAA,QACN,eAAe,kBAAkB,IAAI,IAAI,CAAC,IAAI,aAAa;AAAA,MAC/D,CAAC;AAAA,IACL;AACA;AACA,QAAI,cAAc,GAAG;AACjB,eAAS,gBAAgB,KAAK,IAAI;AAClC,aAAO,CAAC;AACR,mBAAa;AAAA,IACjB;AAAA,EACJ;AAEA,MAAI,cAAc,GAAG;AACjB,aAAS,gBAAgB,KAAK,IAAI;AAAA,EACtC;AACA,SAAO,EAAE,MAAM,IAAI,MAAM,UAAoB,QAAQ,cAAc;AACvE;AAEA,MAAM,oBAAoB,OAAO,QAAkE;AAC/F,MAAI;AACJ,4BAAM,CAAC,EAAE,MAAM,cAAc,KAAK,aAAa,CAAC,CAAC;AACjD,MAAI,aAAa,CAAC,EAAE,MAAM,GAAG,EAAE,CAAC,KAAK,SAAS;AAC1C,UAAM;AAAA,EACV,WAAW,aAAa,CAAC,EAAE,MAAM,GAAG,EAAE,CAAC,KAAK,QAAQ;AAChD,UAAM;AAAA,EACV,OAAO;AACH,UAAM,aAAa,CAAC,EAAE,MAAM,GAAG,EAAE,CAAC;AAAA,EACtC;AACA,QAAM,SAAS,UAAM;AAAA,IACjB,IAAI;AAAA,IACJ,IAAI;AAAA,IACJ;AAAA,IACA;AAAA,IACA,IAAI;AAAA,IACJ,IAAI;AAAA,IACJ,IAAI;AAAA,IACJ,IAAI;AAAA,EACR;AACA,MAAI,MAAM,QAAQ,MAAM,GAAG;AACvB,yBAAqB;AAAA,EACzB;AACA,SAAO,EAAE,WAAW,mBAAmB;AAC3C;AAEA,MAAM,qBAAqB,OAAO,QAAmE;AACjG,MAAI;AACJ,MAAI,aAAa,CAAC,EAAE,MAAM,GAAG,EAAE,CAAC,KAAK,SAAS;AAC1C,UAAM;AAAA,EACV,WAAW,aAAa,CAAC,EAAE,MAAM,GAAG,EAAE,CAAC,KAAK,QAAQ;AAChD,UAAM;AAAA,EACV,OAAO;AACH,UAAM,aAAa,CAAC,EAAE,MAAM,GAAG,EAAE,CAAC;AAAA,EACtC;AACA,QAAM,SAAS,UAAM;AAAA,IACjB,IAAI;AAAA,IACJ,IAAI;AAAA,IACJ;AAAA,IACA;AAAA,IACA,IAAI;AAAA,IACJ,IAAI;AAAA,IACJ,IAAI;AAAA,IACJ,IAAI;AAAA,EACR;AACA,MAAI,MAAM,QAAQ,MAAM,GAAG;AACvB,yBAAqB;AAAA,EACzB;AACA,SAAO,EAAE,WAAW,mBAAmB;AAC3C;AAEA,MAAM,sBAAsB,CAAC,QAA2E;AACpG,MAAI,eAAe,IAAI;AACvB,QAAM,gBAAgB,IAAI;AAE1B,MAAI,aAAa,SAAS,KAAK,GAAG;AAC9B,mBAAe,aAAa,QAAQ,OAAO,SAAS;AAAA,EACxD;AACA,QAAMA,gBAAe,aAAa,QAAQ,UAAU,EAAE,EAAE,MAAM,GAAG;AACjE,MAAI,aAAa;AACjB,MAAI,OAAkD,CAAC;AACvD,QAAM,WAAqB;AAAA,IACvB,iBAAiB,CAAC;AAAA,EACtB;AACA,MAAI,OAAO;AACX,MAAIA,cAAa,CAAC,KAAK,IAAI;AACvB,WAAOA,cAAa,CAAC;AAAA,EACzB;AACA,MAAI,OAAe;AACnB,QAAM,mBAAmB;AAAA,IACrBA,cAAa,CAAC,EAAE,SAAS,SAAS,IAAIA,cAAa,CAAC,EAAE,QAAQ,WAAW,GAAG,IAAIA,cAAa,CAAC;AAAA,EAClG;AACA,QAAM,oBAAoB;AAAA,IACtBA,cAAa,CAAC,EAAE,SAAS,SAAS,IAAIA,cAAa,CAAC,EAAE,QAAQ,WAAW,GAAG,IAAIA,cAAa,CAAC;AAAA,EAClG;AAEA,MAAI,mBAAmB,mBAAmB;AACtC,YAAQ;AACR,UAAM;AAAA,EACV,OAAO;AACH,YAAQ;AACR,UAAM;AAAA,EACV;AACA,MAAI,QAAQ;AAEZ,MAAI,mBAAmB;AACvB,QAAMC,QAAO;AAAA,IACTD,cAAa,CAAC,EAAE,SAAS,SAAS,IAAIA,cAAa,CAAC,EAAE,QAAQ,WAAW,GAAG,IAAIA,cAAa,CAAC;AAAA,EAClG;AACA,MAAIC,QAAO,GAAG;AACV,uBAAmB;AAAA,EACvB;AAEA,WAAS,IAAI,OAAO,KAAK,KAAK,KAAKA,OAAM;AAErC,QAAI,WAAWD,cAAa,CAAC,CAAC,IAAI,WAAWA,cAAa,CAAC,CAAC,GAAG;AAC3D,UAAI,MAAM,OAAO;AACb,gBAAQ,MAAMC;AAAA,MAClB;AACA,cAAQ,QAAQA;AAAA,IACpB,OAAO;AACH,cAAQ;AAAA,IACZ;AACA,SAAK,KAAK;AAAA,MACN,MAAM,GAAG,KAAK,GAAG,IAAI;AAAA,MACrB,eAAe,WAAW,YAAY,IAAI,aAAa,IAAI,KAAK;AAAA,IACpE,CAAC;AACD;AACA,QAAI,cAAc,kBAAkB;AAChC,eAAS,gBAAgB,KAAK,IAAI;AAClC,aAAO,CAAC;AACR,mBAAa;AAAA,IACjB;AAAA,EACJ;AAEA,MAAI,cAAc,GAAG;AACjB,aAAS,gBAAgB,KAAK,IAAI;AAAA,EACtC;AACA,4BAAM,CAAC,EAAE,MAAM,aAAa,KAAK,SAAS,CAAC,CAAC;AAC5C,SAAO,EAAE,MAAM,IAAI,MAAM,UAAU,QAAQ,cAAc;AAC7D;AAEA,MAAM,mBAAmB,CAAC;AAAA,EACtB;AAAA,EACA;AAAA,EACA;AACJ,MAAyE;AACrE,iBAAe,aAAa,MAAM,GAAG;AACrC,QAAM,WAAW;AAAA,IACb,iBAAiB;AAAA,MACb;AAAA,QACI;AAAA,UACI,MAAM,aAAa,CAAC,EAAE,MAAM,GAAG,EAAE,CAAC;AAAA,UAClC,eAAe,cAAc,aAAa;AAAA,QAC9C;AAAA,QACA;AAAA,UACI,MAAM,aAAa,CAAC,EAAE,MAAM,GAAG,EAAE,CAAC;AAAA,UAClC,eAAe,eAAe,aAAa;AAAA,QAC/C;AAAA,MACJ;AAAA,IACJ;AAAA,EACJ;AACA,SAAO,EAAE,MAAY,UAAU,QAAQ,cAAc;AACzD;AAEA,MAAM,4BAA4B,OAAO,QAA0E;AAC/G,QAAM,QAAQ,SAAS,IAAI,YAAY,MAAM,GAAG,EAAE,CAAC,EAAE,MAAM,GAAG,EAAE,CAAC,CAAC;AAElE,QAAM,SAAS,UAAM;AAAA,IACjB,IAAI;AAAA,IACJ,IAAI;AAAA,IACJ;AAAA,IACA;AAAA,IACA,IAAI;AAAA,IACJ,IAAI;AAAA,IACJ,IAAI;AAAA,IACJ,IAAI;AAAA,EACR;AACA,MAAI,MAAM,QAAQ,MAAM,GAAG;AACvB,yBAAqB;AAAA,EACzB;AACA,SAAO,EAAE,WAAW,mBAAmB;AAC3C;AAEA,MAAM,2BAA2B,OAC7B,QAC+D;AAC/D,4BAAM,CAAC,EAAE,MAAM,iBAAiB,KAAK,IAAI,aAAa,CAAC,CAAC;AAExD,QAAM,QAAQ,WAAW,IAAI,YAAY,MAAM,GAAG,EAAE,CAAC,CAAC;AACtD,QAAM,gBAAgB,IAAI,YAAY,MAAM,GAAG,EAAE,CAAC;AAElD,QAAM,SAAS,UAAM;AAAA,IACjB,IAAI;AAAA,IACJ,IAAI;AAAA,IACJ;AAAA,IACA;AAAA,IACA,IAAI;AAAA,IACJ,IAAI;AAAA,IACJ,IAAI;AAAA,IACJ,IAAI;AAAA,EACR;AACA,MAAI,MAAM,QAAQ,MAAM,GAAG;AACvB,yBAAqB;AAAA,EACzB;AACA,SAAO,EAAE,WAAW,oBAAoB,cAAc;AAC1D;AAEA,MAAM,OAAO,OAAO,QAAqC;AACrD,QAAM,SAAS,UAAM,4BAAW,IAAI,YAAY,IAAI,kBAAkB,IAAI,KAAK;AAC/E,MAAI,QAAQ;AACR,cAAM,gCAAe;AAAA,MACjB,MAAM,IAAI;AAAA,MACV,YAAY,OAAO;AAAA,MACnB,UAAU,OAAO;AAAA,MACjB,UAAU,IAAI;AAAA,MACd,iBAAiB,IAAI;AAAA,MACrB,mBAAmB,IAAI;AAAA,MACvB,oBAAoB,IAAI;AAAA,MACxB,YAAY,OAAO;AAAA,IACvB,CAAC;AAAA,EACL;AACJ;AACA,eAAe,YACX,eACA,uBACA,YACA,kBACA,iBACA,mBACA,oBACA,MACA,kBACA,OACA,uBACA,QACgG;AAChG,MAAI;AACA,UAAM,MAAM,MAAM,QAAQ;AAAA,MACtB;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,IACJ,CAAC;AACD,8BAAM,CAAC,EAAE,MAAM,iBAAiB,KAAK,2BAAK,KAAK,CAAC,CAAC;AACjD,8BAAM,CAAC,EAAE,MAAM,iBAAiB,KAAK,2BAAK,SAAS,CAAC,CAAC;AACrD,8BAAM,CAAC,EAAE,MAAM,iBAAiB,KAAK,2BAAK,OAAO,CAAC,CAAC;AACnD,8BAAM,CAAC,EAAE,MAAM,iBAAiB,KAAK,2BAAK,YAAY,CAAC,CAAC;AAExD,QAAI,2BAAK,WAAW;AAChB,8BAAwB,IAAI;AAE5B,gBAAM,mEAA2C,EAAE,OAAO,IAAI,UAAU,CAAC;AAAA,IAC7E;AAEA,SAAI,2BAAK,UAAQ,2BAAK,WAAU;AAC5B;AAAA,QACI;AAAA,QACA,IAAI;AAAA,QACJ,IAAI;AAAA,QACJ;AAAA,QACA;AAAA,QACA,KAAK,cAAc;AAAA,MACvB;AAAA,IACJ;AACA,WAAO,EAAE,uBAA8C,QAAQ,2BAAK,YAAY;AAAA,EACpF,SAAS,GAAQ;AACb,8BAAM;AAAA,MACF,OAAO;AAAA,QACH,EAAE,MAAM,sBAAsB,KAAK,EAAE,QAAQ;AAAA,QAC7C,EAAE,MAAM,UAAU,KAAK,EAAE,MAAM;AAAA,MACnC;AAAA,IACJ,CAAC;AAAA,EACL;AACJ;AAEA,eAAe,QAAQ;AAAA,EACnB;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AACJ,GAaE;AACE,MAAI;AACA,sBAAM,IAAI,MAAM,UAAU,OAAO,CAAC,EAAE,CAAC,CAAC,EAAE;AAExC,QAAI,OAA2B;AAC/B,SAAI,6BAAM,SAAQ,KAAK,QAAQ,IAAI;AAC/B,aAAO,UAAM,kCAAgB,KAAK,IAAI;AAAA,IAC1C;AAEA,UAAM,aAAS,yBAAmB,aAAa;AAC/C,QAAI,EAAC,iCAAQ,SAAQ;AACjB;AAAA,IACJ;AACA,UAAM,EAAE,cAAc,QAAQ,eAAe,IAAI,IAAI,cAAc,OAAO,CAAC,CAAC;AAE5E,QAAI,aAAa,SAAS,QAAQ,GAAG;AACjC,aAAO,MAAM,eAAe;AAAA,QACxB;AAAA,QACA;AAAA,QACA;AAAA,QACA;AAAA,QACA;AAAA,MACJ,CAAC;AAAA,IACL,WAAW,aAAa,SAAS,QAAQ,GAAG;AACxC,aAAO,iBAAiB,EAAE,cAAc,MAAM,cAAc,CAAC;AAAA,IACjE,WAAW,aAAa,SAAS,OAAO,GAAG;AACvC,aAAO,MAAM,kBAAkB;AAAA,QAC3B;AAAA,QACA;AAAA,QACA;AAAA,QACA;AAAA,QACA;AAAA,QACA;AAAA,MACJ,CAAC;AAAA,IACL,WAAW,aAAa,SAAS,QAAQ,GAAG;AACxC,aAAO,MAAM,mBAAmB;AAAA,QAC5B;AAAA,QACA;AAAA,QACA;AAAA,QACA;AAAA,QACA;AAAA,QACA;AAAA,MACJ,CAAC;AAAA,IACL,WAAW,aAAa,SAAS,WAAW,GAAG;AAC3C,iBAAO,oCAAc,eAAe,eAAe,IAAc;AAAA,IACrE,WAAW,aAAa,SAAS,MAAM,GAAG;AACtC,aAAO,MAAM,gBAAgB;AAAA,QACzB;AAAA,QACA;AAAA,QACA;AAAA,QACA;AAAA,QACA;AAAA,QACA;AAAA,QACA;AAAA,MACJ,CAAC;AAAA,IACL,WAAW,CAAC,cAAc,SAAS,SAAS,KAAK,aAAa,SAAS,SAAS,GAAG;AAC/E,aAAO,qBAAqB,EAAE,cAAc,MAAM,cAAc,CAAC;AAAA,IACrE,WAAW,cAAc,SAAS,kBAAkB,IAAI,EAAE,GAAG;AACzD,aAAO,MAAM,0BAA0B;AAAA,QACnC;AAAA,QACA,aAAa;AAAA,QACb;AAAA,QACA;AAAA,QACA;AAAA,QACA;AAAA,QACA;AAAA,QACA;AAAA,QACA;AAAA,QACA;AAAA,MACJ,CAAC;AAAA,IACL,WAAW,CAAC,cAAc,SAAS,SAAS,KAAK,aAAa,SAAS,QAAQ,GAAG;AAC9E,aAAO,oBAAoB,EAAE,cAAc,MAAM,cAAc,CAAC;AAAA,IACpE,WAAW,cAAc,SAAS,WAAW,YAAY,EAAE,GAAG;AAC1D,YAAM,SAAS,MAAM,yBAAyB;AAAA,QAC1C;AAAA,QACA,aAAa;AAAA,QACb;AAAA,QACA;AAAA,QACA;AAAA,QACA;AAAA,QACA;AAAA,QACA;AAAA,MACJ,CAAC;AAED,aAAO,OAAO,YAAY,EAAE,WAAW,OAAO,UAAU,IAAI;AAAA,IAChE,WAAW,iBAAiB,QAAQ;AAChC,YAAM,KAAK;AAAA,QACP;AAAA,QACA;AAAA,QACA;AAAA,QACA;AAAA,QACA;AAAA,QACA;AAAA,QACA;AAAA,MACJ,CAAC;AAAA,IACL;AACA;AAAA,EACJ,SAASC,QAAY;AACjB,IAAAA,OAAM;AAAA,MACF,EAAE,MAAM,kBAAkB,KAAKA,OAAM,QAAQ;AAAA,MAC7C,EAAE,MAAM,SAAS,KAAKA,OAAM,MAAM;AAAA,IACtC,CAAC;AAAA,EACL;AACJ;",
|
|
6
6
|
"names": ["splittedData", "step", "error"]
|
|
7
7
|
}
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"version": 3,
|
|
3
3
|
"sources": ["../../src/lib/subscribeStates.ts"],
|
|
4
|
-
"sourcesContent": ["import TelegramMenu from '../main';\nimport { deleteDoubleEntriesInArray } from './global';\nimport { debug } from './logging';\nimport type { SetStateIds } from '
|
|
4
|
+
"sourcesContent": ["import TelegramMenu from '../main';\nimport { deleteDoubleEntriesInArray } from './global';\nimport { debug } from './logging';\nimport type { SetStateIds } from '../types/types';\n\nasync function _subscribeAndUnSubscribeForeignStatesAsync(obj: { array?: SetStateIds[]; id?: string }): Promise<void> {\n const _this = TelegramMenu.getInstance();\n if (obj.id) {\n debug([\n { text: 'ID to subscribe:', val: obj.id },\n { text: 'Subscribe:', val: await _this.subscribeForeignStatesAsync(obj.id) },\n ]);\n } else if (obj.array) {\n for (const element of obj.array) {\n await _this.subscribeForeignStatesAsync(element.id);\n }\n }\n}\n\nasync function _subscribeForeignStatesAsync(array: string[]): Promise<void> {\n const _this = TelegramMenu.getInstance();\n array = deleteDoubleEntriesInArray(array);\n for (const element of array) {\n await _this.subscribeForeignStatesAsync(element);\n }\n debug([{ text: 'Subscribe all States of:', val: array }]);\n}\n\nexport { _subscribeAndUnSubscribeForeignStatesAsync, _subscribeForeignStatesAsync };\n"],
|
|
5
5
|
"mappings": ";;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,kBAAyB;AACzB,oBAA2C;AAC3C,qBAAsB;AAGtB,eAAe,2CAA2C,KAA4D;AAClH,QAAM,QAAQ,YAAAA,QAAa,YAAY;AACvC,MAAI,IAAI,IAAI;AACR,8BAAM;AAAA,MACF,EAAE,MAAM,oBAAoB,KAAK,IAAI,GAAG;AAAA,MACxC,EAAE,MAAM,cAAc,KAAK,MAAM,MAAM,4BAA4B,IAAI,EAAE,EAAE;AAAA,IAC/E,CAAC;AAAA,EACL,WAAW,IAAI,OAAO;AAClB,eAAW,WAAW,IAAI,OAAO;AAC7B,YAAM,MAAM,4BAA4B,QAAQ,EAAE;AAAA,IACtD;AAAA,EACJ;AACJ;AAEA,eAAe,6BAA6B,OAAgC;AACxE,QAAM,QAAQ,YAAAA,QAAa,YAAY;AACvC,cAAQ,0CAA2B,KAAK;AACxC,aAAW,WAAW,OAAO;AACzB,UAAM,MAAM,4BAA4B,OAAO;AAAA,EACnD;AACA,4BAAM,CAAC,EAAE,MAAM,4BAA4B,KAAK,MAAM,CAAC,CAAC;AAC5D;",
|
|
6
6
|
"names": ["TelegramMenu"]
|
|
7
7
|
}
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"version": 3,
|
|
3
3
|
"sources": ["../../src/lib/telegram.ts"],
|
|
4
|
-
"sourcesContent": ["import { debug, error } from './logging';\nimport { checkStatusInfo, getChatID, newLine } from './utilities';\nimport TelegramMenu from '../main';\nimport type { BooleanString, Keyboard, Location, ParseModeType, UserListWithChatId } from '
|
|
4
|
+
"sourcesContent": ["import { debug, error } from './logging';\nimport { checkStatusInfo, getChatID, newLine } from './utilities';\nimport TelegramMenu from '../main';\nimport type { BooleanString, Keyboard, Location, ParseModeType, UserListWithChatId } from '../types/types';\nimport { isTruthy } from './global';\n\nasync function sendToTelegram({\n user = '',\n textToSend,\n keyboard,\n instance = 'telegram.0',\n resize_keyboard = true,\n one_time_keyboard = true,\n userListWithChatID,\n parse_mode,\n}: {\n user: string;\n textToSend: string;\n keyboard?: Keyboard;\n instance: string;\n resize_keyboard: boolean;\n one_time_keyboard: boolean;\n userListWithChatID: UserListWithChatId[];\n parse_mode: BooleanString;\n}): Promise<void> {\n try {\n const _this = TelegramMenu.getInstance();\n const chatId = getChatID(userListWithChatID, user);\n const parse_modeType: ParseModeType = getParseMode(parse_mode);\n debug([\n { text: `Send to: ${user} => ${textToSend}` },\n { text: 'Instance:', val: instance },\n { text: 'UserListWithChatID\t:', val: userListWithChatID },\n { text: 'Parse_mode\t:', val: parse_mode },\n { text: 'ChatId\t:', val: chatId },\n { text: 'ParseModeType:', val: parse_modeType },\n ]);\n\n textToSend = newLine(textToSend);\n if (!keyboard) {\n _this.log.debug('No Keyboard');\n _this.sendTo(\n instance,\n 'send',\n {\n text: textToSend,\n chatId: chatId,\n parse_mode: parse_modeType,\n },\n function (res: any) {\n _this.log.debug(`Sent Value to ${JSON.stringify(res)} users!`);\n },\n );\n } else {\n const text = await checkStatusInfo(textToSend);\n _this.sendTo(\n instance,\n 'send',\n {\n chatId: chatId,\n parse_mode: parse_modeType,\n text: text,\n reply_markup: {\n keyboard: keyboard,\n resize_keyboard: resize_keyboard,\n one_time_keyboard: one_time_keyboard,\n },\n },\n function (res: any) {\n debug([{ text: `Sent Value to ${res} users!` }]);\n },\n );\n }\n } catch (e: any) {\n error([\n { text: 'Error sendToTelegram:', val: e.message },\n { text: 'Stack:', val: e.stack },\n ]);\n }\n}\n\nfunction sendToTelegramSubmenu(\n user: string,\n textToSend: string,\n keyboard: Keyboard,\n instance = 'telegram.0',\n userListWithChatID: UserListWithChatId[],\n parse_mode: BooleanString,\n): void {\n const _this = TelegramMenu.getInstance();\n const parseModeType = getParseMode(parse_mode);\n debug([{ text: 'Send this ParseMode:', val: parseModeType }]);\n try {\n const chatId = getChatID(userListWithChatID, user);\n textToSend = newLine(textToSend);\n _this.sendTo(instance, 'send', {\n chatId: chatId,\n parse_mode: parseModeType,\n text: textToSend,\n reply_markup: keyboard,\n });\n } catch (e: any) {\n error([\n { text: 'Error sendToTelegramSubmenu:', val: e.message },\n { text: 'Stack:', val: e.stack },\n ]);\n }\n}\n\nconst sendLocationToTelegram = async (\n user: string,\n data: Location[],\n instance: string,\n userListWithChatID: UserListWithChatId[],\n): Promise<void> => {\n const _this = TelegramMenu.getInstance();\n try {\n const chatId = getChatID(userListWithChatID, user);\n for (const element of data) {\n if (!(element.latitude || element.longitude)) {\n continue;\n }\n\n const latitude = await _this.getForeignStateAsync(element.latitude);\n const longitude = await _this.getForeignStateAsync(element.longitude);\n if (!latitude || !longitude) {\n continue;\n }\n _this.sendTo(instance, {\n chatId: chatId,\n latitude: latitude.val,\n longitude: longitude.val,\n disable_notification: true,\n });\n }\n } catch (e: any) {\n error([\n { text: 'Error sendLocationToTelegram:', val: e.message },\n { text: 'Stack:', val: e.stack },\n ]);\n }\n};\n\nfunction getParseMode(val: BooleanString | boolean): ParseModeType {\n if (isTruthy(val)) {\n return 'HTML';\n }\n return 'Markdown';\n}\n\nexport { sendToTelegram, sendToTelegramSubmenu, sendLocationToTelegram };\n"],
|
|
5
5
|
"mappings": "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",
|
|
6
6
|
"names": ["TelegramMenu"]
|
|
7
7
|
}
|
|
@@ -0,0 +1,93 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __defProp = Object.defineProperty;
|
|
3
|
+
var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
|
|
4
|
+
var __getOwnPropNames = Object.getOwnPropertyNames;
|
|
5
|
+
var __hasOwnProp = Object.prototype.hasOwnProperty;
|
|
6
|
+
var __export = (target, all) => {
|
|
7
|
+
for (var name in all)
|
|
8
|
+
__defProp(target, name, { get: all[name], enumerable: true });
|
|
9
|
+
};
|
|
10
|
+
var __copyProps = (to, from, except, desc) => {
|
|
11
|
+
if (from && typeof from === "object" || typeof from === "function") {
|
|
12
|
+
for (let key of __getOwnPropNames(from))
|
|
13
|
+
if (!__hasOwnProp.call(to, key) && key !== except)
|
|
14
|
+
__defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
|
|
15
|
+
}
|
|
16
|
+
return to;
|
|
17
|
+
};
|
|
18
|
+
var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
|
|
19
|
+
var time_exports = {};
|
|
20
|
+
__export(time_exports, {
|
|
21
|
+
extractTimeValues: () => extractTimeValues,
|
|
22
|
+
getTimeWithPad: () => getTimeWithPad,
|
|
23
|
+
integrateTimeIntoText: () => integrateTimeIntoText,
|
|
24
|
+
toLocaleDate: () => toLocaleDate
|
|
25
|
+
});
|
|
26
|
+
module.exports = __toCommonJS(time_exports);
|
|
27
|
+
var import_config = require("../config/config");
|
|
28
|
+
var import_string = require("./string");
|
|
29
|
+
const toLocaleDate = (ts, options) => {
|
|
30
|
+
var _a, _b;
|
|
31
|
+
return ts.toLocaleDateString((_a = options == null ? void 0 : options.locale) != null ? _a : import_config.defaultLocale, {
|
|
32
|
+
hour: "2-digit",
|
|
33
|
+
minute: "2-digit",
|
|
34
|
+
second: "2-digit",
|
|
35
|
+
hour12: false,
|
|
36
|
+
timeZone: (_b = options == null ? void 0 : options.tz) != null ? _b : import_config.timezone
|
|
37
|
+
});
|
|
38
|
+
};
|
|
39
|
+
const integrateTimeIntoText = (text, val) => {
|
|
40
|
+
if (!val) {
|
|
41
|
+
return text.replace(import_config.config.time, '"Invalid Date"');
|
|
42
|
+
}
|
|
43
|
+
const date = new Date(Number(String(val)));
|
|
44
|
+
return text.replace(import_config.config.time, isNaN(date.getTime()) ? '"Invalid Date"' : toLocaleDate(date));
|
|
45
|
+
};
|
|
46
|
+
function extractTimeValues(tsInMs) {
|
|
47
|
+
var _a;
|
|
48
|
+
if (isNaN(tsInMs) || tsInMs < 0) {
|
|
49
|
+
return { milliseconds: NaN, seconds: NaN, minutes: NaN, hours: NaN, day: NaN, month: NaN, year: NaN };
|
|
50
|
+
}
|
|
51
|
+
const date = new Date(tsInMs);
|
|
52
|
+
const milliseconds = date.getMilliseconds();
|
|
53
|
+
const seconds = date.getSeconds();
|
|
54
|
+
const minutes = date.getMinutes();
|
|
55
|
+
const hours = Number(
|
|
56
|
+
(_a = new Intl.DateTimeFormat(import_config.defaultLocale, {
|
|
57
|
+
hour: "2-digit",
|
|
58
|
+
hour12: false,
|
|
59
|
+
timeZone: import_config.timezone
|
|
60
|
+
}).formatToParts(new Date(tsInMs)).find((part) => part.type === "hour")) == null ? void 0 : _a.value
|
|
61
|
+
);
|
|
62
|
+
const day = Number(date.toLocaleString(import_config.defaultLocale, { day: "2-digit" }));
|
|
63
|
+
const month = Number(date.toLocaleString(import_config.defaultLocale, { month: "2-digit" }));
|
|
64
|
+
const year = Number(date.toLocaleString(import_config.defaultLocale, { year: "numeric" }));
|
|
65
|
+
return { milliseconds, seconds, minutes, hours, day, month, year };
|
|
66
|
+
}
|
|
67
|
+
function getTimeWithPad({
|
|
68
|
+
milliseconds,
|
|
69
|
+
seconds,
|
|
70
|
+
day,
|
|
71
|
+
minutes,
|
|
72
|
+
year,
|
|
73
|
+
month,
|
|
74
|
+
hours
|
|
75
|
+
}) {
|
|
76
|
+
return {
|
|
77
|
+
ms: (0, import_string.pad)(milliseconds, 3),
|
|
78
|
+
s: (0, import_string.pad)(seconds),
|
|
79
|
+
m: (0, import_string.pad)(minutes),
|
|
80
|
+
h: (0, import_string.pad)(hours),
|
|
81
|
+
d: (0, import_string.pad)(day),
|
|
82
|
+
mo: (0, import_string.pad)(month),
|
|
83
|
+
y: year.toString()
|
|
84
|
+
};
|
|
85
|
+
}
|
|
86
|
+
// Annotate the CommonJS export names for ESM import in node:
|
|
87
|
+
0 && (module.exports = {
|
|
88
|
+
extractTimeValues,
|
|
89
|
+
getTimeWithPad,
|
|
90
|
+
integrateTimeIntoText,
|
|
91
|
+
toLocaleDate
|
|
92
|
+
});
|
|
93
|
+
//# sourceMappingURL=time.js.map
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
{
|
|
2
|
+
"version": 3,
|
|
3
|
+
"sources": ["../../src/lib/time.ts"],
|
|
4
|
+
"sourcesContent": ["import { config, defaultLocale, timezone } from '../config/config';\nimport type { ExtractTimeValues, GetTimeWithPad } from '../types/types';\nimport { pad } from './string';\n\nexport const toLocaleDate = (ts: Date, options?: { locale?: string; tz?: string }): string => {\n return ts.toLocaleDateString(options?.locale ?? defaultLocale, {\n hour: '2-digit',\n minute: '2-digit',\n second: '2-digit',\n hour12: false,\n timeZone: options?.tz ?? timezone,\n });\n};\n\nexport const integrateTimeIntoText = (text: string, val?: ioBroker.StateValue): string => {\n if (!val) {\n return text.replace(config.time, '\"Invalid Date\"');\n }\n const date = new Date(Number(String(val)));\n\n return text.replace(config.time, isNaN(date.getTime()) ? '\"Invalid Date\"' : toLocaleDate(date));\n};\n\nexport function extractTimeValues(tsInMs: number): ExtractTimeValues {\n if (isNaN(tsInMs) || tsInMs < 0) {\n return { milliseconds: NaN, seconds: NaN, minutes: NaN, hours: NaN, day: NaN, month: NaN, year: NaN };\n }\n const date = new Date(tsInMs); //https://it-tools.tech/date-converter\n const milliseconds = date.getMilliseconds();\n const seconds = date.getSeconds();\n const minutes = date.getMinutes();\n const hours = Number(\n new Intl.DateTimeFormat(defaultLocale, {\n hour: '2-digit',\n hour12: false,\n timeZone: timezone,\n })\n .formatToParts(new Date(tsInMs))\n .find(part => part.type === 'hour')?.value,\n );\n const day = Number(date.toLocaleString(defaultLocale, { day: '2-digit' }));\n const month = Number(date.toLocaleString(defaultLocale, { month: '2-digit' }));\n const year = Number(date.toLocaleString(defaultLocale, { year: 'numeric' }));\n return { milliseconds, seconds, minutes, hours, day, month, year };\n}\n\nexport function getTimeWithPad({\n milliseconds,\n seconds,\n day,\n minutes,\n year,\n month,\n hours,\n}: ExtractTimeValues): GetTimeWithPad {\n return {\n ms: pad(milliseconds, 3),\n s: pad(seconds),\n m: pad(minutes),\n h: pad(hours),\n d: pad(day),\n mo: pad(month),\n y: year.toString(),\n };\n}\n"],
|
|
5
|
+
"mappings": ";;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,oBAAgD;AAEhD,oBAAoB;AAEb,MAAM,eAAe,CAAC,IAAU,YAAuD;AAJ9F;AAKI,SAAO,GAAG,oBAAmB,wCAAS,WAAT,YAAmB,6BAAe;AAAA,IAC3D,MAAM;AAAA,IACN,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,WAAU,wCAAS,OAAT,YAAe;AAAA,EAC7B,CAAC;AACL;AAEO,MAAM,wBAAwB,CAAC,MAAc,QAAsC;AACtF,MAAI,CAAC,KAAK;AACN,WAAO,KAAK,QAAQ,qBAAO,MAAM,gBAAgB;AAAA,EACrD;AACA,QAAM,OAAO,IAAI,KAAK,OAAO,OAAO,GAAG,CAAC,CAAC;AAEzC,SAAO,KAAK,QAAQ,qBAAO,MAAM,MAAM,KAAK,QAAQ,CAAC,IAAI,mBAAmB,aAAa,IAAI,CAAC;AAClG;AAEO,SAAS,kBAAkB,QAAmC;AAvBrE;AAwBI,MAAI,MAAM,MAAM,KAAK,SAAS,GAAG;AAC7B,WAAO,EAAE,cAAc,KAAK,SAAS,KAAK,SAAS,KAAK,OAAO,KAAK,KAAK,KAAK,OAAO,KAAK,MAAM,IAAI;AAAA,EACxG;AACA,QAAM,OAAO,IAAI,KAAK,MAAM;AAC5B,QAAM,eAAe,KAAK,gBAAgB;AAC1C,QAAM,UAAU,KAAK,WAAW;AAChC,QAAM,UAAU,KAAK,WAAW;AAChC,QAAM,QAAQ;AAAA,KACV,SAAI,KAAK,eAAe,6BAAe;AAAA,MACnC,MAAM;AAAA,MACN,QAAQ;AAAA,MACR,UAAU;AAAA,IACd,CAAC,EACI,cAAc,IAAI,KAAK,MAAM,CAAC,EAC9B,KAAK,UAAQ,KAAK,SAAS,MAAM,MANtC,mBAMyC;AAAA,EAC7C;AACA,QAAM,MAAM,OAAO,KAAK,eAAe,6BAAe,EAAE,KAAK,UAAU,CAAC,CAAC;AACzE,QAAM,QAAQ,OAAO,KAAK,eAAe,6BAAe,EAAE,OAAO,UAAU,CAAC,CAAC;AAC7E,QAAM,OAAO,OAAO,KAAK,eAAe,6BAAe,EAAE,MAAM,UAAU,CAAC,CAAC;AAC3E,SAAO,EAAE,cAAc,SAAS,SAAS,OAAO,KAAK,OAAO,KAAK;AACrE;AAEO,SAAS,eAAe;AAAA,EAC3B;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AACJ,GAAsC;AAClC,SAAO;AAAA,IACH,QAAI,mBAAI,cAAc,CAAC;AAAA,IACvB,OAAG,mBAAI,OAAO;AAAA,IACd,OAAG,mBAAI,OAAO;AAAA,IACd,OAAG,mBAAI,KAAK;AAAA,IACZ,OAAG,mBAAI,GAAG;AAAA,IACV,QAAI,mBAAI,KAAK;AAAA,IACb,GAAG,KAAK,SAAS;AAAA,EACrB;AACJ;",
|
|
6
|
+
"names": []
|
|
7
|
+
}
|