
Fixed issue where alpha not being set correctly in canvas spriteBatch Fixed issue where previous stage events did not get removed correctly
98 lines
2.9 KiB
JavaScript
98 lines
2.9 KiB
JavaScript
YUI.add('api-search', function (Y) {
|
|
|
|
var Lang = Y.Lang,
|
|
Node = Y.Node,
|
|
YArray = Y.Array;
|
|
|
|
Y.APISearch = Y.Base.create('apiSearch', Y.Base, [Y.AutoCompleteBase], {
|
|
// -- Public Properties ----------------------------------------------------
|
|
RESULT_TEMPLATE:
|
|
'<li class="result {resultType}">' +
|
|
'<a href="{url}">' +
|
|
'<h3 class="title">{name}</h3>' +
|
|
'<span class="type">{resultType}</span>' +
|
|
'<div class="description">{description}</div>' +
|
|
'<span class="className">{class}</span>' +
|
|
'</a>' +
|
|
'</li>',
|
|
|
|
// -- Initializer ----------------------------------------------------------
|
|
initializer: function () {
|
|
this._bindUIACBase();
|
|
this._syncUIACBase();
|
|
},
|
|
|
|
// -- Protected Methods ----------------------------------------------------
|
|
_apiResultFilter: function (query, results) {
|
|
// Filter components out of the results.
|
|
return YArray.filter(results, function (result) {
|
|
return result.raw.resultType === 'component' ? false : result;
|
|
});
|
|
},
|
|
|
|
_apiResultFormatter: function (query, results) {
|
|
return YArray.map(results, function (result) {
|
|
var raw = Y.merge(result.raw), // create a copy
|
|
desc = raw.description || '';
|
|
|
|
// Convert description to text and truncate it if necessary.
|
|
desc = Node.create('<div>' + desc + '</div>').get('text');
|
|
|
|
if (desc.length > 65) {
|
|
desc = Y.Escape.html(desc.substr(0, 65)) + ' …';
|
|
} else {
|
|
desc = Y.Escape.html(desc);
|
|
}
|
|
|
|
raw['class'] || (raw['class'] = '');
|
|
raw.description = desc;
|
|
|
|
// Use the highlighted result name.
|
|
raw.name = result.highlighted;
|
|
|
|
return Lang.sub(this.RESULT_TEMPLATE, raw);
|
|
}, this);
|
|
},
|
|
|
|
_apiTextLocator: function (result) {
|
|
return result.displayName || result.name;
|
|
}
|
|
}, {
|
|
// -- Attributes -----------------------------------------------------------
|
|
ATTRS: {
|
|
resultFormatter: {
|
|
valueFn: function () {
|
|
return this._apiResultFormatter;
|
|
}
|
|
},
|
|
|
|
resultFilters: {
|
|
valueFn: function () {
|
|
return this._apiResultFilter;
|
|
}
|
|
},
|
|
|
|
resultHighlighter: {
|
|
value: 'phraseMatch'
|
|
},
|
|
|
|
resultListLocator: {
|
|
value: 'data.results'
|
|
},
|
|
|
|
resultTextLocator: {
|
|
valueFn: function () {
|
|
return this._apiTextLocator;
|
|
}
|
|
},
|
|
|
|
source: {
|
|
value: '/api/v1/search?q={query}&count={maxResults}'
|
|
}
|
|
}
|
|
});
|
|
|
|
}, '3.4.0', {requires: [
|
|
'autocomplete-base', 'autocomplete-highlighters', 'autocomplete-sources',
|
|
'escape'
|
|
]});
|