iobroker.devices 2.0.16 → 2.0.18

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.
Files changed (100) hide show
  1. package/README.md +1 -1
  2. package/admin/assets/{index-BYWrx6p6.js → index-C_YA-yey.js} +153 -153
  3. package/admin/assets/{index-BxArWwbd.js → index-QGU5trgB.js} +1 -1
  4. package/admin/index_m.html +1 -1
  5. package/admin/src-admin/src/App.js +5 -5
  6. package/admin/src-admin/src/App.js.map +1 -1
  7. package/admin/tab.html +1 -1
  8. package/build/lib/WidgetsManagement.js +3 -7
  9. package/build/lib/WidgetsManagement.js.map +1 -1
  10. package/io-package.json +2 -2
  11. package/package.json +5 -2
  12. package/packages/dm-widgets/build/StateContext.d.ts +54 -0
  13. package/packages/dm-widgets/build/StateContext.d.ts.map +1 -0
  14. package/{build/packages/dm-widgets/src → packages/dm-widgets/build}/StateContext.js +11 -16
  15. package/packages/dm-widgets/build/WidgetGeneric.d.ts +181 -0
  16. package/packages/dm-widgets/build/WidgetGeneric.d.ts.map +1 -0
  17. package/{build/packages/dm-widgets/src → packages/dm-widgets/build}/WidgetGeneric.js +9 -13
  18. package/packages/dm-widgets/build/index.d.ts +55 -0
  19. package/packages/dm-widgets/build/index.d.ts.map +1 -0
  20. package/packages/dm-widgets/build/index.js +59 -0
  21. package/packages/dm-widgets/build/types.d.ts +133 -0
  22. package/packages/dm-widgets/build/types.d.ts.map +1 -0
  23. package/packages/dm-widgets/build/types.js +1 -0
  24. package/packages/dm-widgets/package-lock.json +2753 -0
  25. package/packages/dm-widgets/package.json +43 -0
  26. package/www/assets/{index-DrgD6__K.js → index-DEPE9oow.js} +4 -4
  27. package/www/assets/{index-8ywZEZX-.js → index-DLKwoafV.js} +1 -1
  28. package/www/index.html +1 -1
  29. package/admin/src-admin/src/WidgetsManager/Widgets/ColorLight.js +0 -643
  30. package/admin/src-admin/src/WidgetsManager/Widgets/ColorLight.js.map +0 -1
  31. package/admin/src-admin/src/WidgetsManager/Widgets/ColorLightDialog.js +0 -165
  32. package/admin/src-admin/src/WidgetsManager/Widgets/ColorLightDialog.js.map +0 -1
  33. package/admin/src-admin/src/WidgetsManager/Widgets/Dimmer.js +0 -563
  34. package/admin/src-admin/src/WidgetsManager/Widgets/Dimmer.js.map +0 -1
  35. package/admin/src-admin/src/WidgetsManager/Widgets/Door.js +0 -34
  36. package/admin/src-admin/src/WidgetsManager/Widgets/Door.js.map +0 -1
  37. package/admin/src-admin/src/WidgetsManager/Widgets/EnergyFlow.js +0 -1307
  38. package/admin/src-admin/src/WidgetsManager/Widgets/EnergyFlow.js.map +0 -1
  39. package/admin/src-admin/src/WidgetsManager/Widgets/FireAlarm.js +0 -143
  40. package/admin/src-admin/src/WidgetsManager/Widgets/FireAlarm.js.map +0 -1
  41. package/admin/src-admin/src/WidgetsManager/Widgets/FloodAlarm.js +0 -143
  42. package/admin/src-admin/src/WidgetsManager/Widgets/FloodAlarm.js.map +0 -1
  43. package/admin/src-admin/src/WidgetsManager/Widgets/Gate.js +0 -251
  44. package/admin/src-admin/src/WidgetsManager/Widgets/Gate.js.map +0 -1
  45. package/admin/src-admin/src/WidgetsManager/Widgets/Gauge.js +0 -544
  46. package/admin/src-admin/src/WidgetsManager/Widgets/Gauge.js.map +0 -1
  47. package/admin/src-admin/src/WidgetsManager/Widgets/Humidity.js +0 -140
  48. package/admin/src-admin/src/WidgetsManager/Widgets/Humidity.js.map +0 -1
  49. package/admin/src-admin/src/WidgetsManager/Widgets/Iframe.js +0 -237
  50. package/admin/src-admin/src/WidgetsManager/Widgets/Iframe.js.map +0 -1
  51. package/admin/src-admin/src/WidgetsManager/Widgets/Illuminance.js +0 -104
  52. package/admin/src-admin/src/WidgetsManager/Widgets/Illuminance.js.map +0 -1
  53. package/admin/src-admin/src/WidgetsManager/Widgets/Image.js +0 -269
  54. package/admin/src-admin/src/WidgetsManager/Widgets/Image.js.map +0 -1
  55. package/admin/src-admin/src/WidgetsManager/Widgets/Info.js +0 -290
  56. package/admin/src-admin/src/WidgetsManager/Widgets/Info.js.map +0 -1
  57. package/admin/src-admin/src/WidgetsManager/Widgets/Light.js +0 -19
  58. package/admin/src-admin/src/WidgetsManager/Widgets/Light.js.map +0 -1
  59. package/admin/src-admin/src/WidgetsManager/Widgets/Location.js +0 -681
  60. package/admin/src-admin/src/WidgetsManager/Widgets/Location.js.map +0 -1
  61. package/admin/src-admin/src/WidgetsManager/Widgets/Lock.js +0 -282
  62. package/admin/src-admin/src/WidgetsManager/Widgets/Lock.js.map +0 -1
  63. package/admin/src-admin/src/WidgetsManager/Widgets/MediaPlayer.js +0 -635
  64. package/admin/src-admin/src/WidgetsManager/Widgets/MediaPlayer.js.map +0 -1
  65. package/admin/src-admin/src/WidgetsManager/Widgets/Motion.js +0 -202
  66. package/admin/src-admin/src/WidgetsManager/Widgets/Motion.js.map +0 -1
  67. package/admin/src-admin/src/WidgetsManager/Widgets/Slider.js +0 -658
  68. package/admin/src-admin/src/WidgetsManager/Widgets/Slider.js.map +0 -1
  69. package/admin/src-admin/src/WidgetsManager/Widgets/Switch.js +0 -89
  70. package/admin/src-admin/src/WidgetsManager/Widgets/Switch.js.map +0 -1
  71. package/admin/src-admin/src/WidgetsManager/Widgets/Tank.js +0 -432
  72. package/admin/src-admin/src/WidgetsManager/Widgets/Tank.js.map +0 -1
  73. package/admin/src-admin/src/WidgetsManager/Widgets/Temperature.js +0 -162
  74. package/admin/src-admin/src/WidgetsManager/Widgets/Temperature.js.map +0 -1
  75. package/admin/src-admin/src/WidgetsManager/Widgets/Window.js +0 -148
  76. package/admin/src-admin/src/WidgetsManager/Widgets/Window.js.map +0 -1
  77. package/build/lib/DeviceManagement.js +0 -618
  78. package/build/lib/DeviceManagement.js.map +0 -1
  79. package/build/packages/dm-widgets/src/StateContext.js.map +0 -1
  80. package/build/packages/dm-widgets/src/WidgetGeneric.js.map +0 -1
  81. package/build/packages/dm-widgets/src/index.js +0 -99
  82. package/build/packages/dm-widgets/src/index.js.map +0 -1
  83. package/build/packages/dm-widgets/src/types.js +0 -3
  84. package/build/packages/dm-widgets/src/types.js.map +0 -1
  85. package/build/src/lib/WidgetsManagement.js +0 -756
  86. package/build/src/lib/WidgetsManagement.js.map +0 -1
  87. package/build/src/main.js +0 -53
  88. package/build/src/main.js.map +0 -1
  89. package/build/src/widget-utils/WidgetsManagement.js +0 -119
  90. package/build/src/widget-utils/WidgetsManagement.js.map +0 -1
  91. package/build/src/widget-utils/index.js +0 -18
  92. package/build/src/widget-utils/index.js.map +0 -1
  93. package/build/src/widget-utils/types/api.js +0 -3
  94. package/build/src/widget-utils/types/api.js.map +0 -1
  95. package/build/src/widget-utils/types/base.js +0 -3
  96. package/build/src/widget-utils/types/base.js.map +0 -1
  97. package/build/src/widget-utils/types/index.js +0 -3
  98. package/build/src/widget-utils/types/index.js.map +0 -1
  99. package/build/widget-utils/types/common.js +0 -3
  100. package/build/widget-utils/types/common.js.map +0 -1
