UNPKG

3.98 kBJavaScriptView Raw
1import { TextBase } from '../text-base';
2import { Property, CssProperty, makeValidator, makeParser } from '../core/properties';
3import { PseudoClassHandler } from '../core/view';
4import { booleanConverter } from '../core/view-base';
5import { Style } from '../styling/style';
6import { Color } from '../../color';
7import { CoreTypes } from '../../core-types';
8export class EditableTextBase extends TextBase {
9 constructor() {
10 super(...arguments);
11 this._focusHandler = () => this._goToVisualState('focus');
12 this._blurHandler = () => this._goToVisualState('blur');
13 }
14 _updateTextBaseFocusStateHandler(subscribe) {
15 const method = subscribe ? 'on' : 'off';
16 this[method]('focus', this._focusHandler);
17 this[method]('blur', this._blurHandler);
18 }
19}
20EditableTextBase.blurEvent = 'blur';
21EditableTextBase.focusEvent = 'focus';
22EditableTextBase.textChangeEvent = 'textChange';
23__decorate([
24 PseudoClassHandler('focus', 'blur'),
25 __metadata("design:type", Function),
26 __metadata("design:paramtypes", [Object]),
27 __metadata("design:returntype", void 0)
28], EditableTextBase.prototype, "_updateTextBaseFocusStateHandler", null);
29// TODO: Why not name it - hintColor property??
30// TODO: Or rename hintProperty to 'placeholder' and make it CSSProperty??
31// https://developer.mozilla.org/en-US/docs/Web/CSS/:-moz-placeholder
32export const placeholderColorProperty = new CssProperty({
33 name: 'placeholderColor',
34 cssName: 'placeholder-color',
35 equalityComparer: Color.equals,
36 valueConverter: (v) => new Color(v),
37});
38placeholderColorProperty.register(Style);
39const keyboardTypeConverter = makeParser(makeValidator(CoreTypes.KeyboardType.datetime, CoreTypes.KeyboardType.phone, CoreTypes.KeyboardType.number, CoreTypes.KeyboardType.url, CoreTypes.KeyboardType.email, CoreTypes.KeyboardType.integer), true);
40export const autofillTypeProperty = new Property({ name: 'autofillType' });
41autofillTypeProperty.register(EditableTextBase);
42export const keyboardTypeProperty = new Property({ name: 'keyboardType', valueConverter: keyboardTypeConverter });
43keyboardTypeProperty.register(EditableTextBase);
44const returnKeyTypeConverter = makeParser(makeValidator(CoreTypes.ReturnKeyType.done, CoreTypes.ReturnKeyType.next, CoreTypes.ReturnKeyType.go, CoreTypes.ReturnKeyType.search, CoreTypes.ReturnKeyType.send), true);
45export const returnKeyTypeProperty = new Property({ name: 'returnKeyType', valueConverter: returnKeyTypeConverter });
46returnKeyTypeProperty.register(EditableTextBase);
47export const editableProperty = new Property({
48 name: 'editable',
49 defaultValue: true,
50 valueConverter: booleanConverter,
51});
52editableProperty.register(EditableTextBase);
53export const updateTextTriggerProperty = new Property({ name: 'updateTextTrigger', defaultValue: CoreTypes.UpdateTextTrigger.textChanged });
54updateTextTriggerProperty.register(EditableTextBase);
55const autocapitalizationTypeConverter = makeParser(makeValidator(CoreTypes.AutocapitalizationType.none, CoreTypes.AutocapitalizationType.words, CoreTypes.AutocapitalizationType.sentences, CoreTypes.AutocapitalizationType.allCharacters), true);
56export const autocapitalizationTypeProperty = new Property({
57 name: 'autocapitalizationType',
58 defaultValue: CoreTypes.AutocapitalizationType.sentences,
59 valueConverter: autocapitalizationTypeConverter,
60});
61autocapitalizationTypeProperty.register(EditableTextBase);
62export const autocorrectProperty = new Property({
63 name: 'autocorrect',
64 valueConverter: booleanConverter,
65});
66autocorrectProperty.register(EditableTextBase);
67export const hintProperty = new Property({
68 name: 'hint',
69 defaultValue: '',
70});
71hintProperty.register(EditableTextBase);
72export const maxLengthProperty = new Property({
73 name: 'maxLength',
74 defaultValue: Number.POSITIVE_INFINITY,
75 valueConverter: parseInt,
76});
77maxLengthProperty.register(EditableTextBase);
78//# sourceMappingURL=editable-text-base-common.js.map
\No newline at end of file