Предупреждение:
Как вы, возможно, уже знаете, оригинальный проект response-json-editor-ajrm активно не поддерживается и в конечном итоге устареет. Поэтому я решил установить официальную дату прекращения поддержки. Ориентировочная дата этого — 15 июня 2023 года.
Я хотел бы поблагодарить тех, кто использовал его в своих проектах, и тех, кто каким-то образом внес свой вклад в проект. Я просто больше не хочу поддерживать этот проект. Он был создан в первые дни моей карьеры инженера-программиста и не соответствовал ни сегодняшним стандартам, ни моим.
Но не волнуйтесь. Я намерен вдохнуть новую жизнь в этот проект, переписав его с нуля.
Я хотел бы воспользоваться уроками прошлого и избежать некоторых проблем, с которыми в настоящее время сталкивается реакция-json-editor-ajrm. Я также хотел бы отметить то, что было сделано хорошо, и я хотел бы продолжать это делать.
Я создал дом для этого нового проекта здесь, enio. Я также организовал здесь обсуждение, если у вас есть какие-либо вопросы или комментарии.
Стильный, похожий на редактор, модульный компонент реагирования для просмотра, редактирования и отладки синтаксиса объектов JavaScript!
$ npm i --save react-json-editor-ajrm
import JSONInput from 'react-json-editor-ajrm';
import locale from 'react-json-editor-ajrm/locale/en';
<JSONInput
id = 'a_unique_id'
placeholder = { sampleObject }
colors = { darktheme }
locale = { locale }
height = '550px'
/>
Подсказка : существует два разных корневых пути: react-json-editor-ajrm и react-json-editor-ajrm/es . Первый содержит полизаполненный код ES5, второй — незаполненный код ES6. Версия react-json-editor-ajrm/es несовместима с create-react-app . Если вы не уверены, какой из них вам нужен, выберите первый — он лучше всего совместим с инструментами и браузерами.
Папка ./examples содержит два примера:
$ cd path/to/repo/react-json-editor-ajrm/example/webpack-project
$ npm i
$ npm start
http://localhost:8080 в веб-браузере. placeholder для отображения после монтирования компонента.English , German , Spanish , Chinese , French , Indonesian , Russian , Hindi , Japanese и Tamil языков. | Имя | Описание | Тип | Необходимый |
|---|---|---|---|
| локаль | Язык вашего редактора. Импортируйте локали следующим образом: import locale from 'react-json-editor-ajrm/locale/en' . Узнать больше | объект | Обязательный |
| идентификатор | Необязательный id , который можно назначить фактическому узлу DOM ввода текста. Помимо текстового ввода, следующие узлы также получат идентификатор: {id}-outer-box , {id}-container , {id}-warning-box , {id}-labels | нить | Необязательный |
| заполнитель | Отправьте действительный объект JavaScript, который будет показан после монтирования компонента. Присвойте другое значение, чтобы повторно отобразить исходное содержимое компонента. | объект | Необязательный |
| перезагрузить | Отправьте true , чтобы компонент всегда повторно отображал или «сбрасывал» значение, указанное в свойстве placeholder . | логическое значение | Необязательный |
| viewOnly | Отправьте true если вы хотите, чтобы отображаемый контент был недоступен для редактирования. | логическое значение | Необязательный |
| onChange | Всякий раз, когда происходит событие onKeyPress , оно возвращает значения содержимого. | объект | Необязательный |
| onBlur | Всякий раз, когда происходит событие onBlur , оно возвращает значения содержимого. | объект | Необязательный |
| подтвердитьХорошо | Отправьте false если вы хотите, чтобы галочка, подтверждающая правильный синтаксис, была скрыта. | логическое значение | Необязательный |
| высота | Сокращенное свойство для установки определенной высоты для всего компонента. | нить | Необязательный |
| ширина | Сокращенное свойство для установки определенной ширины для всего компонента. | нить | Необязательный |
| onKeyPressUpdate | Отправьте false если вы хотите, чтобы компонент не обновлялся автоматически при нажатии клавиши. | логическое значение | Необязательный |
| ждатьAfterKeyPress | Количество миллисекунд ожидания перед повторной отрисовкой содержимого после нажатия клавиши. Значение по умолчанию равно 1000 , если оно не указано. Другими словами, компонент обновится, если после последнего нажатия клавиши в течение 1 секунды не будет выполнено дополнительное нажатие. Менее 100 миллисекунд не имеет значения. | число | Необязательный |
| изменитьErrorText | Пользовательская функция для изменения исходного текста предупреждения компонента. Эта функция получит один параметр типа string и в равной степени должна вернуть string . | функция | Необязательный |
| ошибка | Содержит следующие свойства: | объект | Необязательный |
| ошибка.причина | Строка, содержащая пользовательское сообщение об ошибке. | нить | Необязательный |
| ошибка.строка | Число, указывающее номер строки, связанной с пользовательским сообщением об ошибке. | число | Необязательный |
| тема | Укажите, какую встроенную тему использовать. | нить | Необязательный |
| цвета | Содержит следующие свойства: | объект | Необязательный |
| цвета.по умолчанию | Шестнадцатеричный цветовой код для любых символов, таких как фигурные braces и comma . | нить | Необязательный |
| цвета.строка | Шестнадцатеричный цветовой код для токенов, идентифицируемых как string значения. | нить | Необязательный |
| цвета.номер | Шестнадцатеричный цветовой код для токенов, идентифицируемых как integeter , double значения или значения float . | нить | Необязательный |
| цвета.двоеточие | Шестнадцатеричный цветовой код для токенов, обозначенных colon . | нить | Необязательный |
| цвета.ключи | Шестнадцатеричный цветовой код для токенов, идентифицируемых как keys или имена свойств. | нить | Необязательный |
| цвета.keys_whiteSpace | Шестнадцатеричный цветовой код для токенов, идентифицируемых как keys заключенные в кавычки. | нить | Необязательный |
| цвета.примитив | Шестнадцатеричный цветовой код для токенов, идентифицированных как boolean значения и ноль. | нить | Необязательный |
| цвета.ошибка | Шестнадцатеричный цветовой код для жетонов, помеченных тегом error . | нить | Необязательный |
| цвета.фон | Шестнадцатеричный цветовой код фона компонента. | нить | Необязательный |
| цвета.background_warning | Шестнадцатеричный цветовой код для отображения предупреждающего сообщения вверху компонента. | нить | Необязательный |
| стиль | Содержит следующие свойства: | объект | Необязательный |
| style.outerBox | Свойство для изменения стиля по умолчанию внешнего контейнера div компонента. | объект | Необязательный |
| стиль.контейнер | Свойство для изменения стиля container компонента по умолчанию. | объект | Необязательный |
| style.warningBox | Свойство для изменения стиля по умолчанию контейнера div предупреждающего сообщения. | объект | Необязательный |
| style.errorMessage | Свойство для изменения стиля предупреждающего сообщения по умолчанию. | объект | Необязательный |
| стиль.тело | Свойство для изменения стиля по умолчанию контейнера div меток строк и кода. | объект | Необязательный |
| style.labelColumn | Свойство для изменения стиля по умолчанию контейнера div меток строк. | объект | Необязательный |
| стиль.метки | Свойство для изменения стиля по умолчанию для каждой метки строки. | объект | Необязательный |
| style.contentBox | Свойство для изменения стиля по умолчанию контейнера div кода. | объект | Необязательный |
outerBox
+-- container
+--- warningBox
+---- errorMessage
+--- body
+---- labelColumn
+----- labels
+---- contentBox
+----- auto generated markup
Всякий раз, когда RJEA повторно отображает свое содержимое, любая функция, переданная в свойство onChange получит один параметр объекта со следующими ключами и значениями:
| Ключ | Описание |
|---|---|
| обычный текст | Строковое представление содержимого, включающее разрывы строк и отступы. Отлично подходит для console.log() |
| разметкаТекст | Строковое представление автоматически созданной разметки, используемой для отрисовки контента. |
| JSON | Версия контента в формате JSON.stringify. |
| jsObject | Версия содержимого javascript object . Вернет undefined , если синтаксис содержимого неверен. |
| линии | Количество строк, отображаемых для отображаемого контента. |
| ошибка | Возвращает false если синтаксис содержимого неверен. В этом случае возвращается объект с token и номером line , который соответствует месту, в котором произошла ошибка, и reason |
RJEA поддерживает встроенную тему. Вот список.
Этот проект лицензируется по лицензии MIT — подробности см. в файле LICENSE.md.
Спасибо этим замечательным людям?:
Эндрю Редикан ? ? | Патрик Сакс ? | Аллан Кель ? | эсбенвб | Маркус Петриковски | Рик Брунстедт | ADirtyCat ? |
Седрик ? | Радит ? | аскеты ? | CGВедант ? | Шехбаз Джафри ? | Васанта Кумар РБ ? | Адитья Перивал ? |
Алексей Ляхов | Теренс Хьюнь | Ричард Халл | Тонингюенит18 |
Этот проект соответствует спецификации всех участников. Любой вклад приветствуется!