@ebfe/vant-kit 0.0.4 → 0.0.6

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.
@@ -12,13 +12,13 @@ export type TSPConfirmDisabledOptionPayload = {
12
12
  declare const _default: __VLS_WithTemplateSlots<import('vue').DefineComponent<TSinglePickerProps, {}, {}, {}, {}, import('vue').ComponentOptionsMixin, import('vue').ComponentOptionsMixin, {} & {
13
13
  search: (value: string) => any;
14
14
  confirm: (option: any) => any;
15
- "update:modelValue": (value: any) => any;
16
15
  confirmDisabledOption: (p: TSPConfirmDisabledOptionPayload) => any;
16
+ "update:modelValue": (value: any) => any;
17
17
  }, string, import('vue').PublicProps, Readonly<TSinglePickerProps> & Readonly<{
18
18
  onSearch?: ((value: string) => any) | undefined;
19
19
  onConfirm?: ((option: any) => any) | undefined;
20
- "onUpdate:modelValue"?: ((value: any) => any) | undefined;
21
20
  onConfirmDisabledOption?: ((p: TSPConfirmDisabledOptionPayload) => any) | undefined;
21
+ "onUpdate:modelValue"?: ((value: any) => any) | undefined;
22
22
  }>, {
23
23
  showSearch: boolean;
24
24
  searchDelay: number;
@@ -0,0 +1,78 @@
1
+ export type TCurrentCaptchaConfig = {
2
+ startSlidingTime: Date;
3
+ endSlidingTime: Date;
4
+ trackList: any[];
5
+ bgImageWidth: number;
6
+ bgImageHeight: number;
7
+ templateImageWidth: number;
8
+ templateImageHeight: number;
9
+ end: number;
10
+ startX: number;
11
+ startY: number;
12
+ isMoving: boolean;
13
+ moveX: number;
14
+ movePercent: number;
15
+ };
16
+ export type TVerifyCodeDatasource = {
17
+ id: string;
18
+ captcha: {
19
+ backgroundImage: string;
20
+ backgroundImageWidth: number;
21
+ backgroundImageHeight: number;
22
+ templateImage: string;
23
+ templateImageWidth: number;
24
+ templateImageHeight: number;
25
+ };
26
+ };
27
+ export type TCheckSliderVerifyCodeFuncPayload = {
28
+ id: string;
29
+ captchaInfo: TCurrentCaptchaConfig;
30
+ };
31
+ export type TCheckSliderVerifyCodeFuncRes = {
32
+ matching: boolean;
33
+ smsSendKey: string;
34
+ };
35
+ export type TSliderVerifyProcessingCloseFuncPayload = {
36
+ close: () => void;
37
+ };
38
+ export type TProcessingSliderVerifySuccessFuncPayload = {
39
+ checkVerifyCodePayload: TCheckSliderVerifyCodeFuncPayload;
40
+ checkVerifyRes: TCheckSliderVerifyCodeFuncRes;
41
+ close: () => void;
42
+ };
43
+ export type TProcessingSliderVerifyFailedFuncPayload = {
44
+ checkVerifyCodePayload: TCheckSliderVerifyCodeFuncPayload;
45
+ checkVerifyRes: TCheckSliderVerifyCodeFuncRes;
46
+ close: () => void;
47
+ };
48
+ export type TSliderVerifyProps = {
49
+ getVerifyCode: () => Promise<TVerifyCodeDatasource>;
50
+ checkVerifyCode: (p: TCheckSliderVerifyCodeFuncPayload) => Promise<TCheckSliderVerifyCodeFuncRes>;
51
+ processingClose?: (p: TSliderVerifyProcessingCloseFuncPayload) => any;
52
+ processingVerifySuccess?: (p: TProcessingSliderVerifySuccessFuncPayload) => any;
53
+ processingVerifyFailed?: (p: TProcessingSliderVerifyFailedFuncPayload) => any;
54
+ };
55
+ export type TVerifySuccessEventPayload = {
56
+ checkVerifyCodePayload: TCheckSliderVerifyCodeFuncPayload;
57
+ checkVerifyRes: TCheckSliderVerifyCodeFuncRes;
58
+ };
59
+ export type TVerifyFailedEventPayload = {
60
+ checkVerifyCodePayload: TCheckSliderVerifyCodeFuncPayload;
61
+ checkVerifyRes: TCheckSliderVerifyCodeFuncRes;
62
+ };
63
+ declare const _default: import('vue').DefineComponent<TSliderVerifyProps, {
64
+ open: () => void;
65
+ close: () => void;
66
+ reset: () => Promise<void>;
67
+ }, {}, {}, {}, import('vue').ComponentOptionsMixin, import('vue').ComponentOptionsMixin, {} & {
68
+ close: () => any;
69
+ verifySuccess: (p: TVerifySuccessEventPayload) => any;
70
+ verifyFailed: (p: TVerifyFailedEventPayload) => any;
71
+ }, string, import('vue').PublicProps, Readonly<TSliderVerifyProps> & Readonly<{
72
+ onClose?: (() => any) | undefined;
73
+ onVerifySuccess?: ((p: TVerifySuccessEventPayload) => any) | undefined;
74
+ onVerifyFailed?: ((p: TVerifyFailedEventPayload) => any) | undefined;
75
+ }>, {}, {}, {}, {}, string, import('vue').ComponentProvideOptions, false, {
76
+ BgImageEleRef: HTMLImageElement;
77
+ }, any>;
78
+ export default _default;
@@ -0,0 +1,2 @@
1
+ import { FieldProps } from 'vant';
2
+ export declare const CommonFieldProps: Partial<FieldProps>;
@@ -0,0 +1,32 @@
1
+ import { ComputedRef } from 'vue';
2
+ export type TMaskType = 'id' | 'phone' | 'bankCard' | 'email';
3
+ export interface IUseMaskedFieldOptions {
4
+ modelValue: ComputedRef<string>;
5
+ maskId: ComputedRef<string>;
6
+ fetchPlaintext: (maskId: string) => Promise<string>;
7
+ decrypt: (cipher: string) => string;
8
+ encrypt?: (plain: string) => string;
9
+ placeholder?: string;
10
+ /**
11
+ * 自定义脱敏函数(最高优先级)
12
+ * 若提供,则忽略 maskType 和 placeholder
13
+ */
14
+ maskStrategy?: (str: string) => string;
15
+ /**
16
+ * 使用内置脱敏策略(中优先级)
17
+ * 若未提供 maskStrategy,则使用此策略
18
+ */
19
+ maskType?: TMaskType;
20
+ onValueUpdate?: (value: string) => void;
21
+ }
22
+ export declare function useMaskedField(options: IUseMaskedFieldOptions): {
23
+ showValue: ComputedRef<string>;
24
+ isPlaintextVisible: import('vue').Ref<boolean, boolean>;
25
+ fetchPlaintextLoading: import('vue').Ref<boolean, boolean>;
26
+ canUseBackendUnmask: ComputedRef<boolean>;
27
+ revealPlaintext: () => Promise<void>;
28
+ hidePlaintext: () => void;
29
+ toggleVisibility: () => Promise<void>;
30
+ plainTextValue: ComputedRef<string>;
31
+ updateModelValue: (inputValue: string) => void;
32
+ };
@@ -0,0 +1 @@
1
+ export * from './hooks/useMaskedFieldLogic';
package/dist/index.d.ts CHANGED
@@ -1,8 +1,35 @@
1
1
  /**
2
- * 组件导出
2
+ * 展示组件
3
3
  */
4
4
  export { default as ColoringAvatar } from './ColoringAvatar/ColoringAvatar.vue';
5
- export { default as FieldMultiPicker } from './FieldMultiPicker/FieldMultiPicker.vue';
5
+ /**
6
+ * 基础组件
7
+ */
8
+ export { default as CopyTxtTrigger } from './CopyTxtTrigger/CopyTxtTrigger.vue';
9
+ export type * from './CopyTxtTrigger/CopyTxtTrigger.vue';
10
+ export { default as SinglePicker } from './SinglePicker/SinglePicker.vue';
11
+ export type * from './SinglePicker/SinglePicker.vue';
12
+ export { default as MultiPicker } from './MultiPicker/MultiPicker.vue';
13
+ export type * from './MultiPicker/MultiPicker.vue';
14
+ export { default as DatePicker } from './DatePicker/DatePicker.vue';
15
+ export type * from './DatePicker/DatePicker.vue';
16
+ export { default as DateRangePicker } from './DateRangePicker/DateRangePicker.vue';
17
+ export type * from './DateRangePicker/DateRangePicker.vue';
18
+ /**
19
+ * 表单组件
20
+ */
21
+ export { default as FieldMaskTxt } from './FieldMaskTxt/FieldMaskTxt.vue';
22
+ export type * from './FieldMaskTxt/FieldMaskTxt.vue';
23
+ export { default as FieldSwitchBtn } from './FieldSwitchBtn/FieldSwitchBtn.vue';
24
+ export type * from './FieldSwitchBtn/FieldSwitchBtn.vue';
6
25
  export { default as FieldSinglePicker } from './FieldSinglePicker/FieldSinglePicker.vue';
7
- export { default as MultiPicker, type TMultiPickerProps, type TConfirmEventPayload, } from './MultiPicker/MultiPicker.vue';
8
- export { default as SinglePicker, type TSinglePickerProps, type TSPConfirmDisabledOptionPayload, } from './SinglePicker/SinglePicker.vue';
26
+ export { default as FieldMultiPicker } from './FieldMultiPicker/FieldMultiPicker.vue';
27
+ export { default as FieldDatePicker } from './FieldDatePicker/FieldDatePicker.vue';
28
+ export { default as FieldDateRangePicker } from './FieldDateRangePicker/FieldDateRangePicker.vue';
29
+ /**
30
+ * 业务组件
31
+ */
32
+ export { default as MaskTxt } from './MaskTxt/MaskTxt.vue';
33
+ export type * from './MaskTxt/MaskTxt.vue';
34
+ export { default as SliderVerify } from './SliderVerify/SliderVerify.vue';
35
+ export type * from './SliderVerify/SliderVerify.vue';
package/dist/vant-kit.css CHANGED
@@ -1 +1 @@
1
- .van-popup.van-toast{z-index:999999!important}.coloring-avatar-wrapper[data-v-daeab517]{box-sizing:border-box;width:var(--01db2b7c);height:var(--01db2b7c);overflow:hidden;display:flex;justify-content:center;align-items:center;background:var(--cc225d5a);border-radius:50%;border:.88px solid;border-image:linear-gradient(180deg,#fff,#fff0)}.coloring-avatar-wrapper .sub-name[data-v-daeab517]{color:#fff;font-size:var(--38beb273)}.multi-picker-header[data-v-93bbec47] .van-search{width:250px}.multi-picker-main[data-v-93bbec47]{min-height:200px;max-height:60vh;overflow:hidden;display:flex;flex-direction:column}.multi-picker-main .multi-picker-tip[data-v-93bbec47]{padding:10px 16px;text-align:center;font-size:13px;color:#666}.multi-picker-main .multi-picker-cell-group[data-v-93bbec47]{overflow-y:auto}.hidden[data-v-4d219067]{display:none}[data-v-215a62c8] .van-search{width:250px}.hidden[data-v-188c9d88]{display:none}
1
+ .van-popup.van-toast{z-index:999999!important}.coloring-avatar-wrapper[data-v-daeab517]{box-sizing:border-box;width:var(--01db2b7c);height:var(--01db2b7c);overflow:hidden;display:flex;justify-content:center;align-items:center;background:var(--cc225d5a);border-radius:50%;border:.88px solid;border-image:linear-gradient(180deg,#fff,#fff0)}.coloring-avatar-wrapper .sub-name[data-v-daeab517]{color:#fff;font-size:var(--38beb273)}.default-trigger-btn[data-v-a0fe5e36]{width:32px;height:15px;box-sizing:border-box;cursor:pointer;display:flex;justify-content:center;align-items:center;border:.5px solid rgba(0,0,0,.45);border-radius:112px;font-size:10px;color:#333}[data-v-d73a6d55] .van-search,.multi-picker-header[data-v-4f98a95a] .van-search{flex:1}.multi-picker-main[data-v-4f98a95a]{min-height:200px;max-height:60vh;overflow:hidden;display:flex;flex-direction:column}.multi-picker-main .multi-picker-tip[data-v-4f98a95a]{padding:10px 16px;text-align:center;font-size:13px;color:#666}.multi-picker-main .multi-picker-cell-group[data-v-4f98a95a]{overflow-y:auto}.field-mask-txt-wrapper[data-v-c38b4355]{width:100%;background-color:var(--van-cell-background)}.field-mask-txt-show-content[data-v-c38b4355]{width:100%;display:flex;align-items:center}.field-mask-txt-show-content .view-trigger[data-v-c38b4355]{color:unset}.hidden[data-v-c38b4355]{display:none}.field-switch-btn-wrapper[data-v-aefa9670]{width:100%;background-color:var(--van-cell-background)}.field-switch-btn-show-content[data-v-aefa9670]{width:100%;display:flex}.field-switch-btn-show-content .field-switch-btns-container[data-v-aefa9670]{flex:1;display:flex;justify-content:flex-end;align-items:center;gap:8px}.field-switch-btn-show-content .field-switch-btn[data-v-aefa9670]{padding:1px 12px;display:flex;justify-content:center;align-items:center;box-sizing:border-box;border:1px solid var(--van-button-primary-background);border-radius:4px;color:var(--van-button-primary-background);background:#fff;font-size:14px;cursor:pointer}.field-switch-btn-show-content .field-switch-btn-selected[data-v-aefa9670]{color:#fff;background:var(--van-button-primary-background)}.field-switch-btn-show-content .field-switch-btn-disabled[data-v-aefa9670]{color:#999;border-color:#9993;background:#9993;cursor:not-allowed}.hidden[data-v-aefa9670],.hidden[data-v-a3ec332c],.hidden[data-v-852e2256],.hidden[data-v-294c848b],.hidden[data-v-916f5cef]{display:none}.mask-txt-wrapper[data-v-e7353b20]{display:flex;align-items:center;gap:8px}.slide_model[data-v-d89f17f8]{width:100%;height:100vh;z-index:999;position:fixed;left:0;top:0;background:#0006;display:flex;align-items:center;justify-content:center}.slide_wrapper[data-v-d89f17f8]{float:left;z-index:1;position:relative;background-color:#fff;width:335px;padding-top:20px}.canvas_img[data-v-d89f17f8]{width:var(--7cf68fb8);min-height:150px;position:relative;display:flex;align-items:center;justify-content:center;margin:0 0 20px 20px}.canvas_img img[src=""][data-v-d89f17f8],.canvas_img img[data-v-d89f17f8]:not([src]){visibility:hidden}.big-img[data-v-d89f17f8]{width:100%;height:180px}.slider-img[data-v-d89f17f8]{width:55px;height:180px;position:absolute;top:0;left:var(--699c212b);z-index:2}.canvas_slide[data-v-d89f17f8]{width:295px;height:45px;background:#eee;text-align:center;line-height:40px;margin:0 auto;position:relative;font-size:13px}.canvas_kus[data-v-d89f17f8]{width:48px;height:45px;background-color:#fff;font-size:18px;font-weight:700;position:absolute;left:var(--699c212b);top:0;border:1px solid #ddd;color:#fff;box-shadow:0 0 10px #0000004d;user-select:none;-webkit-user-select:none;cursor:grab;touch-action:none;-webkit-touch-callout:none;-webkit-tap-highlight-color:transparent}.canvas_kus .slide-icon[data-v-d89f17f8]{width:20px;height:20px;margin-top:10px}.canvas_kus[data-v-d89f17f8]:active{cursor:grabbing}.canvas_guil[data-v-d89f17f8]{width:100%;border-top:1px solid #f4f4f4;height:50px;display:flex;align-items:center;float:left;font-size:15px;color:#666}.canvas_guil .footer-icon[data-v-d89f17f8]{width:25px;height:25px;margin-left:15px}