UNPKG

1.78 kBTypeScriptView Raw
1/*
2 * Copyright 2020 Ladifire. All rights reserved.
3 * This file is licensed to you under the Apache License, Version 2.0 (the "License");
4 * you may not use this file except in compliance with the License. You may obtain a copy
5 * of the License at http://www.apache.org/licenses/LICENSE-2.0
6 *
7 * Unless required by applicable law or agreed to in writing, software distributed under
8 * the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS
9 * OF ANY KIND, either express or implied. See the License for the specific language
10 * governing permissions and limitations under the License.
11 */
12
13import {Key} from 'react';
14
15export interface SingleSelection {
16 /** Whether the collection allows empty selection. */
17 disallowEmptySelection?: boolean,
18 /** The currently selected key in the collection (controlled). */
19 selectedKey?: Key,
20 /** The initial selected key in the collection (uncontrolled). */
21 defaultSelectedKey?: Key,
22 /** Handler that is called when the selection changes. */
23 onSelectionChange?: (key: Key) => any
24}
25
26export type SelectionMode = 'none' | 'single' | 'multiple';
27export type Selection = 'all' | Set<Key>;
28export interface MultipleSelection {
29 /** The type of selection that is allowed in the collection. */
30 selectionMode?: SelectionMode,
31 /** Whether the collection allows empty selection. */
32 disallowEmptySelection?: boolean,
33 /** The currently selected keys in the collection (controlled). */
34 selectedKeys?: 'all' | Iterable<Key>,
35 /** The initial selected keys in the collection (uncontrolled). */
36 defaultSelectedKeys?: 'all' | Iterable<Key>,
37 /** Handler that is called when the selection changes. */
38 onSelectionChange?: (keys: Selection) => any
39}
40
41export type FocusStrategy = 'first' | 'last';