Nova classe de campo personalizado SearchLocation

Olá a todos, hoje estive pesquisando sobre a criação de uma classe adicional para um campo personalizado. Aqui está um breve resumo do meu objetivo:

Objetivo

Criar uma nova classe de campo personalizado, ao lado das existentes como Dropdown, Multiselect, Text, Textarea, que possa funcionar com a API do Google Places ou outro serviço de localização.

Necessidade

Quero armazenar três valores para um usuário com base nos seguintes fatores: cidade, estado e país. Usando esses valores, o usuário pode ser atribuído a um grupo. A ideia é permitir o networking global, internacional e regional entre as pessoas.

Implementação

Escrevi um script no https://codepen.io que utiliza a API do Google Places, semelhante a este exemplo: https://codepen.io/philipp_96/pen/GRYBLYR. Idealmente, eu gostaria de ter um campo de busca como o do CodePen. Os campos para cidade, estado e país podem ser simples campos de entrada personalizados (texto) que seriam preenchidos pelo campo “Digite seu endereço”.

Problemas

Não tenho certeza por onde começar:

  1. Implementar uma nova classe que forneça o campo de busca, como uma nova classe de campo personalizado chamada “Localização”.
  2. Preencher automaticamente os três campos de texto personalizados (Cidade, Estado, País) com os valores do campo de busca.
  3. Onde devo escrever este código? Deve ser em um plugin ou no próprio código do Discourse?

Agradeceria muito qualquer orientação ou sugestão. Muito obrigado!