161847f8eSopenharmony_ci/*
261847f8eSopenharmony_ci * Copyright (c) 2023 Huawei Device Co., Ltd.
361847f8eSopenharmony_ci * Licensed under the Apache License, Version 2.0 (the "License");
461847f8eSopenharmony_ci * you may not use this file except in compliance with the License.
561847f8eSopenharmony_ci * You may obtain a copy of the License at
661847f8eSopenharmony_ci *
761847f8eSopenharmony_ci *     http://www.apache.org/licenses/LICENSE-2.0
861847f8eSopenharmony_ci *
961847f8eSopenharmony_ci * Unless required by applicable law or agreed to in writing, software
1061847f8eSopenharmony_ci * distributed under the License is distributed on an "AS IS" BASIS,
1161847f8eSopenharmony_ci * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
1261847f8eSopenharmony_ci * See the License for the specific language governing permissions and
1361847f8eSopenharmony_ci * limitations under the License.
1461847f8eSopenharmony_ci */
1561847f8eSopenharmony_ci
1661847f8eSopenharmony_ci/**
1761847f8eSopenharmony_ci * @file
1861847f8eSopenharmony_ci * @kit ArkUI
1961847f8eSopenharmony_ci */
2061847f8eSopenharmony_ci
2161847f8eSopenharmony_ci/**
2261847f8eSopenharmony_ci * Import the WindowStatusType type object for onHoverStatusChange.
2361847f8eSopenharmony_ci *
2461847f8eSopenharmony_ci * @typedef {import('../api/@ohos.window').default.WindowStatusType} WindowStatusType
2561847f8eSopenharmony_ci * @syscap SystemCapability.ArkUI.ArkUI.Full
2661847f8eSopenharmony_ci * @atomicservice
2761847f8eSopenharmony_ci * @since 12
2861847f8eSopenharmony_ci */
2961847f8eSopenharmony_cideclare type WindowStatusType = import('../api/@ohos.window').default.WindowStatusType;
3061847f8eSopenharmony_ci
3161847f8eSopenharmony_ci/**
3261847f8eSopenharmony_ci * FolderStack constructor options.
3361847f8eSopenharmony_ci *
3461847f8eSopenharmony_ci * @interface FolderStackOptions
3561847f8eSopenharmony_ci * @syscap SystemCapability.ArkUI.ArkUI.Full
3661847f8eSopenharmony_ci * @crossplatform
3761847f8eSopenharmony_ci * @atomicservice
3861847f8eSopenharmony_ci * @since 13
3961847f8eSopenharmony_ci */
4061847f8eSopenharmony_ciinterface FolderStackOptions {
4161847f8eSopenharmony_ci  /**
4261847f8eSopenharmony_ci   * Define the IDs of the sub component that will be moved to the upper half screen when hovering.
4361847f8eSopenharmony_ci   *
4461847f8eSopenharmony_ci   * @type { ?Array<string> }
4561847f8eSopenharmony_ci   * @syscap SystemCapability.ArkUI.ArkUI.Full
4661847f8eSopenharmony_ci   * @crossplatform
4761847f8eSopenharmony_ci   * @since 11
4861847f8eSopenharmony_ci   */
4961847f8eSopenharmony_ci  /**
5061847f8eSopenharmony_ci   * Define the IDs of the sub component that will be moved to the upper half screen when hovering.
5161847f8eSopenharmony_ci   *
5261847f8eSopenharmony_ci   * @type { ?Array<string> }
5361847f8eSopenharmony_ci   * @syscap SystemCapability.ArkUI.ArkUI.Full
5461847f8eSopenharmony_ci   * @crossplatform
5561847f8eSopenharmony_ci   * @atomicservice
5661847f8eSopenharmony_ci   * @since 12
5761847f8eSopenharmony_ci   */
5861847f8eSopenharmony_ci  upperItems?: Array<string>;
5961847f8eSopenharmony_ci}
6061847f8eSopenharmony_ci
6161847f8eSopenharmony_ci/**
6261847f8eSopenharmony_ci * Provides ports for stacking containers.
6361847f8eSopenharmony_ci *
6461847f8eSopenharmony_ci * @interface FolderStackInterface
6561847f8eSopenharmony_ci * @syscap SystemCapability.ArkUI.ArkUI.Full
6661847f8eSopenharmony_ci * @crossplatform
6761847f8eSopenharmony_ci * @since 11
6861847f8eSopenharmony_ci */
6961847f8eSopenharmony_ci/**
7061847f8eSopenharmony_ci * Provides ports for stacking containers.
7161847f8eSopenharmony_ci *
7261847f8eSopenharmony_ci * @interface FolderStackInterface
7361847f8eSopenharmony_ci * @syscap SystemCapability.ArkUI.ArkUI.Full
7461847f8eSopenharmony_ci * @crossplatform
7561847f8eSopenharmony_ci * @atomicservice
7661847f8eSopenharmony_ci * @since 12
7761847f8eSopenharmony_ci */
7861847f8eSopenharmony_ci
7961847f8eSopenharmony_ciinterface FolderStackInterface {
8061847f8eSopenharmony_ci  /**
8161847f8eSopenharmony_ci   * Defines the constructor of folderStack.
8261847f8eSopenharmony_ci   *
8361847f8eSopenharmony_ci   * @param { object } value - id of children need to be show in upperItem
8461847f8eSopenharmony_ci   * @returns { FolderStackAttribute }
8561847f8eSopenharmony_ci   * @syscap SystemCapability.ArkUI.ArkUI.Full
8661847f8eSopenharmony_ci   * @crossplatform
8761847f8eSopenharmony_ci   * @since 11
8861847f8eSopenharmony_ci   */
8961847f8eSopenharmony_ci  /**
9061847f8eSopenharmony_ci   * Defines the constructor of folderStack.
9161847f8eSopenharmony_ci   *
9261847f8eSopenharmony_ci   * @param { object } value - id of children need to be show in upperItem
9361847f8eSopenharmony_ci   * @returns { FolderStackAttribute }
9461847f8eSopenharmony_ci   * @syscap SystemCapability.ArkUI.ArkUI.Full
9561847f8eSopenharmony_ci   * @crossplatform
9661847f8eSopenharmony_ci   * @atomicservice
9761847f8eSopenharmony_ci   * @since 12
9861847f8eSopenharmony_ci   */
9961847f8eSopenharmony_ci  /**
10061847f8eSopenharmony_ci   * Defines the constructor of folderStack.
10161847f8eSopenharmony_ci   *
10261847f8eSopenharmony_ci   * @param { FolderStackOptions } [options] - id of children need to be show in upperItem
10361847f8eSopenharmony_ci   * @returns { FolderStackAttribute }
10461847f8eSopenharmony_ci   * @syscap SystemCapability.ArkUI.ArkUI.Full
10561847f8eSopenharmony_ci   * @crossplatform
10661847f8eSopenharmony_ci   * @atomicservice
10761847f8eSopenharmony_ci   * @since 13
10861847f8eSopenharmony_ci   */
10961847f8eSopenharmony_ci  (options?: FolderStackOptions): FolderStackAttribute;
11061847f8eSopenharmony_ci}
11161847f8eSopenharmony_ci
11261847f8eSopenharmony_ci/**
11361847f8eSopenharmony_ci * Information when onFolderStateChange.
11461847f8eSopenharmony_ci *
11561847f8eSopenharmony_ci * @interface OnFoldStatusChangeInfo
11661847f8eSopenharmony_ci * @syscap SystemCapability.ArkUI.ArkUI.Full
11761847f8eSopenharmony_ci * @crossplatform
11861847f8eSopenharmony_ci * @atomicservice
11961847f8eSopenharmony_ci * @since 13
12061847f8eSopenharmony_ci */
12161847f8eSopenharmony_ciinterface OnFoldStatusChangeInfo {
12261847f8eSopenharmony_ci  /**
12361847f8eSopenharmony_ci   * Folder state.
12461847f8eSopenharmony_ci   *
12561847f8eSopenharmony_ci   * @type { FoldStatus }
12661847f8eSopenharmony_ci   * @syscap SystemCapability.ArkUI.ArkUI.Full
12761847f8eSopenharmony_ci   * @crossplatform
12861847f8eSopenharmony_ci   * @since 11
12961847f8eSopenharmony_ci   */
13061847f8eSopenharmony_ci  /**
13161847f8eSopenharmony_ci   * Folder state.
13261847f8eSopenharmony_ci   *
13361847f8eSopenharmony_ci   * @type { FoldStatus }
13461847f8eSopenharmony_ci   * @syscap SystemCapability.ArkUI.ArkUI.Full
13561847f8eSopenharmony_ci   * @crossplatform
13661847f8eSopenharmony_ci   * @atomicservice
13761847f8eSopenharmony_ci   * @since 12
13861847f8eSopenharmony_ci   */
13961847f8eSopenharmony_ci  foldStatus: FoldStatus
14061847f8eSopenharmony_ci}
14161847f8eSopenharmony_ci
14261847f8eSopenharmony_ci/**
14361847f8eSopenharmony_ci * Callback when onStateChangeCallback.
14461847f8eSopenharmony_ci * 
14561847f8eSopenharmony_ci * @typedef { function } OnFoldStatusChangeCallback
14661847f8eSopenharmony_ci * @param { OnFoldStatusChangeInfo } event - the folding information of the current device
14761847f8eSopenharmony_ci * @syscap SystemCapability.ArkUI.ArkUI.Full
14861847f8eSopenharmony_ci * @crossplatform
14961847f8eSopenharmony_ci * @atomicservice
15061847f8eSopenharmony_ci * @since 13
15161847f8eSopenharmony_ci */
15261847f8eSopenharmony_cideclare type OnFoldStatusChangeCallback = (event: OnFoldStatusChangeInfo) => void;
15361847f8eSopenharmony_ci
15461847f8eSopenharmony_ci/**
15561847f8eSopenharmony_ci * Callback when onHoverStatusChange.
15661847f8eSopenharmony_ci * 
15761847f8eSopenharmony_ci * @typedef { function } OnHoverStatusChangeCallback
15861847f8eSopenharmony_ci * @param { HoverEventParam } param - hover event param
15961847f8eSopenharmony_ci * @syscap SystemCapability.ArkUI.ArkUI.Full
16061847f8eSopenharmony_ci * @atomicservice
16161847f8eSopenharmony_ci * @since 13
16261847f8eSopenharmony_ci */
16361847f8eSopenharmony_cideclare type OnHoverStatusChangeCallback = (param: HoverEventParam) => void;
16461847f8eSopenharmony_ci
16561847f8eSopenharmony_ci/**
16661847f8eSopenharmony_ci/**
16761847f8eSopenharmony_ci * @extends CommonMethod<FolderStackAttribute>
16861847f8eSopenharmony_ci * @syscap SystemCapability.ArkUI.ArkUI.Full
16961847f8eSopenharmony_ci * @crossplatform
17061847f8eSopenharmony_ci * @since 11
17161847f8eSopenharmony_ci */
17261847f8eSopenharmony_ci/**
17361847f8eSopenharmony_ci * @extends CommonMethod<FolderStackAttribute>
17461847f8eSopenharmony_ci * @syscap SystemCapability.ArkUI.ArkUI.Full
17561847f8eSopenharmony_ci * @crossplatform
17661847f8eSopenharmony_ci * @atomicservice
17761847f8eSopenharmony_ci * @since 12
17861847f8eSopenharmony_ci */
17961847f8eSopenharmony_cideclare class FolderStackAttribute extends CommonMethod<FolderStackAttribute> {
18061847f8eSopenharmony_ci  /**
18161847f8eSopenharmony_ci   * Set the alignment of folderStack.
18261847f8eSopenharmony_ci   *
18361847f8eSopenharmony_ci   * @param { Alignment } value - align of children
18461847f8eSopenharmony_ci   * @returns { FolderStackAttribute }
18561847f8eSopenharmony_ci   * @syscap SystemCapability.ArkUI.ArkUI.Full
18661847f8eSopenharmony_ci   * @crossplatform
18761847f8eSopenharmony_ci   * @since 11
18861847f8eSopenharmony_ci   */
18961847f8eSopenharmony_ci  /**
19061847f8eSopenharmony_ci   * Set the alignment of folderStack.
19161847f8eSopenharmony_ci   *
19261847f8eSopenharmony_ci   * @param { Alignment } value - align of children
19361847f8eSopenharmony_ci   * @returns { FolderStackAttribute }
19461847f8eSopenharmony_ci   * @syscap SystemCapability.ArkUI.ArkUI.Full
19561847f8eSopenharmony_ci   * @crossplatform
19661847f8eSopenharmony_ci   * @atomicservice
19761847f8eSopenharmony_ci   * @since 12
19861847f8eSopenharmony_ci   */
19961847f8eSopenharmony_ci  alignContent(value: Alignment): FolderStackAttribute;
20061847f8eSopenharmony_ci
20161847f8eSopenharmony_ci  /**
20261847f8eSopenharmony_ci   * Callback folderState when the folderState changes
20361847f8eSopenharmony_ci   *
20461847f8eSopenharmony_ci   * @param { function } callback - executed when folderStatus changed
20561847f8eSopenharmony_ci   * @returns { FolderStackAttribute }
20661847f8eSopenharmony_ci   * @syscap SystemCapability.ArkUI.ArkUI.Full
20761847f8eSopenharmony_ci   * @crossplatform
20861847f8eSopenharmony_ci   * @since 11
20961847f8eSopenharmony_ci   */
21061847f8eSopenharmony_ci   /**
21161847f8eSopenharmony_ci   * Callback folderState when the folderState changes
21261847f8eSopenharmony_ci   *
21361847f8eSopenharmony_ci   * @param { function } callback - executed when folderStatus changed
21461847f8eSopenharmony_ci   * @returns { FolderStackAttribute }
21561847f8eSopenharmony_ci   * @syscap SystemCapability.ArkUI.ArkUI.Full
21661847f8eSopenharmony_ci   * @crossplatform
21761847f8eSopenharmony_ci   * @atomicservice
21861847f8eSopenharmony_ci   * @since 12
21961847f8eSopenharmony_ci   */
22061847f8eSopenharmony_ci   /**
22161847f8eSopenharmony_ci   * Callback folderState when the folderState changes
22261847f8eSopenharmony_ci   *
22361847f8eSopenharmony_ci   * @param { OnFoldStatusChangeCallback } callback - executed when folderStatus changed
22461847f8eSopenharmony_ci   * @returns { FolderStackAttribute }
22561847f8eSopenharmony_ci   * @syscap SystemCapability.ArkUI.ArkUI.Full
22661847f8eSopenharmony_ci   * @crossplatform
22761847f8eSopenharmony_ci   * @atomicservice
22861847f8eSopenharmony_ci   * @since 13
22961847f8eSopenharmony_ci   */
23061847f8eSopenharmony_ci  onFolderStateChange(callback: OnFoldStatusChangeCallback): FolderStackAttribute;
23161847f8eSopenharmony_ci
23261847f8eSopenharmony_ci
23361847f8eSopenharmony_ci  /**
23461847f8eSopenharmony_ci   * Callback hoverStatus|folderStatus|rotation|windowMode when the hoverStatus changes
23561847f8eSopenharmony_ci   *
23661847f8eSopenharmony_ci   * @param { function } handler - executed when hoverStatus changed
23761847f8eSopenharmony_ci   * @returns { FolderStackAttribute }
23861847f8eSopenharmony_ci   * @syscap SystemCapability.ArkUI.ArkUI.Full
23961847f8eSopenharmony_ci   * @atomicservice
24061847f8eSopenharmony_ci   * @since 12
24161847f8eSopenharmony_ci   */
24261847f8eSopenharmony_ci  /**
24361847f8eSopenharmony_ci   * Callback hoverStatus|folderStatus|rotation|windowMode when the hoverStatus changes
24461847f8eSopenharmony_ci   *
24561847f8eSopenharmony_ci   * @param { OnHoverStatusChangeCallback } handler - executed when hoverStatus changed
24661847f8eSopenharmony_ci   * @returns { FolderStackAttribute }
24761847f8eSopenharmony_ci   * @syscap SystemCapability.ArkUI.ArkUI.Full
24861847f8eSopenharmony_ci   * @atomicservice
24961847f8eSopenharmony_ci   * @since 13
25061847f8eSopenharmony_ci   */
25161847f8eSopenharmony_ci  onHoverStatusChange(handler: OnHoverStatusChangeCallback): FolderStackAttribute;
25261847f8eSopenharmony_ci
25361847f8eSopenharmony_ci  /**
25461847f8eSopenharmony_ci   * Enable the animation of folderStack.
25561847f8eSopenharmony_ci   *
25661847f8eSopenharmony_ci   * @param { boolean } value - enable the animation of folderStatus changed
25761847f8eSopenharmony_ci   * @returns { FolderStackAttribute }
25861847f8eSopenharmony_ci   * @syscap SystemCapability.ArkUI.ArkUI.Full
25961847f8eSopenharmony_ci   * @crossplatform
26061847f8eSopenharmony_ci   * @since 11
26161847f8eSopenharmony_ci   */
26261847f8eSopenharmony_ci  /**
26361847f8eSopenharmony_ci   * Enable the animation of folderStack.
26461847f8eSopenharmony_ci   *
26561847f8eSopenharmony_ci   * @param { boolean } value - enable the animation of folderStatus changed
26661847f8eSopenharmony_ci   * @returns { FolderStackAttribute }
26761847f8eSopenharmony_ci   * @syscap SystemCapability.ArkUI.ArkUI.Full
26861847f8eSopenharmony_ci   * @crossplatform
26961847f8eSopenharmony_ci   * @atomicservice
27061847f8eSopenharmony_ci   * @since 12
27161847f8eSopenharmony_ci   */
27261847f8eSopenharmony_ci  enableAnimation(value: boolean): FolderStackAttribute;
27361847f8eSopenharmony_ci
27461847f8eSopenharmony_ci  /**
27561847f8eSopenharmony_ci   * Enable auto halfFolder when orientation.
27661847f8eSopenharmony_ci   *
27761847f8eSopenharmony_ci   * @param { boolean } value - enable auto halfFold
27861847f8eSopenharmony_ci   * @returns { FolderStackAttribute }
27961847f8eSopenharmony_ci   * @syscap SystemCapability.ArkUI.ArkUI.Full
28061847f8eSopenharmony_ci   * @crossplatform
28161847f8eSopenharmony_ci   * @since 11
28261847f8eSopenharmony_ci   */
28361847f8eSopenharmony_ci  /**
28461847f8eSopenharmony_ci   * Enable auto halfFolder when orientation.
28561847f8eSopenharmony_ci   *
28661847f8eSopenharmony_ci   * @param { boolean } value - enable auto halfFold
28761847f8eSopenharmony_ci   * @returns { FolderStackAttribute }
28861847f8eSopenharmony_ci   * @syscap SystemCapability.ArkUI.ArkUI.Full
28961847f8eSopenharmony_ci   * @crossplatform
29061847f8eSopenharmony_ci   * @atomicservice
29161847f8eSopenharmony_ci   * @since 12
29261847f8eSopenharmony_ci   */
29361847f8eSopenharmony_ci  autoHalfFold(value: boolean): FolderStackAttribute;
29461847f8eSopenharmony_ci}
29561847f8eSopenharmony_ci
29661847f8eSopenharmony_ci/**
29761847f8eSopenharmony_ci * Defines the Embed Data info.
29861847f8eSopenharmony_ci *
29961847f8eSopenharmony_ci * @interface HoverEventParam
30061847f8eSopenharmony_ci * @syscap SystemCapability.ArkUI.ArkUI.Full
30161847f8eSopenharmony_ci * @atomicservice
30261847f8eSopenharmony_ci * @since 12
30361847f8eSopenharmony_ci */
30461847f8eSopenharmony_cideclare interface HoverEventParam {
30561847f8eSopenharmony_ci  /**
30661847f8eSopenharmony_ci   * Folder state.
30761847f8eSopenharmony_ci   *
30861847f8eSopenharmony_ci   * @type { FoldStatus }
30961847f8eSopenharmony_ci   * @syscap SystemCapability.ArkUI.ArkUI.Full
31061847f8eSopenharmony_ci   * @atomicservice
31161847f8eSopenharmony_ci   * @since 12
31261847f8eSopenharmony_ci   */
31361847f8eSopenharmony_ci  foldStatus: FoldStatus
31461847f8eSopenharmony_ci
31561847f8eSopenharmony_ci  /**
31661847f8eSopenharmony_ci   * Is hover mode
31761847f8eSopenharmony_ci   *
31861847f8eSopenharmony_ci   * @type { boolean }
31961847f8eSopenharmony_ci   * @syscap SystemCapability.ArkUI.ArkUI.Full
32061847f8eSopenharmony_ci   * @atomicservice
32161847f8eSopenharmony_ci   * @since 12
32261847f8eSopenharmony_ci   */
32361847f8eSopenharmony_ci  isHoverMode: boolean
32461847f8eSopenharmony_ci
32561847f8eSopenharmony_ci  /**
32661847f8eSopenharmony_ci   * App rotation
32761847f8eSopenharmony_ci   *
32861847f8eSopenharmony_ci   * @type { AppRotation }
32961847f8eSopenharmony_ci   * @syscap SystemCapability.ArkUI.ArkUI.Full
33061847f8eSopenharmony_ci   * @atomicservice
33161847f8eSopenharmony_ci   * @since 12
33261847f8eSopenharmony_ci   */
33361847f8eSopenharmony_ci  appRotation: AppRotation
33461847f8eSopenharmony_ci
33561847f8eSopenharmony_ci  /**
33661847f8eSopenharmony_ci   * Window status type
33761847f8eSopenharmony_ci   *
33861847f8eSopenharmony_ci   * @type { WindowStatusType }
33961847f8eSopenharmony_ci   * @syscap SystemCapability.ArkUI.ArkUI.Full
34061847f8eSopenharmony_ci   * @atomicservice
34161847f8eSopenharmony_ci   * @since 12
34261847f8eSopenharmony_ci   */
34361847f8eSopenharmony_ci  windowStatusType: WindowStatusType
34461847f8eSopenharmony_ci}
34561847f8eSopenharmony_ci/**
34661847f8eSopenharmony_ci * Defines FolderStack Component.
34761847f8eSopenharmony_ci *
34861847f8eSopenharmony_ci * @syscap SystemCapability.ArkUI.ArkUI.Full
34961847f8eSopenharmony_ci * @crossplatform
35061847f8eSopenharmony_ci * @since 11
35161847f8eSopenharmony_ci */
35261847f8eSopenharmony_ci/**
35361847f8eSopenharmony_ci * Defines FolderStack Component.
35461847f8eSopenharmony_ci *
35561847f8eSopenharmony_ci * @syscap SystemCapability.ArkUI.ArkUI.Full
35661847f8eSopenharmony_ci * @crossplatform
35761847f8eSopenharmony_ci * @atomicservice
35861847f8eSopenharmony_ci * @since 12
35961847f8eSopenharmony_ci */
36061847f8eSopenharmony_cideclare const FolderStack: FolderStackInterface;
36161847f8eSopenharmony_ci
36261847f8eSopenharmony_ci/**
36361847f8eSopenharmony_ci * Defines FolderStack Component instance.
36461847f8eSopenharmony_ci *
36561847f8eSopenharmony_ci * @syscap SystemCapability.ArkUI.ArkUI.Full
36661847f8eSopenharmony_ci * @crossplatform
36761847f8eSopenharmony_ci * @since 11
36861847f8eSopenharmony_ci */
36961847f8eSopenharmony_ci/**
37061847f8eSopenharmony_ci * Defines FolderStack Component instance.
37161847f8eSopenharmony_ci *
37261847f8eSopenharmony_ci * @syscap SystemCapability.ArkUI.ArkUI.Full
37361847f8eSopenharmony_ci * @crossplatform
37461847f8eSopenharmony_ci * @atomicservice
37561847f8eSopenharmony_ci * @since 12
37661847f8eSopenharmony_ci */
37761847f8eSopenharmony_cideclare const FolderStackInstance: FolderStackAttribute;
378