@@ -0,0 +1 @@
1
+ {"version":3,"file":"WidgetGeneric.d.ts","sourceRoot":"","sources":["../src/WidgetGeneric.ts"],"names":[],"mappings":"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"}
@@ -1,26 +1,24 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.WidgetGeneric = void 0;
4
- exports.isNeumorphicTheme = isNeumorphicTheme;
5
- exports.getTileStyles = getTileStyles;
6
- const react_1 = require("react");
1
+ import { Component } from 'react';
7
2
  // ---------------------------------------------------------------------------
8
3
  // Helper functions
9
4
  // ---------------------------------------------------------------------------
10
5
  /** Check if the current theme is the neumorphic "styling-grey" preset */
11
- function isNeumorphicTheme(theme) {
6
+ export function isNeumorphicTheme(theme) {
12
7
  return theme.wmPreset === 'styling-grey';
13
8
  }
14
9
  /** Returns tile background, border, border-radius, and transition styles */
15
- function getTileStyles(_theme, _isActive, _accentColor, _interactive, _inactiveColor) {
10
+ export function getTileStyles(_theme, _isActive, _accentColor, _interactive, _inactiveColor) {
16
11
  // Stub — replaced at runtime by the host's real implementation
17
12
  return {};
18
13
  }
19
14
  // ---------------------------------------------------------------------------
20
15
  // Base class
21
16
  // ---------------------------------------------------------------------------
22
- class WidgetGeneric extends react_1.Component {
23
- nameRef = { current: null };
17
+ export class WidgetGeneric extends Component {
18
+ constructor() {
19
+ super(...arguments);
20
+ this.nameRef = { current: null };
21
+ }
24
22
  // --- Static style helpers (use in outer Box sx) ---
25
23
  static getDefaultSettings() {
26
24
  return {
@@ -218,6 +216,4 @@ class WidgetGeneric extends react_1.Component {
218
216
  return null;
219
217
  }
220
218
  }
221
- exports.WidgetGeneric = WidgetGeneric;
222
- exports.default = WidgetGeneric;
223
- //# sourceMappingURL=WidgetGeneric.js.map
219
+ export default WidgetGeneric;
@@ -0,0 +1,55 @@
1
+ /**
2
+ * @iobroker/dm-widgets — Types and base class for ioBroker Device Manager widget plugins.
3
+ *
4
+ * ## How it works
5
+ *
6
+ * **At compile time:** Plugin authors `npm install @iobroker/dm-widgets` and import
7
+ * types, interfaces, and the `WidgetGeneric` base class for TypeScript support.
8
+ *
9
+ * **At runtime:** The host app (ioBroker.devices) exposes the real implementation on
10
+ * `window.__iobrokerDmWidgets__`. This module checks for that global and re-exports
11
+ * the host's real classes — so plugins get the full WidgetGeneric with all rendering
12
+ * logic, not the compile-time stubs.
13
+ *
14
+ * ## Usage
15
+ *
16
+ * ```typescript
17
+ * import WidgetGeneric, {
18
+ * type WidgetGenericProps,
19
+ * type WidgetGenericState,
20
+ * getTileStyles,
21
+ * isNeumorphicTheme,
22
+ * } from '@iobroker/dm-widgets';
23
+ *
24
+ * interface MyWidgetState extends WidgetGenericState {
25
+ * myValue: number;
26
+ * }
27
+ *
28
+ * export class MyWidget extends WidgetGeneric<MyWidgetState> {
29
+ * // Override renderCompact(), renderTileIcon(), etc.
30
+ * }
31
+ * ```
32
+ */
33
+ import * as _stubs from './WidgetGeneric';
34
+ import _StateContextStub from './StateContext';
35
+ export declare const WidgetGeneric: typeof _stubs.WidgetGeneric;
36
+ export default WidgetGeneric;
37
+ export declare const getTileStyles: typeof _stubs.getTileStyles;
38
+ export declare const isNeumorphicTheme: typeof _stubs.isNeumorphicTheme;
39
+ export declare const StateContext: typeof _StateContextStub;
40
+ /** Host's React instance — use this instead of importing 'react' directly in plugins */
41
+ export declare const React: any;
42
+ /** Host's RactDom instance — use this instead of importing 'react-dom' directly in plugins */
43
+ export declare const ReactDom: any;
44
+ /** Host's MUI Material — use this instead of importing '@mui/material' directly in plugins */
45
+ export declare const MuiMaterial: any;
46
+ /** Host's MUI Icons — use this instead of importing '@mui/icons-material' directly in plugins */
47
+ export declare const MuiIcons: any;
48
+ /** Host's moment instance — use this instead of importing 'moment' directly in plugins */
49
+ export declare const moment: any;
50
+ /** Host's adapter-react-v5 instance — use this instead of importing '@iobroker/adapter-react-v5' directly in plugins */
51
+ export declare const AdapterReact: any;
52
+ export type { WidgetGenericProps, IndicatorValues, ChartSeries, ExtraInfoEntry } from './WidgetGeneric';
53
+ export type { StateChangeListener, ObjectChangeListener, IStateContext } from './StateContext';
54
+ export type { CategoryInfo, CustomWidgetBase, CustomWidgetPlugin, CustomWidgetType, DeviceStatus, DevicesDetectorState, DevicesPatternControl, ItemInfo, WidgetGenericState, WidgetInfo, WidgetSettingsBase, } from './types';
55
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA+BG;AAEH,OAAO,KAAK,MAAM,MAAM,iBAAiB,CAAC;AAC1C,OAAO,iBAAiB,MAAM,gBAAgB,CAAC;AAa/C,eAAO,MAAM,aAAa,6BAAyD,CAAC;AACpF,eAAe,aAAa,CAAC;AAC7B,eAAO,MAAM,aAAa,6BAA8C,CAAC;AACzE,eAAO,MAAM,iBAAiB,iCAAsD,CAAC;AACrF,eAAO,MAAM,YAAY,0BAA0C,CAAC;AAEpE,wFAAwF;AACxF,eAAO,MAAM,KAAK,KAAgB,CAAC;AACnC,8FAA8F;AAC9F,eAAO,MAAM,QAAQ,KAAuB,CAAC;AAC7C,8FAA8F;AAC9F,eAAO,MAAM,WAAW,KAA2B,CAAC;AACpD,iGAAiG;AACjG,eAAO,MAAM,QAAQ,KAAiC,CAAC;AACvD,0FAA0F;AAC1F,eAAO,MAAM,MAAM,KAAiB,CAAC;AACrC,wHAAwH;AACxH,eAAO,MAAM,YAAY,KAAwC,CAAC;AAIlE,YAAY,EAAE,kBAAkB,EAAE,eAAe,EAAE,WAAW,EAAE,cAAc,EAAE,MAAM,iBAAiB,CAAC;AACxG,YAAY,EAAE,mBAAmB,EAAE,oBAAoB,EAAE,aAAa,EAAE,MAAM,gBAAgB,CAAC;AAC/F,YAAY,EACR,YAAY,EACZ,gBAAgB,EAChB,kBAAkB,EAClB,gBAAgB,EAChB,YAAY,EACZ,oBAAoB,EACpB,qBAAqB,EACrB,QAAQ,EACR,kBAAkB,EAClB,UAAU,EACV,kBAAkB,GACrB,MAAM,SAAS,CAAC"}
@@ -0,0 +1,59 @@
1
+ /**
2
+ * @iobroker/dm-widgets — Types and base class for ioBroker Device Manager widget plugins.
3
+ *
4
+ * ## How it works
5
+ *
6
+ * **At compile time:** Plugin authors `npm install @iobroker/dm-widgets` and import
7
+ * types, interfaces, and the `WidgetGeneric` base class for TypeScript support.
8
+ *
9
+ * **At runtime:** The host app (ioBroker.devices) exposes the real implementation on
10
+ * `window.__iobrokerDmWidgets__`. This module checks for that global and re-exports
11
+ * the host's real classes — so plugins get the full WidgetGeneric with all rendering
12
+ * logic, not the compile-time stubs.
13
+ *
14
+ * ## Usage
15
+ *
16
+ * ```typescript
17
+ * import WidgetGeneric, {
18
+ * type WidgetGenericProps,
19
+ * type WidgetGenericState,
20
+ * getTileStyles,
21
+ * isNeumorphicTheme,
22
+ * } from '@iobroker/dm-widgets';
23
+ *
24
+ * interface MyWidgetState extends WidgetGenericState {
25
+ * myValue: number;
26
+ * }
27
+ *
28
+ * export class MyWidget extends WidgetGeneric<MyWidgetState> {
29
+ * // Override renderCompact(), renderTileIcon(), etc.
30
+ * }
31
+ * ```
32
+ */
33
+ import * as _stubs from './WidgetGeneric';
34
+ import _StateContextStub from './StateContext';
35
+ // At runtime, the host provides the real implementations via window global.
36
+ // Fall back to stubs if running outside the host (e.g. tests, SSR).
37
+ const _host = (typeof window !== 'undefined' &&
38
+ window.__iobrokerDmWidgets__) || { ..._stubs, StateContext: _StateContextStub };
39
+ // Shared modules provided by the host via window.__iobrokerShared__
40
+ // Plugins should import react/MUI from here instead of directly to avoid dual-instance issues
41
+ const _shared = (typeof window !== 'undefined' && window.__iobrokerShared__) || {};
42
+ // --- Value exports (resolved from host at runtime) ---
43
+ export const WidgetGeneric = _host.default || _host.WidgetGeneric || _stubs.default;
44
+ export default WidgetGeneric;
45
+ export const getTileStyles = _host.getTileStyles || _stubs.getTileStyles;
46
+ export const isNeumorphicTheme = _host.isNeumorphicTheme || _stubs.isNeumorphicTheme;
47
+ export const StateContext = _host.StateContext || _StateContextStub;
48
+ /** Host's React instance — use this instead of importing 'react' directly in plugins */
49
+ export const React = _shared.react;
50
+ /** Host's RactDom instance — use this instead of importing 'react-dom' directly in plugins */
51
+ export const ReactDom = _shared['react-dom'];
52
+ /** Host's MUI Material — use this instead of importing '@mui/material' directly in plugins */
53
+ export const MuiMaterial = _shared['@mui/material'];
54
+ /** Host's MUI Icons — use this instead of importing '@mui/icons-material' directly in plugins */
55
+ export const MuiIcons = _shared['@mui/icons-material'];
56
+ /** Host's moment instance — use this instead of importing 'moment' directly in plugins */
57
+ export const moment = _shared.moment;
58
+ /** Host's adapter-react-v5 instance — use this instead of importing '@iobroker/adapter-react-v5' directly in plugins */
59
+ export const AdapterReact = _shared['@iobroker/adapter-react-v5'];
@@ -0,0 +1,133 @@
1
+ /**
2
+ * Core type definitions for the Widget Manager.
3
+ * These mirror the types from src/widget-utils/types/base.ts
4
+ */
5
+ import type { DetectorState, Types } from '@iobroker/type-detector/build/types';
6
+ import type { ChartLineType, ChartSeries, IndicatorValues } from './WidgetGeneric';
7
+ export type Color = 'primary' | 'secondary' | (string & {});
8
+ export type ValueOrObject<T> = T | {
9
+ objectId: string;
10
+ property: string;
11
+ };
12
+ export type ValueOrState<T> = T | {
13
+ stateId: string;
14
+ mapping?: Record<string | number, string>;
15
+ };
16
+ export type ValueOrStateOrObject<T> = T | ValueOrObject<T> | ValueOrState<T>;
17
+ export type DeviceStatus = 'connected' | 'disconnected' | {
18
+ battery?: ValueOrState<number | boolean | 'charging' | (string & {})>;
19
+ connection?: ValueOrState<'connected' | 'disconnected'>;
20
+ rssi?: ValueOrState<number>;
21
+ warning?: ValueOrState<ioBroker.StringOrTranslated | boolean>;
22
+ };
23
+ export interface ItemInfo {
24
+ type: 'widget' | 'category';
25
+ /** ID of the device. Must be unique only in one adapter. Other adapters could have the same IDs */
26
+ id: string | number;
27
+ /** Name of the device. It will be shown in the card header */
28
+ name: ValueOrObject<ioBroker.StringOrTranslated>;
29
+ /** base64 or url icon for device card */
30
+ icon?: ValueOrState<string>;
31
+ /** Color or 'primary', 'secondary' for the text in the card header */
32
+ color?: ValueOrState<Color>;
33
+ /** Background color of card header (you can use primary, secondary or color rgb value or hex) */
34
+ backgroundColor?: ValueOrState<Color>;
35
+ status?: DeviceStatus | DeviceStatus[];
36
+ /** If this flag is true or false, the according indication will be shown. Additionally, if ACTIONS.ENABLE_DISABLE is implemented, this action will be sent to the backend by clicking on this indication */
37
+ enabled?: ValueOrState<boolean>;
38
+ /** ID of the category to which belongs the widget */
39
+ parent?: string;
40
+ }
41
+ export interface DevicesDetectorState extends DetectorState {
42
+ id: string;
43
+ stateRole?: string;
44
+ }
45
+ export interface DevicesPatternControl {
46
+ states: DevicesDetectorState[];
47
+ type: Types;
48
+ storeId: string;
49
+ parentId: string;
50
+ deviceId: string;
51
+ channelId: string;
52
+ }
53
+ export interface WidgetInfo extends ItemInfo {
54
+ type: 'widget';
55
+ control: DevicesPatternControl;
56
+ custom?: {
57
+ enabled: true;
58
+ image?: string;
59
+ parent?: string;
60
+ uiDisabled?: boolean;
61
+ [key: string]: any;
62
+ };
63
+ }
64
+ export type CustomWidgetType = 'clock' | 'weather' | 'iframe' | 'wind' | 'gauge' | 'universal' | 'plugin' | 'newline' | 'presence' | 'energyFlow';
65
+ export interface CategoryInfo extends ItemInfo {
66
+ type: 'category';
67
+ custom?: {
68
+ image?: string;
69
+ imageScope?: 'header' | 'page';
70
+ backgroundColor?: string;
71
+ noStatus?: boolean;
72
+ noHumidity?: boolean;
73
+ noTemperature?: boolean;
74
+ noWindows?: boolean;
75
+ customWidgets?: CustomWidgetBase[];
76
+ widgetOrder?: string[];
77
+ /** Explicit toggle for groups-vs-sorted-list view. */
78
+ widgetsGrouped?: boolean;
79
+ widgetGroups?: Array<{
80
+ id: string;
81
+ name: string;
82
+ collapsed?: boolean;
83
+ widgetIds: string[];
84
+ }>;
85
+ };
86
+ }
87
+ export interface WidgetSettingsBase {
88
+ size: '1x1' | '2x0.5' | '2x1' | '2x2';
89
+ name: string;
90
+ favorite: boolean;
91
+ color: string;
92
+ /** Custom color for inactive state */
93
+ colorActive?: string;
94
+ trendMinutes?: number;
95
+ showTrendArrow?: boolean;
96
+ chartHours: number;
97
+ /** Custom widget icon URL/base64 (for non-alarm widgets, stored in `common.icon`) */
98
+ icon: string;
99
+ iconActive: string;
100
+ text: string;
101
+ textActive: string;
102
+ }
103
+ export interface CustomWidgetBase extends WidgetSettingsBase {
104
+ id: string;
105
+ type: CustomWidgetType;
106
+ }
107
+ /** Custom widget definition — settings are stored dynamically via JsonConfig schemas */
108
+ export interface CustomWidgetPlugin extends CustomWidgetBase {
109
+ type: 'plugin';
110
+ /** Plugin: adapter name that provides the widget */
111
+ pluginAdapter?: string;
112
+ /** Plugin: component name exported by the adapter */
113
+ pluginComponent?: string;
114
+ /** Plugin: URL to load the widget bundle (federation remote entry) */
115
+ pluginUrl?: string;
116
+ }
117
+ export interface WidgetGenericState {
118
+ name: string | null;
119
+ color: string | null;
120
+ indicators: IndicatorValues;
121
+ chartSeries: ChartSeries[];
122
+ chartDialogOpen: boolean;
123
+ chartType: ChartLineType;
124
+ /** PinPad dialog state */
125
+ pinPadOpen: boolean;
126
+ pinPadPin: string;
127
+ /** Confirmation dialog state */
128
+ confirmDialogOpen: boolean;
129
+ confirmDialogMode: 'dialog' | 'pin';
130
+ confirmDialogPin: string;
131
+ confirmDialogText: string;
132
+ }
133
+ //# sourceMappingURL=types.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1 @@
1
+ export {};