@iobroker/json-config 7.5.2 → 7.6.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.
Files changed (67) hide show
  1. package/README.md +84 -5
  2. package/build/JsonConfig.js.map +1 -1
  3. package/build/JsonConfigComponent/ConfigAccordion.js.map +1 -1
  4. package/build/JsonConfigComponent/ConfigAlive.js.map +1 -1
  5. package/build/JsonConfigComponent/ConfigAutocomplete.js.map +1 -1
  6. package/build/JsonConfigComponent/ConfigAutocompleteSendTo.js.map +1 -1
  7. package/build/JsonConfigComponent/ConfigCRON.js.map +1 -1
  8. package/build/JsonConfigComponent/ConfigCertCollection.js.map +1 -1
  9. package/build/JsonConfigComponent/ConfigCertificateSelect.js.map +1 -1
  10. package/build/JsonConfigComponent/ConfigCertificates.js.map +1 -1
  11. package/build/JsonConfigComponent/ConfigCheckLicense.js.map +1 -1
  12. package/build/JsonConfigComponent/ConfigCheckbox.js.map +1 -1
  13. package/build/JsonConfigComponent/ConfigChip.js.map +1 -1
  14. package/build/JsonConfigComponent/ConfigColor.js.map +1 -1
  15. package/build/JsonConfigComponent/ConfigCoordinates.js.map +1 -1
  16. package/build/JsonConfigComponent/ConfigCustom.d.ts +1 -1
  17. package/build/JsonConfigComponent/ConfigCustom.js +35 -76
  18. package/build/JsonConfigComponent/ConfigCustom.js.map +1 -1
  19. package/build/JsonConfigComponent/ConfigDatePicker.js.map +1 -1
  20. package/build/JsonConfigComponent/ConfigDeviceManager.js.map +1 -1
  21. package/build/JsonConfigComponent/ConfigFile.js.map +1 -1
  22. package/build/JsonConfigComponent/ConfigFileSelector.js.map +1 -1
  23. package/build/JsonConfigComponent/ConfigFunc.js.map +1 -1
  24. package/build/JsonConfigComponent/ConfigGeneric.js.map +1 -1
  25. package/build/JsonConfigComponent/ConfigIP.js.map +1 -1
  26. package/build/JsonConfigComponent/ConfigImageSendTo.js.map +1 -1
  27. package/build/JsonConfigComponent/ConfigImageUpload.js.map +1 -1
  28. package/build/JsonConfigComponent/ConfigInstanceSelect.js.map +1 -1
  29. package/build/JsonConfigComponent/ConfigInterface.js.map +1 -1
  30. package/build/JsonConfigComponent/ConfigJsonEditor.js +14 -5
  31. package/build/JsonConfigComponent/ConfigJsonEditor.js.map +1 -1
  32. package/build/JsonConfigComponent/ConfigLanguage.js.map +1 -1
  33. package/build/JsonConfigComponent/ConfigLicense.js.map +1 -1
  34. package/build/JsonConfigComponent/ConfigNumber.js.map +1 -1
  35. package/build/JsonConfigComponent/ConfigObjectId.js.map +1 -1
  36. package/build/JsonConfigComponent/ConfigPanel.js.map +1 -1
  37. package/build/JsonConfigComponent/ConfigPassword.js.map +1 -1
  38. package/build/JsonConfigComponent/ConfigPattern.js.map +1 -1
  39. package/build/JsonConfigComponent/ConfigPort.js.map +1 -1
  40. package/build/JsonConfigComponent/ConfigQrCode.js.map +1 -1
  41. package/build/JsonConfigComponent/ConfigRoom.js.map +1 -1
  42. package/build/JsonConfigComponent/ConfigSelect.js.map +1 -1
  43. package/build/JsonConfigComponent/ConfigSelectSendTo.js.map +1 -1
  44. package/build/JsonConfigComponent/ConfigSendto.js.map +1 -1
  45. package/build/JsonConfigComponent/ConfigSetState.js.map +1 -1
  46. package/build/JsonConfigComponent/ConfigSlider.js.map +1 -1
  47. package/build/JsonConfigComponent/ConfigState.js.map +1 -1
  48. package/build/JsonConfigComponent/ConfigStaticDivider.js.map +1 -1
  49. package/build/JsonConfigComponent/ConfigStaticHeader.js.map +1 -1
  50. package/build/JsonConfigComponent/ConfigStaticImage.js.map +1 -1
  51. package/build/JsonConfigComponent/ConfigStaticInfo.js.map +1 -1
  52. package/build/JsonConfigComponent/ConfigStaticText.js.map +1 -1
  53. package/build/JsonConfigComponent/ConfigTable.js.map +1 -1
  54. package/build/JsonConfigComponent/ConfigTabs.js.map +1 -1
  55. package/build/JsonConfigComponent/ConfigText.js.map +1 -1
  56. package/build/JsonConfigComponent/ConfigTextSendTo.js.map +1 -1
  57. package/build/JsonConfigComponent/ConfigTimePicker.js.map +1 -1
  58. package/build/JsonConfigComponent/ConfigTopic.js.map +1 -1
  59. package/build/JsonConfigComponent/ConfigUUID.js.map +1 -1
  60. package/build/JsonConfigComponent/ConfigUser.js.map +1 -1
  61. package/build/JsonConfigComponent/index.d.ts +2 -2
  62. package/build/JsonConfigComponent/index.js.map +1 -1
  63. package/build/JsonConfigComponent/wrapper/Components/Editor.d.ts +2 -1
  64. package/build/JsonConfigComponent/wrapper/Components/Editor.js +1 -0
  65. package/build/JsonConfigComponent/wrapper/Components/Editor.js.map +1 -1
  66. package/build/types.d.ts +7 -1
  67. package/package.json +8 -6
