{"meta":"<h2 id=\"Guide\">Guide <a class=\"header-anchor scroll-count-item\" href=\"#Guide\" data-scroll-id=\"Guide\">#</a></h2>\n<h3 id=\"When To Use\">When To Use <a class=\"header-anchor scroll-count-item\" href=\"#When To Use\" data-scroll-id=\"When To Use\">#</a></h3>\n<p>Move the items in two panels in an intuitive way to select.</p>\n","api":"<h2 id=\"API\">API <a class=\"header-anchor scroll-count-item\" href=\"#API\" data-scroll-id=\"API\">#</a></h2>\n<h3 id=\"Transfer\">Transfer <a class=\"header-anchor scroll-count-item\" href=\"#Transfer\" data-scroll-id=\"Transfer\">#</a></h3>\n<table>\n<thead>\n<tr>\n<th>Param</th>\n<th>Description</th>\n<th>Type</th>\n<th>Default Value</th>\n<th>Required</th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td>mode</td>\n<td>Move mode</td>\n<td>&apos;normal&apos; | &apos;simple&apos;</td>\n<td>&apos;normal&apos;</td>\n<td></td>\n</tr>\n<tr>\n<td>dataSource</td>\n<td>Data source</td>\n<td>Array&lt;TransferDataItem&gt;</td>\n<td>[]</td>\n<td></td>\n</tr>\n<tr>\n<td>value</td>\n<td>(under control) current value</td>\n<td>Array&lt;string&gt;</td>\n<td>-</td>\n<td></td>\n</tr>\n<tr>\n<td>defaultValue</td>\n<td>(under uncontrolled) default value</td>\n<td>Array&lt;string&gt;</td>\n<td>[]</td>\n<td></td>\n</tr>\n<tr>\n<td>onChange</td>\n<td>Callback function triggered when value change<br><br><strong>signature</strong>:<br><strong>params</strong>:<br><em>value</em>: Value of right panel<br><em>data</em>: Data of right panel<br><em>extra</em>: Extra parameters</td>\n<td>(value: Array&lt;string&gt;, data: Array&lt;TransferDataItem&gt;, extra: ExtraOptions) =&gt; void</td>\n<td>-</td>\n<td></td>\n</tr>\n<tr>\n<td>onSelect</td>\n<td>Callback function triggered when item selected<br><br><strong>signature</strong>:<br><strong>params</strong>:<br><em>sourceSelectedValue</em>: Value of checked items in source panel<br><em>targetSelectedValue</em>: Value of checked items in target panel<br><em>target</em>: Trigger panel <code>source \\| target</code></td>\n<td>(<br> sourceSelectedValue: Array&lt;string&gt;,<br> targetSelectedValue: Array&lt;string&gt;,<br> target: &apos;source&apos; | &apos;target&apos;<br> ) =&gt; void</td>\n<td>-</td>\n<td></td>\n</tr>\n<tr>\n<td>disabled</td>\n<td>Disable operations on transfer</td>\n<td>boolean</td>\n<td>false</td>\n<td></td>\n</tr>\n<tr>\n<td>leftDisabled</td>\n<td>Disable left panel</td>\n<td>boolean</td>\n<td>false</td>\n<td></td>\n</tr>\n<tr>\n<td>rightDisabled</td>\n<td>Disable right panel</td>\n<td>boolean</td>\n<td>false</td>\n<td></td>\n</tr>\n<tr>\n<td>itemRender</td>\n<td>Item render function<br><br><strong>signature</strong>:<br><strong>params</strong>:<br><em>data</em>: Data<br><strong>return</strong>:<br>Content of item</td>\n<td>(data: TransferDataItem) =&gt; React.ReactNode</td>\n<td>-</td>\n<td></td>\n</tr>\n<tr>\n<td>showSearch</td>\n<td>Whether to show the search box</td>\n<td>boolean | [leftPanel: boolean, rightPanel: boolean]</td>\n<td>false</td>\n<td></td>\n</tr>\n<tr>\n<td>searchProps</td>\n<td>Props passed to Search when showSearch is true</td>\n<td>SearchProps | [leftPanel: SearchProps, rightPanel: SearchProps]</td>\n<td>-</td>\n<td></td>\n</tr>\n<tr>\n<td>filter</td>\n<td>Custom search function<br><br><strong>signature</strong>:<br><strong>params</strong>:<br><em>searchedValue</em>: Search keyword<br><em>data</em>: Data<br><strong>return</strong>:<br>Whether is matched</td>\n<td>(searchedValue: string, data: TransferDataItem) =&gt; boolean</td>\n<td>-</td>\n<td></td>\n</tr>\n<tr>\n<td>onSearch</td>\n<td>Callback function triggered when search<br><br><strong>signature</strong>:<br><strong>params</strong>:<br><em>searchedValue</em>: Search keyword<br><em>position</em>: Position of the search box</td>\n<td>(searchedValue: string, position: string) =&gt; void</td>\n<td>-</td>\n<td></td>\n</tr>\n<tr>\n<td>useVirtual</td>\n<td>Whether use virtual</td>\n<td>boolean</td>\n<td>-</td>\n<td></td>\n</tr>\n<tr>\n<td>searchPlaceholder</td>\n<td>Placeholder of the search box</td>\n<td>string</td>\n<td>-</td>\n<td></td>\n</tr>\n<tr>\n<td>notFoundContent</td>\n<td>Content when list is empty</td>\n<td>React.ReactNode | [leftPanel: React.ReactNode, rightPanel: React.ReactNode]</td>\n<td>&apos;Not Found&apos;</td>\n<td></td>\n</tr>\n<tr>\n<td>titles</td>\n<td>Title of the left and right panel</td>\n<td>[leftPanel: React.ReactNode, rightPanel: React.ReactNode]</td>\n<td>[]</td>\n<td></td>\n</tr>\n<tr>\n<td>operations</td>\n<td>Text of move buttons</td>\n<td>[leftPanel: React.ReactNode, rightPanel: React.ReactNode]</td>\n<td>[]</td>\n<td></td>\n</tr>\n<tr>\n<td>defaultLeftChecked</td>\n<td>Default checked value of left panel</td>\n<td>Array&lt;string&gt;</td>\n<td>[]</td>\n<td></td>\n</tr>\n<tr>\n<td>defaultRightChecked</td>\n<td>Default checked value of right panel</td>\n<td>Array&lt;string&gt;</td>\n<td>[]</td>\n<td></td>\n</tr>\n<tr>\n<td>listClassName</td>\n<td>Custom list class name</td>\n<td>string</td>\n<td>-</td>\n<td></td>\n</tr>\n<tr>\n<td>listStyle</td>\n<td>Custom list style</td>\n<td>React.CSSProperties</td>\n<td>-</td>\n<td></td>\n</tr>\n<tr>\n<td>sortable</td>\n<td>Whether to allow drag and drop sort</td>\n<td>boolean</td>\n<td>false</td>\n<td></td>\n</tr>\n<tr>\n<td>onSort</td>\n<td>Callback function triggered when dragging sort<br><br><strong>signature</strong>:<br><strong>params</strong>:<br><em>value</em>: Sorted value<br><em>position</em>: Position of the sorted panel, &apos;left&apos; or &apos;right&apos;</td>\n<td>(value: Array&lt;string&gt;, position: PositionType) =&gt; void</td>\n<td>-</td>\n<td></td>\n</tr>\n<tr>\n<td>id</td>\n<td>Unique id to make component accessible</td>\n<td>string</td>\n<td>-</td>\n<td></td>\n</tr>\n<tr>\n<td>showCheckAll</td>\n<td>Whether show footer&apos;s check</td>\n<td>boolean</td>\n<td>true</td>\n<td></td>\n</tr>\n<tr>\n<td>children</td>\n<td>Customer panel</td>\n<td>(props: TransferPanelProps) =&gt; React.ReactNode</td>\n<td>-</td>\n<td></td>\n</tr>\n</tbody>\n</table>\n<h3 id=\"Transfer Data Item\">TransferDataItem <a class=\"header-anchor scroll-count-item\" href=\"#Transfer Data Item\" data-scroll-id=\"Transfer Data Item\">#</a></h3>\n<pre class=\"language-typescript\"><code class=\"language-typescript\"><span class=\"token keyword\">export</span> <span class=\"token keyword\">type</span> <span class=\"token class-name\">TransferDataItem</span> <span class=\"token operator\">=</span> <span class=\"token punctuation\">{</span>\n    label<span class=\"token operator\">:</span> <span class=\"token builtin\">string</span> <span class=\"token operator\">|</span> React<span class=\"token punctuation\">.</span>ReactNode<span class=\"token punctuation\">;</span>\n    value<span class=\"token operator\">:</span> <span class=\"token builtin\">string</span><span class=\"token punctuation\">;</span>\n    title<span class=\"token operator\">?</span><span class=\"token operator\">:</span> <span class=\"token builtin\">string</span><span class=\"token punctuation\">;</span>\n    disabled<span class=\"token operator\">?</span><span class=\"token operator\">:</span> <span class=\"token builtin\">boolean</span><span class=\"token punctuation\">;</span>\n    children<span class=\"token operator\">?</span><span class=\"token operator\">:</span> TransferDataItem<span class=\"token punctuation\">[</span><span class=\"token punctuation\">]</span><span class=\"token punctuation\">;</span>\n    <span class=\"token punctuation\">[</span>key<span class=\"token operator\">:</span> <span class=\"token builtin\">string</span><span class=\"token punctuation\">]</span><span class=\"token operator\">:</span> <span class=\"token builtin\">unknown</span><span class=\"token punctuation\">;</span>\n<span class=\"token punctuation\">}</span><span class=\"token punctuation\">;</span>\n</code></pre>\n<h3 id=\"Position Type\">PositionType <a class=\"header-anchor scroll-count-item\" href=\"#Position Type\" data-scroll-id=\"Position Type\">#</a></h3>\n<pre class=\"language-typescript\"><code class=\"language-typescript\"><span class=\"token keyword\">export</span> <span class=\"token keyword\">type</span> <span class=\"token class-name\">PositionType</span> <span class=\"token operator\">=</span> <span class=\"token string\">&apos;left&apos;</span> <span class=\"token operator\">|</span> <span class=\"token string\">&apos;right&apos;</span><span class=\"token punctuation\">;</span>\n</code></pre>\n<h3 id=\"Drag Gap Type\">DragGapType <a class=\"header-anchor scroll-count-item\" href=\"#Drag Gap Type\" data-scroll-id=\"Drag Gap Type\">#</a></h3>\n<pre class=\"language-typescript\"><code class=\"language-typescript\"><span class=\"token keyword\">export</span> <span class=\"token keyword\">type</span> <span class=\"token class-name\">DragGapType</span> <span class=\"token operator\">=</span> <span class=\"token string\">&apos;before&apos;</span> <span class=\"token operator\">|</span> <span class=\"token string\">&apos;after&apos;</span><span class=\"token punctuation\">;</span>\n</code></pre>\n<h3 id=\"Extra Options\">ExtraOptions <a class=\"header-anchor scroll-count-item\" href=\"#Extra Options\" data-scroll-id=\"Extra Options\">#</a></h3>\n<pre class=\"language-typescript\"><code class=\"language-typescript\"><span class=\"token keyword\">export</span> <span class=\"token keyword\">type</span> <span class=\"token class-name\">ExtraOptions</span> <span class=\"token operator\">=</span> <span class=\"token punctuation\">{</span>\n    <span class=\"token comment\">/**\n     * &#x79FB;&#x52A8;&#x7684;&#x65B9;&#x5411;&#xFF0C;&#x503C;&#x4E3A;&apos;left&apos;&#x6216;&apos;right&apos;\n     * @en Move direction, &apos;left&apos; or &apos;right&apos;\n     */</span>\n    direction<span class=\"token operator\">:</span> PositionType<span class=\"token punctuation\">;</span>\n    <span class=\"token comment\">/**\n     * &#x5DE6;&#x9762;&#x677F;&#x503C;\n     * @en Data of left panel\n     */</span>\n    leftValue<span class=\"token operator\">:</span> <span class=\"token builtin\">string</span><span class=\"token punctuation\">[</span><span class=\"token punctuation\">]</span><span class=\"token punctuation\">;</span>\n    <span class=\"token comment\">/**\n     * &#x5DE6;&#x9762;&#x677F;&#x6570;&#x636E;\n     * @en Data of left panel\n     */</span>\n    leftData<span class=\"token operator\">:</span> TransferDataItem<span class=\"token punctuation\">[</span><span class=\"token punctuation\">]</span><span class=\"token punctuation\">;</span>\n    <span class=\"token comment\">/**\n     * &#x53D1;&#x751F;&#x79FB;&#x52A8;&#x7684;&#x6570;&#x636E;\n     * @en Moved data\n     */</span>\n    movedData<span class=\"token operator\">:</span> TransferDataItem<span class=\"token punctuation\">[</span><span class=\"token punctuation\">]</span><span class=\"token punctuation\">;</span>\n    <span class=\"token comment\">/**\n     * &#x53D1;&#x751F;&#x79FB;&#x52A8;&#x7684;&#x503C;\n     * @en Moved value\n     */</span>\n    movedValue<span class=\"token operator\">:</span> <span class=\"token builtin\">string</span><span class=\"token punctuation\">[</span><span class=\"token punctuation\">]</span><span class=\"token punctuation\">;</span>\n<span class=\"token punctuation\">}</span><span class=\"token punctuation\">;</span>\n</code></pre>\n<h2 id=\"ARIA And Key Board\">ARIA and KeyBoard <a class=\"header-anchor scroll-count-item\" href=\"#ARIA And Key Board\" data-scroll-id=\"ARIA And Key Board\">#</a></h2>\n<table>\n<thead>\n<tr>\n<th style=\"text-align:left\">KeyBoard</th>\n<th style=\"text-align:left\">Descripiton</th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td style=\"text-align:left\">Up Arrow</td>\n<td style=\"text-align:left\">Get the previous item focus of the current item</td>\n</tr>\n<tr>\n<td style=\"text-align:left\">Down Arrow</td>\n<td style=\"text-align:left\">Get the next item focus of the current item</td>\n</tr>\n<tr>\n<td style=\"text-align:left\">Enter</td>\n<td style=\"text-align:left\">the item selected in the current list to move to another list</td>\n</tr>\n<tr>\n<td style=\"text-align:left\">Space</td>\n<td style=\"text-align:left\">Select or cancel the current item or the item selected in the current list to move to another list</td>\n</tr>\n</tbody>\n</table>\n"}