@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.
Files changed (57) hide show
  1. package/README.md +105 -15
  2. package/dist/api-CZ2GQABL.js +309 -0
  3. package/dist/api-JFgUnzEe.cjs +1 -0
  4. package/dist/components/BaseTeleport.vue.d.ts +14 -0
  5. package/dist/components/Dialog.vue.d.ts +28 -0
  6. package/dist/components/DialogModal.vue.d.ts +28 -0
  7. package/dist/components/DialogNext.vue.d.ts +28 -0
  8. package/dist/components/Header.vue.d.ts +37 -0
  9. package/dist/components/Modal.vue.d.ts +30 -0
  10. package/dist/components/SkyButton.vue.d.ts +22 -0
  11. package/dist/components/SkySelect.vue.d.ts +16 -0
  12. package/dist/components/index.d.ts +8 -0
  13. package/dist/index.d.ts +3 -0
  14. package/dist/sdk/api.d.ts +78 -0
  15. package/dist/sdk/bridge.d.ts +43 -0
  16. package/dist/sdk/index.d.ts +6 -0
  17. package/dist/sdk/types.d.ts +73 -0
  18. package/dist/sdk/webview.d.ts +16 -0
  19. package/dist/sdk.cjs +1 -0
  20. package/dist/sdk.js +33 -0
  21. package/dist/style.css +1 -0
  22. package/dist/vue-dev-kit.cjs +1 -0
  23. package/dist/vue-dev-kit.js +903 -0
  24. package/package.json +32 -43
  25. package/dist/vue2/style.css +0 -1
  26. package/dist/vue2/vue-dev-kit.cjs +0 -1
  27. package/dist/vue2/vue-dev-kit.js +0 -2622
  28. package/dist/vue3/style.css +0 -1
  29. package/dist/vue3/vue-dev-kit.cjs +0 -1
  30. package/dist/vue3/vue-dev-kit.js +0 -2277
  31. package/src/index.js +0 -9
  32. package/src/shared/index.js +0 -1
  33. package/src/shared/types/index.d.ts +0 -72
  34. package/src/shared/utils/index.js +0 -2
  35. package/src/shared/utils/parentBridge.js +0 -84
  36. package/src/shared/utils/webviewCheck.js +0 -54
  37. package/src/styles/scrollbar.css +0 -17
  38. package/src/vue2/components/BaseTeleport.vue +0 -16
  39. package/src/vue2/components/Dialog.vue +0 -106
  40. package/src/vue2/components/DialogModal.vue +0 -439
  41. package/src/vue2/components/DialogNext.vue +0 -379
  42. package/src/vue2/components/Header.vue +0 -466
  43. package/src/vue2/components/Modal.vue +0 -252
  44. package/src/vue2/components/SkyButton.vue +0 -144
  45. package/src/vue2/components/SkySelect.vue +0 -327
  46. package/src/vue2/components/index.js +0 -6
  47. package/src/vue2/index.js +0 -2
  48. package/src/vue3/components/BaseTeleport.vue +0 -16
  49. package/src/vue3/components/Dialog.vue +0 -97
  50. package/src/vue3/components/DialogModal.vue +0 -458
  51. package/src/vue3/components/DialogNext.vue +0 -427
  52. package/src/vue3/components/Header.vue +0 -505
  53. package/src/vue3/components/Modal.vue +0 -253
  54. package/src/vue3/components/SkyButton.vue +0 -140
  55. package/src/vue3/components/SkySelect.vue +0 -266
  56. package/src/vue3/components/index.js +0 -8
  57. package/src/vue3/index.js +0 -2
package/src/index.js DELETED
@@ -1,9 +0,0 @@
1
- // // Components
2
-
3
- export * from './vue3'
4
- // import { Header, Dialog } from './vue3/components'
5
-
6
- // export {
7
- // Header,
8
- // Dialog
9
- // }
@@ -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,2 +0,0 @@
1
- export { webviewCheck, isIosWebview, isAndroidWebview, isCefWebview, isWebview, isInIframe } from './webviewCheck'
2
- export { getParentLocalStorage, getParentStoreValue, getParentWindowValue, sendToParent, setSenderId, getSenderId } from './parentBridge'
@@ -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
- }
@@ -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,16 +0,0 @@
1
- <template>
2
- <portal :to="to">
3
- <slot />
4
- </portal>
5
- </template>
6
-
7
- <script>
8
- export default {
9
- props: {
10
- to: {
11
- type: String,
12
- default: 'body',
13
- },
14
- },
15
- }
16
- </script>
@@ -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>