Nueva clase de campo personalizado SearchLocation

Hola a todos, hoy he estado investigando el tema de crear una clase adicional para un campo personalizado. Aquí hay un breve resumen de mi objetivo:

Objetivo

Crear una nueva clase de campo personalizado, junto a las existentes como Dropdown, Multiselect, Text, Textarea, que pueda funcionar con la API de Google Places u otro servicio de localización.

Necesidad

Quiero almacenar tres valores para un usuario basándome en los siguientes factores: ciudad, estado y país. Usando estos valores, el usuario puede ser asignado a un grupo. La idea es permitir el networking global, internacional y regional entre personas.

Implementación

He escrito un script en https://codepen.io que utiliza la API de Google Places, similar a este ejemplo: https://codepen.io/philipp_96/pen/GRYBLYR. Idealmente, me gustaría tener un campo de búsqueda como el de CodePen. Los campos de ciudad, estado y país pueden ser simples campos de entrada personalizados (texto) que se poblarían con el campo “Introduce tu dirección”.

Problemas

No estoy seguro por dónde empezar:

  1. Implementar una nueva clase que proporcione el campo de búsqueda, como una nueva clase de campo personalizado llamada “Ubicación”.
  2. Rellenar automáticamente los tres campos de texto personalizados (Ciudad, Estado, País) con los valores del campo de búsqueda.
  3. ¿Dónde debería escribir este código? ¿Debería ser en un plugin o dentro del propio código de Discourse?

Agradecería mucho cualquier orientación o sugerencia. ¡Muchas gracias!