@grapecity/wijmo.input 5.20261.48 → 5.20261.52

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.48
3
+ * Wijmo Library 5.20261.52
4
4
  * https://developer.mescius.com/wijmo
5
5
  *
6
6
  * Copyright(c) MESCIUS inc. All rights reserved.
@@ -158,6 +158,7 @@ export declare class InputNumber extends Control {
158
158
  _min: number;
159
159
  _max: number;
160
160
  _format: string;
161
+ _truncate: boolean;
161
162
  _step: number;
162
163
  _showBtn: boolean;
163
164
  _readOnly: boolean;
@@ -178,7 +179,6 @@ export declare class InputNumber extends Control {
178
179
  _delKey: boolean;
179
180
  _rptUp: _ClickRepeater;
180
181
  _rptDn: _ClickRepeater;
181
- _fromKb: boolean;
182
182
  static _ctrlTemplate: string;
183
183
  _inputElementAriaLabel: string;
184
184
  _ariaLabelledby: string;
@@ -271,6 +271,16 @@ export declare class InputNumber extends Control {
271
271
  * standard numeric format string</a>.
272
272
  */
273
273
  format: string;
274
+ /**
275
+ * Gets or sets whether the control truncates numeric values that exceed
276
+ * the decimal precision defined by {@link format}, instead of applying rounding.
277
+ *
278
+ * For example, if {@link format} = 'n2' and the value is 99.999,
279
+ * setting {@link truncate} to true will store 99.99 rather than rounding to 100.
280
+ *
281
+ * Default is **false**, which preserves the standard rounding behavior.
282
+ */
283
+ truncate: boolean;
274
284
  /**
275
285
  * Gets or sets the text shown in the control.
276
286
  */
@@ -1246,204 +1256,6 @@ export declare class FormatItemEventArgs extends EventArgs {
1246
1256
  */
1247
1257
  readonly item: HTMLElement;
1248
1258
  }
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
1259
  export interface _IDateRange {
1448
1260
  from: Date | null;
1449
1261
  to: Date | null;
@@ -3896,12 +3708,14 @@ export declare class ComboBox<T = any> extends DropDown {
3896
3708
  _findNextWhenIsEditableFalse(search: string, step: number, start?: number): number;
3897
3709
  protected _keydown(e: KeyboardEvent): void;
3898
3710
  _afterOpenDropdownByDownArrow(): void;
3899
- _input(_e: Event): void;
3711
+ _input(e: Event): void;
3900
3712
  _handleDragTextState(): void;
3901
3713
  _shouldOpenDropdown(): boolean;
3902
3714
  _handleIsEditableFalseInput(): void;
3903
3715
  _updateSelection(index: number, editStart: number): void;
3904
- _updateComponentText(): void;
3716
+ _updateComponentText(e?: Event): void;
3717
+ private _getInputTextForUpdate;
3718
+ private _shouldUseCurrentTextAfterComposition;
3905
3719
  _updateEmptyValueFlag(): void;
3906
3720
  _controlDropdownVisibility(): void;
3907
3721
  _resetDragState(): void;
@@ -3913,235 +3727,50 @@ export declare class ComboBox<T = any> extends DropDown {
3913
3727
  _updateDropDownWhenInput(): void;
3914
3728
  }
3915
3729
  /**
3916
- * Represents a method that returns a string used as a header for a
3917
- * {@link MultiSelect} control.
3730
+ * Interface implemented by command objects.
3731
+ *
3732
+ * For details, please see the {@link Menu.command} property.
3918
3733
  */
3919
- export interface IHeaderFormatter {
3734
+ export interface ICommand {
3920
3735
  /**
3921
- * @param sender {@link MultiSelect} whose header is being formatted.
3922
- * @returns The text to show in the control's header element.
3736
+ * Executes the command with a given parameter.
3737
+ *
3738
+ * The parameter passed to the command is defined by the value of the
3739
+ * {@link Menu.commandParameterPath} property of the current item.
3740
+ * If the {@link Menu.commandParameterPath} property is not specified,
3741
+ * the parameter passed is the item itself.
3923
3742
  */
3924
- (sender: MultiSelect): string;
3743
+ executeCommand(parameter: any): void;
3744
+ /**
3745
+ * Returns true if the command can be executed in the current app state.
3746
+ *
3747
+ * If this method returns false, the corresponding menu option is
3748
+ * disabled.
3749
+ */
3750
+ canExecuteCommand?(parameter: any): boolean;
3925
3751
  }
3926
3752
  /**
3927
- * The {@link MultiSelect} control allows users to select multiple items from
3928
- * drop-down lists that contain custom objects or simple strings.
3753
+ * The {@link Menu} control shows a text element with a drop-down list of commands that
3754
+ * the user can invoke by click or touch.
3929
3755
  *
3930
- * The {@link MultiSelect} control extends {@link ComboBox}, with all the usual
3931
- * properties, including {@link MultiSelect.itemsSource} and
3932
- * {@link MultiSelect.displayMemberPath}.
3756
+ * The {@link Menu} control inherits from {@link ComboBox}, so you populate and style it
3757
+ * in the same way that you do the {@link ComboBox} (see the {@link Menu.itemsSource}
3758
+ * property).
3933
3759
  *
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.
3760
+ * The {@link Menu} control adds an {@link Menu.itemClicked} event that fires when the user
3761
+ * selects an item from the menu. The event handler can inspect the {@link Menu} control
3762
+ * to determine which item was clicked. For example:
3937
3763
  *
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.
4102
- *
4103
- * For details, please see the {@link Menu.command} property.
4104
- */
4105
- export interface ICommand {
4106
- /**
4107
- * Executes the command with a given parameter.
4108
- *
4109
- * The parameter passed to the command is defined by the value of the
4110
- * {@link Menu.commandParameterPath} property of the current item.
4111
- * If the {@link Menu.commandParameterPath} property is not specified,
4112
- * the parameter passed is the item itself.
4113
- */
4114
- executeCommand(parameter: any): void;
4115
- /**
4116
- * Returns true if the command can be executed in the current app state.
4117
- *
4118
- * If this method returns false, the corresponding menu option is
4119
- * disabled.
4120
- */
4121
- canExecuteCommand?(parameter: any): boolean;
4122
- }
4123
- /**
4124
- * The {@link Menu} control shows a text element with a drop-down list of commands that
4125
- * the user can invoke by click or touch.
4126
- *
4127
- * The {@link Menu} control inherits from {@link ComboBox}, so you populate and style it
4128
- * in the same way that you do the {@link ComboBox} (see the {@link Menu.itemsSource}
4129
- * property).
4130
- *
4131
- * The {@link Menu} control adds an {@link Menu.itemClicked} event that fires when the user
4132
- * selects an item from the menu. The event handler can inspect the {@link Menu} control
4133
- * to determine which item was clicked. For example:
4134
- *
4135
- * ```typescript
4136
- * import { Menu } from '@grapecity/wijmo.input';
4137
- * let menu = new Menu('#theMenu', {
4138
- * header: 'Main Menu',
4139
- * itemsSource: ['option 1', 'option 2', 'option 3'],
4140
- * itemClicked: s => {
4141
- * alert('Thanks for selecting item ' + s.selectedIndex + ' from menu ' + s.header + '!');
4142
- * }
4143
- * });
4144
- * ```
3764
+ * ```typescript
3765
+ * import { Menu } from '@grapecity/wijmo.input';
3766
+ * let menu = new Menu('#theMenu', {
3767
+ * header: 'Main Menu',
3768
+ * itemsSource: ['option 1', 'option 2', 'option 3'],
3769
+ * itemClicked: s => {
3770
+ * alert('Thanks for selecting item ' + s.selectedIndex + ' from menu ' + s.header + '!');
3771
+ * }
3772
+ * });
3773
+ * ```
4145
3774
  *
4146
3775
  * The example below shows how you can create menus that handle the
4147
3776
  * {@link itemClicked} event.
@@ -4722,6 +4351,26 @@ export interface IGetItemsCallback {
4722
4351
  * */
4723
4352
  (items: any[]): void;
4724
4353
  }
4354
+ /**
4355
+ * Represents a custom filter function used by {@link AutoComplete} and {@link MultiSelectListBox}.
4356
+ *
4357
+ * @param item The data item to test.
4358
+ * @param query The current search query string.
4359
+ * @param text The display text (after displayMemberPath processing).
4360
+ * @returns **true** to include the item in the filtered results, **false** to exclude it.
4361
+ */
4362
+ export declare type CustomFilterCallback = (item: any, query: string, text: string) => boolean;
4363
+ /**
4364
+ * Represents a custom highlight function used by {@link AutoComplete}.
4365
+ *
4366
+ * @param item The data item being displayed.
4367
+ * @param query The current search query string.
4368
+ * @param text The display text (after displayMemberPath processing).
4369
+ * @returns An HTML string with highlighted portions wrapped in highlight spans.
4370
+ *
4371
+ * **Security Note**: Escape user input with {@link escapeHtml} to prevent XSS attacks.
4372
+ */
4373
+ export declare type CustomHighlightCallback = (item: any, query: string, text: string) => string;
4725
4374
  /**
4726
4375
  * The {@link AutoComplete} control is an input control that allows callers
4727
4376
  * to customize the item list as the user types.
@@ -4746,6 +4395,9 @@ export declare class AutoComplete extends ComboBox {
4746
4395
  private _itemCount;
4747
4396
  private _beginsWith;
4748
4397
  private _delay;
4398
+ private _searchDuringComposition;
4399
+ private _customFilter;
4400
+ private _customHighlight;
4749
4401
  _selItems: any;
4750
4402
  private _toSearch;
4751
4403
  private _query;
@@ -4796,6 +4448,18 @@ export declare class AutoComplete extends ComboBox {
4796
4448
  * The default value for this property is **500** milliseconds.
4797
4449
  */
4798
4450
  delay: number;
4451
+ /**
4452
+ * Gets or sets whether AutoComplete should search while IME composition is active.
4453
+ *
4454
+ * The default value for this property is **false**.
4455
+ *
4456
+ * When set to **false**, search timing stays unchanged and filtering starts
4457
+ * only after the composition is committed.
4458
+ *
4459
+ * When set to **true**, the control may filter immediately from the current
4460
+ * composing text while composition is still active.
4461
+ */
4462
+ searchDuringComposition: boolean;
4799
4463
  /**
4800
4464
  * Gets or sets a string containing a comma-separated list of properties to use
4801
4465
  * when searching for items.
@@ -4858,6 +4522,43 @@ export declare class AutoComplete extends ComboBox {
4858
4522
  * The default value for this property is **wj-state-match**.
4859
4523
  */
4860
4524
  cssMatch: string;
4525
+ /**
4526
+ * Gets or sets a custom filter function for filtering items.
4527
+ *
4528
+ * When set, this function is used instead of the default filtering logic.
4529
+ * The function receives the item, the current query string, and the display text,
4530
+ * and should return true to include the item or false to exclude it.
4531
+ *
4532
+ * Set to null to restore default filtering behavior.
4533
+ *
4534
+ * @remarks
4535
+ * When customFilter is set, these properties are ignored:
4536
+ * - {@link caseSensitiveSearch}, {@link beginsWithSearch}, {@link isContentHtml}
4537
+ *
4538
+ * These properties are still honored:
4539
+ * - {@link maxItems}, {@link minLength}
4540
+ */
4541
+ customFilter: CustomFilterCallback;
4542
+ /**
4543
+ * Gets or sets a custom highlight function for highlighting matched text.
4544
+ *
4545
+ * When set, this function is called for each filtered item to generate
4546
+ * the HTML to display in the drop-down list. The function receives the
4547
+ * item, query, and display text, and should return HTML with highlighted
4548
+ * portions wrapped in &lt;span class="wj-state-match"&gt;.
4549
+ *
4550
+ * Set to null to restore default highlighting behavior.
4551
+ *
4552
+ * @remarks
4553
+ * **Security**: Always use {@link escapeHtml} on user content to prevent XSS.
4554
+ *
4555
+ * The highlight function is called before formatItem event handlers,
4556
+ * allowing handlers to override the result.
4557
+ *
4558
+ * If the function throws an exception, the error is logged and the
4559
+ * original text is displayed without highlighting.
4560
+ */
4561
+ customHighlight: CustomHighlightCallback;
4861
4562
  /**
4862
4563
  * Raises the {@link selectedIndexChanged} event.
4863
4564
  */
@@ -4865,6 +4566,13 @@ export declare class AutoComplete extends ComboBox {
4865
4566
  _updateTbxAria(): void;
4866
4567
  _keydown(e: KeyboardEvent): void;
4867
4568
  _input(_e: Event): void;
4569
+ /**
4570
+ * Sets the focus to the control and selects all its content.
4571
+ */
4572
+ selectAll(): void;
4573
+ private _canSearchWhileComposing;
4574
+ private _hasExternalCompositionFocus;
4575
+ private _isLegacyImeGuardBrowser;
4868
4576
  private _isBlurInput;
4869
4577
  protected _commitText(noFocus?: boolean): void;
4870
4578
  _setText(text: string | null): void;
@@ -4978,4 +4686,416 @@ export declare class MultiAutoComplete extends AutoComplete {
4978
4686
  _setTabOrder(value: number): void;
4979
4687
  _updateTabIndex(): void;
4980
4688
  }
4689
+ /**
4690
+ * The {@link MultiSelectListBox} control contains a {@link ListBox} with
4691
+ * a "Select All" button and a "Filter" input.
4692
+ *
4693
+ * The "Select All" and "Filter" elements can be shown or hidden using
4694
+ * the {@link showSelectAllCheckbox} and {@link showFilterInput} properties.
4695
+ *
4696
+ * The {@link MultiSelectListBox} control is used as a drop-down by the
4697
+ * {@link MultiSelect} control.
4698
+ */
4699
+ export declare class MultiSelectListBox<T = any> extends Control {
4700
+ _selectAll: HTMLElement;
4701
+ _filter: HTMLInputElement;
4702
+ _lbHost: HTMLElement;
4703
+ _lbx: ListBox;
4704
+ _cbSelectAll: HTMLInputElement;
4705
+ _spSelectAll: HTMLSpanElement;
4706
+ _ariaLabel: string;
4707
+ _selectAllLabel: string;
4708
+ _filterPlaceholder: string;
4709
+ _filterText: string;
4710
+ _checkOnFilter: boolean;
4711
+ _delay: number;
4712
+ _toSearch: any;
4713
+ _customFilter: CustomFilterCallback;
4714
+ static _DEF_CHECKED_PATH: string;
4715
+ static _ctrlTemplate: string;
4716
+ /**
4717
+ * Gets or sets the template used to instantiate {@link MultiSelectListBox} controls.
4718
+ */
4719
+ static controlTemplate: string;
4720
+ /**
4721
+ * Initializes a new instance of the {@link MultiSelectListBox} class.
4722
+ *
4723
+ * @param element The DOM element that hosts the control, or a CSS selector for the host element (e.g. '#theCtrl').
4724
+ * @param options The JavaScript object containing initialization data for the control.
4725
+ */
4726
+ constructor(element: any, options?: any);
4727
+ /**
4728
+ * Gets or sets the array or {@link ICollectionView} object that contains
4729
+ * the list items.
4730
+ */
4731
+ itemsSource: any;
4732
+ /**
4733
+ * Gets the {@link ICollectionView} object used as the item source.
4734
+ */
4735
+ readonly collectionView: ICollectionView<T>;
4736
+ /**
4737
+ * Gets or sets the minimum number of rows and/or columns required to enable
4738
+ * virtualization in the drop-down {@link ListBox}.
4739
+ *
4740
+ * The default value for this property is a very big number, meaning virtualization is
4741
+ * disabled. To enable virtualization, set its value to 0 or a positive number.
4742
+ *
4743
+ * For more detals, please see the {@link ListBox.virtualizationThreshold}
4744
+ * property.
4745
+ */
4746
+ virtualizationThreshold: number;
4747
+ /**
4748
+ * Gets or sets the name of the property to use as the visual
4749
+ * representation of the items.
4750
+ */
4751
+ displayMemberPath: string;
4752
+ /**
4753
+ * Gets or sets a value indicating whether items contain plain
4754
+ * text or HTML.
4755
+ *
4756
+ * The default value for this property is **false**.
4757
+ */
4758
+ isContentHtml: boolean;
4759
+ /**
4760
+ * Gets or sets a value that determines whether searches performed
4761
+ * while the user types should case-sensitive.
4762
+ *
4763
+ * The default value for this property is **false**.
4764
+ */
4765
+ caseSensitiveSearch: boolean;
4766
+ /**
4767
+ * Gets or sets the delay, in milliseconds, between when a keystroke occurs
4768
+ * and when the search is performed to update the filter.
4769
+ *
4770
+ * This property is relevant only when the {@link showFilterInput}
4771
+ * property is set to **true**.
4772
+ *
4773
+ * The default value for this property is **500** milliseconds.
4774
+ */
4775
+ delay: number;
4776
+ /**
4777
+ * Gets or sets a custom filter function for filtering items.
4778
+ *
4779
+ * When set, this function is used instead of the default regex-based filtering.
4780
+ *
4781
+ * @param item The data item to test.
4782
+ * @param query The current filter text.
4783
+ * @param text The display text (after displayMemberPath processing).
4784
+ * @returns **true** to include the item, **false** to exclude it.
4785
+ *
4786
+ * Setting to null restores default filtering. Requires {@link showFilterInput} to be true.
4787
+ */
4788
+ customFilter: CustomFilterCallback;
4789
+ /**
4790
+ * Gets or sets a value that determines whether the {@link MultiSelectListBox} should
4791
+ * include group header items to delimit data groups.
4792
+ *
4793
+ * Data groups are created by modifying the {@link ICollectionView.groupDescriptions}
4794
+ * property of the {@link ICollectionView} object used as an {@link itemsSource}.
4795
+ *
4796
+ * The {@link MultiSelectListBox} only shows the first level of grouping.
4797
+ *
4798
+ * The default value for this property is **false**.
4799
+ */
4800
+ showGroups: boolean;
4801
+ /**
4802
+ * Gets or sets a value that determines whether the {@link MultiSelectListBox}
4803
+ * should automatically check all filtered items when the filter text changes.
4804
+ *
4805
+ * The default value for this property is **true**, which causes the control
4806
+ * to behave like Excel and check all visible items when the filter is applied.
4807
+ *
4808
+ * For example, in a control with three items "Alice", "Bob", and "Mary",
4809
+ * typing "a" into the filter would cause the control to show items "Alice"
4810
+ * and "Mary", and both would be checked.
4811
+ *
4812
+ * Setting this property to **false** prevents the control from automatically
4813
+ * checking filtered items, and to keep checked items visible regardless of the
4814
+ * filter value.
4815
+ *
4816
+ * For example, in a control with three items "Alice", "Bob", and "Mary",
4817
+ * typing "a" into the filter would cause the control to show items "Alice"
4818
+ * and "Mary", but neither would be checked.
4819
+ * If the user then checked "Mary", and typed "b" into the filter, the list
4820
+ * would show items "Mary" (still checked) and "Bob" (unchecked).
4821
+ */
4822
+ checkOnFilter: boolean;
4823
+ /**
4824
+ * Gets or sets the index of the currently selected item.
4825
+ */
4826
+ selectedIndex: number;
4827
+ /**
4828
+ * Gets a reference to the {@link ListBox} control hosted by this
4829
+ * {@link MultiSelectListBox}.
4830
+ */
4831
+ readonly listBox: ListBox;
4832
+ /**
4833
+ * Gets or sets whether the control should display a "filter" input
4834
+ * above the items to filter the items displayed.
4835
+ *
4836
+ * The default value for this property is **false**.
4837
+ */
4838
+ showFilterInput: boolean;
4839
+ /**
4840
+ * Gets or sets the string used as a placeholder for the filter input element.
4841
+ *
4842
+ * The default value for this property is **null**, which causes the control
4843
+ * to show a localized version of the string "Filter".
4844
+ */
4845
+ filterInputPlaceholder: string;
4846
+ /**
4847
+ * Gets or sets whether the control should display a "Select All" checkbox
4848
+ * above the items to select or de-select all items.
4849
+ *
4850
+ * The default value for this property is **false**.
4851
+ */
4852
+ showSelectAllCheckbox: boolean;
4853
+ /**
4854
+ * Gets or sets the string to be used as a label for the "Select All"
4855
+ * checkbox that is displayed when the {@link showSelectAllCheckbox}
4856
+ * property is set to true.
4857
+ *
4858
+ * The default value for this property is **null**, which causes the control
4859
+ * to show a localized version of the string "Select All".
4860
+ */
4861
+ selectAllLabel: string;
4862
+ /**
4863
+ * Gets or sets the name of the property used to control the checkboxes
4864
+ * placed next to each item.
4865
+ */
4866
+ checkedMemberPath: string;
4867
+ /**
4868
+ * Gets or sets an array containing the items that are currently checked.
4869
+ */
4870
+ checkedItems: any[];
4871
+ /**
4872
+ * Gets or sets the aria-labelledby attribute of {@link MultiSelectListBox} input element.
4873
+ */
4874
+ ariaLabelledBy: string;
4875
+ _updateAriaLabel(): void;
4876
+ /**
4877
+ * Occurs when the value of the {@link checkedItems} property changes.
4878
+ */
4879
+ readonly checkedItemsChanged: Event<MultiSelectListBox<any>, EventArgs>;
4880
+ /**
4881
+ * Raises the {@link checkedItemsChanged} event.
4882
+ */
4883
+ onCheckedItemsChanged(e?: any): void;
4884
+ /**
4885
+ * Occurs when the value of the {@link selectedIndex} property changes.
4886
+ */
4887
+ readonly selectedIndexChanged: Event<MultiSelectListBox<any>, EventArgs>;
4888
+ /**
4889
+ * Raises the {@link selectedIndexChanged} event.
4890
+ */
4891
+ onSelectedIndexChanged(e?: EventArgs): void;
4892
+ refresh(fullUpdate?: boolean): void;
4893
+ dispose(): void;
4894
+ _applyFilter(): void;
4895
+ protected _getItemText(item: any, binding?: Binding): string;
4896
+ _updateCheckAllCheckbox(): void;
4897
+ _setIsDisabled(value: boolean): void;
4898
+ _setTabOrder(value: number): void;
4899
+ tryForceClearDelayAndFilter(): void;
4900
+ onLostFocus(): void;
4901
+ }
4902
+ /**
4903
+ * Represents a method that returns a string used as a header for a
4904
+ * {@link MultiSelect} control.
4905
+ */
4906
+ export interface IHeaderFormatter {
4907
+ /**
4908
+ * @param sender {@link MultiSelect} whose header is being formatted.
4909
+ * @returns The text to show in the control's header element.
4910
+ */
4911
+ (sender: MultiSelect): string;
4912
+ }
4913
+ /**
4914
+ * The {@link MultiSelect} control allows users to select multiple items from
4915
+ * drop-down lists that contain custom objects or simple strings.
4916
+ *
4917
+ * The {@link MultiSelect} control extends {@link ComboBox}, with all the usual
4918
+ * properties, including {@link MultiSelect.itemsSource} and
4919
+ * {@link MultiSelect.displayMemberPath}.
4920
+ *
4921
+ * Like the {@link ListBox} control, it has a {@link MultiSelect.checkedMemberPath}
4922
+ * property that defines the name of the property that determines whether an
4923
+ * item is checked or not.
4924
+ *
4925
+ * The items currently checked (selected) can be obtained using the
4926
+ * {@link MultiSelect.checkedItems} property.
4927
+ *
4928
+ * The control header is fully customizable. By default, it shows up to two items
4929
+ * selected and the item count after that. You can change the maximum number of
4930
+ * items to display ({@link MultiSelect.maxHeaderItems}), the message shown when no
4931
+ * items are selected ({@link MultiSelect.placeholder}), and the format string used to
4932
+ * show the item count ({@link MultiSelect.headerFormat}).
4933
+ *
4934
+ * Alternatively, you can provide a function to generate the header content based
4935
+ * on whatever criteria your application requires ({@link MultiSelect.headerFormatter}).
4936
+ *
4937
+ * The example below shows how you can use a {@link MultiSelect} control to select
4938
+ * multiple items from a drop-down list:
4939
+ *
4940
+ * {@sample Input/MultiSelect/Overview Example}
4941
+ */
4942
+ export declare class MultiSelect extends ComboBox {
4943
+ private _maxHdrItems;
4944
+ private _readOnly;
4945
+ private _hdrFmt;
4946
+ private _hdrFormatter;
4947
+ private _msLbx;
4948
+ static _DEF_CHECKED_PATH: string;
4949
+ static _ctrlTemplate: string;
4950
+ _inputElementAriaLabel: string;
4951
+ /**
4952
+ * Gets or sets the template used to instantiate {@link MultiSelect} control.
4953
+ */
4954
+ static controlTemplate: string;
4955
+ /**
4956
+ * Initializes a new instance of the {@link MultiSelect} class.
4957
+ *
4958
+ * @param element The DOM element that hosts the control, or a CSS selector for the host element (e.g. '#theCtrl').
4959
+ * @param options The JavaScript object containing initialization data for the control.
4960
+ */
4961
+ constructor(element: any, options?: any);
4962
+ /**
4963
+ * Gets or sets whether the control should display a "Select All" checkbox
4964
+ * above the items to select or de-select all items.
4965
+ *
4966
+ * The default value for this property is **false**.
4967
+ */
4968
+ showSelectAllCheckbox: boolean;
4969
+ /**
4970
+ * Gets or sets whether the control should display a "filter" input
4971
+ * above the items to filter the items displayed.
4972
+ *
4973
+ * The default value for this property is **false**.
4974
+ */
4975
+ showFilterInput: boolean;
4976
+ /**
4977
+ * Gets or sets the delay, in milliseconds, between when a keystroke occurs
4978
+ * and when the search is performed to update the filter.
4979
+ *
4980
+ * This property is relevant only when the {@link showFilterInput}
4981
+ * property is set to **true**.
4982
+ *
4983
+ * The default value for this property is **500** milliseconds.
4984
+ */
4985
+ delay: number;
4986
+ /**
4987
+ * Gets or sets a value that determines whether searches performed
4988
+ * while the user types should case-sensitive.
4989
+ *
4990
+ * The default value for this property is **false**.
4991
+ */
4992
+ caseSensitiveSearch: boolean;
4993
+ /**
4994
+ * Gets or sets the string used as a placeholder for the filter input
4995
+ * element on the {@link MultiSelectListBox} drop-down.
4996
+ *
4997
+ * The default value for this property is **null**, which causes the
4998
+ * control to use a localized version of the string "Filter".
4999
+ */
5000
+ filterInputPlaceholder: string | null;
5001
+ /**
5002
+ * Gets or sets a value that determines whether the {@link MultiSelectListBox}
5003
+ * in the drop-down should automatically select all the filtered items when the
5004
+ * filter text changes.
5005
+ *
5006
+ * The default value for this property is **true**.
5007
+ */
5008
+ checkOnFilter: boolean;
5009
+ /**
5010
+ * Gets or sets a custom filter function for filtering items.
5011
+ *
5012
+ * When set, this function is used instead of the default regex-based filtering
5013
+ * in the filter input. Requires {@link showFilterInput} to be true.
5014
+ *
5015
+ * @param item The data item to test.
5016
+ * @param query The current filter text.
5017
+ * @param text The display text (after displayMemberPath processing).
5018
+ * @returns **true** to include the item, **false** to exclude it.
5019
+ *
5020
+ * Setting to null restores default filtering.
5021
+ */
5022
+ customFilter: CustomFilterCallback;
5023
+ /**
5024
+ * Gets or sets the string to be used as a label for the "Select All"
5025
+ * checkbox that is displayed when the {@link showSelectAllCheckbox}
5026
+ * property is set to true.
5027
+ *
5028
+ * The default value for this property is **null**, which causes the
5029
+ * control to use a localized version of the string "Select All".
5030
+ */
5031
+ selectAllLabel: string | null;
5032
+ /**
5033
+ * Gets or sets the name of the property used to control the checkboxes
5034
+ * placed next to each item.
5035
+ */
5036
+ checkedMemberPath: string;
5037
+ /**
5038
+ * Gets or sets the maximum number of items to display on the control header.
5039
+ *
5040
+ * If no items are selected, the header displays the text specified by the
5041
+ * {@link placeholder} property.
5042
+ *
5043
+ * If the number of selected items is smaller than or equal to the value of the
5044
+ * {@link maxHeaderItems} property, the selected items are shown in the header.
5045
+ *
5046
+ * If the number of selected items is greater than {@link maxHeaderItems}, the
5047
+ * header displays the selected item count instead.
5048
+ *
5049
+ * The default value for this property is **2**.
5050
+ */
5051
+ maxHeaderItems: number;
5052
+ /**
5053
+ * Gets or sets the format string used to create the header content
5054
+ * when the control has more than {@link maxHeaderItems} items checked.
5055
+ *
5056
+ * The format string may contain the '{count}' replacement string
5057
+ * which gets replaced with the number of items currently checked.
5058
+ *
5059
+ * The default value for this property is **null**, which causes the
5060
+ * control to use a localized version of the string "{count:n0} items selected".
5061
+ */
5062
+ headerFormat: string | null;
5063
+ /**
5064
+ * Gets or sets a function that gets the text displayed in the control
5065
+ * header.
5066
+ *
5067
+ * By default, the control header content is determined based on the
5068
+ * {@link placeholder}, {@link maxHeaderItems}, and on the current selection.
5069
+ *
5070
+ * You may customize the header content by specifying a function that
5071
+ * returns a custom string based on whatever criteria your application
5072
+ * requires.
5073
+ */
5074
+ headerFormatter: IHeaderFormatter | null;
5075
+ /**
5076
+ * Gets or sets an array containing the items that are currently checked.
5077
+ */
5078
+ checkedItems: any[];
5079
+ /**
5080
+ * Occurs when the value of the {@link checkedItems} property changes.
5081
+ */
5082
+ readonly checkedItemsChanged: Event<MultiSelect, EventArgs>;
5083
+ /**
5084
+ * Raises the {@link checkedItemsChanged} event.
5085
+ */
5086
+ onCheckedItemsChanged(e?: EventArgs): void;
5087
+ dispose(): void;
5088
+ onIsDroppedDownChanged(e?: EventArgs): void;
5089
+ onLostFocus(): void;
5090
+ protected _createDropDown(): void;
5091
+ _updateBtnAria(): void;
5092
+ _updateTbxAria(): void;
5093
+ isReadOnly: boolean;
5094
+ refresh(fullUpdate?: boolean): void;
5095
+ protected _setText(_text: string, _fullMatch: boolean): void;
5096
+ protected _keydown(e: KeyboardEvent): void;
5097
+ protected _hasItems(): boolean;
5098
+ private _updateHeader;
5099
+ getAriaLabelForScreenReader(): any;
5100
+ }
4981
5101
  export {};