npm package discovery and stats viewer.

Discover Tips

  • General search

    [free text search, go nuts!]

  • Package details

    pkg:[package-name]

  • User packages

    @[username]

Sponsor

Optimize Toolset

I’ve always been into building performant and accessible sites, but lately I’ve been taking it extremely seriously. So much so that I’ve been building a tool to help me optimize and monitor the sites that I build to make sure that I’m making an attempt to offer the best experience to those who visit them. If you’re into performant, accessible and SEO friendly sites, you might like it too! You can check it out at Optimize Toolset.

About

Hi, 👋, I’m Ryan Hefner  and I built this site for me, and you! The goal of this site was to provide an easy way for me to check the stats on my npm packages, both for prioritizing issues and updates, and to give me a little kick in the pants to keep up on stuff.

As I was building it, I realized that I was actually using the tool to build the tool, and figured I might as well put this out there and hopefully others will find it to be a fast and useful way to search and browse npm packages as I have.

If you’re interested in other things I’m working on, follow me on Twitter or check out the open source projects I’ve been publishing on GitHub.

I am also working on a Twitter bot for this site to tweet the most popular, newest, random packages from npm. Please follow that account now and it will start sending out packages soon–ish.

Open Software & Tools

This site wouldn’t be possible without the immense generosity and tireless efforts from the people who make contributions to the world and share their work via open source initiatives. Thank you 🙏

© 2024 – Pkg Stats / Ryan Hefner

autocompleter-caba

v0.1.5

Published

Un paquete para que permite obtener información sobre direcciones y sitios de interés de la Ciudad de Buenos Aires.

Downloads

25

Readme

Documentación del Paquete Autocompleter

Este paquete proporciona funcionalidades para obtener sugerencias e información para direcciones y sitios de interés de la Ciudad de Buenos Aires.

Instalación

Para instalar el paquete, utilizar npm:

npm install autocompleter-caba

Uso

Importar el paquete:

import { Autocompleter } from 'autocompleter-caba/dist/src/index';

Crear una instancia de Autocompleter:

const autocompleter = new Autocompleter();

Configuración de Credenciales

Establecer las credenciales del cliente utilizando el método setCredentials(clientId, clientSecret):

autocompleter.setCredentials("tu_client_id", "tu_client_secret");

Habilitar/Desactivar Suggesters

Se puede habilitar o desactivar los suggesters según necesidades utilizando los métodos enableSuggester(suggester) y disableSuggester(suggester):

autocompleter.enableSuggester("AddressSuggester");
autocompleter.disableSuggester("PlaceSuggester");

Obtener Sugerencias

Para obtener sugerencias basadas en la entrada del usuario, utilizar el método getSuggestions(input):

const suggestions = await autocompleter.getSuggestions("Callao 520");

Buscar Direcciones

Para buscar direcciones, utilizar el método getSearch(address):

const searchResult = await autocompleter.getSearch("Callao 520");

Buscar Lugares de Interés

Para buscar sitios de interés, utilizar el método getSearchPlaces(place):

const searchResult = await autocompleter.getSearchPlaces("hospital");

Las siguientes funciones permiten a los usuarios interactuar con la aplicación Autocompleter de diversas maneras, desde configurar sus credenciales hasta obtener sugerencias y resultados de búsqueda específicos.

Métodos

  • getClientId(): Devuelve el atributo clientId.

  • getClientSecret(): Devuelve el atributo clientSecret.

  • setCredentials(clientId: string, clientSecret: string): Permite establecer las credenciales del cliente proporcionando los atributos clientId y clientSecret.

  • findSuggester(suggesterType: SuggestersOptions): Busca y devuelve el suggester correspondiente según el tipo especificado.

  • enableSuggester(suggester: SuggestersOptions): Permite habilitar un suggester específico.

  • disableSuggester(suggester: SuggestersOptions): Desactiva un suggester específico.

  • getSuggesters(): Devuelve un objeto que contiene todos los suggesters disponibles en la aplicación.

  • getSuggestions(input: string, typeSuggester: string): Busca sugerencias basadas en la entrada de texto proporcionada. TypeSuggester pueder ser "address" o "place", por dafault es "all".

  • getSearch(input: string): Busca información sobre la dirección o sitio de interés ingresado.

  • getSearchPlaces(place: string): Busca información del sitios de interés ingresado.

  • getSearchAddress(address: string): Busca información de la dirección ingresada.

Ejemplos:

Autocompleter en Angular

Creación del Proyecto

Utilizar Angular CLI para crear un nuevo proyecto. Abrir una consola de comando y ejecutar:

ng new autocompleter-app

Seguir las instrucciones para configurar el proyecto. Una vez creado, navegar hacia la raiz del proyecto:

cd autocompleter-app

Instalación del Paquete

Instalar el autocompleter-caba:

npm install autocompleter-caba

Configuración de Componentes

En el archivo .ts (por ejemplo src/app/app.component.ts):

  • Incializar e instanciar la clase Autocompleter en el constructor del componente AppComponent.
  • Esteblecer las credenciales para el uso del Autocompleter.
  • Crear y definir las funciones que utilizarán los métodos de la clase Autocompleter (ejemplo: getSuggestions y getSearch.)
