@grapecity/wijmo.input 5.20261.50 → 5.20262.60

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/index.d.ts CHANGED
@@ -1,6 +1,6 @@
1
1
  /*!
2
2
  *
3
- * Wijmo Library 5.20261.50
3
+ * Wijmo Library 5.20262.60
4
4
  * https://developer.mescius.com/wijmo
5
5
  *
6
6
  * Copyright(c) MESCIUS inc. All rights reserved.
@@ -115,6 +115,11 @@ export declare const MultiAutoCompleteClsNames: {
115
115
  export declare const MultiSelectClsNames: {
116
116
  hostElement: string;
117
117
  };
118
+ export declare const MultiLineComboBoxClsNames: {
119
+ dropDownPanel: string;
120
+ hostElement: string;
121
+ screenReaderOnly: string;
122
+ };
118
123
  export declare const MultiSelectListBoxClsNames: {
119
124
  header: string;
120
125
  hostElement: string;
@@ -158,6 +163,7 @@ export declare class InputNumber extends Control {
158
163
  _min: number;
159
164
  _max: number;
160
165
  _format: string;
166
+ _truncate: boolean;
161
167
  _step: number;
162
168
  _showBtn: boolean;
163
169
  _readOnly: boolean;
@@ -178,7 +184,6 @@ export declare class InputNumber extends Control {
178
184
  _delKey: boolean;
179
185
  _rptUp: _ClickRepeater;
180
186
  _rptDn: _ClickRepeater;
181
- _fromKb: boolean;
182
187
  static _ctrlTemplate: string;
183
188
  _inputElementAriaLabel: string;
184
189
  _ariaLabelledby: string;
@@ -271,6 +276,16 @@ export declare class InputNumber extends Control {
271
276
  * standard numeric format string</a>.
272
277
  */
273
278
  format: string;
279
+ /**
280
+ * Gets or sets whether the control truncates numeric values that exceed
281
+ * the decimal precision defined by {@link format}, instead of applying rounding.
282
+ *
283
+ * For example, if {@link format} = 'n2' and the value is 99.999,
284
+ * setting {@link truncate} to true will store 99.99 rather than rounding to 100.
285
+ *
286
+ * Default is **false**, which preserves the standard rounding behavior.
287
+ */
288
+ truncate: boolean;
274
289
  /**
275
290
  * Gets or sets the text shown in the control.
276
291
  */
