@gct-paas/render-mobile 0.1.5-dev.0 → 0.1.5-dev.1

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.
@@ -1 +1 @@
1
- import"@gct-paas/render";import{inject as o,provide as r}from"vue";var e=Symbol("PAGE_EVENT"),t=o=>r(e,o),n=()=>{const r=o(e);if(!r)throw new Error("PAGE_EVENT not provided");return r};function E(){console.log("Hello World!")}export{E as run,t as setupPageEvent,n as usePageEvent};
1
+ import"@gct-paas/render";import{computed as e,createBlock as n,createVNode as a,defineComponent as l,inject as o,nextTick as u,openBlock as t,provide as r,ref as v,render as c,resolveComponent as i}from"vue";import{isClient as m}from"@gct-paas/core-mobile";import{has as s,isNil as p}from"lodash-es";var d=Symbol("PAGE_EVENT"),b=e=>r(d,e),f=()=>{const e=o(d);if(!e)throw new Error("PAGE_EVENT not provided");return e},x=/* @__PURE__ */l({__name:"numberKeyboard",setup(a,{expose:l}){const o=v(!1),r=v(""),c=e({get:()=>r.value,set(e){r.value=function(e){const n=[];for(let o=0;o<e.length;o++)"."===e[o]&&n.push(o);if(n.length<=1)return e;let a="",l=0;for(const o of e)"."===o?0===l&&(a+=".",l+=1):a+=o;return a}(e)}}),m=v("."),d=v({});let b,f=null,x=null;async function y(){await u(),b&&b(c.value)}async function E(){await u(),b&&b(c.value)}async function V(){await u(),x&&x(c.value)}async function h(){c.value&&(s(d.value,"maxValue")&&Number(c.value)>d.value.maxValue?c.value=d.value.maxValue:s(d.value,"minValue")&&Number(c.value)<d.value.minValue&&(c.value=d.value.minValue),c.value=isNaN(Number(c.value))?"":c.value,b&&b(c.value)),o.value=!1,await u(),f&&f(c.value)}return l({openNumKeyboardOpen:({val:e,extra:n,minmax:a,callback:l,onEnter:u,onBlur:t,onFocus:r})=>{c.value=p(e)?"":String(e),o.value=!0,null===n&&void 0===n||(m.value=n),d.value=a,b=l,x=u,f=t,r&&r()}}),(e,a)=>{const l=i("van-number-keyboard");return t(),n(l,{modelValue:c.value,"onUpdate:modelValue":a[0]||(a[0]=e=>c.value=e),theme:"custom","extra-key":m.value,"close-button-text":"完成",show:o.value,"z-index":"9999",maxlength:15,onBlur:h,onClose:V,onInput:y,onDelete:E},null,8,["modelValue","extra-key","show"])}}}),y=null;function E(e){if(!m)return;const n={};let l;const o=document.createElement("div");return Object.assign(n,e),{openNumKeyPopup:function({val:e,extra:u,minmax:t,callback:r,onEnter:v,onBlur:i,onFocus:m,precision:s}){var p;y=a(x,n),c(y,o),document.body.appendChild(o),l=null===(p=y.component)||void 0===p?void 0:p.exposed,null==l||l.openNumKeyboardOpen({val:e,extra:u,minmax:t,callback:r,onEnter:v,onBlur:i,onFocus:m,precision:s})}}}function V(){console.log("Hello World!")}export{E as createNumKeyboardPopup,V as run,b as setupPageEvent,f as usePageEvent};
@@ -0,0 +1 @@
1
+ export * from './numKeyboard';
@@ -0,0 +1 @@
1
+ import "./numKeyboard/index.mjs";
@@ -0,0 +1,4 @@
1
+ import { openNumPickerType } from './src/typing';
2
+ export declare function createNumKeyboardPopup(options: IObject): {
3
+ openNumKeyPopup: ({ val, extra, minmax, callback, onEnter, onBlur, onFocus, precision, }: openNumPickerType) => void;
4
+ } | undefined;
@@ -0,0 +1,34 @@
1
+ import numberKeyboard_default from "./src/numberKeyboard.vue.mjs";
2
+ import { createVNode, render } from "vue";
3
+ import { isClient } from "@gct-paas/core-mobile";
4
+ //#region src/components/numKeyboard/index.ts
5
+ var instance = null;
6
+ function createNumKeyboardPopup(options) {
7
+ if (!isClient) return;
8
+ const propsData = {};
9
+ let popupRef;
10
+ const container = document.createElement("div");
11
+ Object.assign(propsData, options);
12
+ function readyModal() {
13
+ instance = createVNode(numberKeyboard_default, propsData);
14
+ render(instance, container);
15
+ document.body.appendChild(container);
16
+ popupRef = instance.component?.exposed;
17
+ }
18
+ function openNumKeyPopup({ val, extra, minmax, callback, onEnter, onBlur, onFocus, precision }) {
19
+ readyModal();
20
+ popupRef?.openNumKeyboardOpen({
21
+ val,
22
+ extra,
23
+ minmax,
24
+ callback,
25
+ onEnter,
26
+ onBlur,
27
+ onFocus,
28
+ precision
29
+ });
30
+ }
31
+ return { openNumKeyPopup };
32
+ }
33
+ //#endregion
34
+ export { createNumKeyboardPopup };
@@ -0,0 +1,4 @@
1
+ declare const _default: import('vue').DefineComponent<{}, {
2
+ openNumKeyboardOpen: ({ val, extra, minmax, callback, onEnter, onBlur, onFocus, }: IObject) => void;
3
+ }, {}, {}, {}, import('vue').ComponentOptionsMixin, import('vue').ComponentOptionsMixin, {}, string, import('vue').PublicProps, Readonly<{}> & Readonly<{}>, {}, {}, {}, {}, string, import('vue').ComponentProvideOptions, true, {}, any>;
4
+ export default _default;
@@ -0,0 +1,5 @@
1
+ import numberKeyboard_vue_vue_type_script_setup_true_name_numberKeyboard_lang_default from "./numberKeyboard.vue_vue_type_script_setup_true_name_numberKeyboard_lang.mjs";
2
+ //#region src/components/numKeyboard/src/numberKeyboard.vue
3
+ var numberKeyboard_default = numberKeyboard_vue_vue_type_script_setup_true_name_numberKeyboard_lang_default;
4
+ //#endregion
5
+ export { numberKeyboard_default as default };
@@ -0,0 +1,94 @@
1
+ import { computed, createBlock, defineComponent, nextTick, openBlock, ref, resolveComponent } from "vue";
2
+ import { has, isNil } from "lodash-es";
3
+ //#region src/components/numKeyboard/src/numberKeyboard.vue?vue&type=script&setup=true&name=numberKeyboard&lang.ts
4
+ var numberKeyboard_vue_vue_type_script_setup_true_name_numberKeyboard_lang_default = /* @__PURE__ */ defineComponent({
5
+ __name: "numberKeyboard",
6
+ setup(__props, { expose: __expose }) {
7
+ const isShow = ref(false);
8
+ const numberValue = ref("");
9
+ function filterDecimals(str) {
10
+ const decimalIndices = [];
11
+ for (let i = 0; i < str.length; i++) if (str[i] === ".") decimalIndices.push(i);
12
+ if (decimalIndices.length <= 1) return str;
13
+ let result = "";
14
+ let decimalCount = 0;
15
+ for (const char of str) if (char === ".") {
16
+ if (decimalCount === 0) {
17
+ result += ".";
18
+ decimalCount += 1;
19
+ }
20
+ } else result += char;
21
+ return result;
22
+ }
23
+ const value = computed({
24
+ get() {
25
+ return numberValue.value;
26
+ },
27
+ set(v) {
28
+ numberValue.value = filterDecimals(v);
29
+ }
30
+ });
31
+ const extraKey = ref(".");
32
+ const minmaxMap = ref({});
33
+ let handleOk;
34
+ let customBlur = null;
35
+ let customEnter = null;
36
+ const openNumKeyboardOpen = ({ val, extra, minmax, callback, onEnter, onBlur, onFocus }) => {
37
+ value.value = !isNil(val) ? String(val) : "";
38
+ isShow.value = true;
39
+ if (extra !== null || extra !== void 0) extraKey.value = extra;
40
+ minmaxMap.value = minmax;
41
+ handleOk = callback;
42
+ customEnter = onEnter;
43
+ customBlur = onBlur;
44
+ onFocus && onFocus();
45
+ };
46
+ async function onInput() {
47
+ await nextTick();
48
+ handleOk && handleOk(value.value);
49
+ }
50
+ async function onDelete() {
51
+ await nextTick();
52
+ handleOk && handleOk(value.value);
53
+ }
54
+ async function onEnter() {
55
+ await nextTick();
56
+ if (customEnter) customEnter(value.value);
57
+ }
58
+ async function onBlur() {
59
+ if (value.value) {
60
+ if (has(minmaxMap.value, "maxValue") && Number(value.value) > minmaxMap.value.maxValue) value.value = minmaxMap.value.maxValue;
61
+ else if (has(minmaxMap.value, "minValue") && Number(value.value) < minmaxMap.value.minValue) value.value = minmaxMap.value.minValue;
62
+ value.value = isNaN(Number(value.value)) ? "" : value.value;
63
+ handleOk && handleOk(value.value);
64
+ }
65
+ isShow.value = false;
66
+ await nextTick();
67
+ customBlur && customBlur(value.value);
68
+ }
69
+ __expose({ openNumKeyboardOpen });
70
+ return (_ctx, _cache) => {
71
+ const _component_van_number_keyboard = resolveComponent("van-number-keyboard");
72
+ return openBlock(), createBlock(_component_van_number_keyboard, {
73
+ modelValue: value.value,
74
+ "onUpdate:modelValue": _cache[0] || (_cache[0] = ($event) => value.value = $event),
75
+ theme: "custom",
76
+ "extra-key": extraKey.value,
77
+ "close-button-text": "完成",
78
+ show: isShow.value,
79
+ "z-index": "9999",
80
+ maxlength: 15,
81
+ onBlur,
82
+ onClose: onEnter,
83
+ onInput,
84
+ onDelete
85
+ }, null, 8, [
86
+ "modelValue",
87
+ "extra-key",
88
+ "show"
89
+ ]);
90
+ };
91
+ }
92
+ });
93
+ //#endregion
94
+ export { numberKeyboard_vue_vue_type_script_setup_true_name_numberKeyboard_lang_default as default };
@@ -0,0 +1,18 @@
1
+ export interface openNumPickerType {
2
+ val: string;
3
+ extra?: string;
4
+ minmax?: {
5
+ maxValue?: number;
6
+ minValue?: number;
7
+ };
8
+ callback: openPickerCallback;
9
+ /**回车事件 */
10
+ onEnter?: () => void;
11
+ /**丢失焦点事件 */
12
+ onBlur?: () => void;
13
+ /**聚焦事件 */
14
+ onFocus?: () => void;
15
+ /**小数精度 */
16
+ precision?: string | number;
17
+ }
18
+ export type openPickerCallback = (value: string) => void;
package/es/index.d.ts CHANGED
@@ -1,2 +1,3 @@
1
1
  export { setupPageEvent, usePageEvent, type ContextMobileType, type EventsMobile, } from './Event/Events';
