This project has moved and is now part of the InstantSearch monorepo! The library remains unchanged and is still available on npm and CDNs like jsDelivr.
You can browse the code, find existing issues and follow new releases over there.
๐ Algolia components for building search UIs with Vue.js
Home Page: https://www.algolia.com/doc/guides/building-search-ui/what-is-instantsearch/vue
License: MIT License
This project has moved and is now part of the InstantSearch monorepo! The library remains unchanged and is still available on npm and CDNs like jsDelivr.
You can browse the code, find existing issues and follow new releases over there.
We should keep examples inside the monorepo.
That way we can easily test the examples while developing new features.
The best would be to prefix all examples with "example".
An other approach would be to use JSFiddle, like here: https://vuejs.org/v2/examples/index.html
The worst experience is to have to much default styles part of the components.
Even the simple fact as putting in bold an active refinement can have undesired effects when use in a CSS framework context.
Let's make sure we dissociate styles from the components. All of them.
IMO opinion it would be a good idea to extract all widgets from this repository.
PROS:
CONS:
We have currently chosen to respect the DOM.
We must now ensure that it is still easy to integrate the components with existing frameworks like Bootstrap.
If it is not simple, we will need to consider refactoring some bits.
clearsQuery
: bool, default false
That way it's the same as the other InstantSearch implementations.
As a user of a UI library, I will want to integrate the components with existing styles.
We should try to come up with an easy solution that allows us to easily be compatible with those.
Maybe this can be solved by only overriding classes. That would be ideal.
Also if this could be prepared at the highest level it would be perfect. Providing a specific build per framework that only overrides all the default classes of all components.
One SearchFacet
We should replace highlighting tags with something different than the replace method in highlighting and snippetting components.
Given we are moving away from a "form elements only" approach, and that the state is already hold by the Store, there is no need to name the different form elements.
It just adds more entropy to the current code.
V2.1.0 comes with some great improvements when it comes to re-usability.
We should use:
The best would be to try out an autocomplete-like experience.
For the record, there is mainly one scenario that we want to cover for now:
We should keep prefix for HTML elements but not for ES6 exports
build a POC of what URL sync could look like.
It will remain a user concern though.
build is usually used like dist (and thus often ignored in editors), How are other projects calling a directory with rollup configs?
Choose an easy to use tool for the docs, maybe just gitbook as a starter.
For each component, we need to document:
I think best would be to have a common API for all components.
User should be able to provide classes to override, i.e.
<ais-pagination :classes="{
'ais-pagination': 'pagination',
'ais-pagination__item': 'page',
'ais-pagination__item--active': 'active',
}" />
Specs:
Not sure where this should be handled.
WDYT @Haroenv
Given the "provided" values will be "reactive" in a future release, we should not rely on direct mutations of the store.
That means we will need to probably use mutator functions or something of that kind.
algolia-search-store/src/index.js#L55
Something like this will probably work
import {version} from '../package.json';
//...
this._helper.getClient().addAlgoliaAgent(`Store (${version})`)
//...
Now easy to setup thanks to NPM coupling
Rendering them with a disabled attribute, instead of not at all will allow users to stay with their mouse on the same place, while now other components disappearing or changing height makes that hard.
It looks like I overlooked the "setter" capability of computed props: https://vuejs.org/v2/guide/computed.html#Computed-Setter
Let's check if we can use this somewhere.
Find the best way to implement this.
Currently, only few parameters are supported by the store.
We should support all of them.
Conform with existing IS implems for most of the components.
Keep "results" and "navigationTree".
Use the same prefix everywhere (to be defined):
To be able to lazy load results, we need to keep a computed hits value inside the searchResults widget
Radios feels a bit weird here, probably needs to be challenged a bit more and see how intgrating something like Bootstrap works out would help.
We still have places where we talk about hits (mainly in the search results component).
We should either go full-in for hits or go with results.
I know that we both chose to name it Results when we first used Algolia, but if we use that naming, we need to ensure "hits" is never used anywhere.
cc @Haroenv
Also "hits" is shorter than "results".
If we go for results we need to:
results
instead of hits
in the search results slotnbHits
to totalResults
in the SearchStorehitsPerPage
to resultsPerPage
in the SearchStore (setter & getter)hits
to results
in the SearchStoreIdeally, there should be a default input with "clear button" + magnifying lense.
We need to see where this would fit.
We should be able to do:
<ais-store :store="store">
A declarative, efficient, and flexible JavaScript library for building user interfaces.
๐ Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. ๐๐๐
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google โค๏ธ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.