@@ -1185,7 +1200,6 @@ export declare class ListBox<T = any> extends Control {
1185
1200
  _getSelectedElement(visible: boolean): HTMLElement | null;
1186
1201
  _handleResize(): void;
1187
1202
  _createItem(i: number, groupIndex?: number): string;
1188
- _getAriaSelected(isSelected: boolean, isChecked: boolean | null): boolean;
1189
1203
  _createHeaderItem(group: CollectionViewGroup, groupIndex: number): string;
1190
1204
  private _click;
1191
1205
  private _keydown;
@@ -1246,204 +1260,6 @@ export declare class FormatItemEventArgs extends EventArgs {
1246
1260
  */
1247
1261
  readonly item: HTMLElement;
1248
1262
  }
1249
- /**
1250
- * The {@link MultiSelectListBox} control contains a {@link ListBox} with
1251
- * a "Select All" button and a "Filter" input.
1252
- *
1253
- * The "Select All" and "Filter" elements can be shown or hidden using
1254
- * the {@link showSelectAllCheckbox} and {@link showFilterInput} properties.
1255
- *
1256
- * The {@link MultiSelectListBox} control is used as a drop-down by the
1257
- * {@link MultiSelect} control.
1258
- */
1259
- export declare class MultiSelectListBox<T = any> extends Control {
1260
- _selectAll: HTMLElement;
1261
- _filter: HTMLInputElement;
1262
- _lbHost: HTMLElement;
1263
- _lbx: ListBox;
1264
- _cbSelectAll: HTMLInputElement;
1265
- _spSelectAll: HTMLSpanElement;
1266
- _ariaLabel: string;
1267
- _selectAllLabel: string;
1268
- _filterPlaceholder: string;
1269
- _filterText: string;
1270
- _checkOnFilter: boolean;
1271
- _delay: number;
1272
- _toSearch: any;
1273
- static _DEF_CHECKED_PATH: string;
1274
- static _ctrlTemplate: string;
1275
- /**
1276
- * Gets or sets the template used to instantiate {@link MultiSelectListBox} controls.
1277
- */
1278
- static controlTemplate: string;
1279
- /**
1280
- * Initializes a new instance of the {@link MultiSelectListBox} class.
1281
- *
1282
- * @param element The DOM element that hosts the control, or a CSS selector for the host element (e.g. '#theCtrl').
1283
- * @param options The JavaScript object containing initialization data for the control.
1284
- */
1285
- constructor(element: any, options?: any);
1286
- /**
1287
- * Gets or sets the array or {@link ICollectionView} object that contains
1288
- * the list items.
1289
- */
1290
- itemsSource: any;
1291
- /**
1292
- * Gets the {@link ICollectionView} object used as the item source.
1293
- */
1294
- readonly collectionView: ICollectionView<T>;
1295
- /**
1296
- * Gets or sets the minimum number of rows and/or columns required to enable
1297
- * virtualization in the drop-down {@link ListBox}.
1298
- *
1299
- * The default value for this property is a very big number, meaning virtualization is
1300
- * disabled. To enable virtualization, set its value to 0 or a positive number.
1301
- *
1302
- * For more detals, please see the {@link ListBox.virtualizationThreshold}
1303
- * property.
1304
- */
1305
- virtualizationThreshold: number;
1306
- /**
1307
- * Gets or sets the name of the property to use as the visual
1308
- * representation of the items.
1309
- */
1310
- displayMemberPath: string;
1311
- /**
1312
- * Gets or sets a value indicating whether items contain plain
1313
- * text or HTML.
1314
- *
1315
- * The default value for this property is **false**.
1316
- */
1317
- isContentHtml: boolean;
1318
- /**
1319
- * Gets or sets a value that determines whether searches performed
1320
- * while the user types should case-sensitive.
1321
- *
1322
- * The default value for this property is **false**.
1323
- */
1324
- caseSensitiveSearch: boolean;
1325
- /**
1326
- * Gets or sets the delay, in milliseconds, between when a keystroke occurs
1327
- * and when the search is performed to update the filter.
1328
- *
1329
- * This property is relevant only when the {@link showFilterInput}
1330
- * property is set to **true**.
1331
- *
1332
- * The default value for this property is **500** milliseconds.
1333
- */
1334
- delay: number;
1335
- /**
1336
- * Gets or sets a value that determines whether the {@link MultiSelectListBox} should
1337
- * include group header items to delimit data groups.
1338
- *
1339
- * Data groups are created by modifying the {@link ICollectionView.groupDescriptions}
1340
- * property of the {@link ICollectionView} object used as an {@link itemsSource}.
1341
- *
1342
- * The {@link MultiSelectListBox} only shows the first level of grouping.
1343
- *
1344
- * The default value for this property is **false**.
1345
- */
1346
- showGroups: boolean;
1347
- /**
1348
- * Gets or sets a value that determines whether the {@link MultiSelectListBox}
1349
- * should automatically check all filtered items when the filter text changes.
1350
- *
1351
- * The default value for this property is **true**, which causes the control
1352
- * to behave like Excel and check all visible items when the filter is applied.
1353
- *
1354
- * For example, in a control with three items "Alice", "Bob", and "Mary",
1355
- * typing "a" into the filter would cause the control to show items "Alice"
1356
- * and "Mary", and both would be checked.
1357
- *
1358
- * Setting this property to **false** prevents the control from automatically
1359
- * checking filtered items, and to keep checked items visible regardless of the
1360
- * filter value.
1361
- *
1362
- * For example, in a control with three items "Alice", "Bob", and "Mary",
1363
- * typing "a" into the filter would cause the control to show items "Alice"
1364
- * and "Mary", but neither would be checked.
1365
- * If the user then checked "Mary", and typed "b" into the filter, the list
1366
- * would show items "Mary" (still checked) and "Bob" (unchecked).
1367
- */
1368
- checkOnFilter: boolean;
1369
- /**
1370
- * Gets or sets the index of the currently selected item.
1371
- */
1372
- selectedIndex: number;
1373
- /**
1374
- * Gets a reference to the {@link ListBox} control hosted by this
1375
- * {@link MultiSelectListBox}.
1376
- */
1377
- readonly listBox: ListBox;
1378
- /**
1379
- * Gets or sets whether the control should display a "filter" input
1380
- * above the items to filter the items displayed.
1381
- *
1382
- * The default value for this property is **false**.
1383
- */
1384
- showFilterInput: boolean;
1385
- /**
1386
- * Gets or sets the string used as a placeholder for the filter input element.
1387
- *
1388
- * The default value for this property is **null**, which causes the control
1389
- * to show a localized version of the string "Filter".
1390
- */
1391
- filterInputPlaceholder: string;
1392
- /**
1393
- * Gets or sets whether the control should display a "Select All" checkbox
1394
- * above the items to select or de-select all items.
1395
- *
1396
- * The default value for this property is **false**.
1397
- */
1398
- showSelectAllCheckbox: boolean;
1399
- /**
1400
- * Gets or sets the string to be used as a label for the "Select All"
1401
- * checkbox that is displayed when the {@link showSelectAllCheckbox}
1402
- * property is set to true.
1403
- *
1404
- * The default value for this property is **null**, which causes the control
1405
- * to show a localized version of the string "Select All".
1406
- */
1407
- selectAllLabel: string;
1408
- /**
1409
- * Gets or sets the name of the property used to control the checkboxes
1410
- * placed next to each item.
1411
- */
1412
- checkedMemberPath: string;
1413
- /**
1414
- * Gets or sets an array containing the items that are currently checked.
1415
- */
1416
- checkedItems: any[];
1417
- /**
1418
- * Gets or sets the aria-labelledby attribute of {@link MultiSelectListBox} input element.
1419
- */
1420
- ariaLabelledBy: string;
1421
- _updateAriaLabel(): void;
1422
- /**
1423
- * Occurs when the value of the {@link checkedItems} property changes.
1424
- */
1425
- readonly checkedItemsChanged: Event<MultiSelectListBox<any>, EventArgs>;
1426
- /**
1427
- * Raises the {@link checkedItemsChanged} event.
1428
- */
1429
- onCheckedItemsChanged(e?: any): void;
1430
- /**
1431
- * Occurs when the value of the {@link selectedIndex} property changes.
1432
- */
1433
- readonly selectedIndexChanged: Event<MultiSelectListBox<any>, EventArgs>;
1434
- /**
1435
- * Raises the {@link selectedIndexChanged} event.
1436
- */
1437
- onSelectedIndexChanged(e?: EventArgs): void;
1438
- refresh(fullUpdate?: boolean): void;
1439
- dispose(): void;
1440
- _applyFilter(): void;
1441
- _updateCheckAllCheckbox(): void;
1442
- _setIsDisabled(value: boolean): void;
1443
- _setTabOrder(value: number): void;
1444
- tryForceClearDelayAndFilter(): void;
1445
- onLostFocus(): void;
1446
- }
1447
1263
  export interface _IDateRange {
1448
1264
  from: Date | null;
1449
1265
  to: Date | null;
@@ -2721,6 +2537,7 @@ export declare class Popup extends Control {
2721
2537
  * ```
2722
2538
  */
2723
2539
  show(modal?: boolean, handleResult?: Function): void;
2540
+ _getActiveElement(): HTMLElement | null;
2724
2541
  /**
2725
2542
  * Hides the {@link Popup}.
2726
2543
  *
@@ -3896,12 +3713,14 @@ export declare class ComboBox<T = any> extends DropDown {
3896
3713
  _findNextWhenIsEditableFalse(search: string, step: number, start?: number): number;
3897
3714
  protected _keydown(e: KeyboardEvent): void;
3898
3715
  _afterOpenDropdownByDownArrow(): void;
3899
- _input(_e: Event): void;
3716
+ _input(e: Event): void;
3900
3717
  _handleDragTextState(): void;
3901
3718
  _shouldOpenDropdown(): boolean;
3902
3719
  _handleIsEditableFalseInput(): void;
3903
3720
  _updateSelection(index: number, editStart: number): void;
3904
- _updateComponentText(): void;
3721
+ _updateComponentText(e?: Event): void;
3722
+ private _getInputTextForUpdate;
3723
+ private _shouldUseCurrentTextAfterComposition;
3905
3724
  _updateEmptyValueFlag(): void;
3906
3725
  _controlDropdownVisibility(): void;
3907
3726
  _resetDragState(): void;
@@ -3913,192 +3732,60 @@ export declare class ComboBox<T = any> extends DropDown {
3913
3732
  _updateDropDownWhenInput(): void;
3914
3733
  }
3915
3734
  /**
3916
- * Represents a method that returns a string used as a header for a
3917
- * {@link MultiSelect} control.
3735
+ * The {@link MultiLineComboBox} control extends {@link ComboBox} and uses a
3736
+ * multi-line text area as the input element.
3737
+ *
3738
+ * The control keeps the standard {@link ComboBox} item source and drop-down
3739
+ * selection behavior, while allowing users to enter line breaks in the input
3740
+ * field.
3918
3741
  */
3919
- export interface IHeaderFormatter {
3742
+ export declare class MultiLineComboBox<T = any> extends ComboBox<T> {
3743
+ static _ctrlTemplate: string;
3744
+ private _screenReaderHelper;
3920
3745
  /**
3921
- * @param sender {@link MultiSelect} whose header is being formatted.
3922
- * @returns The text to show in the control's header element.
3746
+ * Initializes a new instance of the {@link MultiLineComboBox} class.
3747
+ *
3748
+ * @param element The DOM element that hosts the control, or a selector for the host element.
3749
+ * @param options The JavaScript object containing initialization data for the control.
3923
3750
  */
3924
- (sender: MultiSelect): string;
3751
+ constructor(element: any, options?: any);
3752
+ /**
3753
+ * Gets or sets the template used to instantiate {@link MultiLineComboBox} control.
3754
+ */
3755
+ static controlTemplate: string;
3756
+ /**
3757
+ * Gets the input element type for this control.
3758
+ *
3759
+ * This property always returns **"textarea"** because the
3760
+ * {@link MultiLineComboBox} uses a textarea element instead of an input element.
3761
+ *
3762
+ * Setting this property has no effect.
3763
+ */
3764
+ inputType: string;
3765
+ /**
3766
+ * Gets or sets a value that determines whether to remove leading and trailing
3767
+ * whitespace characters from multi-line values.
3768
+ *
3769
+ * The default value of this property is **false**, so the control preserves
3770
+ * leading and trailing linebreaks and spaces.
3771
+ */
3772
+ trimText: boolean;
3773
+ getAriaLabelForScreenReader(): any;
3774
+ private _addScreenReaderHelper;
3775
+ private _ariaReadSelectedChange;
3776
+ _updateInputAriaLabel(): void;
3777
+ protected _keydown(e: KeyboardEvent): void;
3778
+ _handleMultiLineComboBoxKey(e: KeyboardEvent): boolean;
3779
+ private _shouldOpenDropdownByArrow;
3780
+ private _selectItem;
3781
+ private _insertTextAreaLineBreak;
3782
+ private _isTextAreaLineBreak;
3783
+ private _preventNativeLineBreak;
3784
+ protected _wheel(e: WheelEvent): void;
3785
+ private canChangeItem;
3925
3786
  }
3926
3787
  /**
3927
- * The {@link MultiSelect} control allows users to select multiple items from
3928
- * drop-down lists that contain custom objects or simple strings.
3929
- *
3930
- * The {@link MultiSelect} control extends {@link ComboBox}, with all the usual
3931
- * properties, including {@link MultiSelect.itemsSource} and
3932
- * {@link MultiSelect.displayMemberPath}.
3933
- *
3934
- * Like the {@link ListBox} control, it has a {@link MultiSelect.checkedMemberPath}
3935
- * property that defines the name of the property that determines whether an
3936
- * item is checked or not.
3937
- *
3938
- * The items currently checked (selected) can be obtained using the
3939
- * {@link MultiSelect.checkedItems} property.
3940
- *
3941
- * The control header is fully customizable. By default, it shows up to two items
3942
- * selected and the item count after that. You can change the maximum number of
3943
- * items to display ({@link MultiSelect.maxHeaderItems}), the message shown when no
3944
- * items are selected ({@link MultiSelect.placeholder}), and the format string used to
3945
- * show the item count ({@link MultiSelect.headerFormat}).
3946
- *
3947
- * Alternatively, you can provide a function to generate the header content based
3948
- * on whatever criteria your application requires ({@link MultiSelect.headerFormatter}).
3949
- *
3950
- * The example below shows how you can use a {@link MultiSelect} control to select
3951
- * multiple items from a drop-down list:
3952
- *
3953
- * {@sample Input/MultiSelect/Overview Example}
3954
- */
3955
- export declare class MultiSelect extends ComboBox {
3956
- private _maxHdrItems;
3957
- private _readOnly;
3958
- private _hdrFmt;
3959
- private _hdrFormatter;
3960
- private _msLbx;
3961
- static _DEF_CHECKED_PATH: string;
3962
- static _ctrlTemplate: string;
3963
- _inputElementAriaLabel: string;
3964
- /**
3965
- * Gets or sets the template used to instantiate {@link MultiSelect} control.
3966
- */
3967
- static controlTemplate: string;
3968
- /**
3969
- * Initializes a new instance of the {@link MultiSelect} class.
3970
- *
3971
- * @param element The DOM element that hosts the control, or a CSS selector for the host element (e.g. '#theCtrl').
3972
- * @param options The JavaScript object containing initialization data for the control.
3973
- */
3974
- constructor(element: any, options?: any);
3975
- /**
3976
- * Gets or sets whether the control should display a "Select All" checkbox
3977
- * above the items to select or de-select all items.
3978
- *
3979
- * The default value for this property is **false**.
3980
- */
3981
- showSelectAllCheckbox: boolean;
3982
- /**
3983
- * Gets or sets whether the control should display a "filter" input
3984
- * above the items to filter the items displayed.
3985
- *
3986
- * The default value for this property is **false**.
3987
- */
3988
- showFilterInput: boolean;
3989
- /**
3990
- * Gets or sets the delay, in milliseconds, between when a keystroke occurs
3991
- * and when the search is performed to update the filter.
3992
- *
3993
- * This property is relevant only when the {@link showFilterInput}
3994
- * property is set to **true**.
3995
- *
3996
- * The default value for this property is **500** milliseconds.
3997
- */
3998
- delay: number;
3999
- /**
4000
- * Gets or sets a value that determines whether searches performed
4001
- * while the user types should case-sensitive.
4002
- *
4003
- * The default value for this property is **false**.
4004
- */
4005
- caseSensitiveSearch: boolean;
4006
- /**
4007
- * Gets or sets the string used as a placeholder for the filter input
4008
- * element on the {@link MultiSelectListBox} drop-down.
4009
- *
4010
- * The default value for this property is **null**, which causes the
4011
- * control to use a localized version of the string "Filter".
4012
- */
4013
- filterInputPlaceholder: string | null;
4014
- /**
4015
- * Gets or sets a value that determines whether the {@link MultiSelectListBox}
4016
- * in the drop-down should automatically select all the filtered items when the
4017
- * filter text changes.
4018
- *
4019
- * The default value for this property is **true**.
4020
- */
4021
- checkOnFilter: boolean;
4022
- /**
4023
- * Gets or sets the string to be used as a label for the "Select All"
4024
- * checkbox that is displayed when the {@link showSelectAllCheckbox}
4025
- * property is set to true.
4026
- *
4027
- * The default value for this property is **null**, which causes the
4028
- * control to use a localized version of the string "Select All".
4029
- */
4030
- selectAllLabel: string | null;
4031
- /**
4032
- * Gets or sets the name of the property used to control the checkboxes
4033
- * placed next to each item.
4034
- */
4035
- checkedMemberPath: string;
4036
- /**
4037
- * Gets or sets the maximum number of items to display on the control header.
4038
- *
4039
- * If no items are selected, the header displays the text specified by the
4040
- * {@link placeholder} property.
4041
- *
4042
- * If the number of selected items is smaller than or equal to the value of the
4043
- * {@link maxHeaderItems} property, the selected items are shown in the header.
4044
- *
4045
- * If the number of selected items is greater than {@link maxHeaderItems}, the
4046
- * header displays the selected item count instead.
4047
- *
4048
- * The default value for this property is **2**.
4049
- */
4050
- maxHeaderItems: number;
4051
- /**
4052
- * Gets or sets the format string used to create the header content
4053
- * when the control has more than {@link maxHeaderItems} items checked.
4054
- *
4055
- * The format string may contain the '{count}' replacement string
4056
- * which gets replaced with the number of items currently checked.
4057
- *
4058
- * The default value for this property is **null**, which causes the
4059
- * control to use a localized version of the string "{count:n0} items selected".
4060
- */
4061
- headerFormat: string | null;
4062
- /**
4063
- * Gets or sets a function that gets the text displayed in the control
4064
- * header.
4065
- *
4066
- * By default, the control header content is determined based on the
4067
- * {@link placeholder}, {@link maxHeaderItems}, and on the current selection.
4068
- *
4069
- * You may customize the header content by specifying a function that
4070
- * returns a custom string based on whatever criteria your application
4071
- * requires.
4072
- */
4073
- headerFormatter: IHeaderFormatter | null;
4074
- /**
4075
- * Gets or sets an array containing the items that are currently checked.
4076
- */
4077
- checkedItems: any[];
4078
- /**
4079
- * Occurs when the value of the {@link checkedItems} property changes.
4080
- */
4081
- readonly checkedItemsChanged: Event<MultiSelect, EventArgs>;
4082
- /**
4083
- * Raises the {@link checkedItemsChanged} event.
4084
- */
4085
- onCheckedItemsChanged(e?: EventArgs): void;
4086
- dispose(): void;
4087
- onIsDroppedDownChanged(e?: EventArgs): void;
4088
- onLostFocus(): void;
4089
- protected _createDropDown(): void;
4090
- _updateBtnAria(): void;
4091
- _updateTbxAria(): void;
4092
- isReadOnly: boolean;
4093
- refresh(fullUpdate?: boolean): void;
4094
- protected _setText(_text: string, _fullMatch: boolean): void;
4095
- protected _keydown(e: KeyboardEvent): void;
4096
- protected _hasItems(): boolean;
4097
- private _updateHeader;
4098
- getAriaLabelForScreenReader(): any;
4099
- }
4100
- /**
4101
- * Interface implemented by command objects.
3788
+ * Interface implemented by command objects.
4102
3789
  *
4103
3790
  * For details, please see the {@link Menu.command} property.
4104
3791
  */
@@ -4412,6 +4099,7 @@ export declare class Menu extends ComboBox {
4412
4099
  private _showSubMenu;
4413
4100
  private _raiseCommand;
4414
4101
  private _focusMenuOwner;
4102
+ protected _focusOwner(owner: HTMLElement): void;
4415
4103
  private _getCommand;
4416
4104
  private _getCommandParm;
4417
4105
  private _executeCommand;
@@ -4722,6 +4410,26 @@ export interface IGetItemsCallback {
4722
4410
  * */
4723
4411
  (items: any[]): void;
4724
4412
  }
4413
+ /**
4414
+ * Represents a custom filter function used by {@link AutoComplete} and {@link MultiSelectListBox}.
4415
+ *
4416
+ * @param item The data item to test.
4417
+ * @param query The current search query string.
4418
+ * @param text The display text (after displayMemberPath processing).
4419
+ * @returns **true** to include the item in the filtered results, **false** to exclude it.
4420
+ */
4421
+ export declare type CustomFilterCallback = (item: any, query: string, text: string) => boolean;
4422
+ /**
4423
+ * Represents a custom highlight function used by {@link AutoComplete}.
4424
+ *
4425
+ * @param item The data item being displayed.
4426
+ * @param query The current search query string.
4427
+ * @param text The display text (after displayMemberPath processing).
4428
+ * @returns An HTML string with highlighted portions wrapped in highlight spans.
4429
+ *
4430
+ * **Security Note**: Escape user input with {@link escapeHtml} to prevent XSS attacks.
4431
+ */
4432
+ export declare type CustomHighlightCallback = (item: any, query: string, text: string) => string;
4725
4433
  /**
4726
4434
  * The {@link AutoComplete} control is an input control that allows callers
4727
4435
  * to customize the item list as the user types.
@@ -4746,6 +4454,9 @@ export declare class AutoComplete extends ComboBox {
4746
4454
  private _itemCount;
4747
4455
  private _beginsWith;
4748
4456
  private _delay;
4457
+ private _searchDuringComposition;
4458
+ private _customFilter;
4459
+ private _customHighlight;
4749
4460
  _selItems: any;
4750
4461
  private _toSearch;
4751
4462
  private _query;
@@ -4796,6 +4507,18 @@ export declare class AutoComplete extends ComboBox {
4796
4507
  * The default value for this property is **500** milliseconds.
4797
4508
  */
4798
4509
  delay: number;
4510
+ /**
4511
+ * Gets or sets whether AutoComplete should search while IME composition is active.
4512
+ *
4513
+ * The default value for this property is **false**.
4514
+ *
4515
+ * When set to **false**, search timing stays unchanged and filtering starts
4516
+ * only after the composition is committed.
4517
+ *
4518
+ * When set to **true**, the control may filter immediately from the current
4519
+ * composing text while composition is still active.
4520
+ */
4521
+ searchDuringComposition: boolean;
4799
4522
  /**
4800
4523
  * Gets or sets a string containing a comma-separated list of properties to use
4801
4524
  * when searching for items.
@@ -4858,6 +4581,43 @@ export declare class AutoComplete extends ComboBox {
4858
4581
  * The default value for this property is **wj-state-match**.
4859
4582
  */
4860
4583
  cssMatch: string;
4584
+ /**
4585
+ * Gets or sets a custom filter function for filtering items.
4586
+ *
4587
+ * When set, this function is used instead of the default filtering logic.
4588
+ * The function receives the item, the current query string, and the display text,
4589
+ * and should return true to include the item or false to exclude it.
4590
+ *
4591
+ * Set to null to restore default filtering behavior.
4592
+ *
4593
+ * @remarks
4594
+ * When customFilter is set, these properties are ignored:
4595
+ * - {@link caseSensitiveSearch}, {@link beginsWithSearch}, {@link isContentHtml}
4596
+ *
4597
+ * These properties are still honored:
4598
+ * - {@link maxItems}, {@link minLength}
4599
+ */
4600
+ customFilter: CustomFilterCallback;
4601
+ /**
4602
+ * Gets or sets a custom highlight function for highlighting matched text.
4603
+ *
4604
+ * When set, this function is called for each filtered item to generate
4605
+ * the HTML to display in the drop-down list. The function receives the
4606
+ * item, query, and display text, and should return HTML with highlighted
4607
+ * portions wrapped in &lt;span class="wj-state-match"&gt;.
4608
+ *
4609
+ * Set to null to restore default highlighting behavior.
4610
+ *
4611
+ * @remarks
4612
+ * **Security**: Always use {@link escapeHtml} on user content to prevent XSS.
4613
+ *
4614
+ * The highlight function is called before formatItem event handlers,
4615
+ * allowing handlers to override the result.
4616
+ *
4617
+ * If the function throws an exception, the error is logged and the
4618
+ * original text is displayed without highlighting.
4619
+ */
4620
+ customHighlight: CustomHighlightCallback;
4861
4621
  /**
4862
4622
  * Raises the {@link selectedIndexChanged} event.
4863
4623
  */
@@ -4865,6 +4625,13 @@ export declare class AutoComplete extends ComboBox {
4865
4625
  _updateTbxAria(): void;
4866
4626
  _keydown(e: KeyboardEvent): void;
4867
4627
  _input(_e: Event): void;
4628
+ /**
4629
+ * Sets the focus to the control and selects all its content.
4630
+ */
4631
+ selectAll(): void;
4632
+ private _canSearchWhileComposing;
4633
+ private _hasExternalCompositionFocus;
4634
+ private _isLegacyImeGuardBrowser;
4868
4635
  private _isBlurInput;
4869
4636
  protected _commitText(noFocus?: boolean): void;
4870
4637
  _setText(text: string | null): void;
@@ -4978,4 +4745,416 @@ export declare class MultiAutoComplete extends AutoComplete {
4978
4745
  _setTabOrder(value: number): void;
4979
4746
  _updateTabIndex(): void;
4980
4747
  }
4748
+ /**
4749
+ * The {@link MultiSelectListBox} control contains a {@link ListBox} with
4750
+ * a "Select All" button and a "Filter" input.
4751
+ *
4752
+ * The "Select All" and "Filter" elements can be shown or hidden using
4753
+ * the {@link showSelectAllCheckbox} and {@link showFilterInput} properties.
4754
+ *
4755
+ * The {@link MultiSelectListBox} control is used as a drop-down by the
4756
+ * {@link MultiSelect} control.
4757
+ */
4758
+ export declare class MultiSelectListBox<T = any> extends Control {
4759
+ _selectAll: HTMLElement;
4760
+ _filter: HTMLInputElement;
4761
+ _lbHost: HTMLElement;
4762
+ _lbx: ListBox;
4763
+ _cbSelectAll: HTMLInputElement;
4764
+ _spSelectAll: HTMLSpanElement;
4765
+ _ariaLabel: string;
4766
+ _selectAllLabel: string;
4767
+ _filterPlaceholder: string;
4768
+ _filterText: string;
4769
+ _checkOnFilter: boolean;
4770
+ _delay: number;
4771
+ _toSearch: any;
4772
+ _customFilter: CustomFilterCallback;
4773
+ static _DEF_CHECKED_PATH: string;
4774
+ static _ctrlTemplate: string;
4775
+ /**
4776
+ * Gets or sets the template used to instantiate {@link MultiSelectListBox} controls.
4777
+ */
4778
+ static controlTemplate: string;
4779
+ /**
4780
+ * Initializes a new instance of the {@link MultiSelectListBox} class.
4781
+ *
4782
+ * @param element The DOM element that hosts the control, or a CSS selector for the host element (e.g. '#theCtrl').
4783
+ * @param options The JavaScript object containing initialization data for the control.
4784
+ */
4785
+ constructor(element: any, options?: any);
4786
+ /**
4787
+ * Gets or sets the array or {@link ICollectionView} object that contains
4788
+ * the list items.
4789
+ */
4790
+ itemsSource: any;
4791
+ /**
4792
+ * Gets the {@link ICollectionView} object used as the item source.
4793
+ */
4794
+ readonly collectionView: ICollectionView<T>;
4795
+ /**
4796
+ * Gets or sets the minimum number of rows and/or columns required to enable
4797
+ * virtualization in the drop-down {@link ListBox}.
4798
+ *
4799
+ * The default value for this property is a very big number, meaning virtualization is
4800
+ * disabled. To enable virtualization, set its value to 0 or a positive number.
4801
+ *
4802
+ * For more detals, please see the {@link ListBox.virtualizationThreshold}
4803
+ * property.
4804
+ */
4805
+ virtualizationThreshold: number;
4806
+ /**
4807
+ * Gets or sets the name of the property to use as the visual
4808
+ * representation of the items.
4809
+ */
4810
+ displayMemberPath: string;
4811
+ /**
4812
+ * Gets or sets a value indicating whether items contain plain
4813
+ * text or HTML.
4814
+ *
4815
+ * The default value for this property is **false**.
4816
+ */
4817
+ isContentHtml: boolean;
4818
+ /**
4819
+ * Gets or sets a value that determines whether searches performed
4820
+ * while the user types should case-sensitive.
4821
+ *
4822
+ * The default value for this property is **false**.
4823
+ */
4824
+ caseSensitiveSearch: boolean;
4825
+ /**
4826
+ * Gets or sets the delay, in milliseconds, between when a keystroke occurs
4827
+ * and when the search is performed to update the filter.
4828
+ *
4829
+ * This property is relevant only when the {@link showFilterInput}
4830
+ * property is set to **true**.
4831
+ *
4832
+ * The default value for this property is **500** milliseconds.
4833
+ */
4834
+ delay: number;
4835
+ /**
4836
+ * Gets or sets a custom filter function for filtering items.
4837
+ *
4838
+ * When set, this function is used instead of the default regex-based filtering.
4839
+ *
4840
+ * @param item The data item to test.
4841
+ * @param query The current filter text.
4842
+ * @param text The display text (after displayMemberPath processing).
4843
+ * @returns **true** to include the item, **false** to exclude it.
4844
+ *
4845
+ * Setting to null restores default filtering. Requires {@link showFilterInput} to be true.
4846
+ */
4847
+ customFilter: CustomFilterCallback;
4848
+ /**
4849
+ * Gets or sets a value that determines whether the {@link MultiSelectListBox} should
4850
+ * include group header items to delimit data groups.
4851
+ *
4852
+ * Data groups are created by modifying the {@link ICollectionView.groupDescriptions}
4853
+ * property of the {@link ICollectionView} object used as an {@link itemsSource}.
4854
+ *
4855
+ * The {@link MultiSelectListBox} only shows the first level of grouping.
4856
+ *
4857
+ * The default value for this property is **false**.
4858
+ */
4859
+ showGroups: boolean;
4860
+ /**
4861
+ * Gets or sets a value that determines whether the {@link MultiSelectListBox}
4862
+ * should automatically check all filtered items when the filter text changes.
4863
+ *
4864
+ * The default value for this property is **true**, which causes the control
4865
+ * to behave like Excel and check all visible items when the filter is applied.
4866
+ *
4867
+ * For example, in a control with three items "Alice", "Bob", and "Mary",
4868
+ * typing "a" into the filter would cause the control to show items "Alice"
4869
+ * and "Mary", and both would be checked.
4870
+ *
4871
+ * Setting this property to **false** prevents the control from automatically
4872
+ * checking filtered items, and to keep checked items visible regardless of the
4873
+ * filter value.
4874
+ *
4875
+ * For example, in a control with three items "Alice", "Bob", and "Mary",
4876
+ * typing "a" into the filter would cause the control to show items "Alice"
4877
+ * and "Mary", but neither would be checked.
4878
+ * If the user then checked "Mary", and typed "b" into the filter, the list
4879
+ * would show items "Mary" (still checked) and "Bob" (unchecked).
4880
+ */
4881
+ checkOnFilter: boolean;
4882
+ /**
4883
+ * Gets or sets the index of the currently selected item.
4884
+ */
4885
+ selectedIndex: number;
4886
+ /**
4887
+ * Gets a reference to the {@link ListBox} control hosted by this
4888
+ * {@link MultiSelectListBox}.
4889
+ */
4890
+ readonly listBox: ListBox;
4891
+ /**
4892
+ * Gets or sets whether the control should display a "filter" input
4893
+ * above the items to filter the items displayed.
4894
+ *
4895
+ * The default value for this property is **false**.
4896
+ */
4897
+ showFilterInput: boolean;
4898
+ /**
4899
+ * Gets or sets the string used as a placeholder for the filter input element.
4900
+ *
4901
+ * The default value for this property is **null**, which causes the control
4902
+ * to show a localized version of the string "Filter".
4903
+ */
4904
+ filterInputPlaceholder: string;
4905
+ /**
4906
+ * Gets or sets whether the control should display a "Select All" checkbox
4907
+ * above the items to select or de-select all items.
4908
+ *
4909
+ * The default value for this property is **false**.
4910
+ */
4911
+ showSelectAllCheckbox: boolean;
4912
+ /**
4913
+ * Gets or sets the string to be used as a label for the "Select All"
4914
+ * checkbox that is displayed when the {@link showSelectAllCheckbox}
4915
+ * property is set to true.
4916
+ *
4917
+ * The default value for this property is **null**, which causes the control
4918
+ * to show a localized version of the string "Select All".
4919
+ */
4920
+ selectAllLabel: string;
4921
+ /**
4922
+ * Gets or sets the name of the property used to control the checkboxes
4923
+ * placed next to each item.
4924
+ */
4925
+ checkedMemberPath: string;
4926
+ /**
4927
+ * Gets or sets an array containing the items that are currently checked.
4928
+ */
4929
+ checkedItems: any[];
4930
+ /**
4931
+ * Gets or sets the aria-labelledby attribute of {@link MultiSelectListBox} input element.
4932
+ */
4933
+ ariaLabelledBy: string;
4934
+ _updateAriaLabel(): void;
4935
+ /**
4936
+ * Occurs when the value of the {@link checkedItems} property changes.
4937
+ */
4938
+ readonly checkedItemsChanged: Event<MultiSelectListBox<any>, EventArgs>;
4939
+ /**
4940
+ * Raises the {@link checkedItemsChanged} event.
4941
+ */
4942
+ onCheckedItemsChanged(e?: any): void;
4943
+ /**
4944
+ * Occurs when the value of the {@link selectedIndex} property changes.
4945
+ */
4946
+ readonly selectedIndexChanged: Event<MultiSelectListBox<any>, EventArgs>;
4947
+ /**
4948
+ * Raises the {@link selectedIndexChanged} event.
4949
+ */
4950
+ onSelectedIndexChanged(e?: EventArgs): void;
4951
+ refresh(fullUpdate?: boolean): void;
4952
+ dispose(): void;
4953
+ _applyFilter(): void;
4954
+ protected _getItemText(item: any, binding?: Binding): string;
4955
+ _updateCheckAllCheckbox(): void;
4956
+ _setIsDisabled(value: boolean): void;
4957
+ _setTabOrder(value: number): void;
4958
+ tryForceClearDelayAndFilter(): void;
4959
+ onLostFocus(): void;
4960
+ }
4961
+ /**
4962
+ * Represents a method that returns a string used as a header for a
4963
+ * {@link MultiSelect} control.
4964
+ */
4965
+ export interface IHeaderFormatter {
4966
+ /**
4967
+ * @param sender {@link MultiSelect} whose header is being formatted.
4968
+ * @returns The text to show in the control's header element.
4969
+ */
4970
+ (sender: MultiSelect): string;
4971
+ }
4972
+ /**
4973
+ * The {@link MultiSelect} control allows users to select multiple items from
4974
+ * drop-down lists that contain custom objects or simple strings.
4975
+ *
4976
+ * The {@link MultiSelect} control extends {@link ComboBox}, with all the usual
4977
+ * properties, including {@link MultiSelect.itemsSource} and
4978
+ * {@link MultiSelect.displayMemberPath}.
4979
+ *
4980
+ * Like the {@link ListBox} control, it has a {@link MultiSelect.checkedMemberPath}
4981
+ * property that defines the name of the property that determines whether an
4982
+ * item is checked or not.
4983
+ *
4984
+ * The items currently checked (selected) can be obtained using the
4985
+ * {@link MultiSelect.checkedItems} property.
4986
+ *
4987
+ * The control header is fully customizable. By default, it shows up to two items
4988
+ * selected and the item count after that. You can change the maximum number of
4989
+ * items to display ({@link MultiSelect.maxHeaderItems}), the message shown when no
4990
+ * items are selected ({@link MultiSelect.placeholder}), and the format string used to
4991
+ * show the item count ({@link MultiSelect.headerFormat}).
4992
+ *
4993
+ * Alternatively, you can provide a function to generate the header content based
4994
+ * on whatever criteria your application requires ({@link MultiSelect.headerFormatter}).
4995
+ *
4996
+ * The example below shows how you can use a {@link MultiSelect} control to select
4997
+ * multiple items from a drop-down list:
4998
+ *
4999
+ * {@sample Input/MultiSelect/Overview Example}
5000
+ */
5001
+ export declare class MultiSelect extends ComboBox {
5002
+ private _maxHdrItems;
5003
+ private _readOnly;
5004
+ private _hdrFmt;
5005
+ private _hdrFormatter;
5006
+ private _msLbx;
5007
+ static _DEF_CHECKED_PATH: string;
5008
+ static _ctrlTemplate: string;
5009
+ _inputElementAriaLabel: string;
5010
+ /**
5011
+ * Gets or sets the template used to instantiate {@link MultiSelect} control.
5012
+ */
5013
+ static controlTemplate: string;
5014
+ /**
5015
+ * Initializes a new instance of the {@link MultiSelect} class.
5016
+ *
5017
+ * @param element The DOM element that hosts the control, or a CSS selector for the host element (e.g. '#theCtrl').
5018
+ * @param options The JavaScript object containing initialization data for the control.
5019
+ */
5020
+ constructor(element: any, options?: any);
5021
+ /**
5022
+ * Gets or sets whether the control should display a "Select All" checkbox
5023
+ * above the items to select or de-select all items.
5024
+ *
5025
+ * The default value for this property is **false**.
5026
+ */
5027
+ showSelectAllCheckbox: boolean;
5028
+ /**
5029
+ * Gets or sets whether the control should display a "filter" input
5030
+ * above the items to filter the items displayed.
5031
+ *
5032
+ * The default value for this property is **false**.
5033
+ */
5034
+ showFilterInput: boolean;
5035
+ /**
5036
+ * Gets or sets the delay, in milliseconds, between when a keystroke occurs
5037
+ * and when the search is performed to update the filter.
5038
+ *
5039
+ * This property is relevant only when the {@link showFilterInput}
5040
+ * property is set to **true**.
5041
+ *
5042
+ * The default value for this property is **500** milliseconds.
5043
+ */
5044
+ delay: number;
5045
+ /**
5046
+ * Gets or sets a value that determines whether searches performed
5047
+ * while the user types should case-sensitive.
5048
+ *
5049
+ * The default value for this property is **false**.
5050
+ */
5051
+ caseSensitiveSearch: boolean;
5052
+ /**
5053
+ * Gets or sets the string used as a placeholder for the filter input
5054
+ * element on the {@link MultiSelectListBox} drop-down.
5055
+ *
5056
+ * The default value for this property is **null**, which causes the
5057
+ * control to use a localized version of the string "Filter".
5058
+ */
5059
+ filterInputPlaceholder: string | null;
5060
+ /**
5061
+ * Gets or sets a value that determines whether the {@link MultiSelectListBox}
5062
+ * in the drop-down should automatically select all the filtered items when the
5063
+ * filter text changes.
5064
+ *
5065
+ * The default value for this property is **true**.
5066
+ */
5067
+ checkOnFilter: boolean;
5068
+ /**
5069
+ * Gets or sets a custom filter function for filtering items.
5070
+ *
5071
+ * When set, this function is used instead of the default regex-based filtering
5072
+ * in the filter input. Requires {@link showFilterInput} to be true.
5073
+ *
5074
+ * @param item The data item to test.
5075
+ * @param query The current filter text.
5076
+ * @param text The display text (after displayMemberPath processing).
5077
+ * @returns **true** to include the item, **false** to exclude it.
5078
+ *
5079
+ * Setting to null restores default filtering.
5080
+ */
5081
+ customFilter: CustomFilterCallback;
5082
+ /**
5083
+ * Gets or sets the string to be used as a label for the "Select All"
5084
+ * checkbox that is displayed when the {@link showSelectAllCheckbox}
5085
+ * property is set to true.
5086
+ *
5087
+ * The default value for this property is **null**, which causes the
5088
+ * control to use a localized version of the string "Select All".
5089
+ */
5090
+ selectAllLabel: string | null;
5091
+ /**
5092
+ * Gets or sets the name of the property used to control the checkboxes
5093
+ * placed next to each item.
5094
+ */
5095
+ checkedMemberPath: string;
5096
+ /**
5097
+ * Gets or sets the maximum number of items to display on the control header.
5098
+ *
5099
+ * If no items are selected, the header displays the text specified by the
5100
+ * {@link placeholder} property.
5101
+ *
5102
+ * If the number of selected items is smaller than or equal to the value of the
5103
+ * {@link maxHeaderItems} property, the selected items are shown in the header.
5104
+ *
5105
+ * If the number of selected items is greater than {@link maxHeaderItems}, the
5106
+ * header displays the selected item count instead.
5107
+ *
5108
+ * The default value for this property is **2**.
5109
+ */
5110
+ maxHeaderItems: number;
5111
+ /**
5112
+ * Gets or sets the format string used to create the header content
5113
+ * when the control has more than {@link maxHeaderItems} items checked.
5114
+ *
5115
+ * The format string may contain the '{count}' replacement string
5116
+ * which gets replaced with the number of items currently checked.
5117
+ *
5118
+ * The default value for this property is **null**, which causes the
5119
+ * control to use a localized version of the string "{count:n0} items selected".
5120
+ */
5121
+ headerFormat: string | null;
5122
+ /**
5123
+ * Gets or sets a function that gets the text displayed in the control
5124
+ * header.
5125
+ *
5126
+ * By default, the control header content is determined based on the
5127
+ * {@link placeholder}, {@link maxHeaderItems}, and on the current selection.
5128
+ *
5129
+ * You may customize the header content by specifying a function that
5130
+ * returns a custom string based on whatever criteria your application
5131
+ * requires.
5132
+ */
5133
+ headerFormatter: IHeaderFormatter | null;
5134
+ /**
5135
+ * Gets or sets an array containing the items that are currently checked.
5136
+ */
5137
+ checkedItems: any[];
5138
+ /**
5139
+ * Occurs when the value of the {@link checkedItems} property changes.
5140
+ */
5141
+ readonly checkedItemsChanged: Event<MultiSelect, EventArgs>;
5142
+ /**
5143
+ * Raises the {@link checkedItemsChanged} event.
5144
+ */
5145
+ onCheckedItemsChanged(e?: EventArgs): void;
5146
+ dispose(): void;
5147
+ onIsDroppedDownChanged(e?: EventArgs): void;
5148
+ onLostFocus(): void;
5149
+ protected _createDropDown(): void;
5150
+ _updateBtnAria(): void;
5151
+ _updateTbxAria(): void;
5152
+ isReadOnly: boolean;
5153
+ refresh(fullUpdate?: boolean): void;
5154
+ protected _setText(_text: string, _fullMatch: boolean): void;
5155
+ protected _keydown(e: KeyboardEvent): void;
5156
+ protected _hasItems(): boolean;
5157
+ private _updateHeader;
5158
+ getAriaLabelForScreenReader(): any;
5159
+ }
4981
5160
  export {};