yauction-category-picker
v1.0.6
Published
<yauction-category-picker /> is a category picker for TW Yahoo! Auction. Users could go through the whole category tree to pick a suitable category for their merchandise. <yauction-category-picker /> will show up with categoryId which developers set. That
Downloads
7
Maintainers
Readme
yauction-category-picker
<yauction-category-picker /> is a category picker for TW Yahoo! Auction. Users could go through the whole category tree to pick a suitable category for their merchandise. <yauction-category-picker /> will show up with categoryId which developers set. That means user can start from category 「root
」 or 「leaf
」.
Vision
<yauction-category-picker /> rised.
<yauction-category-picker /> rised (search mode).
Basic Usage
<yauction-category-picker /> is a web component. All we need to do is put the required script into your HTML document. Then follow <yauction-category-picker />'s html structure and everything will be all set.
Required Script
<script
type="module"
src="https://your-domain/wc-yauction-category-picker.js">
</script>
Structure
Put <yauction-category-picker /> into HTML document. It will have different functions and looks with attribute mutation.
<yauction-category-picker>
<script type="application/json">
{
"l10n": {
"title": "Category Picker",
"confirm": "CONFIRM",
"emptyLabel": "Select",
"placeholder": "Search category"
},
"params": {
"id": "mei",
...
},
"webservice": {
"path": "https://your-domain/getCategoryPath",
"children": "https://your-domain/getCategoryChildren",
"nodes": "https://your-domain/getCategoryNodes",
"tree": "https://your-domain/getCategoryTree"
}
}
</script>
</yauction-category-picker>
Otherwise, developers could also choose remoteconfig to fetch config for <yauction-category-picker />.
<yauction-category-picker remoteconfig="https://your-domain/api-path"
JavaScript Instantiation
<yauction-category-picker /> could also use JavaScript to create DOM element. Here comes some examples.
<script type="module">
import { YauctionCategoryPicker } from 'https://your-domain/wc-yauction-category-picker.js';
// use DOM api
const nodeA = document.createElement('yauction-category-picker');
document.body.appendChild(nodeA);
nodeA.params = {
id: 'mei',
sex: 'M'
};
nodeA.show();
// new instance with Class
const nodeB = new YauctionCategoryPicker();
document.body.appendChild(nodeB);
nodeB.params = {
id: 'mei',
sex: 'M'
};
nodeB.show('23288');
// new instance with Class & default config
const config = {
l10n: {
title: 'Category Picker',
confirm: 'CONFIRM',
emptyLabel: 'Select'
},
params: {
id: 'mei',
sex: 'M'
},
webservice: {
path: 'https://your-domain/getCategoryPath',
children: 'https://your-domain/getCategoryChildren',
nodes: 'https://your-domain/getCategoryNodes',
tree: 'https://your-domain/getCategoryTree'
}
};
const nodeC = new YauctionCategoryPicker(config);
document.body.appendChild(nodeC);
</script>
Style Customization
Developers could apply styles to decorate <yauction-category-picker />'s looking.
<style>
yauction-category-picker {
/* common */
--yauction-category-picker-label-color: rgba(35 42 49);
--yauction-category-picker-theme-color: rgba(15 105 255);
--yauction-category-picker-section-line-color: rgba(224 228 233);
/* listing */
--yauction-category-picker-listing-color: rgba(35 42 49);
--yauction-category-picker-listing-bgc: rgba(246 248 250);
--yauction-category-picker-arrow-color: rgba(151 158 168);
--yauction-category-picker-line-color: rgba(198 198 200);
--yauction-category-picker-max-listing-count: 10;
--yauction-category-picker-no-result-color: rgba(35 42 49);
/* action button */
--yauction-category-picker-confirm-text-color: rgba(255 255 255);
--yauction-category-picker-confirm-bgc: rgba(58 191 186);
/* loading sign */
--yauction-category-picker-loading-color: rgba(255 255 255);
--yauction-category-picker-loading-bgc: rgba(0 0 0/.25);
}
</style>
Attributes
<yauction-category-picker /> supports some attributes to let it become more convenience & useful.
- params
Set parameters for <yauction-category-picker />. It should be JSON string. Each fetching will attached these parameters to api. Default is {}
(not set).
<yauction-category-picker
params='{"id":"mei","sex":"M"}'
>
...
</yauction-category-picker>
- l10n
Set localization for <yauction-category-picker />. It will replace some message & button text to anything you like. It should be JSON string. Developers could set title
、confirm
、emptyLabel
and placeholder
.
title
:category title text. Default isCategory Picker
.confirm
:button「confirm」text. Default isCONFIRM
.emptyLabel
:empty label text. Default isSelect
.placeholder
:search field placeholder content. Default isSearch category
.
<yauction-category-picker
l10n='{"title":"Category Picker","confirm":"CONFIRM","emptyLabel":"Select","placeholder":"Search category"}'
>
...
</yauction-category-picker>
- webservice
Set web service information for <yauction-category-picker />. It should be JSON string. Developers could set path
、nodes
、children
and tree
api address here..
PS. Developers could apply {{categoryId}}
as replace key for category id in api address. Such as "https://your-domain/getCategoryChildren/{{categoryId}}
".
path
:api address for category path information fetching (leaf to root).children
:api address for category children fetching.nodes
:api address for category nodes information fetching.tree
:api address for category tree information fetching.
<yauction-category-picker
webservice='{"path":"https://your-domain/getCategoryPath","children":"https://your-domain/getCategoryChildren","nodes":"https://your-domain/getCategoryNodes","tree":"https://your-domain/getCategoryTree"}'
>
...
</yauction-category-picker>
Properties
| Property Name | Type | Description |
| ----------- | ----------- | ----------- |
| params | Object | Getter / Setter for params. Each fetching will attached these parameters to api. Default is {}
. |
| l10n | Object | Getter / Setter for l10n. It will replace some UI text to anything you like. Developers could set title
、confirm
、emptyLabel
and placeholder
. |
| webservice | Object | Getter / Setter for webservice. Developers could set path
、children
、nodes
and tree
api address here. |
| open | Boolean | Getter for <yauction-category-picker />'s open status. |
| pickedInfo | Object | Getter for current <yauction-category-picker />'s category information. Developers could get { picked, path }
. |
Method
| Method Signature | Description |
| ----------- | ----------- |
| show(categoryId) | Fetch & popup <yauction-category-picker />. Developers could call this method with argument > categero id to popup . Such as:element.show('23288')
. Default is 0
(not set). |
| dismiss | Dismiss <yauction-category-picker />.
Event
| Event Signature | Description |
| ----------- | ----------- |
| yauction-category-picker-pick | Fired when user finish picked category. Developers could gather picked data > { picked,path }
through event.detail. |
| yauction-category-picker-cancel | Fired when <yauction-category-picker /> canceled.(user closed <yauction-category-picker />) |
| yauction-category-picker-error | Fired when <yauction-category-picker /> fetching error. Develpoers could gather information through event.detail
.(<yauction-category-picker /> will put server response to event.detail.cause
) |