export class AppComponent {
  title = 'autocompleter-app';
  calle: string = '';
  suggestions: any[] = [];
  search: any = null;
  autocompleter: Autocompleter;
  typingTimeout: any;

  constructor() {
    this.autocompleter = new Autocompleter();
    this.autocompleter.setCredentials('client_id', 'client_secret_id');
  }

  onInputChange() {

    clearTimeout(this.typingTimeout);

    this.typingTimeout = setTimeout(() => {
      this.getSuggestions();
    }, 1000);
  }

  getSuggestions() {
    if (this.calle) {
      this.autocompleter.getSuggestions(this.calle, 'address').then((data: any) => {
        this.search = null;
        this.suggestions = data;
        console.log(data);
      }).catch((error: any) => {
        console.error('Error obteniendo sugerencias:', error);
      });
    }
    if (this.calle == ""){
      this.suggestions = [];
    }
  }

  getSearch() {
    if (this.calle) {
      this.autocompleter.getSearch(this.calle).then((data: any) => {
        this.search = data.data;
        this.suggestions = [];
      }).catch((error: any) => {
        console.error('Error obteniendo dirección:', error);
      });
    }
    if (this.calle == ""){
      this.suggestions = [];
    }
  }
}

En un template crear la estructura necesaria para observar los resultados de la clase Autocompleter. Por ejemplo, en src/app/app.component.html agregar la siguiente estructura:

<div style="text-align:center">
  <h1> {{ title }} </h1>
  <input
    id="calle"
    [(ngModel)]="calle"
    (input)="onInputChange()"
    placeholder="Ingrese la calle"
  />

  <button (click)="getSearch()">Buscar</button>

  <ul *ngIf="suggestions.length > 0" style="list-style: none;">
    <li *ngFor="let suggestion of suggestions">{{ suggestion.value }}</li>
  </ul>
  <div *ngIf="search != null">{{search.direccion}}</div>
  <div id="mapa"></div>
</div>

Autocompleter en ReactJs

Creación del Proyecto

Crear un proyecto con CRA o Vite. Abrir una consola de comando y ejecutar:

npm create vite@latest autocompleter-app

Seguir las instrucciones para configurar el proyecto. Una vez creado, navegar hacia la raiz del proyecto:

cd autocompleter-app

Instalación del Paquete

Instalar el autocompleter-caba:

npm install autocompleter-caba

Configuración de Componentes

  • Crear un archivo App.jsx y configurar el componente App para utilizar el autocompleter.
function App() {
  const [calle, setCalle] = useState('');
  const [suggestions, setSuggestions] = useState([]);
  const [search, setSearch] = useState(null);
  const [typingTimeout, setTypingTimeout] = useState(null);
  const autocompleter = new Autocompleter();
  
  // ...
}
  • Inicializar e instanciar la clase Autocompleter en el componente App.
const autocompleter = new Autocompleter();
  • Establecer las credenciales para el uso del Autocompleter.
  useEffect(() => {
    autocompleter.setCredentials('client_id', 'client_secret_id');
  }, []);
  • Crear y definir las funciones que utilizarán los métodos de la clase Autocompleter (ejemplo: getSuggestions y getSearch) dentro del componente App.
const handleInputChange = (e) => {
    setCalle(e.target.value);
    clearTimeout(typingTimeout);

    setTypingTimeout(
      setTimeout(() => {
        getSuggestions();
      }, 1000)
    );
  };

  const getSuggestions = () => {
    if (calle) {
      autocompleter
        .getSuggestions(calle, 'address')
        .then((data) => {
          setSearch(null);
          setSuggestions(data);
          console.log(data);
        })
        .catch((error) => {
          console.error('Error obteniendo sugerencias:', error);
        });
    }
    if (calle === '') {
      setSuggestions([]);
    }
  };

  const getSearch = () => {
    if (calle) {
      autocompleter
        .getSearch(calle)
        .then((data) => {
          setSearch(data.data);
          setSuggestions([]);
        })
        .catch((error) => {
          console.error('Error obteniendo dirección:', error);
        });
    }
    if (calle === '') {
      setSuggestions([]);
    }
  };
  • Estructura de la Interfaz: En el return del componente se debe crear la estructura necesaria para mostrar los resultados del autocompleter.
 return (
    <div style={{ textAlign: 'center' }}>
      <h1>Autocompleter App</h1>
      <input
        id="calle"
        value={calle}
        onChange={handleInputChange}
        placeholder="Ingrese la calle"
      />
      <button onClick={getSearch}>Buscar</button>

      <ul style={{ listStyle: 'none', padding: 0 }}>
        {suggestions.map((suggestion, index) => (
          <li key={index}>{suggestion.value}</li>
        ))}
      </ul>

      {search && <div>{search.direccion}</div>}
    </div>
  );
}

Notas

  • Asegurarse de establecer las credenciales del cliente antes de realizar cualquier búsqueda.
  • Los suggesters deben estar habilitados antes de utilizar las funciones de búsqueda correspondientes.
  • El paquete tiene restricciones en cuanto a la longitud mínima de texto y el número máximo de sugerencias.