@@ -1,5 +1,6 @@
1
1
  import { type JSX } from 'react';
2
2
  import 'ace-builds/src-min-noconflict/mode-json';
3
+ import 'ace-builds/src-min-noconflict/mode-json5';
3
4
  import 'ace-builds/src-min-noconflict/worker-json';
4
5
  import 'ace-builds/src-min-noconflict/theme-clouds_midnight';
5
6
  import 'ace-builds/src-min-noconflict/theme-chrome';
@@ -8,7 +9,7 @@ interface EditorProps {
8
9
  fontSize?: number;
9
10
  value?: string;
10
11
  defaultValue?: string;
11
- mode?: 'json' | 'css' | 'html';
12
+ mode?: 'json' | 'css' | 'html' | 'json5';
12
13
  name: string;
13
14
  onChange: (newValue: string) => void;
14
15
  themeType: string;
@@ -1,6 +1,7 @@
1
1
  import React from 'react';
2
2
  import AceEditor from 'react-ace';
3
3
  import 'ace-builds/src-min-noconflict/mode-json';
4
+ import 'ace-builds/src-min-noconflict/mode-json5';
4
5
  import 'ace-builds/src-min-noconflict/worker-json';
5
6
  import 'ace-builds/src-min-noconflict/theme-clouds_midnight';
6
7
  import 'ace-builds/src-min-noconflict/theme-chrome';
@@ -1 +1 @@
1
- {"version":3,"file":"Editor.js","sourceRoot":"./src/","sources":["JsonConfigComponent/wrapper/Components/Editor.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAmB,MAAM,OAAO,CAAC;AAExC,OAAO,SAAS,MAAM,WAAW,CAAC;AAClC,OAAO,yCAAyC,CAAC;AACjD,OAAO,2CAA2C,CAAC;AACnD,OAAO,qDAAqD,CAAC;AAC7D,OAAO,4CAA4C,CAAC;AACpD,OAAO,kDAAkD,CAAC;AAE1D,MAAM,MAAM,GAAwC;IAChD,SAAS,EAAE;QACP,MAAM,EAAE,eAAe;QACvB,SAAS,EAAE,GAAG;KACjB;IACD,WAAW,EAAE;QACT,MAAM,EAAE,qBAAqB;QAC7B,SAAS,EAAE,GAAG;KACjB;CACJ,CAAC;AAcF,SAAS,MAAM,CAAC,KAAkB;IAC9B,OAAO,CACH,oBAAC,SAAS,IACN,KAAK,EAAE,KAAK,CAAC,KAAK,KAAK,IAAI,CAAC,CAAC,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC,CAAC,KAAK,CAAC,KAAK,KAAK,KAAK,CAAC,CAAC,CAAC,MAAM,CAAC,WAAW,CAAC,CAAC,CAAC,SAAS,EACvG,IAAI,EAAE,KAAK,CAAC,IAAI,IAAI,MAAM,EAC1B,KAAK,EAAC,MAAM,EACZ,MAAM,EAAC,MAAM,EACb,eAAe,EAAE,KAAK,CAAC,aAAa,EACpC,UAAU,EAAE,KAAK,CAAC,aAAa,EAC/B,mBAAmB,EAAE,KAAK,CAAC,aAAa,EACxC,YAAY,EAAE,KAAK,CAAC,YAAY,EAChC,KAAK,EAAE,KAAK,CAAC,SAAS,KAAK,MAAM,CAAC,CAAC,CAAC,iBAAiB,CAAC,CAAC,CAAC,QAAQ,EAChE,KAAK,EAAE,KAAK,CAAC,KAAK,EAClB,QAAQ,EAAE,CAAC,KAAK,CAAC,QAAQ,EACzB,QAAQ,EAAE,QAAQ,CAAC,EAAE,CAAC,KAAK,CAAC,QAAQ,CAAC,QAAQ,CAAC,EAC9C,IAAI,EAAE,KAAK,CAAC,IAAI,IAAI,mBAAmB,EACvC,QAAQ,EAAE,KAAK,CAAC,QAAQ,IAAI,EAAE,EAC9B,UAAU,EAAE;YACR,yBAAyB,EAAE,IAAI;YAC/B,wBAAwB,EAAE,IAAI;YAC9B,cAAc,EAAE,IAAI;YAEpB,eAAe,EAAE,KAAK,CAAC,aAAa;YACpC,OAAO,EAAE,KAAK,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS;SAC/C,EACD,WAAW,EAAE,EAAE,eAAe,EAAE,IAAI,EAAE,GACxC,CACL,CAAC;AACN,CAAC;AAED,eAAe,MAAM,CAAC","sourcesContent":["import React, { type JSX } from 'react';\n\nimport AceEditor from 'react-ace';\nimport 'ace-builds/src-min-noconflict/mode-json';\nimport 'ace-builds/src-min-noconflict/worker-json';\nimport 'ace-builds/src-min-noconflict/theme-clouds_midnight';\nimport 'ace-builds/src-min-noconflict/theme-chrome';\nimport 'ace-builds/src-min-noconflict/ext-language_tools';\n\nconst styles: Record<string, React.CSSProperties> = {\n jsonError: {\n border: '1px solid red',\n minHeight: 200,\n },\n jsonNoError: {\n border: '1px solid #00000000',\n minHeight: 200,\n },\n};\n\ninterface EditorProps {\n fontSize?: number;\n value?: string;\n defaultValue?: string;\n mode?: 'json' | 'css' | 'html';\n name: string;\n onChange: (newValue: string) => void;\n themeType: string;\n editValueMode?: boolean; // flag that indicates the \"value edit mode\"\n error?: boolean;\n}\n\nfunction Editor(props: EditorProps): JSX.Element {\n return (\n <AceEditor\n style={props.error === true ? styles.jsonError : props.error === false ? styles.jsonNoError : undefined}\n mode={props.mode || 'json'}\n width=\"100%\"\n height=\"100%\"\n showPrintMargin={props.editValueMode}\n showGutter={props.editValueMode}\n highlightActiveLine={props.editValueMode}\n defaultValue={props.defaultValue}\n theme={props.themeType === 'dark' ? 'clouds_midnight' : 'chrome'}\n value={props.value}\n readOnly={!props.onChange}\n onChange={newValue => props.onChange(newValue)}\n name={props.name || 'UNIQUE_ID_OF_DIV1'}\n fontSize={props.fontSize || 14}\n setOptions={{\n enableBasicAutocompletion: true,\n enableLiveAutocompletion: true,\n enableSnippets: true,\n\n showLineNumbers: props.editValueMode,\n tabSize: props.editValueMode ? 2 : undefined,\n }}\n editorProps={{ $blockScrolling: true }}\n />\n );\n}\n\nexport default Editor;\n"]}
1
+ {"version":3,"file":"Editor.js","sourceRoot":"./src/","sources":["JsonConfigComponent/wrapper/Components/Editor.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAmB,MAAM,OAAO,CAAC;AAExC,OAAO,SAAS,MAAM,WAAW,CAAC;AAClC,OAAO,yCAAyC,CAAC;AACjD,OAAO,0CAA0C,CAAC;AAClD,OAAO,2CAA2C,CAAC;AACnD,OAAO,qDAAqD,CAAC;AAC7D,OAAO,4CAA4C,CAAC;AACpD,OAAO,kDAAkD,CAAC;AAE1D,MAAM,MAAM,GAAwC;IAChD,SAAS,EAAE;QACP,MAAM,EAAE,eAAe;QACvB,SAAS,EAAE,GAAG;KACjB;IACD,WAAW,EAAE;QACT,MAAM,EAAE,qBAAqB;QAC7B,SAAS,EAAE,GAAG;KACjB;CACJ,CAAC;AAcF,SAAS,MAAM,CAAC,KAAkB;IAC9B,OAAO,CACH,oBAAC,SAAS,IACN,KAAK,EAAE,KAAK,CAAC,KAAK,KAAK,IAAI,CAAC,CAAC,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC,CAAC,KAAK,CAAC,KAAK,KAAK,KAAK,CAAC,CAAC,CAAC,MAAM,CAAC,WAAW,CAAC,CAAC,CAAC,SAAS,EACvG,IAAI,EAAE,KAAK,CAAC,IAAI,IAAI,MAAM,EAC1B,KAAK,EAAC,MAAM,EACZ,MAAM,EAAC,MAAM,EACb,eAAe,EAAE,KAAK,CAAC,aAAa,EACpC,UAAU,EAAE,KAAK,CAAC,aAAa,EAC/B,mBAAmB,EAAE,KAAK,CAAC,aAAa,EACxC,YAAY,EAAE,KAAK,CAAC,YAAY,EAChC,KAAK,EAAE,KAAK,CAAC,SAAS,KAAK,MAAM,CAAC,CAAC,CAAC,iBAAiB,CAAC,CAAC,CAAC,QAAQ,EAChE,KAAK,EAAE,KAAK,CAAC,KAAK,EAClB,QAAQ,EAAE,CAAC,KAAK,CAAC,QAAQ,EACzB,QAAQ,EAAE,QAAQ,CAAC,EAAE,CAAC,KAAK,CAAC,QAAQ,CAAC,QAAQ,CAAC,EAC9C,IAAI,EAAE,KAAK,CAAC,IAAI,IAAI,mBAAmB,EACvC,QAAQ,EAAE,KAAK,CAAC,QAAQ,IAAI,EAAE,EAC9B,UAAU,EAAE;YACR,yBAAyB,EAAE,IAAI;YAC/B,wBAAwB,EAAE,IAAI;YAC9B,cAAc,EAAE,IAAI;YAEpB,eAAe,EAAE,KAAK,CAAC,aAAa;YACpC,OAAO,EAAE,KAAK,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS;SAC/C,EACD,WAAW,EAAE,EAAE,eAAe,EAAE,IAAI,EAAE,GACxC,CACL,CAAC;AACN,CAAC;AAED,eAAe,MAAM,CAAC","sourcesContent":["import React, { type JSX } from 'react';\n\nimport AceEditor from 'react-ace';\nimport 'ace-builds/src-min-noconflict/mode-json';\nimport 'ace-builds/src-min-noconflict/mode-json5';\nimport 'ace-builds/src-min-noconflict/worker-json';\nimport 'ace-builds/src-min-noconflict/theme-clouds_midnight';\nimport 'ace-builds/src-min-noconflict/theme-chrome';\nimport 'ace-builds/src-min-noconflict/ext-language_tools';\n\nconst styles: Record<string, React.CSSProperties> = {\n jsonError: {\n border: '1px solid red',\n minHeight: 200,\n },\n jsonNoError: {\n border: '1px solid #00000000',\n minHeight: 200,\n },\n};\n\ninterface EditorProps {\n fontSize?: number;\n value?: string;\n defaultValue?: string;\n mode?: 'json' | 'css' | 'html' | 'json5';\n name: string;\n onChange: (newValue: string) => void;\n themeType: string;\n editValueMode?: boolean; // flag that indicates the \"value edit mode\"\n error?: boolean;\n}\n\nfunction Editor(props: EditorProps): JSX.Element {\n return (\n <AceEditor\n style={props.error === true ? styles.jsonError : props.error === false ? styles.jsonNoError : undefined}\n mode={props.mode || 'json'}\n width=\"100%\"\n height=\"100%\"\n showPrintMargin={props.editValueMode}\n showGutter={props.editValueMode}\n highlightActiveLine={props.editValueMode}\n defaultValue={props.defaultValue}\n theme={props.themeType === 'dark' ? 'clouds_midnight' : 'chrome'}\n value={props.value}\n readOnly={!props.onChange}\n onChange={newValue => props.onChange(newValue)}\n name={props.name || 'UNIQUE_ID_OF_DIV1'}\n fontSize={props.fontSize || 14}\n setOptions={{\n enableBasicAutocompletion: true,\n enableLiveAutocompletion: true,\n enableSnippets: true,\n\n showLineNumbers: props.editValueMode,\n tabSize: props.editValueMode ? 2 : undefined,\n }}\n editorProps={{ $blockScrolling: true }}\n />\n );\n}\n\nexport default Editor;\n"]}
package/build/types.d.ts CHANGED
@@ -7,7 +7,7 @@ import type {
7
7
  ThemeType,
8
8
  ThemeName,
9
9
  } from '@iobroker/adapter-react-v5';
10
- import type { ConfigGeneric, DeviceManagerPropsProps } from '#JC/JsonConfigComponent/ConfigGeneric';
10
+ import type { ConfigGeneric, DeviceManagerPropsProps } from './JsonConfigComponent/ConfigGeneric';
11
11
 
12
12
  declare module '@mui/material/Button' {
13
13
  interface ButtonPropsColorOverrides {
@@ -601,6 +601,8 @@ export interface ConfigItemCustom extends ConfigItem {
601
601
  type: 'custom';
602
602
  /** location of Widget, like "custom/customComponents.js" */
603
603
  url: string;
604
+ /* module federation settings */
605
+ bundlerType?: 'module';
604
606
  /** Component name, like "ConfigCustomBackItUpSet/Components/AdapterExist" */
605
607
  name: string;
606
608
  /** i18n */
@@ -860,6 +862,10 @@ export interface ConfigItemJsonEditor extends ConfigItem {
860
862
  validateJson?: boolean;
861
863
  /** if true, the JSON will be validated only if the value is not empty */
862
864
  allowEmpty?: boolean;
865
+ /** Allow JSON5 format. Default is disabled */
866
+ json5?: boolean;
867
+ /** Do not allow to save the value if error in JSON or JSON5 */
868
+ doNotApplyWithError?: boolean;
863
869
  }
864
870
 
865
871
  export interface ConfigItemInterface extends ConfigItem {
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": "7.5.2",
4
+ "version": "7.6.0",
5
5
  "main": "./build/index.js",
6
6
  "types": "./build/index.d.ts",
7
7
  "scripts": {
@@ -18,20 +18,22 @@
18
18
  "access": "public"
19
19
  },
20
20
  "dependencies": {
21
- "@iobroker/adapter-react-v5": "file:../adapter-react-v5",
22
- "@mui/x-date-pickers": "^7.27.0",
21
+ "@iobroker/adapter-react-v5": "7.6.0",
22
+ "@mui/x-date-pickers": "^7.27.1",
23
23
  "crypto-js": "^4.2.0",
24
+ "json5": "^2.2.3",
24
25
  "react-ace": "^14.0.1",
25
26
  "react-qr-code": "^2.0.15"
26
27
  },
27
28
  "devDependencies": {
28
- "@craco/craco": "^7.1.0",
29
29
  "@types/crypto-js": "^4.2.2",
30
+ "@types/json5": "^2.2.0",
30
31
  "ajv": "^8.17.1",
31
- "tsc-alias": "^1.8.10"
32
+ "tsc-alias": "^1.8.11"
32
33
  },
33
34
  "files": [
34
35
  "build/",
35
36
  "LICENSE"
36
- ]
37
+ ],
38
+ "gitHead": "a0a7fc4fc182fbfd4f7aae1345de3198d9ae49aa"
37
39
  }