1 | import { TextBase } from '../text-base';
|
2 | import { Property, CssProperty, makeValidator, makeParser } from '../core/properties';
|
3 | import { PseudoClassHandler } from '../core/view';
|
4 | import { booleanConverter } from '../core/view-base';
|
5 | import { Style } from '../styling/style';
|
6 | import { Color } from '../../color';
|
7 | import { CoreTypes } from '../../core-types';
|
8 | export 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 | }
|
20 | EditableTextBase.blurEvent = 'blur';
|
21 | EditableTextBase.focusEvent = 'focus';
|
22 | EditableTextBase.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 |
|
30 |
|
31 |
|
32 | export const placeholderColorProperty = new CssProperty({
|
33 | name: 'placeholderColor',
|
34 | cssName: 'placeholder-color',
|
35 | equalityComparer: Color.equals,
|
36 | valueConverter: (v) => new Color(v),
|
37 | });
|
38 | placeholderColorProperty.register(Style);
|
39 | const keyboardTypeConverter = makeParser(makeValidator(CoreTypes.KeyboardType.datetime, CoreTypes.KeyboardType.phone, CoreTypes.KeyboardType.number, CoreTypes.KeyboardType.url, CoreTypes.KeyboardType.email, CoreTypes.KeyboardType.integer), true);
|
40 | export const autofillTypeProperty = new Property({ name: 'autofillType' });
|
41 | autofillTypeProperty.register(EditableTextBase);
|
42 | export const keyboardTypeProperty = new Property({ name: 'keyboardType', valueConverter: keyboardTypeConverter });
|
43 | keyboardTypeProperty.register(EditableTextBase);
|
44 | const returnKeyTypeConverter = makeParser(makeValidator(CoreTypes.ReturnKeyType.done, CoreTypes.ReturnKeyType.next, CoreTypes.ReturnKeyType.go, CoreTypes.ReturnKeyType.search, CoreTypes.ReturnKeyType.send), true);
|
45 | export const returnKeyTypeProperty = new Property({ name: 'returnKeyType', valueConverter: returnKeyTypeConverter });
|
46 | returnKeyTypeProperty.register(EditableTextBase);
|
47 | export const editableProperty = new Property({
|
48 | name: 'editable',
|
49 | defaultValue: true,
|
50 | valueConverter: booleanConverter,
|
51 | });
|
52 | editableProperty.register(EditableTextBase);
|
53 | export const updateTextTriggerProperty = new Property({ name: 'updateTextTrigger', defaultValue: CoreTypes.UpdateTextTrigger.textChanged });
|
54 | updateTextTriggerProperty.register(EditableTextBase);
|
55 | const autocapitalizationTypeConverter = makeParser(makeValidator(CoreTypes.AutocapitalizationType.none, CoreTypes.AutocapitalizationType.words, CoreTypes.AutocapitalizationType.sentences, CoreTypes.AutocapitalizationType.allCharacters), true);
|
56 | export const autocapitalizationTypeProperty = new Property({
|
57 | name: 'autocapitalizationType',
|
58 | defaultValue: CoreTypes.AutocapitalizationType.sentences,
|
59 | valueConverter: autocapitalizationTypeConverter,
|
60 | });
|
61 | autocapitalizationTypeProperty.register(EditableTextBase);
|
62 | export const autocorrectProperty = new Property({
|
63 | name: 'autocorrect',
|
64 | valueConverter: booleanConverter,
|
65 | });
|
66 | autocorrectProperty.register(EditableTextBase);
|
67 | export const hintProperty = new Property({
|
68 | name: 'hint',
|
69 | defaultValue: '',
|
70 | });
|
71 | hintProperty.register(EditableTextBase);
|
72 | export const maxLengthProperty = new Property({
|
73 | name: 'maxLength',
|
74 | defaultValue: Number.POSITIVE_INFINITY,
|
75 | valueConverter: parseInt,
|
76 | });
|
77 | maxLengthProperty.register(EditableTextBase);
|
78 |
|
\ | No newline at end of file |