@modul/smartinput v0.0.0
smartinput
var smartInput = new SmartInput({
element: "#textInput",
dropClass: "input-drop",
filterImage: filterImageFunction,
allowDropFiles: true,
disabled: false
});options:Object- настройки компонента[options.element]:Element|string- Элемент. Можно указать в виде селектора. Если не указано, будет создан новый элемент[options.dropClass]:string- Класс, применяемый при попытке перетащить файл. По умолчанию -"smart-input-drop-target"[options.filterImage]:Function- Функция, позволяет фильтровать изображения внутри редактируемого элемента.\ по умолчанию все картинки удаляются из поля ввода. ЕслиfilterImage(img:Element)вернетtrue, картинка останется.[options.allowDropFiles]:boolean- разрешить перетаскивание файлов. По умолчанию - true.[options.disabled]:boolean- Отключить элемент. По умолчанию - зависит от наличия атрибута contenteditable[options.clearOnBlur]:boolean- Очищать выделение текста при потере фокуса. Позволяет избежать бага в IE и Edge с отображением каретки.return:SmartInput
Методы
SmartInput.on(eventType, handler)
function onChangeHandler(text){
console.log("New value:", text);
}
smartInput.on("change", onChangeHandler);Подписка на событие.
eventType:string- тип событияhandler:Function- обработчик событияreturn:SmartInput
SmartInput.off(eventType, handler)
smartInput.off("change", onChangeHandler);Отписка от события
eventType:string- тип события[handler]:Function- обработчик события. Если не указан, отписка произойдет от всех событий данного типаreturn:SmartInput
SmartInput.emit(eventType, ...values)
smartInput.emit("inputFile", new File(["text"], "foo.txt"));Принудительная отправка события
eventType:string- тип события...values:Function- агрументы, передаваемые обработчику событияreturn:SmartInput
SmartInput.onHotkey(hotkeyDescriptor, handler)
smartInput.onHotkey({key: 13, ctrl:false, alt:false, shift:true, meta:false}, function(event){
console.log(this.value);
this.value = "";
});Подписка событие нажатия горячих клавиш
hotkeyDescriptor:Object- описание комбинации клавишhotkeyDescriptor.key:number- код клавиши[hotkeyDescriptor.ctrl]:boolean- модификатор ctrl[hotkeyDescriptor.alt]:booleanмодификатор alt[hotkeyDescriptor.shift]:booleanмодификатор shift[hotkeyDescriptor.meta]:booleanмодификатор meta\ Если какой-либо модификатор не указан или указан как null, событие будет обрабатываться при любом значении модификатораhandler:Function- обработчик события. Принимаетevent:KeyboardEvent,this:SmartInputreturn:SmartInput
SmartInput.offHotkey(hotkeyDescriptor, handler)
smartInput.onHotkey({key: 13, ctrl:false, alt:false, shift:true, meta:false}, hotkeyHandler);Отписка от события нажатия клавиш
hotkeyDescriptor:Object- описание комбинации клавишhotkeyDescriptor.key:number- код клавиши[hotkeyDescriptor.ctrl]:boolean- модификатор ctrl[hotkeyDescriptor.alt]:booleanмодификатор alt[hotkeyDescriptor.shift]:booleanмодификатор shift[hotkeyDescriptor.meta]:booleanмодификатор meta[handler]:Function- обработчик события, ранее добавленный. Если не указан, отписка произойдет от всех событий по данной комбинации клавишreturn:SmartInput
SmartInput.insert(text, options)
smartInput.insert("JS iS AwESoME",{
deleteContents: true,
selectEnd: true
});Добавить текст в компонент.
Текст будет добавлен в последнюю позицию, выделенную курсором.
Если такой нет - в конец.
text:string- текст[options]:Object[options.deleteContents]:boolean- заменить выделенный текст[options.selectStart]:boolean- выделить начало вставленного текста[options.selectEnd]:boolean- выделить конец вставленного текста[options.scrollIntoViewIfNeeded]:boolean- автоматическая прокруткаreturn:SmartInput
SmartInput.focus(options)
smartInput.focus({
selectStart: true,
selectEnd: true
});Установить фокус в элемент.
Если вызвано без параметров - будет выделен последний выделенный текст
Если такого текста нет или выделенный контент быз изменен - курсор встанет в конец
[options]:Object[options.selectStart]:boolean- установить курсор в начало[options.selectEnd]:boolean- установить курсор в конец. Вместе сselectStart- выделить весь текст
SmartInput.destroy()
smartInput.destroy();Используется, чтобы отключить все внутренние обработчики событий для этого компонента
Свойства
value
console.log( "Input value: ", smartInput.value );
smartInput.value += "text";Текст, который отображается внутри элемента. Тип: string\
При инициализации вычисляется по содержимому элемента.
disabled
console.log( "Input disabled: ", smartInput.disabled );
smartInput.disabled = !smartInput.disabled;Доступен ли текст для редактирования. Тип: boolean\
При инициализации вычисляется по наличию атрибута contenteditable="true".
placeholder
console.log( "Input placeholder: ", smartInput.placeholder );
smartInput.placeholder = !smartInput.placeholder;Задаёт элементу placeholder. Тип: string\
При инициализации вычисляется по значению атрибута placeholder.
element
console.log( "Input element: ", smartInput.element );Задаёт элементу placeholder. Тип: Element\
Доступен только для чтения.
clearOnBlur
Очищать ли выделение текста при потере фокуса. Тип: boolean
События
change
smartInput.on("change", function(text){
// ...
});Событие вызывается при изменении текста внутри компонента
text:String- новое значениеthis:SmartInput
inputFile
smartInput.on("inputFile", function(file){
// ...
});Событие вызывается при передаче файла в компонент путём перетаскивания или вставки из буфера обмена
file:File|Blob- передаваемый файлthis:SmartInput
error
smartInput.on("error", function(error){
// ...
});Вызывается при ошибке в любом из других обработчиков событий.
error:Error- ошибка...args:*- сопутствующие параметры при ошибке.\ Обычно это название события обработчика и список его аргументов.
Примечания
Safari - не работает вставка изображения из буфера обмена
IE10 и старше - не работает вставка изображения из буфера обмена
IE - обновление value и вызов события "change" происходит с небольшой задержкой, по событию keyup.
IE, Edge - необходимо скрывать placeholder средствами css, если он установлен в :before, в следующих случаях:\ -- наличие фокуса\ -- перетаскивание объекта в элемент
2 years ago