/////////////////////////////////////////////////////////////////////////// // Copyright © 2014 - 2018 Esri. All Rights Reserved. // // Licensed under the Apache License Version 2.0 (the "License"); // you may not use this file except in compliance with the License. // You may obtain a copy of the License at // // http://www.apache.org/licenses/LICENSE-2.0 // // Unless required by applicable law or agreed to in writing, software // distributed under the License is distributed on an "AS IS" BASIS, // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. // See the License for the specific language governing permissions and // limitations under the License. /////////////////////////////////////////////////////////////////////////// define(['dojo/_base/declare', 'dojo/_base/html', 'dojo/string', 'dijit/_WidgetBase', 'dijit/_TemplatedMixin' ], function(declare, html, string, _WidgetBase, _TemplatedMixin) { return declare([_WidgetBase, _TemplatedMixin], { baseClass: 'jimu-search', declaredClass: 'jimu.dijit.Search', templateString: '
' + '' + '' + '' + '
', //placeholder: String placeholder: '', //onSearch: Function // the callback function that does the search function onSearch: null, //searchWhenInput: Boolean // if true, call onSearch when input, or call onSearch when enter or click search button searchWhenInput: false, postCreate: function(){ this.inherited(arguments); if(this.placeholder){ html.setAttr(this.inputSearch, 'placeholder', this.placeholder); } }, getValue: function(){ return string.trim(this.inputSearch.value); }, doSearch: function(){ if(this.onSearch){ this.onSearch(this.getValue()); } }, _onKeyDown: function(evt){ this.doChange(); var keyNum = evt.keyCode !== undefined ? evt.keyCode : evt.which; if (keyNum === 13) { this.doSearch(); } evt.stopPropagation(); }, _onKeyUp: function(){ if(this.searchWhenInput){ this.doSearch(); } }, _onBtnClick: function(){ this.doSearch(); }, doChange: function(){ if(this.onChange){ this.onChange(this.getValue()); } } }); });