Новый класс пользовательского поля SearchLocation

Всем привет! Сегодня я изучаю тему создания дополнительного класса для пользовательского поля. Вот краткое изложение моей цели:

Цель

Создать новый класс пользовательского поля, аналогично существующим, таким как Dropdown, Multiselect, Text, Textarea, который будет работать с Google Places API или другим сервисом геолокации.

Потребность

Я хочу хранить три значения для пользователя на основе следующих факторов: город, штат/область и страна. Используя эти значения, пользователя можно будет назначить в соответствующую группу. Идея заключается в том, чтобы обеспечить глобальное, международное и региональное взаимодействие между людьми.

Реализация

Я написал скрипт на https://codepen.io, который использует Google Places API, аналогично этому примеру: https://codepen.io/philipp_96/pen/GRYBLYR. В идеале я хотел бы иметь поле поиска, как на CodePen. Поля для города, штата/области и страны могут быть простыми пользовательскими текстовыми полями, которые будут заполняться данными из поля «Введите ваш адрес».

Проблемы

Я не уверен, с чего начать:

  1. Реализация нового класса, предоставляющего поле поиска, например, нового класса пользовательского поля под названием «Местоположение».
  2. Автоматическое заполнение трех текстовых пользовательских полей (Город, Штат/Область, Страна) значениями из поля поиска.
  3. Где следует писать этот код? В плагине или непосредственно в коде Discourse?

Буду очень благодарен за любые советы или предложения. Большое спасибо!