@skyservice-developers/vue-dev-kit 1.5.12 → 2.1.0
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 +105 -15
- package/dist/api-CZ2GQABL.js +309 -0
- package/dist/api-JFgUnzEe.cjs +1 -0
- package/dist/components/BaseTeleport.vue.d.ts +14 -0
- package/dist/components/Dialog.vue.d.ts +28 -0
- package/dist/components/DialogModal.vue.d.ts +28 -0
- package/dist/components/DialogNext.vue.d.ts +28 -0
- package/dist/components/Header.vue.d.ts +37 -0
- package/dist/components/Modal.vue.d.ts +30 -0
- package/dist/components/SkyButton.vue.d.ts +22 -0
- package/dist/components/SkySelect.vue.d.ts +16 -0
- package/dist/components/index.d.ts +8 -0
- package/dist/index.d.ts +3 -0
- package/dist/sdk/api.d.ts +78 -0
- package/dist/sdk/bridge.d.ts +43 -0
- package/dist/sdk/index.d.ts +6 -0
- package/dist/sdk/types.d.ts +73 -0
- package/dist/sdk/webview.d.ts +16 -0
- package/dist/sdk.cjs +1 -0
- package/dist/sdk.js +33 -0
- package/dist/style.css +1 -0
- package/dist/vue-dev-kit.cjs +1 -0
- package/dist/vue-dev-kit.js +903 -0
- package/package.json +32 -43
- package/dist/vue2/style.css +0 -1
- package/dist/vue2/vue-dev-kit.cjs +0 -1
- package/dist/vue2/vue-dev-kit.js +0 -2622
- package/dist/vue3/style.css +0 -1
- package/dist/vue3/vue-dev-kit.cjs +0 -1
- package/dist/vue3/vue-dev-kit.js +0 -2277
- package/src/index.js +0 -9
- package/src/shared/index.js +0 -1
- package/src/shared/types/index.d.ts +0 -72
- package/src/shared/utils/index.js +0 -2
- package/src/shared/utils/parentBridge.js +0 -84
- package/src/shared/utils/webviewCheck.js +0 -54
- package/src/styles/scrollbar.css +0 -17
- package/src/vue2/components/BaseTeleport.vue +0 -16
- package/src/vue2/components/Dialog.vue +0 -106
- package/src/vue2/components/DialogModal.vue +0 -439
- package/src/vue2/components/DialogNext.vue +0 -379
- package/src/vue2/components/Header.vue +0 -466
- package/src/vue2/components/Modal.vue +0 -252
- package/src/vue2/components/SkyButton.vue +0 -144
- package/src/vue2/components/SkySelect.vue +0 -327
- package/src/vue2/components/index.js +0 -6
- package/src/vue2/index.js +0 -2
- package/src/vue3/components/BaseTeleport.vue +0 -16
- package/src/vue3/components/Dialog.vue +0 -97
- package/src/vue3/components/DialogModal.vue +0 -458
- package/src/vue3/components/DialogNext.vue +0 -427
- package/src/vue3/components/Header.vue +0 -505
- package/src/vue3/components/Modal.vue +0 -253
- package/src/vue3/components/SkyButton.vue +0 -140
- package/src/vue3/components/SkySelect.vue +0 -266
- package/src/vue3/components/index.js +0 -8
- package/src/vue3/index.js +0 -2
package/src/index.js
DELETED
package/src/shared/index.js
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
export * from './utils'
|
|
@@ -1,72 +0,0 @@
|
|
|
1
|
-
import { DefineComponent } from 'vue'
|
|
2
|
-
|
|
3
|
-
// ============ Components ============
|
|
4
|
-
|
|
5
|
-
export interface HeaderDropdownItem {
|
|
6
|
-
name: string
|
|
7
|
-
path: string
|
|
8
|
-
lastVisit: number
|
|
9
|
-
}
|
|
10
|
-
|
|
11
|
-
export interface HeaderProps {
|
|
12
|
-
title?: string
|
|
13
|
-
subtitle?: string
|
|
14
|
-
showBackButton?: boolean
|
|
15
|
-
backButtonTitle?: string
|
|
16
|
-
backEvent?: (() => void) | null
|
|
17
|
-
dropdownItems?: HeaderDropdownItem[]
|
|
18
|
-
dropdownTitle?: string
|
|
19
|
-
visitLabel?: string
|
|
20
|
-
}
|
|
21
|
-
|
|
22
|
-
export interface HeaderEmits {
|
|
23
|
-
'back': () => void
|
|
24
|
-
'navigate': (path: string) => void
|
|
25
|
-
}
|
|
26
|
-
|
|
27
|
-
export interface HeaderSlots {
|
|
28
|
-
'default'?: () => any
|
|
29
|
-
'title'?: () => any
|
|
30
|
-
'subtitle'?: () => any
|
|
31
|
-
}
|
|
32
|
-
|
|
33
|
-
export declare const Header: DefineComponent<HeaderProps>
|
|
34
|
-
|
|
35
|
-
// Dialog component
|
|
36
|
-
export interface DialogProps {
|
|
37
|
-
modelValue?: boolean
|
|
38
|
-
title?: string
|
|
39
|
-
subtitle?: string
|
|
40
|
-
zIndex?: number | string
|
|
41
|
-
closeText?: string
|
|
42
|
-
closeOnEsc?: boolean
|
|
43
|
-
mode?: 'next' | 'classic' | null
|
|
44
|
-
}
|
|
45
|
-
|
|
46
|
-
export interface DialogSlots {
|
|
47
|
-
'default'?: () => any
|
|
48
|
-
'buttons'?: () => any
|
|
49
|
-
}
|
|
50
|
-
|
|
51
|
-
export interface DialogEmits {
|
|
52
|
-
'update:modelValue': (value: boolean) => void
|
|
53
|
-
'close': () => void
|
|
54
|
-
'save': () => void
|
|
55
|
-
}
|
|
56
|
-
|
|
57
|
-
export declare const Dialog: DefineComponent<DialogProps>
|
|
58
|
-
|
|
59
|
-
// SkyButton component
|
|
60
|
-
export interface SkyButtonProps {
|
|
61
|
-
variant?: 'primary' | 'danger' | 'secondary' | 'outline'
|
|
62
|
-
loading?: boolean
|
|
63
|
-
disabled?: boolean
|
|
64
|
-
block?: boolean
|
|
65
|
-
icon?: boolean
|
|
66
|
-
}
|
|
67
|
-
|
|
68
|
-
export interface SkyButtonSlots {
|
|
69
|
-
'default'?: () => any
|
|
70
|
-
}
|
|
71
|
-
|
|
72
|
-
export declare const SkyButton: DefineComponent<SkyButtonProps>
|
|
@@ -1,84 +0,0 @@
|
|
|
1
|
-
import { isInIframe } from './webviewCheck'
|
|
2
|
-
|
|
3
|
-
const TIMEOUT = 3000
|
|
4
|
-
let counter = 0
|
|
5
|
-
let _senderId = null
|
|
6
|
-
|
|
7
|
-
function generateRequestId() {
|
|
8
|
-
return `req_${++counter}_${Date.now()}`
|
|
9
|
-
}
|
|
10
|
-
|
|
11
|
-
function generateAppId() {
|
|
12
|
-
return 'APP_' + Math.random().toString(36).slice(2, 10)
|
|
13
|
-
}
|
|
14
|
-
|
|
15
|
-
export function setSenderId(id) {
|
|
16
|
-
_senderId = id
|
|
17
|
-
}
|
|
18
|
-
|
|
19
|
-
export function getSenderId() {
|
|
20
|
-
if (!_senderId) {
|
|
21
|
-
_senderId = generateAppId()
|
|
22
|
-
}
|
|
23
|
-
return _senderId
|
|
24
|
-
}
|
|
25
|
-
|
|
26
|
-
export function sendToParent(message) {
|
|
27
|
-
if (!isInIframe()) return
|
|
28
|
-
window.parent.postMessage({
|
|
29
|
-
...message,
|
|
30
|
-
sender: getSenderId(),
|
|
31
|
-
target: message.target || 'DASHBOARD',
|
|
32
|
-
}, '*')
|
|
33
|
-
}
|
|
34
|
-
|
|
35
|
-
function requestFromParent(source, key) {
|
|
36
|
-
if (!isInIframe()) return Promise.resolve(null)
|
|
37
|
-
|
|
38
|
-
return new Promise((resolve) => {
|
|
39
|
-
const requestId = generateRequestId()
|
|
40
|
-
|
|
41
|
-
const timeout = setTimeout(() => {
|
|
42
|
-
window.removeEventListener('message', handler)
|
|
43
|
-
resolve(null)
|
|
44
|
-
}, TIMEOUT)
|
|
45
|
-
|
|
46
|
-
function handler(event) {
|
|
47
|
-
const d = event.data
|
|
48
|
-
if (
|
|
49
|
-
d?.type === 'DATA_RESPONSE' &&
|
|
50
|
-
d?.requestId === requestId &&
|
|
51
|
-
(!d.target || d.target === getSenderId())
|
|
52
|
-
) {
|
|
53
|
-
clearTimeout(timeout)
|
|
54
|
-
window.removeEventListener('message', handler)
|
|
55
|
-
resolve(d.data ?? null)
|
|
56
|
-
}
|
|
57
|
-
}
|
|
58
|
-
|
|
59
|
-
window.addEventListener('message', handler)
|
|
60
|
-
|
|
61
|
-
sendToParent({
|
|
62
|
-
type: 'DATA_REQUEST',
|
|
63
|
-
requestId,
|
|
64
|
-
source,
|
|
65
|
-
key,
|
|
66
|
-
})
|
|
67
|
-
})
|
|
68
|
-
}
|
|
69
|
-
|
|
70
|
-
export function getParentLocalStorage(key) {
|
|
71
|
-
return requestFromParent('localStorage', key)
|
|
72
|
-
}
|
|
73
|
-
|
|
74
|
-
export function getParentStoreValue(key) {
|
|
75
|
-
return requestFromParent('store', key)
|
|
76
|
-
}
|
|
77
|
-
|
|
78
|
-
export function getParentWindowValue(key) {
|
|
79
|
-
return requestFromParent('window', key)
|
|
80
|
-
}
|
|
81
|
-
|
|
82
|
-
export function setParentLocalStorage(key, value) {
|
|
83
|
-
sendToParent({ type: 'setLocalStorage', key, value })
|
|
84
|
-
}
|
|
@@ -1,54 +0,0 @@
|
|
|
1
|
-
import parser from 'ua-parser-js'
|
|
2
|
-
|
|
3
|
-
export function webviewCheck() {
|
|
4
|
-
// Check iOS webview
|
|
5
|
-
if (window.webkit != null) {
|
|
6
|
-
if (window.webkit.messageHandlers !== 'undefined') {
|
|
7
|
-
try {
|
|
8
|
-
var ua = parser(navigator.userAgent)
|
|
9
|
-
if (ua.browser.name === 'WebKit') {
|
|
10
|
-
return 'ios_webview'
|
|
11
|
-
}
|
|
12
|
-
} catch (err) {
|
|
13
|
-
console.error(err)
|
|
14
|
-
}
|
|
15
|
-
}
|
|
16
|
-
}
|
|
17
|
-
|
|
18
|
-
// Check Android webview
|
|
19
|
-
if (typeof Android !== 'undefined') {
|
|
20
|
-
return 'android_webview'
|
|
21
|
-
}
|
|
22
|
-
|
|
23
|
-
// Check CEF webview
|
|
24
|
-
if (typeof window.cefQuery !== 'undefined') {
|
|
25
|
-
return 'cef_webview'
|
|
26
|
-
}
|
|
27
|
-
|
|
28
|
-
return 'browser'
|
|
29
|
-
}
|
|
30
|
-
|
|
31
|
-
export function isIosWebview() {
|
|
32
|
-
return webviewCheck() === 'ios_webview'
|
|
33
|
-
}
|
|
34
|
-
|
|
35
|
-
export function isAndroidWebview() {
|
|
36
|
-
return webviewCheck() === 'android_webview'
|
|
37
|
-
}
|
|
38
|
-
|
|
39
|
-
export function isCefWebview() {
|
|
40
|
-
return webviewCheck() === 'cef_webview'
|
|
41
|
-
}
|
|
42
|
-
|
|
43
|
-
export function isWebview() {
|
|
44
|
-
const check = webviewCheck()
|
|
45
|
-
return check !== 'browser'
|
|
46
|
-
}
|
|
47
|
-
|
|
48
|
-
export function isInIframe() {
|
|
49
|
-
try {
|
|
50
|
-
return window.self !== window.top
|
|
51
|
-
} catch (e) {
|
|
52
|
-
return true
|
|
53
|
-
}
|
|
54
|
-
}
|
package/src/styles/scrollbar.css
DELETED
|
@@ -1,17 +0,0 @@
|
|
|
1
|
-
::-webkit-scrollbar {
|
|
2
|
-
width: 6px;
|
|
3
|
-
height: 6px;
|
|
4
|
-
}
|
|
5
|
-
|
|
6
|
-
::-webkit-scrollbar-track {
|
|
7
|
-
background: transparent;
|
|
8
|
-
}
|
|
9
|
-
|
|
10
|
-
::-webkit-scrollbar-thumb {
|
|
11
|
-
background: #c1c1c1;
|
|
12
|
-
border-radius: 0;
|
|
13
|
-
}
|
|
14
|
-
|
|
15
|
-
::-webkit-scrollbar-thumb:hover {
|
|
16
|
-
background: #a8a8a8;
|
|
17
|
-
}
|
|
@@ -1,106 +0,0 @@
|
|
|
1
|
-
<template>
|
|
2
|
-
<component
|
|
3
|
-
:is="dialogComponent"
|
|
4
|
-
v-model="isOpen"
|
|
5
|
-
:title="title"
|
|
6
|
-
:subtitle="subtitle"
|
|
7
|
-
:z-index="zIndex"
|
|
8
|
-
:close-text="closeText"
|
|
9
|
-
:close-on-esc="closeOnEsc"
|
|
10
|
-
:has-buttons="!!$slots.buttons"
|
|
11
|
-
@close="$emit('close')"
|
|
12
|
-
@save="$emit('save')"
|
|
13
|
-
>
|
|
14
|
-
<slot></slot>
|
|
15
|
-
<template v-if="$slots.buttons" #buttons>
|
|
16
|
-
<slot name="buttons"></slot>
|
|
17
|
-
</template>
|
|
18
|
-
</component>
|
|
19
|
-
</template>
|
|
20
|
-
|
|
21
|
-
<script>
|
|
22
|
-
import DialogModal from './DialogModal.vue'
|
|
23
|
-
import DialogNext from './DialogNext.vue'
|
|
24
|
-
|
|
25
|
-
export default {
|
|
26
|
-
name: 'Dialog',
|
|
27
|
-
components: {
|
|
28
|
-
DialogModal,
|
|
29
|
-
DialogNext
|
|
30
|
-
},
|
|
31
|
-
props: {
|
|
32
|
-
modelValue: {
|
|
33
|
-
type: Boolean,
|
|
34
|
-
default: false
|
|
35
|
-
},
|
|
36
|
-
title: {
|
|
37
|
-
type: String,
|
|
38
|
-
default: ''
|
|
39
|
-
},
|
|
40
|
-
subtitle: {
|
|
41
|
-
type: String,
|
|
42
|
-
default: ''
|
|
43
|
-
},
|
|
44
|
-
zIndex: {
|
|
45
|
-
type: [Number, String],
|
|
46
|
-
default: null
|
|
47
|
-
},
|
|
48
|
-
closeText: {
|
|
49
|
-
type: String,
|
|
50
|
-
default: ''
|
|
51
|
-
},
|
|
52
|
-
closeOnEsc: {
|
|
53
|
-
type: Boolean,
|
|
54
|
-
default: true
|
|
55
|
-
},
|
|
56
|
-
// Force specific mode (overrides URL parameter)
|
|
57
|
-
mode: {
|
|
58
|
-
type: String,
|
|
59
|
-
default: null, // 'next' | 'classic' | null (auto-detect)
|
|
60
|
-
validator: (value) => [null, 'next', 'classic'].includes(value)
|
|
61
|
-
}
|
|
62
|
-
},
|
|
63
|
-
data() {
|
|
64
|
-
return {
|
|
65
|
-
rocketMode: true // default to DialogNext
|
|
66
|
-
}
|
|
67
|
-
},
|
|
68
|
-
computed: {
|
|
69
|
-
isOpen: {
|
|
70
|
-
get() {
|
|
71
|
-
return this.modelValue
|
|
72
|
-
},
|
|
73
|
-
set(value) {
|
|
74
|
-
this.$emit('update:modelValue', value)
|
|
75
|
-
}
|
|
76
|
-
},
|
|
77
|
-
dialogComponent() {
|
|
78
|
-
// If mode is explicitly set, use it
|
|
79
|
-
if (this.mode === 'next') {
|
|
80
|
-
return DialogNext
|
|
81
|
-
}
|
|
82
|
-
if (this.mode === 'classic') {
|
|
83
|
-
return DialogModal
|
|
84
|
-
}
|
|
85
|
-
|
|
86
|
-
// Auto-detect based on URL parameter
|
|
87
|
-
return this.rocketMode ? DialogNext : DialogModal
|
|
88
|
-
}
|
|
89
|
-
},
|
|
90
|
-
mounted() {
|
|
91
|
-
try {
|
|
92
|
-
const urlParams = new URLSearchParams(window.location.search)
|
|
93
|
-
const rocketParam = urlParams.get('rocketMode')
|
|
94
|
-
|
|
95
|
-
if (rocketParam === 'false') {
|
|
96
|
-
this.rocketMode = false
|
|
97
|
-
} else {
|
|
98
|
-
// true or not specified = DialogNext
|
|
99
|
-
this.rocketMode = true
|
|
100
|
-
}
|
|
101
|
-
} catch {
|
|
102
|
-
this.rocketMode = true
|
|
103
|
-
}
|
|
104
|
-
}
|
|
105
|
-
}
|
|
106
|
-
</script>
|