snail.vue 2.0.9 → 2.0.10

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/README.md CHANGED
@@ -54,7 +54,11 @@
54
54
  | [Tree](https://www.yuque.com/snail-devx/js/kaynh9t44gbl6fxc#tKdSd) | **树组件;基于 nodes 渲染树,支持节点自定义,集成节点事件和本地搜索** |
55
55
  | [Wrapper](https://www.yuque.com/snail-devx/js/kaynh9t44gbl6fxc#gita6) | **包裹层组件;作为常用组件的包裹层,自动实现组件在 page 和 popup 中展现,让内容组件关注核心逻辑即可** |
56
56
 
57
- ## 3.3. **popup 弹窗组件**
57
+ ## 3.3. picker 选择器组件
58
+
59
+ > 基于IPopupManager实现的各类选择器组件,如日期选择器、时间选择器、颜色选择器、、、
60
+
61
+ ## 3.4. **popup 弹窗组件**
58
62
 
59
63
  **基于 IPopupManager 实现弹窗管理,自动管理弹窗层级、弹窗生命周期;提供基础 popup 弹窗方法;并扩展 dialog、follow、toast、confirm 弹窗方法**
60
64
 
@@ -69,7 +73,7 @@
69
73
  | [toast](https://www.yuque.com/snail-devx/js/byho94c6ms40kdb2#FWNH1) | **消息提示弹窗;模拟 Android 的 Toast 弹窗提示消息** |
70
74
  | [confirm](https://www.yuque.com/snail-devx/js/byho94c6ms40kdb2#wohc0) | **确认弹窗;模拟实现原生 confirm 弹窗** |
71
75
 
72
- ## 3.4. **prompt 提示组件**
76
+ ## 3.5. **prompt 提示组件**
73
77
 
74
78
  **封装一些提示性质的通用组件,如数据加载状态、无数据提醒等等**
75
79
 
@@ -2,7 +2,7 @@ import * as snail_view from 'snail.view';
2
2
  import { BaseStyle, HeightStyle, FlexBoxStyle, WidthStyle, BorderStyle, PaddingStyle, MarginStyle } from 'snail.view';
3
3
  import * as vue from 'vue';
4
4
  import { Component, ShallowRef, Ref, WatchSource, App } from 'vue';
5
- import { IScope, RunResult, IAsyncScope } from 'snail.core';
5
+ import { IScope, RunResult, ITimeValueManager, IAsyncScope } from 'snail.core';
6
6
 
7
7
  /**
8
8
  * loading提示框的配置选项
@@ -257,6 +257,26 @@ type ScrollOptions = {
257
257
  * - true 支持滚动
258
258
  */
259
259
  scrollY?: boolean;
260
+ /**
261
+ * 滚动条尺寸
262
+ * - normal :常规,10px
263
+ * - small :小尺寸,宽度 6px
264
+ * - mini :迷你尺寸,宽度 4px
265
+ * - none :无,不显示滚动条,但仍然能够滚动
266
+ */
267
+ barSize?: "normal" | "small" | "mini" | "none";
268
+ /**
269
+ * 滚动条模式
270
+ * - auto(默认值):自动,内容溢出时自动显示滚动条
271
+ * - hover:鼠标进入时才显示滚动条
272
+ */
273
+ barMode?: "auto" | "hover";
274
+ /**
275
+ * 滚动条防抖处理
276
+ * - 垂直滚动条在【有-无】之间变化时,会导致内容width变化,从而产生抖动
277
+ * - 为true时,会给滚动条方向一个处理padding值,从而实现防抖效果
278
+ */
279
+ debounce?: boolean;
260
280
  };
261
281
  /**
262
282
  * 滚动视图事件
@@ -641,6 +661,17 @@ type TreeNodeSlotOptions<Node> = {
641
661
  * Vue 动画容器组件配置选项
642
662
  */
643
663
  type TransitionOptions = {
664
+ /**
665
+ * 是分组动画,还是单个动画
666
+ * - true 则使用 TransitionGroup
667
+ * - false 则使用 Transition
668
+ */
669
+ group: boolean;
670
+ /**
671
+ * 动画持续时间
672
+ * - 单位ms,默认200ms
673
+ */
674
+ duration?: number;
644
675
  /**
645
676
  * 动画的自定义类样式名称
646
677
  * - 默认为 `snail-transition`;不会作为 Transition的 name 属性名
@@ -677,12 +708,6 @@ type TransitionOptions = {
677
708
  * | `right-left` | 右进左出 | 进入时 `translateX` 100% - 0 | 离开时 `translateX` 0 - -100% |
678
709
  */
679
710
  effect?: TransitionEffectOptions | Array<TransitionEffectOptions>;
680
- /**
681
- * 是分组动画,还是单个动画
682
- * - true 则使用 TransitionGroup
683
- * - false 则使用 Transition
684
- */
685
- group: boolean;
686
711
  };
687
712
  type TransitionEffectOptions = "fade" | "scale" | "rotate" | "up" | "down" | "up-down" | "down-up" | "left" | "right" | "left-right" | "right-left";
688
713
 
@@ -884,6 +909,9 @@ type SortEvent = {
884
909
  * 布局组件 数据结构
885
910
  */
886
911
 
912
+ /**
913
+ * 布局组件配置选项
914
+ */
887
915
  type LayoutOptions = {
888
916
  /**
889
917
  * 布局模式:水平,还是垂直
@@ -1967,6 +1995,90 @@ type DynamicOptions<Props = void> = ComponentOptions & Pick<ComponentBindOptions
1967
1995
  */
1968
1996
  declare function mount<Props>(target: HTMLElement, options: DynamicOptions<Props>, onDestroyed?: (fn: () => void) => void): IScope;
1969
1997
 
1998
+ /**
1999
+ * 时间选择控件配置项
2000
+ */
2001
+ type TimePickerOptions = {
2002
+ /**
2003
+ * 已选值
2004
+ * - 格式为 “时:分:秒"
2005
+ */
2006
+ value?: string;
2007
+ /**
2008
+ * 禁用【初始化】功能
2009
+ * - 仅在`value`为空时才生效,若`value`不为空,则忽略此属性配置
2010
+ * - 为true,不自动选中【现在】的时分秒
2011
+ * - 为false时,自动选中【现在】的时分秒
2012
+ * - 默认自动初始化
2013
+ */
2014
+ initialDisabled?: boolean;
2015
+ /**
2016
+ * 禁用【现在】功能
2017
+ * - 为true时,不出【现在】功能
2018
+ */
2019
+ nowDisabled?: boolean;
2020
+ /**
2021
+ * 时间值管理器
2022
+ * - 若传入此值,则 `format`、`min`、`max` 失效
2023
+ */
2024
+ manager?: ITimeValueManager;
2025
+ /**
2026
+ * 时间格式
2027
+ */
2028
+ format?: "HH:mm:ss" | "HH:mm";
2029
+ /**
2030
+ * 最小时间
2031
+ * - 传入值格式为 "时:分:秒"
2032
+ * - 如 "08:30:00",则08:30:00为最小时间,之前的时间不可选择
2033
+ * - 如 "08" ,则 08:00:00为最小时间,之前的时间不可选择
2034
+ */
2035
+ min?: string;
2036
+ /**
2037
+ * 最大时间
2038
+ * - 传入值格式为 "时:分:秒"
2039
+ * - 如 "08:30:00",则08:30:00为最大时间,之后的时间不可选择
2040
+ * - 如 "08" ,则 08:00:00为最大时间,之后时间不可选择
2041
+ */
2042
+ max?: string;
2043
+ };
2044
+ /**
2045
+ * 日期时间选择 事件
2046
+ */
2047
+ type DatetimePickerEvents = {
2048
+ /**
2049
+ * 清空
2050
+ */
2051
+ clear: [];
2052
+ /**
2053
+ * 确定选择
2054
+ * - @param value 已选则的日期时间
2055
+ */
2056
+ confirm: [value: string];
2057
+ };
2058
+
2059
+ /**
2060
+ * 选择器 相关数据实体
2061
+ */
2062
+
2063
+ /**
2064
+ * 接口:选择器管理器
2065
+ */
2066
+ interface IPickerManager {
2067
+ /**
2068
+ * 显示【时间】选择控件
2069
+ * @param target 哪个元素触发,基于此元素计算位置
2070
+ * @param options 时间选择控件配置选项
2071
+ * @returns 异步任务,可销毁时间选择控件;可接收时间选择控件的选择值
2072
+ */
2073
+ showTime(target: HTMLElement, options?: TimePickerOptions): IAsyncScope<string>;
2074
+ }
2075
+
2076
+ /**
2077
+ * 使用选择器
2078
+ * @returns 选择器实例+作用域对象
2079
+ */
2080
+ declare function usePicker(): IPickerManager & IScope;
2081
+
1970
2082
  /**
1971
2083
  * 公共通用数据结构:
1972
2084
  * 1、在弹窗、模态弹窗、跟随弹窗的效果下复用
@@ -2169,7 +2281,7 @@ type FollowOptions<Props = void, Model = void> = PopupOptions<Props, Model> & {
2169
2281
  */
2170
2282
  followWidth?: boolean;
2171
2283
  /**
2172
- * 启用【高度】更碎
2284
+ * 启用【高度】跟随
2173
2285
  * - 为true则和 target 高度保持一致
2174
2286
  * - false时,高度由 弹出组件 自己维护
2175
2287
  * - 不管是true、还是false,若高度超过浏览器最大高度,会进行强制干预
@@ -2237,6 +2349,7 @@ type FollowOptions<Props = void, Model = void> = PopupOptions<Props, Model> & {
2237
2349
  /**
2238
2350
  * target改变时是否关闭弹窗
2239
2351
  * - target尺寸、位置变化
2352
+ * - target点击时
2240
2353
  */
2241
2354
  closeOnTarget?: boolean;
2242
2355
  };
@@ -3028,5 +3141,5 @@ declare const components: {
3028
3141
  });
3029
3142
  };
3030
3143
 
3031
- export { components, getSvgDraw, mount, onAppCreated, triggerAppCreated, usePopup, useReactive, useTreeContext };
3032
- export type { ButtonOptions, ChangeEvents, ChooseEvents, ChooseItem, ChooseOptions, ClickEvents, CloseEvents, ComponentBindOptions, ComponentOptions, ConfirmAreaOptions, ConfirmOptions, DatePickerEvents, DatepickerOptions, DeleteEvents, DialogHandle, DialogOptions, DisabledOptions, DragVerifyInfo, DragVerifyOptions, EmitterType, EmptyOptions, EventsType, FoldEvents, FoldOptions, FoldStatus, FollowElectResult, FollowExtend, FollowHandle, FollowOptions, FollowStrategy, FollowStrategyOptions, FooterEvents, FooterOptions, HeaderEvents, HeaderOptions, INumberFormatter, IPopupManager, IReactiveManager, ISelectContext, ITreeBaseContext, IconOptions, IconType, InputEvents, InputOptions, LayoutOptions, LoadingOptions, MessageOptions, MoveEvents, NumberBaseOptions, NumberEvents, NumberFormatResult, NumberOptions, PlaceholderOptions, PopupDescriptor, PopupHandle, PopupOptions, PopupStatus, PopupStatusOptions, PropsType, ReactiveVar, ReadonlyOptions, ScrollEvents, ScrollOptions, ScrollStatus, SearchEvents, SearchOptions, SelectBaseEvents, SelectBaseOptions, SelectEvents, SelectItem, SelectNodeEvents, SelectNodeOptions, SelectOptions, SelectPopupEvents, SelectPopupExtend, SelectPopupOptions, SelectSlotOptions, SortEvent, SortEvents, SortGroupHook, SortGroupOptions, SortOptions, SwitchEvents, SwitchOptions, TableColOptions, TableOptions, TableRowOptions, TextareaEvents, TextareaOptions, TitleOptions, ToastOptions, TransitionEffectOptions, TransitionOptions, TreeEvents, TreeNode, TreeNodeEvents, TreeNodeExtend, TreeNodeModel, TreeNodeOptions, TreeNodeRenderOptions, TreeNodeSlotOptions, TreeOptions, TreeSearchResult, ValueOptions, WrapperEvents, WrapperOptions };
3144
+ export { components, getSvgDraw, mount, onAppCreated, triggerAppCreated, usePicker, usePopup, useReactive, useTreeContext };
3145
+ export type { ButtonOptions, ChangeEvents, ChooseEvents, ChooseItem, ChooseOptions, ClickEvents, CloseEvents, ComponentBindOptions, ComponentOptions, ConfirmAreaOptions, ConfirmOptions, DatePickerEvents, DatepickerOptions, DatetimePickerEvents, DeleteEvents, DialogHandle, DialogOptions, DisabledOptions, DragVerifyInfo, DragVerifyOptions, EmitterType, EmptyOptions, EventsType, FoldEvents, FoldOptions, FoldStatus, FollowElectResult, FollowExtend, FollowHandle, FollowOptions, FollowStrategy, FollowStrategyOptions, FooterEvents, FooterOptions, HeaderEvents, HeaderOptions, INumberFormatter, IPickerManager, IPopupManager, IReactiveManager, ISelectContext, ITreeBaseContext, IconOptions, IconType, InputEvents, InputOptions, LayoutOptions, LoadingOptions, MessageOptions, MoveEvents, NumberBaseOptions, NumberEvents, NumberFormatResult, NumberOptions, PlaceholderOptions, PopupDescriptor, PopupHandle, PopupOptions, PopupStatus, PopupStatusOptions, PropsType, ReactiveVar, ReadonlyOptions, ScrollEvents, ScrollOptions, ScrollStatus, SearchEvents, SearchOptions, SelectBaseEvents, SelectBaseOptions, SelectEvents, SelectItem, SelectNodeEvents, SelectNodeOptions, SelectOptions, SelectPopupEvents, SelectPopupExtend, SelectPopupOptions, SelectSlotOptions, SortEvent, SortEvents, SortGroupHook, SortGroupOptions, SortOptions, SwitchEvents, SwitchOptions, TableColOptions, TableOptions, TableRowOptions, TextareaEvents, TextareaOptions, TimePickerOptions, TitleOptions, ToastOptions, TransitionEffectOptions, TransitionOptions, TreeEvents, TreeNode, TreeNodeEvents, TreeNodeExtend, TreeNodeModel, TreeNodeOptions, TreeNodeRenderOptions, TreeNodeSlotOptions, TreeOptions, TreeSearchResult, ValueOptions, WrapperEvents, WrapperOptions };