2
2
  export declare function run(): void;
3
+ export * from './components';
package/es/index.mjs CHANGED
@@ -1,7 +1,9 @@
1
1
  import { setupPageEvent, usePageEvent } from "./Event/Events.mjs";
2
+ import { createNumKeyboardPopup } from "./components/numKeyboard/index.mjs";
3
+ import "./components/index.mjs";
2
4
  //#region src/index.ts
3
5
  function run() {
4
6
  console.log("Hello World!");
5
7
  }
6
8
  //#endregion
7
- export { run, setupPageEvent, usePageEvent };
9
+ export { createNumKeyboardPopup, run, setupPageEvent, usePageEvent };
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@gct-paas/render-mobile",
3
- "version": "0.1.5-dev.0",
3
+ "version": "0.1.5-dev.1",
4
4
  "type": "module",
5
5
  "description": "paas 平台移动端底包",
6
6
  "loader": "dist/loader.esm.min.js",
@@ -42,10 +42,10 @@
42
42
  "publish:npm": "npm run build && npm publish --access public --registry=https://registry.npmjs.org/"
43
43
  },
44
44
  "dependencies": {
45
- "@gct-paas/core": "0.1.5-dev.0",
46
- "@gct-paas/core-mobile": "0.1.5-dev.0",
47
- "@gct-paas/render": "0.1.5-dev.0",
48
- "@gct-paas/scss": "0.1.5-dev.0",
45
+ "@gct-paas/core": "0.1.5-dev.1",
46
+ "@gct-paas/core-mobile": "0.1.5-dev.1",
47
+ "@gct-paas/render": "0.1.5-dev.1",
48
+ "@gct-paas/scss": "0.1.5-dev.1",
49
49
  "vue": "3.5.29"
50
50
  },
51
51
  "peerDependencies": {
@@ -55,5 +55,5 @@
55
55
  "@gct-paas/scss": "*",
56
56
  "vue": ">=3"
57
57
  },
58
- "gitHead": "d5a1badfd34c55ceefd2cf33f2ee659454076e37"
58
+ "gitHead": "d554696d0991c1d14dd5a2a43b277bafe3976371"
59
59
  }