@iobroker/json-config 8.0.6 → 8.1.1
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/LICENSE +1 -1
- package/README.md +86 -12
- package/build/JsonConfig.js +1 -1
- package/build/JsonConfig.js.map +1 -1
- package/build/JsonConfigComponent/ChipInput.d.ts +1 -4
- package/build/JsonConfigComponent/ChipInput.js +4 -19
- package/build/JsonConfigComponent/ChipInput.js.map +1 -1
- package/build/JsonConfigComponent/ConfigAlive.d.ts +6 -3
- package/build/JsonConfigComponent/ConfigAlive.js +16 -6
- package/build/JsonConfigComponent/ConfigAlive.js.map +1 -1
- package/build/JsonConfigComponent/ConfigAutocompleteSendTo.d.ts +2 -2
- package/build/JsonConfigComponent/ConfigAutocompleteSendTo.js +17 -17
- package/build/JsonConfigComponent/ConfigAutocompleteSendTo.js.map +1 -1
- package/build/JsonConfigComponent/ConfigDatePicker.d.ts +1 -1
- package/build/JsonConfigComponent/ConfigDatePicker.js +22 -7
- package/build/JsonConfigComponent/ConfigDatePicker.js.map +1 -1
- package/build/JsonConfigComponent/ConfigDeviceManager.d.ts +2 -2
- package/build/JsonConfigComponent/ConfigDeviceManager.js +1 -2
- package/build/JsonConfigComponent/ConfigDeviceManager.js.map +1 -1
- package/build/JsonConfigComponent/ConfigIFrame.d.ts +17 -0
- package/build/JsonConfigComponent/ConfigIFrame.js +51 -0
- package/build/JsonConfigComponent/ConfigIFrame.js.map +1 -0
- package/build/JsonConfigComponent/ConfigIFrameSendTo.d.ts +21 -0
- package/build/JsonConfigComponent/ConfigIFrameSendTo.js +89 -0
- package/build/JsonConfigComponent/ConfigIFrameSendTo.js.map +1 -0
- package/build/JsonConfigComponent/ConfigJsonEditor.d.ts +2 -2
- package/build/JsonConfigComponent/ConfigJsonEditor.js +11 -5
- package/build/JsonConfigComponent/ConfigJsonEditor.js.map +1 -1
- package/build/JsonConfigComponent/ConfigObjectId.js +1 -1
- package/build/JsonConfigComponent/ConfigObjectId.js.map +1 -1
- package/build/JsonConfigComponent/ConfigPanel.d.ts +2 -2
- package/build/JsonConfigComponent/ConfigPanel.js +5 -2
- package/build/JsonConfigComponent/ConfigPanel.js.map +1 -1
- package/build/types.d.ts +75 -49
- package/package.json +9 -8
package/build/types.d.ts
CHANGED
|
@@ -40,6 +40,8 @@ export type ConfigItemType =
|
|
|
40
40
|
| 'fileSelector'
|
|
41
41
|
| 'func'
|
|
42
42
|
| 'header'
|
|
43
|
+
| 'iframe'
|
|
44
|
+
| 'iframeSendTo'
|
|
43
45
|
| 'image'
|
|
44
46
|
| 'imageSendTo'
|
|
45
47
|
| 'infoBox'
|
|
@@ -188,7 +190,7 @@ export interface ConfigItem {
|
|
|
188
190
|
default?: boolean | number | string;
|
|
189
191
|
defaultFunc?: string;
|
|
190
192
|
defaultSendTo?: string;
|
|
191
|
-
/** Allow saving of configuration even with error */
|
|
193
|
+
/** Allow saving of configuration even with an error */
|
|
192
194
|
allowSaveWithError?: boolean;
|
|
193
195
|
data?: string | number | boolean;
|
|
194
196
|
jsonData?: string;
|
|
@@ -224,21 +226,21 @@ interface ConfigItemIndexed extends ConfigItem {
|
|
|
224
226
|
|
|
225
227
|
interface ConfigItemTableIndexed extends ConfigItem {
|
|
226
228
|
attr?: string;
|
|
227
|
-
/** show filter options in the header of table */
|
|
229
|
+
/** show filter options in the header of the table */
|
|
228
230
|
filter?: boolean;
|
|
229
|
-
/** show sorting options in the header of table */
|
|
231
|
+
/** show sorting options in the header of the table */
|
|
230
232
|
sort?: boolean;
|
|
231
|
-
/** tooltip in the header of table */
|
|
233
|
+
/** tooltip in the header of the table */
|
|
232
234
|
title?: string;
|
|
233
235
|
}
|
|
234
236
|
|
|
235
237
|
export interface ConfigItemAlive extends ConfigItem {
|
|
236
238
|
type: 'alive';
|
|
237
|
-
/** check if the instance is alive. If not defined, it will be used current instance. You can use
|
|
239
|
+
/** check if the instance is alive. If not defined, it will be used current instance. You can use the ` $ {data.number} ` pattern in the text. */
|
|
238
240
|
instance?: string;
|
|
239
|
-
/** default text is `Instance %s is alive`, where %s will be replaced by `ADAPTER.0`. The translation must exist in i18n files. */
|
|
241
|
+
/** the default text is `Instance %s is alive`, where %s will be replaced by `ADAPTER.0`. The translation must exist in i18n files. */
|
|
240
242
|
textAlive?: string;
|
|
241
|
-
/** default text is `Instance %s is not alive`, where %s will be replaced by `ADAPTER.0`. The translation must exist in i18n files. */
|
|
243
|
+
/** the default text is `Instance %s is not alive`, where %s will be replaced by `ADAPTER.0`. The translation must exist in i18n files. */
|
|
242
244
|
textNotAlive?: string;
|
|
243
245
|
}
|
|
244
246
|
|
|
@@ -301,17 +303,17 @@ export interface ConfigItemTabs extends ConfigItem {
|
|
|
301
303
|
|
|
302
304
|
export interface ConfigItemText extends ConfigItem {
|
|
303
305
|
type: 'text';
|
|
304
|
-
/** max length of the text in field */
|
|
306
|
+
/** max length of the text in the field */
|
|
305
307
|
maxLength?: number;
|
|
306
308
|
/** @deprecated use maxLength */
|
|
307
309
|
max?: number;
|
|
308
310
|
/** read-only field */
|
|
309
311
|
readOnly?: boolean;
|
|
310
|
-
/** show copy
|
|
312
|
+
/** show copy-to-clipboard button, but only if disabled or read-only */
|
|
311
313
|
copyToClipboard?: boolean;
|
|
312
314
|
/** default is true. Set this attribute to `false` if trim is not desired. */
|
|
313
315
|
trim?: boolean;
|
|
314
|
-
/** default is 1. Set this attribute to `2` or more if you want to have a textarea with more than one row. */
|
|
316
|
+
/** the default is 1. Set this attribute to `2` or more if you want to have a textarea with more than one row. */
|
|
315
317
|
minRows?: number;
|
|
316
318
|
/** max rows of textarea. Used only if `minRows` > 1. */
|
|
317
319
|
maxRows?: number;
|
|
@@ -378,7 +380,7 @@ export interface ConfigItemPassword extends ConfigItem {
|
|
|
378
380
|
visible?: boolean;
|
|
379
381
|
/** The read-only flag. Visible is automatically true if readOnly is true */
|
|
380
382
|
readOnly?: boolean;
|
|
381
|
-
/** max length of the text in field */
|
|
383
|
+
/** max length of the text in the field */
|
|
382
384
|
maxLength?: number;
|
|
383
385
|
/** @deprecated use maxLength */
|
|
384
386
|
max?: number;
|
|
@@ -430,7 +432,7 @@ export interface ConfigItemSlider extends ConfigItem {
|
|
|
430
432
|
|
|
431
433
|
export interface ConfigItemTopic extends ConfigItem {
|
|
432
434
|
type: 'topic';
|
|
433
|
-
/** max length of the text in field */
|
|
435
|
+
/** max length of the text in the field */
|
|
434
436
|
maxLength?: number;
|
|
435
437
|
/** @deprecated use maxLength */
|
|
436
438
|
max?: number;
|
|
@@ -480,11 +482,11 @@ export interface ConfigItemStaticText extends Omit<ConfigItem, 'button'> {
|
|
|
480
482
|
label?: ioBroker.StringOrTranslated;
|
|
481
483
|
/** link. Link could be dynamic like `#tab-objects/customs/${data.parentId} */
|
|
482
484
|
href?: string;
|
|
483
|
-
/** target of the link: _self, _blank or window name. For relative links default is _self and for absolute - _blank */
|
|
485
|
+
/** target of the link: _self, _blank or window name. For relative links the default is _self and for absolute - _blank */
|
|
484
486
|
target?: string;
|
|
485
487
|
/** If the GUI should be closed after a link was opened (only if the target is equal to '_self') */
|
|
486
488
|
close?: boolean;
|
|
487
|
-
/** show a link as button */
|
|
489
|
+
/** show a link as a button */
|
|
488
490
|
button?: boolean;
|
|
489
491
|
/** type of button (`outlined`, `contained`, `text`) */
|
|
490
492
|
variant?: 'contained' | 'outlined' | 'text';
|
|
@@ -506,13 +508,13 @@ export interface ConfigItemStaticInfo extends Omit<ConfigItem, 'data'> {
|
|
|
506
508
|
unit?: ioBroker.StringOrTranslated;
|
|
507
509
|
/** Normally, the title and value are shown on the left and right of the line. With this flag, the value will appear just after the label*/
|
|
508
510
|
narrow?: boolean;
|
|
509
|
-
/** Add to label the colon at the end if not exist in label */
|
|
511
|
+
/** Add to the label the colon at the end if not exist in the label */
|
|
510
512
|
addColon?: boolean;
|
|
511
513
|
/** Value should blink when updated (true or color) */
|
|
512
514
|
blinkOnUpdate?: boolean | string;
|
|
513
515
|
/** Value should blink continuously (true or color) */
|
|
514
516
|
blink?: boolean | string;
|
|
515
|
-
/** Show copy
|
|
517
|
+
/** Show a copy-to-clipboard button for value */
|
|
516
518
|
copyToClipboard?: boolean;
|
|
517
519
|
/** Label style */
|
|
518
520
|
styleLabel?: CustomCSSProperties;
|
|
@@ -524,7 +526,7 @@ export interface ConfigItemStaticInfo extends Omit<ConfigItem, 'data'> {
|
|
|
524
526
|
size?: number | 'small' | 'normal' | 'large';
|
|
525
527
|
/** Highlight line on mouse over */
|
|
526
528
|
highlight?: boolean;
|
|
527
|
-
/** Show boolean values as checkbox */
|
|
529
|
+
/** Show boolean values as a checkbox */
|
|
528
530
|
booleanAsCheckbox?: boolean;
|
|
529
531
|
/** Show string values as HTML */
|
|
530
532
|
html?: boolean;
|
|
@@ -577,7 +579,7 @@ export interface ConfigItemSelect extends ConfigItem {
|
|
|
577
579
|
attr?: string;
|
|
578
580
|
/** If multiple selection is possible. In this case, the value will be an array */
|
|
579
581
|
multiple?: boolean;
|
|
580
|
-
/** show item even if no label was found for it (by multiple), default=`true` */
|
|
582
|
+
/** show an item even if no label was found for it (by multiple), default=`true` */
|
|
581
583
|
showAllValues?: boolean;
|
|
582
584
|
}
|
|
583
585
|
|
|
@@ -595,7 +597,7 @@ export interface ConfigItemSetState extends ConfigItem {
|
|
|
595
597
|
ack?: boolean;
|
|
596
598
|
/** '${data.myText}_test' or number. Type will be detected automatically from the state type and converting done too */
|
|
597
599
|
val: ioBroker.StateValue;
|
|
598
|
-
/** Alert which will be shown by pressing the button */
|
|
600
|
+
/** Alert, which will be shown by pressing the button */
|
|
599
601
|
okText?: ioBroker.StringOrTranslated;
|
|
600
602
|
variant?: 'contained' | 'outlined';
|
|
601
603
|
color?: 'primary' | 'secondary' | 'grey';
|
|
@@ -610,7 +612,7 @@ export interface ConfigItemAutocompleteSendTo extends Omit<ConfigItem, 'data'> {
|
|
|
610
612
|
options?: (string | ConfigItemSelectOption)[];
|
|
611
613
|
data?: Record<string, any>;
|
|
612
614
|
freeSolo?: boolean;
|
|
613
|
-
/** max length of the text in field */
|
|
615
|
+
/** max length of the text in the field */
|
|
614
616
|
maxLength?: number;
|
|
615
617
|
/** @deprecated use maxLength */
|
|
616
618
|
max?: string;
|
|
@@ -623,7 +625,7 @@ export interface ConfigItemAccordion extends ConfigItem {
|
|
|
623
625
|
titleAttr?: string;
|
|
624
626
|
/** If delete or add disabled, If noDelete is false, add, delete and move up/down should work */
|
|
625
627
|
noDelete?: boolean;
|
|
626
|
-
/** If clone button should be shown. If true, the clone button will be shown. If attribute name, this name will be unique. */
|
|
628
|
+
/** If the clone button should be shown. If true, the clone button will be shown. If attribute name, this name will be unique. */
|
|
627
629
|
clone?: boolean | string;
|
|
628
630
|
/** Items of accordion */
|
|
629
631
|
items: ConfigItemIndexed[];
|
|
@@ -654,7 +656,7 @@ export interface ConfigItemCoordinates extends ConfigItem {
|
|
|
654
656
|
latitudeName?: string;
|
|
655
657
|
/** if defined, the checkbox with "Use system settings" will be shown and latitude, longitude will be read from system.config, a boolean will be saved to the given name */
|
|
656
658
|
useSystemName?: string;
|
|
657
|
-
/** max length of the text in field */
|
|
659
|
+
/** max length of the text in the field */
|
|
658
660
|
maxLength?: number;
|
|
659
661
|
/** @deprecated use maxLength */
|
|
660
662
|
max?: number;
|
|
@@ -676,7 +678,7 @@ export interface ConfigItemCustom extends ConfigItem {
|
|
|
676
678
|
|
|
677
679
|
export interface ConfigItemDatePicker extends ConfigItem {
|
|
678
680
|
type: 'datePicker';
|
|
679
|
-
/** max length of the text in field */
|
|
681
|
+
/** max length of the text in the field */
|
|
680
682
|
maxLength?: number;
|
|
681
683
|
/** @deprecated use maxLength */
|
|
682
684
|
max?: number;
|
|
@@ -699,6 +701,28 @@ export interface ConfigItemPort extends ConfigItem {
|
|
|
699
701
|
readOnly?: boolean;
|
|
700
702
|
}
|
|
701
703
|
|
|
704
|
+
export interface ConfigItemIFrame extends ConfigItem {
|
|
705
|
+
type: 'iframe';
|
|
706
|
+
/* If URL is defined, the data attribute will be ignored. For static URLs */
|
|
707
|
+
url?: string;
|
|
708
|
+
sandbox?: string;
|
|
709
|
+
allowFullscreen?: boolean;
|
|
710
|
+
frameBorder?: number | string;
|
|
711
|
+
/** if true, the iframe will be loaded only when it becomes visible */
|
|
712
|
+
lazyLoad?: 'lazy' | 'eager';
|
|
713
|
+
/** if true, the iframe will be reloaded every time it becomes visible */
|
|
714
|
+
reloadOnShow?: boolean;
|
|
715
|
+
/** CSS Styles in React format (`marginLeft` and not `margin-left`) for the IFrame component */
|
|
716
|
+
innerStyle?: CustomCSSProperties;
|
|
717
|
+
}
|
|
718
|
+
|
|
719
|
+
export interface ConfigItemIFrameSendTo extends Omit<ConfigItemIFrame, 'data' | 'url' | 'type'> {
|
|
720
|
+
type: 'iframeSendTo';
|
|
721
|
+
command?: string;
|
|
722
|
+
alsoDependsOn?: string[];
|
|
723
|
+
data?: Record<string, any>;
|
|
724
|
+
}
|
|
725
|
+
|
|
702
726
|
export interface ConfigItemImageSendTo extends Omit<ConfigItem, 'data'> {
|
|
703
727
|
type: 'imageSendTo';
|
|
704
728
|
command?: string;
|
|
@@ -729,13 +753,13 @@ export interface ConfigItemSendTo extends Omit<ConfigItem, 'data'> {
|
|
|
729
753
|
alsoDependsOn?: string[];
|
|
730
754
|
container?: 'text' | 'div' | 'html';
|
|
731
755
|
copyToClipboard?: boolean;
|
|
732
|
-
/** Styles for button itself */
|
|
756
|
+
/** Styles for the button itself */
|
|
733
757
|
controlStyle?: CustomCSSProperties;
|
|
734
758
|
}
|
|
735
759
|
|
|
736
760
|
export interface ConfigItemState extends ConfigItem {
|
|
737
761
|
type: 'state';
|
|
738
|
-
/** Describes
|
|
762
|
+
/** Describes which object ID should be taken for the controlling. The ID is without `ADAPTER.I.` prefix */
|
|
739
763
|
oid: string;
|
|
740
764
|
/** The `oid` is absolute and no need to add `ADAPTER.I` or `system.adapter.ADAPTER.I.` to oid */
|
|
741
765
|
foreign?: boolean;
|
|
@@ -745,7 +769,7 @@ export interface ConfigItemState extends ConfigItem {
|
|
|
745
769
|
control?: 'text' | 'html' | 'input' | 'slider' | 'select' | 'button' | 'switch' | 'number';
|
|
746
770
|
/** If true, the state will be shown as switch, select, button, slider or text input. Used only if no control property is defined */
|
|
747
771
|
controlled?: boolean;
|
|
748
|
-
/** Add unit to the value */
|
|
772
|
+
/** Add a unit to the value */
|
|
749
773
|
unit?: string;
|
|
750
774
|
/** this text will be shown if the value is true */
|
|
751
775
|
trueText?: string;
|
|
@@ -775,15 +799,15 @@ export interface ConfigItemState extends ConfigItem {
|
|
|
775
799
|
labelIcon?: string;
|
|
776
800
|
/** Normally, the title and value are shown on the left and right of the line. With this flag, the value will appear just after the label*/
|
|
777
801
|
narrow?: boolean;
|
|
778
|
-
/** Add to label the colon at the end if not exist in label */
|
|
802
|
+
/** Add to the label the colon at the end if not exist in the label */
|
|
779
803
|
addColon?: boolean;
|
|
780
804
|
/** Value should blink when updated (true or color) */
|
|
781
805
|
blinkOnUpdate?: boolean | string;
|
|
782
806
|
/** Font size */
|
|
783
807
|
size?: number | 'small' | 'normal' | 'large';
|
|
784
|
-
/** Optional value
|
|
808
|
+
/** Optional value that will be sent for the button */
|
|
785
809
|
buttonValue?: ioBroker.StateValue;
|
|
786
|
-
/** Show SET button. The value in this case will be sent only when the button is pressed. You can define the text of the button.
|
|
810
|
+
/** Show the SET button. The value in this case will be sent only when the button is pressed. You can define the text of the button. The default text is "Set" */
|
|
787
811
|
showEnterButton?: boolean | ioBroker.StringOrTranslated;
|
|
788
812
|
/** The value in this case will be sent only when the "Enter" button is pressed. It can be combined with `showEnterButton` */
|
|
789
813
|
setOnEnterKey?: boolean;
|
|
@@ -794,7 +818,7 @@ export interface ConfigItemState extends ConfigItem {
|
|
|
794
818
|
export interface ConfigItemTextSendTo extends Omit<ConfigItem, 'data'> {
|
|
795
819
|
type: 'textSendTo';
|
|
796
820
|
container?: 'text' | 'div';
|
|
797
|
-
/** if true - show copy
|
|
821
|
+
/** if true - show copy-to-clipboard button */
|
|
798
822
|
copyToClipboard?: boolean;
|
|
799
823
|
/** by change of which attributes, the command must be resent */
|
|
800
824
|
alsoDependsOn?: string[];
|
|
@@ -808,11 +832,11 @@ export interface ConfigItemTextSendTo extends Omit<ConfigItem, 'data'> {
|
|
|
808
832
|
|
|
809
833
|
export interface ConfigItemSelectSendTo extends Omit<ConfigItem, 'data'> {
|
|
810
834
|
type: 'selectSendTo';
|
|
811
|
-
/** allow manual editing. Without drop-down menu (if instance is offline). Default `true`. */
|
|
835
|
+
/** allow manual editing. Without a drop-down menu (if the instance is offline). Default `true`. */
|
|
812
836
|
manual?: boolean;
|
|
813
837
|
/** Multiple choice select */
|
|
814
838
|
multiple?: boolean;
|
|
815
|
-
/** show item even if no label was found for it (by multiple), default=`true` */
|
|
839
|
+
/** show an item even if no label was found for it (by multiple), default=`true` */
|
|
816
840
|
showAllValues?: boolean;
|
|
817
841
|
/** if true, the clear button will not be shown */
|
|
818
842
|
noClearButton?: boolean;
|
|
@@ -835,15 +859,15 @@ export interface ConfigItemTable extends ConfigItem {
|
|
|
835
859
|
objKeyName?: string;
|
|
836
860
|
/** @deprecated don't use */
|
|
837
861
|
objValueName?: string;
|
|
838
|
-
/** If add allowed even if filter is set */
|
|
862
|
+
/** If add allowed even if a filter is set */
|
|
839
863
|
allowAddByFilter?: boolean;
|
|
840
|
-
/** The number of lines from which the second
|
|
864
|
+
/** The number of lines from which the second adding button at the bottom of the table will be shown. Default 5 */
|
|
841
865
|
showSecondAddAt?: number;
|
|
842
|
-
/** Show first plus button on top of the first column and not on the left. */
|
|
866
|
+
/** Show the first plus button on top of the first column and not on the left. */
|
|
843
867
|
showFirstAddOnTop?: boolean;
|
|
844
|
-
/** If clone button should be shown. If true, the clone button will be shown. If attribute name, this name will be unique. */
|
|
868
|
+
/** If the clone button should be shown. If true, the clone button will be shown. If attribute name, this name will be unique. */
|
|
845
869
|
clone?: boolean | string;
|
|
846
|
-
/** If export button should be shown. Export as csv file. */
|
|
870
|
+
/** If export button should be shown. Export as a csv file. */
|
|
847
871
|
export?: boolean;
|
|
848
872
|
/** If import button should be shown. Import from csv file. */
|
|
849
873
|
import?: boolean;
|
|
@@ -851,7 +875,7 @@ export interface ConfigItemTable extends ConfigItem {
|
|
|
851
875
|
compact?: boolean;
|
|
852
876
|
/** Specify the 'attr' name of columns which need to be unique */
|
|
853
877
|
uniqueColumns?: string[];
|
|
854
|
-
/** These items will be encrypted before saving with simple (not SHA) encryption method */
|
|
878
|
+
/** These items will be encrypted before saving with a simple (not SHA) encryption method */
|
|
855
879
|
encryptedAttributes?: string[];
|
|
856
880
|
/** Breakpoint that will be rendered as cards */
|
|
857
881
|
useCardFor?: ('xs' | 'sm' | 'md' | 'lg' | 'xl')[];
|
|
@@ -937,7 +961,7 @@ export interface ConfigItemJsonEditor extends ConfigItem {
|
|
|
937
961
|
allowEmpty?: boolean;
|
|
938
962
|
/** Allow JSON5 format. Default is disabled */
|
|
939
963
|
json5?: boolean;
|
|
940
|
-
/** Do not allow
|
|
964
|
+
/** Do not allow saving the value if error in JSON or JSON5 */
|
|
941
965
|
doNotApplyWithError?: boolean;
|
|
942
966
|
/** Open the editor in read-only mode - editor can be opened but content cannot be modified */
|
|
943
967
|
readOnly?: boolean;
|
|
@@ -953,7 +977,7 @@ export interface ConfigItemInterface extends ConfigItem {
|
|
|
953
977
|
|
|
954
978
|
export interface ConfigItemImageUpload extends ConfigItem {
|
|
955
979
|
type: 'image';
|
|
956
|
-
/** name of a file is structure name. In the below example `login-bg.png` is file name for `writeFile("myAdapter.INSTANCE", "login-bg.png")` */
|
|
980
|
+
/** the name of a file is the structure name. In the below example `login-bg.png` is the file name for `writeFile("myAdapter.INSTANCE", "login-bg.png")` */
|
|
957
981
|
filename?: string;
|
|
958
982
|
/** HTML accept attribute, like `{ 'image/**': [], 'application/pdf': ['.pdf'] }`, default `{ 'image/*': [] }` */
|
|
959
983
|
accept?: Record<string, string[]>;
|
|
@@ -961,17 +985,17 @@ export interface ConfigItemImageUpload extends ConfigItem {
|
|
|
961
985
|
maxSize?: number;
|
|
962
986
|
/** if true, the image will be saved as data-url in attribute, elsewise as binary in file storage */
|
|
963
987
|
base64?: boolean;
|
|
964
|
-
/** if true, allow user to crop the image */
|
|
988
|
+
/** if true, allow the user to crop the image */
|
|
965
989
|
crop?: boolean;
|
|
966
990
|
}
|
|
967
991
|
|
|
968
992
|
export interface ConfigItemInstanceSelect extends ConfigItem {
|
|
969
993
|
type: 'instance';
|
|
970
|
-
/** name of adapter. With special name `_dataSources` you can get all adapters with flag `common.getHistory`. */
|
|
994
|
+
/** name of adapter. With the special name `_dataSources` you can get all adapters with the flag `common.getHistory`. */
|
|
971
995
|
adapter?: string;
|
|
972
|
-
/** optional list of adapters
|
|
996
|
+
/** optional list of adapters that should be shown. If not defined, all adapters will be shown. Only active if the ` adapter ` attribute is not defined. */
|
|
973
997
|
adapters?: string[];
|
|
974
|
-
/** if true.
|
|
998
|
+
/** if true. The additional option "deactivate" is shown */
|
|
975
999
|
allowDeactivate?: boolean;
|
|
976
1000
|
/** if true. Only enabled instances will be shown */
|
|
977
1001
|
onlyEnabled?: boolean;
|
|
@@ -985,7 +1009,7 @@ export interface ConfigItemInstanceSelect extends ConfigItem {
|
|
|
985
1009
|
|
|
986
1010
|
export interface ConfigItemFile extends ConfigItem {
|
|
987
1011
|
type: 'file';
|
|
988
|
-
/** if a user can manually enter the file name and not only through select dialog */
|
|
1012
|
+
/** if a user can manually enter the file name and not only through a select dialog */
|
|
989
1013
|
disableEdit?: boolean;
|
|
990
1014
|
/** limit selection to one specific object of type `meta` and the following path (not mandatory) */
|
|
991
1015
|
limitPath?: string;
|
|
@@ -1001,7 +1025,7 @@ export interface ConfigItemFile extends ConfigItem {
|
|
|
1001
1025
|
allowView?: boolean;
|
|
1002
1026
|
/** show toolbar (default true) */
|
|
1003
1027
|
showToolbar?: boolean;
|
|
1004
|
-
/** user can select only folders (e.g., for uploading path) */
|
|
1028
|
+
/** user can select only folders (e.g., for the uploading path) */
|
|
1005
1029
|
selectOnlyFolders?: boolean;
|
|
1006
1030
|
/** trim the filename */
|
|
1007
1031
|
trim?: boolean;
|
|
@@ -1013,15 +1037,15 @@ export interface ConfigItemFile extends ConfigItem {
|
|
|
1013
1037
|
|
|
1014
1038
|
export interface ConfigItemFileSelector extends ConfigItem {
|
|
1015
1039
|
type: 'fileSelector';
|
|
1016
|
-
/** File extension pattern. Allowed `**\/*.ext` to show all files from subfolders too, `*.ext` to show from root folder or `folderName\/*.ext` to show all files in
|
|
1040
|
+
/** File extension pattern. Allowed `**\/*.ext` to show all files from subfolders too, `*.ext` to show from the root folder or `folderName\/*.ext` to show all files in subfolder `folderName`. Default `**\/*.*`. */
|
|
1017
1041
|
pattern: string;
|
|
1018
1042
|
/** type of files: `audio`, `image`, `text` */
|
|
1019
1043
|
fileTypes?: 'audio' | 'image' | 'text';
|
|
1020
|
-
/** Object ID of type `meta`. You can use special placeholder `%INSTANCE%`: like `myAdapter.%INSTANCE%.files` */
|
|
1044
|
+
/** Object ID of the type `meta`. You can use special placeholder `%INSTANCE%`: like `myAdapter.%INSTANCE%.files` */
|
|
1021
1045
|
objectID?: string;
|
|
1022
1046
|
/** path, where the uploaded files will be stored. Like `folderName`. If not defined, no upload field will be shown. To upload in the root, set this field to `/`. */
|
|
1023
1047
|
upload?: string;
|
|
1024
|
-
/** Show refresh button near the select. */
|
|
1048
|
+
/** Show the refresh button near the select. */
|
|
1025
1049
|
refresh?: boolean;
|
|
1026
1050
|
/** max file size (default 2MB) */
|
|
1027
1051
|
maxSize?: number;
|
|
@@ -1079,6 +1103,8 @@ export type ConfigItemAny =
|
|
|
1079
1103
|
| ConfigItemCRON
|
|
1080
1104
|
| ConfigItemFile
|
|
1081
1105
|
| ConfigItemFileSelector
|
|
1106
|
+
| ConfigItemIFrame
|
|
1107
|
+
| ConfigItemIFrameSendTo
|
|
1082
1108
|
| ConfigItemImageSendTo
|
|
1083
1109
|
| ConfigItemInstanceSelect
|
|
1084
1110
|
| ConfigItemImageUpload
|
package/package.json
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@iobroker/json-config",
|
|
3
3
|
"description": "This package contains the ioBroker JSON config UI components",
|
|
4
|
-
"version": "8.
|
|
4
|
+
"version": "8.1.1",
|
|
5
5
|
"author": {
|
|
6
6
|
"name": "bluefox",
|
|
7
7
|
"email": "dogafox@gmail.com"
|
|
@@ -22,8 +22,9 @@
|
|
|
22
22
|
"prepublishOnly": "npm run build",
|
|
23
23
|
"build:ts": "tsc -p tsconfig.json",
|
|
24
24
|
"lint": "eslint -c eslint.config.mjs",
|
|
25
|
-
"test": "
|
|
26
|
-
"
|
|
25
|
+
"test": "npm run test:integration",
|
|
26
|
+
"test:integration": "npm run test:tsc && node test/testSchema.js",
|
|
27
|
+
"test:tsc": "tsc -p test/tsconfig.build.json",
|
|
27
28
|
"release": "release-script --noPush --yes --lf",
|
|
28
29
|
"release-patch": "release-script patch --yes --lf",
|
|
29
30
|
"release-minor": "release-script minor --yes --lf",
|
|
@@ -34,8 +35,8 @@
|
|
|
34
35
|
"access": "public"
|
|
35
36
|
},
|
|
36
37
|
"dependencies": {
|
|
37
|
-
"@iobroker/adapter-react-v5": "^8.0.
|
|
38
|
-
"@module-federation/runtime": "^0.
|
|
38
|
+
"@iobroker/adapter-react-v5": "^8.0.17",
|
|
39
|
+
"@module-federation/runtime": "^2.0.0",
|
|
39
40
|
"@mui/x-date-pickers": "^7.29.4",
|
|
40
41
|
"crypto-js": "^4.2.0",
|
|
41
42
|
"json5": "^2.2.3",
|
|
@@ -45,12 +46,12 @@
|
|
|
45
46
|
"devDependencies": {
|
|
46
47
|
"@alcalzone/release-script": "^5.0.0",
|
|
47
48
|
"@alcalzone/release-script-plugin-license": "^4.0.0",
|
|
48
|
-
"@iobroker/build-tools": "^
|
|
49
|
+
"@iobroker/build-tools": "^3.0.1",
|
|
49
50
|
"@iobroker/eslint-config": "^2.2.0",
|
|
50
51
|
"@types/crypto-js": "^4.2.2",
|
|
51
52
|
"@types/json5": "^2.2.0",
|
|
52
|
-
"@types/node": "^
|
|
53
|
-
"@types/react": "^18.3.
|
|
53
|
+
"@types/node": "^25.2.1",
|
|
54
|
+
"@types/react": "^18.3.28",
|
|
54
55
|
"@types/react-color": "^3.0.13",
|
|
55
56
|
"@types/react-dom": "^18.3.7",
|
|
56
57
|
"ajv": "^8.17.1",
|