w-web-api 1.0.75 → 1.0.76

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
@@ -1,99 +1,99 @@
1
- # w-web-api
2
- A web service for APIs.
3
-
4
- ![language](https://img.shields.io/badge/language-JavaScript-orange.svg)
5
- [![npm version](http://img.shields.io/npm/v/w-web-api.svg?style=flat)](https://npmjs.org/package/w-web-api)
6
- [![license](https://img.shields.io/npm/l/w-web-api.svg?style=flat)](https://npmjs.org/package/w-web-api)
7
- [![npm download](https://img.shields.io/npm/dt/w-web-api.svg)](https://npmjs.org/package/w-web-api)
8
- [![npm download](https://img.shields.io/npm/dm/w-web-api.svg)](https://npmjs.org/package/w-web-api)
9
- [![jsdelivr download](https://img.shields.io/jsdelivr/npm/hm/w-web-api.svg)](https://www.jsdelivr.com/package/npm/w-web-api)
10
-
11
- ## Documentation
12
- To view documentation or get support, visit [docs](https://yuda-lyu.github.io/w-web-api/WWebApi.html).
13
-
14
- ## Installation
15
-
16
- ### Using npm(ES6 module):
17
- ```alias
18
- npm i w-web-api
19
- ```
20
-
21
- #### Example for server:
22
- > **Link:** [[dev source code](https://github.com/yuda-lyu/w-web-api/blob/master/srv.mjs)]
23
- ```alias
24
- import WOrm from 'w-orm-lmdb/src/WOrmLmdb.mjs'
25
- import WWebApi from './server/WWebApi.mjs'
26
- import getSettings from './g.getSettings.mjs'
27
-
28
-
29
- //st
30
- let st = getSettings()
31
-
32
- let url = st.dbUrl
33
- let db = st.dbName
34
- let opt = {
35
-
36
- bCheckUser: false,
37
- getUserById: null,
38
- bExcludeWhenNotAdmin: false,
39
-
40
- serverPort: 11005,
41
- subfolder: '', //mapi
42
- urlRedirect: 'https://www.google.com/', //本機測試時得先編譯, 再瀏覽: http://localhost:11005/
43
-
44
- webName: {
45
- 'eng': 'API Service',
46
- 'cht': 'API管理系統',
47
- },
48
- webDescription: {
49
- 'eng': 'A web service package as methods to send requests to and receive responses from an API.',
50
- 'cht': '一套以方法形式,用於發送請求至API並接收其回應的網頁服務套件。',
51
- },
52
- webLogo: 'data:image/svg+xml;base64,...',
53
-
54
- }
55
-
56
- let getUserByToken = async (token) => {
57
- // return {} //測試無法登入
58
- if (token === '{token-for-application}') { //提供外部應用系統作為存取使用者
59
- return {
60
- id: 'id-for-application',
61
- name: 'application',
62
- email: 'application@example.com',
63
- isAdmin: 'y',
64
- }
65
- }
66
- if (token === 'sys') { //開發階段w-ui-loginout自動給予browser使用者(且位於localhost)的token為sys
67
- return {
68
- id: 'id-for-admin',
69
- name: '測試者',
70
- email: 'admin@example.com',
71
- isAdmin: 'y',
72
- }
73
- }
74
- console.log('invalid token', token)
75
- console.log('於生產環境時得加入SSO等驗證token機制')
76
- return {}
77
- }
78
-
79
- let verifyBrowserUser = (user, from) => {
80
- console.log('verifyBrowserUser/user', user)
81
- // return false //測試無法登入
82
- console.log('於生產環境時得加入限制瀏覽器使用者身份機制')
83
- return user.isAdmin === 'y' //測試僅系統管理者使用
84
- }
85
-
86
- let verifyAppUser = (user, from) => {
87
- console.log('verifyAppUser/user', user)
88
- // return false //測試無法登入
89
- console.log('於生產環境時得加入限制應用程式使用者身份機制')
90
- return user.isAdmin === 'y' //測試僅系統管理者使用
91
- }
92
-
93
- //WWebApi
94
- let instWWebApi = WWebApi(WOrm, url, db, getUserByToken, verifyBrowserUser, verifyAppUser, opt)
95
-
96
- instWWebApi.on('error', (err) => {
97
- console.log(err)
98
- })
99
- ```
1
+ # w-web-api
2
+ A web service for APIs.
3
+
4
+ ![language](https://img.shields.io/badge/language-JavaScript-orange.svg)
5
+ [![npm version](http://img.shields.io/npm/v/w-web-api.svg?style=flat)](https://npmjs.org/package/w-web-api)
6
+ [![license](https://img.shields.io/npm/l/w-web-api.svg?style=flat)](https://npmjs.org/package/w-web-api)
7
+ [![npm download](https://img.shields.io/npm/dt/w-web-api.svg)](https://npmjs.org/package/w-web-api)
8
+ [![npm download](https://img.shields.io/npm/dm/w-web-api.svg)](https://npmjs.org/package/w-web-api)
9
+ [![jsdelivr download](https://img.shields.io/jsdelivr/npm/hm/w-web-api.svg)](https://www.jsdelivr.com/package/npm/w-web-api)
10
+
11
+ ## Documentation
12
+ To view documentation or get support, visit [docs](https://yuda-lyu.github.io/w-web-api/WWebApi.html).
13
+
14
+ ## Installation
15
+
16
+ ### Using npm(ES6 module):
17
+ ```alias
18
+ npm i w-web-api
19
+ ```
20
+
21
+ #### Example for server:
22
+ > **Link:** [[dev source code](https://github.com/yuda-lyu/w-web-api/blob/master/srv.mjs)]
23
+ ```alias
24
+ import WOrm from 'w-orm-lmdb/src/WOrmLmdb.mjs'
25
+ import WWebApi from './server/WWebApi.mjs'
26
+ import getSettings from './g_getSettings.mjs'
27
+
28
+
29
+ //st
30
+ let st = getSettings()
31
+
32
+ let url = st.dbUrl
33
+ let db = st.dbName
34
+ let opt = {
35
+
36
+ bCheckUser: false,
37
+ getUserById: null,
38
+ bExcludeWhenNotAdmin: false,
39
+
40
+ serverPort: 11005,
41
+ subfolder: '', //mapi
42
+ urlRedirect: 'https://www.google.com/', //本機測試時得先編譯, 再瀏覽: http://localhost:11005/
43
+
44
+ webName: {
45
+ 'eng': 'API Service',
46
+ 'cht': 'API管理系統',
47
+ },
48
+ webDescription: {
49
+ 'eng': 'A web service package as methods to send requests to and receive responses from an API.',
50
+ 'cht': '一套以方法形式,用於發送請求至API並接收其回應的網頁服務套件。',
51
+ },
52
+ webLogo: 'data:image/svg+xml;base64,...',
53
+
54
+ }
55
+
56
+ let getUserByToken = async (token) => {
57
+ // return {} //測試無法登入
58
+ if (token === '{token-for-application}') { //提供外部應用系統作為存取使用者
59
+ return {
60
+ id: 'id-for-application',
61
+ name: 'application',
62
+ email: 'application@example.com',
63
+ isAdmin: 'y',
64
+ }
65
+ }
66
+ if (token === 'sys') { //開發階段w-ui-loginout自動給予browser使用者(且位於localhost)的token為sys
67
+ return {
68
+ id: 'id-for-admin',
69
+ name: '測試者',
70
+ email: 'admin@example.com',
71
+ isAdmin: 'y',
72
+ }
73
+ }
74
+ console.log('invalid token', token)
75
+ console.log('於生產環境時得加入SSO等驗證token機制')
76
+ return {}
77
+ }
78
+
79
+ let verifyBrowserUser = (user, from) => {
80
+ console.log('verifyBrowserUser/user', user)
81
+ // return false //測試無法登入
82
+ console.log('於生產環境時得加入限制瀏覽器使用者身份機制')
83
+ return user.isAdmin === 'y' //測試僅系統管理者使用
84
+ }
85
+
86
+ let verifyAppUser = (user, from) => {
87
+ console.log('verifyAppUser/user', user)
88
+ // return false //測試無法登入
89
+ console.log('於生產環境時得加入限制應用程式使用者身份機制')
90
+ return user.isAdmin === 'y' //測試僅系統管理者使用
91
+ }
92
+
93
+ //WWebApi
94
+ let instWWebApi = WWebApi(WOrm, url, db, getUserByToken, verifyBrowserUser, verifyAppUser, opt)
95
+
96
+ instWWebApi.on('error', (err) => {
97
+ console.log(err)
98
+ })
99
+ ```
@@ -1 +1 @@
1
- :root{--bg-1:#fff;--bg-2:#f7f8fa;--bg-3:#eceef1;--bg-accent:rgba(0,153,255,.08);--code-bg:#0d1117;--code-fg:#c9d1d9;--c-1:#1b1b1b;--c-2:#6b7280;--c-3:#9aa1ac;--accent:#09f;--accent-hover:#07c;--border:#e6e8ec;--border-soft:#eef0f3;--m-get:#0082d0;--m-get-bg:rgba(0,130,208,.1);--m-post:#069061;--m-post-bg:rgba(6,144,97,.11);--m-put:#c2670a;--m-put-bg:rgba(255,88,0,.1);--m-del:#e01b54;--m-del-bg:rgba(239,0,6,.09);--m-patch:#b7860b;--m-patch-bg:rgba(237,190,32,.16);--m-other:#6b7280;--m-other-bg:hsla(220,9%,46%,.1);--s-2xx:#069061;--s-2xx-bg:rgba(6,144,97,.12);--s-3xx:#0082d0;--s-3xx-bg:rgba(0,130,208,.1);--s-4xx:#c2670a;--s-4xx-bg:rgba(255,88,0,.11);--s-5xx:#e01b54;--s-5xx-bg:rgba(239,0,6,.1);--danger:#e01b54;--danger-bg:#fff5f7;--success:#069061;--ok-fg:#069061;--ok-bg:rgba(6,144,97,.12);--font:"Microsoft JhengHei","微軟正黑體",ui-sans-serif,system-ui,-apple-system,"Segoe UI",sans-serif;--font-code:ui-monospace,"SFMono-Regular",Menlo,Consolas,"Courier New",monospace;--fs-h1:27px;--fs-h2:18px;--fs-h3:15px;--fs-body:14px;--fs-sm:13px;--fs-xs:11.5px;--fw-medium:500;--fw-bold:600;--radius:8px;--radius-sm:5px;--radius-lg:11px;--sp-1:4px;--sp-2:8px;--sp-3:12px;--sp-4:16px;--sp-6:24px;--sp-8:32px;--focus:0 0 0 3px rgba(0,153,255,.18);--focus-danger:0 0 0 3px rgba(239,0,6,.15)}.w-mb{font-family:var(--font-code);font-weight:var(--fw-bold);text-transform:uppercase;font-size:10px;letter-spacing:.03em;padding:2px 6px;min-width:40px;text-align:center;border-radius:var(--radius-sm);border:none;display:inline-block;-webkit-box-flex:0;-ms-flex:0 0 auto;flex:0 0 auto;line-height:1.5}.w-mb.get{color:var(--m-get);background:var(--m-get-bg)}.w-mb.post{color:var(--m-post);background:var(--m-post-bg)}.w-mb.put{color:var(--m-put);background:var(--m-put-bg)}.w-mb.del{color:var(--m-del);background:var(--m-del-bg)}.w-mb.patch{color:var(--m-patch);background:var(--m-patch-bg)}.w-mb.other{color:var(--m-other);background:var(--m-other-bg)}.w-input,.w-select,.w-textarea{width:100%;-webkit-box-sizing:border-box;box-sizing:border-box;padding:8px 12px;font-size:var(--fs-body);color:var(--c-1);background:var(--bg-1);border:1px solid var(--border);border-radius:var(--radius);outline:none;-webkit-transition:border-color .15s,-webkit-box-shadow .15s;transition:border-color .15s,-webkit-box-shadow .15s;transition:border-color .15s,box-shadow .15s;transition:border-color .15s,box-shadow .15s,-webkit-box-shadow .15s;font-family:var(--font)}.w-textarea{font-family:var(--font-code);font-size:var(--fs-sm);resize:vertical;min-height:72px;line-height:1.55}.w-input:focus,.w-select:focus,.w-textarea:focus{border-color:var(--accent);-webkit-box-shadow:var(--focus);box-shadow:var(--focus)}.w-input.is-error,.w-textarea.is-error{border-color:var(--danger);-webkit-box-shadow:var(--focus-danger);box-shadow:var(--focus-danger)}.w-btn-primary{padding:8px 17px;font-size:var(--fs-body);font-weight:var(--fw-medium);border-radius:var(--radius);border:1px solid var(--accent);background:var(--accent);color:#fff;cursor:pointer;-webkit-transition:.15s;transition:.15s}.w-btn-primary:hover{background:var(--accent-hover);border-color:var(--accent-hover)}.w-btn-danger{padding:8px 17px;font-size:var(--fs-body);border-radius:var(--radius);border:1px solid var(--danger);background:transparent;color:var(--danger);cursor:pointer;-webkit-transition:.15s;transition:.15s}.w-btn-danger:hover{background:var(--danger-bg)}.w-btn-ghost{padding:7px 14px;font-size:var(--fs-sm);border:1px solid var(--border);background:transparent;color:var(--c-2);border-radius:var(--radius);cursor:pointer;-webkit-transition:.15s;transition:.15s}.w-btn-ghost:hover{background:var(--bg-3)}.w-mono{font-family:var(--font-code)}.w-muted{color:var(--c-2)}.w-tnum{font-variant-numeric:tabular-nums}.w-seg{display:-webkit-inline-box;display:-ms-inline-flexbox;display:inline-flex;gap:2px;background:var(--bg-2);border:1px solid var(--border);border-radius:9px;padding:3px}.w-seg-btn{border:none;background:transparent;color:var(--c-2);font-size:13px;padding:5px 17px;border-radius:6px;cursor:pointer;font-weight:var(--fw-medium);-webkit-transition:.15s;transition:.15s}.w-seg-btn:hover{color:var(--c-1)}.w-seg-btn.on{background:var(--bg-1);color:var(--accent);-webkit-box-shadow:0 1px 2px rgba(0,0,0,.07);box-shadow:0 1px 2px rgba(0,0,0,.07)}.op-title{font-size:var(--fs-h1);font-weight:var(--fw-bold);letter-spacing:-.01em;margin:6px 0 10px;color:var(--c-1)}.op-path{display:-webkit-inline-box;display:-ms-inline-flexbox;display:inline-flex;-webkit-box-align:center;-ms-flex-align:center;align-items:center;gap:10px;padding:8px 13px;background:var(--bg-2);border:1px solid var(--border);border-radius:var(--radius);font-family:var(--font-code);font-size:13px;color:var(--c-1);max-width:100%;overflow:auto}.op-desc{color:var(--c-2);margin:14px 0 0;max-width:720px;font-size:14.5px;line-height:1.7}.pills{display:-webkit-box;display:-ms-flexbox;display:flex;-ms-flex-wrap:wrap;flex-wrap:wrap;gap:7px;margin:16px 0 4px}.pill{font-size:12px;color:var(--c-2);background:var(--bg-2);border:1px solid var(--border);border-radius:20px;padding:3px 11px}.pill b{color:var(--c-1)}.pill b,.pill.ok{font-weight:var(--fw-bold)}.pill.ok{color:var(--ok-fg);background:var(--ok-bg);border-color:transparent}.pill .kw-chip{display:inline-block;vertical-align:middle;font-size:11px;font-weight:var(--fw-bold);color:#0082d0;background:rgba(0,130,208,.12);border-radius:9px;padding:1px 7px;margin-left:5px}.split{display:grid;grid-template-columns:minmax(0,1.25fr) minmax(0,1fr);gap:34px;margin-top:28px;-webkit-box-align:start;-ms-flex-align:start;align-items:start}@media (max-width:1100px){.split{grid-template-columns:1fr}}.dsec{margin-bottom:28px}.dsec-h{font-size:13px;font-weight:var(--fw-bold);letter-spacing:.05em;text-transform:uppercase;color:var(--c-3);padding-bottom:9px;border-bottom:1px solid var(--border-soft);margin-bottom:12px}.rail{position:sticky;top:14px;display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-orient:vertical;-webkit-box-direction:normal;-ms-flex-direction:column;flex-direction:column;gap:16px}.card{border-radius:var(--radius-lg);overflow:hidden;border:1px solid var(--border)}.card-h{display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-align:center;-ms-flex-align:center;align-items:center;gap:9px;padding:9px 13px;background:var(--bg-2);border-bottom:1px solid var(--border);font-size:12px;color:var(--c-2)}.card-h .lab{color:var(--c-1)}.card-h .lab,.card-h .st{font-weight:var(--fw-bold)}.card-h .st{margin-left:auto;font-size:11.5px;color:var(--ok-fg);background:var(--ok-bg);padding:1px 8px;border-radius:var(--radius-sm)}.card-h .st,.code{font-family:var(--font-code)}.code{background:var(--code-bg);color:var(--code-fg);font-size:12.5px;line-height:1.7;padding:14px 16px;white-space:pre;overflow:auto;margin:0}.code .k{color:#79c0ff}.code .s{color:#a5d6ff}.code .n{color:#f0883e}.code .pn{color:#8b949e}.code .b{color:#ff7b72}.w-status{font-family:var(--font-code);font-weight:var(--fw-bold);font-size:13px;padding:2px 11px;border-radius:var(--radius-sm);display:inline-block}.w-status.s2{color:var(--s-2xx);background:var(--s-2xx-bg)}.w-status.s3{color:var(--s-3xx);background:var(--s-3xx-bg)}.w-status.s4{color:var(--s-4xx);background:var(--s-4xx-bg)}.w-status.s5{color:var(--s-5xx);background:var(--s-5xx-bg)}.pgc-rotate[data-v-5b4e8bee]{width:100%;height:100%;margin:auto;position:absolute;top:0;bottom:0;left:0;right:0;z-index:1;-webkit-transition:all .6s ease-in-out;transition:all .6s ease-in-out;-webkit-animation:progress-circular-rotate-5b4e8bee 1.4s linear infinite;animation:progress-circular-rotate-5b4e8bee 1.4s linear infinite;-webkit-transform-origin:center center;transform-origin:center center}.pgc-dash[data-v-5b4e8bee]{-webkit-animation:progress-circular-dash-5b4e8bee 1.4s ease-in-out infinite;animation:progress-circular-dash-5b4e8bee 1.4s ease-in-out infinite;stroke-linecap:round;stroke-dasharray:80,200;stroke-dashoffset:0px}@-webkit-keyframes progress-circular-dash-5b4e8bee{0%{stroke-dasharray:1,200;stroke-dashoffset:0px}50%{stroke-dasharray:100,200;stroke-dashoffset:-15px}to{stroke-dasharray:100,200;stroke-dashoffset:-124px}}@keyframes progress-circular-dash-5b4e8bee{0%{stroke-dasharray:1,200;stroke-dashoffset:0px}50%{stroke-dasharray:100,200;stroke-dashoffset:-15px}to{stroke-dasharray:100,200;stroke-dashoffset:-124px}}@-webkit-keyframes progress-circular-rotate-5b4e8bee{to{-webkit-transform:rotate(1turn);transform:rotate(1turn)}}@keyframes progress-circular-rotate-5b4e8bee{to{-webkit-transform:rotate(1turn);transform:rotate(1turn)}}.WPopperFix[data-popper-reference-hidden][data-v-77c916dd]{visibility:hidden;pointer-events:none}.sb[data-v-84274e1c]{-webkit-transition:opacity .3s;transition:opacity .3s;scrollbar-width:thin;scrollbar-color:rgba(0,0,0,.3) transparent}.sb[data-v-84274e1c]::-webkit-scrollbar{width:8px;height:8px}.sb[data-v-84274e1c]::-webkit-scrollbar-track{background:transparent}.sb[data-v-84274e1c]::-webkit-scrollbar-thumb{background:rgba(0,0,0,.3);border-radius:20px;border:3px solid transparent}.ts[data-v-46cd394a]{-webkit-transition:all .3s cubic-bezier(.25,.8,.5,1);transition:all .3s cubic-bezier(.25,.8,.5,1)}.bs[data-v-46cd394a]{-webkit-box-shadow:0 8px 2px -8px rgba(0,0,0,.3),0 16px 24px 2px rgba(0,0,0,.3),0 6px 30px 5px rgba(0,0,0,.3);box-shadow:0 8px 2px -8px rgba(0,0,0,.3),0 16px 24px 2px rgba(0,0,0,.3),0 6px 30px 5px rgba(0,0,0,.3)}.fade-enter-active[data-v-a0c94508],.fade-leave-active[data-v-a0c94508]{-webkit-transition:all .3s;transition:all .3s}.fade-enter[data-v-a0c94508],.fade-leave-to[data-v-a0c94508]{-webkit-transform:scaleX(0);transform:scaleX(0)}.fade-enter-to[data-v-a0c94508],.fade-leave[data-v-a0c94508]{-webkit-transform:scaleX(100%);transform:scaleX(100%)}.caretRight[data-v-26dfca3e]{cursor:pointer;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;display:inline-block}.cc[data-v-26dfca3e]{display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-align:center;-ms-flex-align:center;align-items:center;-webkit-box-pack:center;-ms-flex-pack:center;justify-content:center}.circle[data-v-26dfca3e]{width:22px;height:22px;min-width:22px;min-height:22px;max-width:22px;max-height:22px;border-radius:50%}.md[data-v-7a1b470c]{font-size:13px;color:var(--c-1,#1b1b1b)}.md[data-v-7a1b470c] .md{contain:none!important}.md[data-v-7a1b470c] table{border-collapse:collapse;width:100%;font-size:13px;margin:2px 0 8px;word-break:normal}.md[data-v-7a1b470c] table tr th{text-align:left;font-weight:600;font-size:11.5px;letter-spacing:.03em;color:var(--c-2,#6b7280);background:transparent;border:none;border-bottom:1px solid var(--border,#e6e8ec);margin:0;padding:8px 18px 8px 0}.md[data-v-7a1b470c] table tr td{border:none;border-bottom:1px solid var(--border-soft,#eef0f3);color:var(--c-1,#1b1b1b);font-family:var(--font-code,ui-monospace,Menlo,Consolas,monospace);font-size:12.5px;vertical-align:top;margin:0;padding:8px 18px 8px 0}.md[data-v-7a1b470c] table tbody tr:last-child td{border-bottom:none}.md[data-v-7a1b470c] table tr td:first-child{font-weight:600;color:var(--c-1,#1b1b1b)}.md[data-v-7a1b470c] table tr td:nth-child(2){color:var(--m-post,#069061)}.md[data-v-7a1b470c] table tr td:nth-child(3){color:var(--c-2,#6b7280)}.md[data-v-7a1b470c] h1,.md[data-v-7a1b470c] h2,.md[data-v-7a1b470c] h3,.md[data-v-7a1b470c] h4,.md[data-v-7a1b470c] h5,.md[data-v-7a1b470c] h6{font-weight:600;font-size:13px;line-height:1.4;color:var(--c-2,#6b7280);margin:8px 0 6px}.md[data-v-7a1b470c] p{color:var(--c-2,#6b7280);line-height:1.6;margin:4px 0}.md[data-v-7a1b470c] code{background:var(--bg-3,#eceef1);border-radius:4px;padding:1px 5px}.md[data-v-7a1b470c] code,.md[data-v-7a1b470c] pre{font-family:var(--font-code,ui-monospace,Menlo,Consolas,monospace);font-size:12px}.md[data-v-7a1b470c] pre{background:var(--bg-2,#f7f8fa);border:1px solid var(--border,#e6e8ec);border-radius:8px;padding:12px 14px;overflow:auto}.md[data-v-7a1b470c] pre code{background:transparent;padding:0}.bk-title-sec[data-v-eb032b26]{font-size:var(--fs-h3);font-weight:600;color:var(--c-1);padding:6px 0 10px 0;border-bottom:1px solid var(--border);margin-bottom:12px}.bk-title[data-v-eb032b26]{font-size:var(--fs-xs);font-weight:500;color:var(--c-2);padding:0 0 6px 0}.bk-item[data-v-eb032b26]{padding:3px 5px;font-size:.9rem;line-height:.9rem;border-radius:var(--radius-lg);border:1px solid var(--border);background:var(--bg-1)}.bk-row[data-v-eb032b26]{display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-orient:vertical;-webkit-box-direction:normal;-ms-flex-direction:column;flex-direction:column;padding:12px 0 6px 0}.bk-col-label[data-v-eb032b26]{width:auto;-ms-flex-negative:0;flex-shrink:0}.bk-col-field[data-v-eb032b26]{-webkit-box-flex:1;-ms-flex:1;flex:1}.bk-input[data-v-eb032b26]{width:100%;-webkit-box-sizing:border-box;box-sizing:border-box;padding:5px 8px;font-size:var(--fs-body);border-radius:var(--radius-lg);border:1px solid var(--border);background:var(--bg-1);color:var(--c-1);outline:none;-webkit-transition:border-color .15s,-webkit-box-shadow .15s;transition:border-color .15s,-webkit-box-shadow .15s;transition:border-color .15s,box-shadow .15s;transition:border-color .15s,box-shadow .15s,-webkit-box-shadow .15s}.bk-input[data-v-eb032b26]:focus{border-color:var(--accent);-webkit-box-shadow:var(--focus);box-shadow:var(--focus)}.bk-textarea[data-v-eb032b26]{width:100%;-webkit-box-sizing:border-box;box-sizing:border-box;padding:5px 8px;font-size:var(--fs-sm);border-radius:var(--radius-lg);border:1px solid var(--border);background:var(--bg-1);color:var(--c-1);outline:none;resize:vertical;font-family:var(--font-code);-webkit-transition:border-color .15s,-webkit-box-shadow .15s;transition:border-color .15s,-webkit-box-shadow .15s;transition:border-color .15s,box-shadow .15s;transition:border-color .15s,box-shadow .15s,-webkit-box-shadow .15s}.bk-textarea[data-v-eb032b26]:focus{border-color:var(--accent);-webkit-box-shadow:var(--focus);box-shadow:var(--focus)}.bk-preview[data-v-eb032b26]{margin-top:6px;padding:8px 10px}.bk-err[data-v-eb032b26]{color:var(--danger);font-size:var(--fs-xs);padding:3px 2px}.bk-hint[data-v-eb032b26]{color:var(--c-3);font-size:var(--fs-xs);line-height:1.6;margin:0 0 8px 0;white-space:pre-line}.btn-save[data-v-eb032b26]{padding:7px 18px;font-size:var(--fs-body);border-radius:var(--radius-lg);border:1px solid var(--accent);background:var(--accent);color:#fff;cursor:pointer;-webkit-transition:background-color .15s,border-color .15s;transition:background-color .15s,border-color .15s}.btn-save[data-v-eb032b26]:hover{background:var(--accent-hover);border-color:var(--accent-hover)}.btn-delete[data-v-eb032b26]{padding:7px 18px;font-size:var(--fs-body);border-radius:var(--radius-lg);border:1px solid var(--danger);background:transparent;color:var(--danger);cursor:pointer;-webkit-transition:background-color .15s;transition:background-color .15s}.btn-delete[data-v-eb032b26]:hover{background:var(--danger-bg)}.btn-cancel[data-v-eb032b26]{padding:7px 18px;font-size:var(--fs-body);border-radius:var(--radius-lg);border:1px solid var(--border);background:transparent;color:var(--c-2);cursor:pointer;-webkit-transition:background-color .15s;transition:background-color .15s}.btn-cancel[data-v-eb032b26]:hover{background:var(--bg-3)}.sec-label[data-v-28338c8f]{font-size:var(--fs-xs);font-weight:var(--fw-bold);letter-spacing:.05em;text-transform:uppercase;color:var(--c-3)}.addr-bar[data-v-28338c8f]{display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-align:stretch;-ms-flex-align:stretch;align-items:stretch;border:1px solid var(--border);border-radius:var(--radius-lg);overflow:hidden;background:var(--bg-1)}.addr-method[data-v-28338c8f]{-ms-flex-negative:0;flex-shrink:0;display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-align:center;-ms-flex-align:center;align-items:center;padding:0 4px;border-right:1px solid var(--border);background:var(--bg-2);font-family:var(--font-code);font-weight:var(--fw-bold);font-size:var(--fs-sm)}.addr-url[data-v-28338c8f]{-webkit-box-flex:1;-ms-flex:1;flex:1;border:none;outline:none;padding:0 14px;font-size:var(--fs-sm);color:var(--c-1);background:transparent;font-family:var(--font-code)}.addr-send[data-v-28338c8f]{-ms-flex-negative:0;flex-shrink:0;margin:5px;padding:0 20px;border:none;border-radius:var(--radius);background:var(--accent);color:#fff;font-size:var(--fs-sm);font-weight:var(--fw-medium);cursor:pointer;-webkit-transition:background-color .15s;transition:background-color .15s}.addr-send[data-v-28338c8f]:hover:not(:disabled){background:var(--accent-hover)}.err-bar[data-v-28338c8f]{padding:8px 12px;border-radius:var(--radius-lg);background:var(--danger-bg);border:1px solid var(--danger);color:var(--danger);font-size:var(--fs-sm)}.kv-table[data-v-28338c8f]{border:1px solid var(--border);border-radius:var(--radius-lg);overflow:hidden}.kv-head[data-v-28338c8f]{display:grid;grid-template-columns:52px 1fr 1fr 34px;-webkit-box-align:center;-ms-flex-align:center;align-items:center;background:var(--bg-2);font-size:var(--fs-xs);color:var(--c-2);font-weight:var(--fw-bold);white-space:nowrap}.kv-head>div[data-v-28338c8f],.kv-row>div[data-v-28338c8f]{padding:7px 10px}.kv-row[data-v-28338c8f]{display:grid;grid-template-columns:52px 1fr 1fr 34px;border-top:1px solid var(--border)}.kv-center[data-v-28338c8f],.kv-row[data-v-28338c8f]{-webkit-box-align:center;-ms-flex-align:center;align-items:center}.kv-center[data-v-28338c8f]{display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-pack:center;-ms-flex-pack:center;justify-content:center}.kv-input[data-v-28338c8f]{width:100%;-webkit-box-sizing:border-box;box-sizing:border-box;border:1px solid transparent;background:transparent;outline:none;color:var(--c-1);font-size:var(--fs-sm);padding:3px 6px;border-radius:var(--radius-sm);font-family:var(--font-code);-webkit-transition:border-color .15s,background-color .15s;transition:border-color .15s,background-color .15s}.kv-input[data-v-28338c8f]:focus{border-color:var(--accent);background:var(--bg-1)}.kv-del-btn[data-v-28338c8f]{width:22px;height:22px;padding:0;border:none;background:transparent;color:var(--c-3);font-size:1rem;cursor:pointer;line-height:1;-webkit-transition:color .15s;transition:color .15s}.kv-del-btn[data-v-28338c8f]:hover{color:var(--danger)}.btn-addrow[data-v-28338c8f]{padding:5px 12px;border:1px solid var(--border);border-radius:var(--radius-lg);background:transparent;color:var(--c-2);font-size:var(--fs-xs);cursor:pointer;-webkit-transition:background-color .15s;transition:background-color .15s}.btn-addrow[data-v-28338c8f]:hover{background:var(--bg-3)}.body-textarea[data-v-28338c8f]{width:100%;min-height:120px;padding:8px 10px;border:1px solid var(--border);border-radius:var(--radius-lg);font-size:var(--fs-sm);font-family:var(--font-code);color:var(--c-1);background:var(--bg-1);resize:vertical;outline:none;-webkit-box-sizing:border-box;box-sizing:border-box;-webkit-transition:border-color .15s,-webkit-box-shadow .15s;transition:border-color .15s,-webkit-box-shadow .15s;transition:border-color .15s,box-shadow .15s;transition:border-color .15s,box-shadow .15s,-webkit-box-shadow .15s}.body-textarea[data-v-28338c8f]:focus{border-color:var(--accent);-webkit-box-shadow:var(--focus);box-shadow:var(--focus)}.res-empty-card[data-v-28338c8f]{background:var(--bg-1)}.w-echarts-vue[data-v-0411c82f]{display:block}.ctrl[data-v-0b7f1583]{margin-bottom:16px}.ctrl-row[data-v-0b7f1583]{display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-align:center;-ms-flex-align:center;align-items:center;gap:8px}.ctrl-label[data-v-0b7f1583]{font-size:.875rem;color:var(--c-2);width:64px;-ms-flex-negative:0;flex-shrink:0}.ctrl-select[data-v-0b7f1583]{border:1px solid var(--border);border-radius:var(--radius);background:var(--bg-1);color:var(--c-1);font-size:.875rem;padding:4px 8px;outline:none;cursor:pointer}.ctrl-select[data-v-0b7f1583]:focus{border-color:var(--accent)}.evt-sel-btn[data-v-0b7f1583]{border:1px solid var(--border);border-radius:var(--radius);background:var(--bg-1);color:var(--c-2);font-size:.8rem;padding:3px 12px;cursor:pointer}.evt-sel-btn[data-v-0b7f1583]:hover{border-color:var(--accent);color:var(--accent)}.evt-count[data-v-0b7f1583]{font-size:.78rem;color:var(--c-3);margin-left:4px}.evt-grid[data-v-0b7f1583]{margin-top:10px;margin-left:72px;display:grid;grid-template-columns:repeat(auto-fill,minmax(200px,1fr));gap:8px;max-width:1040px}.evt-chip[data-v-0b7f1583]{display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-align:center;-ms-flex-align:center;align-items:center;-webkit-box-sizing:border-box;box-sizing:border-box;border:1px solid var(--border);border-radius:var(--radius);background:var(--bg-1);padding:5px 10px;font-size:.82rem;color:var(--c-2);cursor:pointer;-webkit-transition:border-color .12s,background .12s,color .12s;transition:border-color .12s,background .12s,color .12s}.evt-chip[data-v-0b7f1583]:hover{border-color:var(--accent)}.evt-chip.on[data-v-0b7f1583]{color:var(--c-1);border-color:var(--accent);background:rgba(0,153,255,.06)}.evt-chip .stats-evt-cb[data-v-0b7f1583]{cursor:pointer;margin:0 6px 0 0;-ms-flex-negative:0;flex-shrink:0}.evt-dot[data-v-0b7f1583]{display:inline-block;width:9px;height:9px;border-radius:2px;margin-right:6px;-ms-flex-negative:0;flex-shrink:0}.evt-name[data-v-0b7f1583]{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.stats-table[data-v-0b7f1583]{width:100%;border-collapse:collapse;font-size:.85rem}.stats-table td[data-v-0b7f1583],.stats-table th[data-v-0b7f1583]{border-bottom:1px solid var(--border);padding:7px 10px;text-align:right;color:var(--c-1);white-space:nowrap}.stats-table th[data-v-0b7f1583]{color:var(--c-2);font-weight:600;background:var(--bg-2)}.w-mm-btn[data-v-7fee0388]{width:100%;-webkit-box-sizing:border-box;box-sizing:border-box;padding:10px 4px;border:none;border-left:3px solid transparent;background:transparent;color:var(--c-2);cursor:pointer;display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-orient:vertical;-webkit-box-direction:normal;-ms-flex-direction:column;flex-direction:column;-webkit-box-align:center;-ms-flex-align:center;align-items:center;gap:4px;-webkit-transition:background .15s,color .15s,border-color .15s;transition:background .15s,color .15s,border-color .15s}.w-mm-btn[data-v-7fee0388]:hover{background:rgba(0,153,255,.06);color:var(--c-1)}.w-mm-btn.on[data-v-7fee0388]{color:var(--accent);border-left-color:var(--accent);background:rgba(0,153,255,.08)}.w-mm-label[data-v-7fee0388]{font-size:11px;line-height:1.2;text-align:center;word-break:break-word}body,html{font-family:var(--font);overflow-y:hidden}a,button,div,input,p,pre,span,textarea{font-family:inherit}.fade-enter-active{-webkit-animation:go 1s;animation:go 1s}.fade-leave-active{-webkit-animation:back 1s;animation:back 1s}@-webkit-keyframes go{0%{opacity:0}to{opacity:1}}@keyframes go{0%{opacity:0}to{opacity:1}}@-webkit-keyframes back{0%{opacity:1}to{opacity:0}}@keyframes back{0%{opacity:1}to{opacity:0}}
1
+ :root{--bg-1:#fff;--bg-2:#f7f8fa;--bg-3:#eceef1;--bg-accent:rgba(0,153,255,.08);--code-bg:#0d1117;--code-fg:#c9d1d9;--c-1:#1b1b1b;--c-2:#6b7280;--c-3:#9aa1ac;--accent:#09f;--accent-hover:#07c;--border:#e6e8ec;--border-soft:#eef0f3;--m-get:#0082d0;--m-get-bg:rgba(0,130,208,.1);--m-post:#069061;--m-post-bg:rgba(6,144,97,.11);--m-put:#c2670a;--m-put-bg:rgba(255,88,0,.1);--m-del:#e01b54;--m-del-bg:rgba(239,0,6,.09);--m-patch:#b7860b;--m-patch-bg:rgba(237,190,32,.16);--m-other:#6b7280;--m-other-bg:hsla(220,9%,46%,.1);--s-2xx:#069061;--s-2xx-bg:rgba(6,144,97,.12);--s-3xx:#0082d0;--s-3xx-bg:rgba(0,130,208,.1);--s-4xx:#c2670a;--s-4xx-bg:rgba(255,88,0,.11);--s-5xx:#e01b54;--s-5xx-bg:rgba(239,0,6,.1);--danger:#e01b54;--danger-bg:#fff5f7;--success:#069061;--ok-fg:#069061;--ok-bg:rgba(6,144,97,.12);--font:"Microsoft JhengHei","微軟正黑體",ui-sans-serif,system-ui,-apple-system,"Segoe UI",sans-serif;--font-code:ui-monospace,"SFMono-Regular",Menlo,Consolas,"Courier New",monospace;--fs-h1:27px;--fs-h2:18px;--fs-h3:15px;--fs-body:14px;--fs-sm:13px;--fs-xs:11.5px;--fw-medium:500;--fw-bold:600;--radius:8px;--radius-sm:5px;--radius-lg:11px;--sp-1:4px;--sp-2:8px;--sp-3:12px;--sp-4:16px;--sp-6:24px;--sp-8:32px;--focus:0 0 0 3px rgba(0,153,255,.18);--focus-danger:0 0 0 3px rgba(239,0,6,.15)}.w-mb{font-family:var(--font-code);font-weight:var(--fw-bold);text-transform:uppercase;font-size:10px;letter-spacing:.03em;padding:2px 6px;min-width:40px;text-align:center;border-radius:var(--radius-sm);border:none;display:inline-block;-webkit-box-flex:0;-ms-flex:0 0 auto;flex:0 0 auto;line-height:1.5}.w-mb.get{color:var(--m-get);background:var(--m-get-bg)}.w-mb.post{color:var(--m-post);background:var(--m-post-bg)}.w-mb.put{color:var(--m-put);background:var(--m-put-bg)}.w-mb.del{color:var(--m-del);background:var(--m-del-bg)}.w-mb.patch{color:var(--m-patch);background:var(--m-patch-bg)}.w-mb.other{color:var(--m-other);background:var(--m-other-bg)}.w-input,.w-select,.w-textarea{width:100%;-webkit-box-sizing:border-box;box-sizing:border-box;padding:8px 12px;font-size:var(--fs-body);color:var(--c-1);background:var(--bg-1);border:1px solid var(--border);border-radius:var(--radius);outline:none;-webkit-transition:border-color .15s,-webkit-box-shadow .15s;transition:border-color .15s,-webkit-box-shadow .15s;transition:border-color .15s,box-shadow .15s;transition:border-color .15s,box-shadow .15s,-webkit-box-shadow .15s;font-family:var(--font)}.w-textarea{font-family:var(--font-code);font-size:var(--fs-sm);resize:vertical;min-height:72px;line-height:1.55}.w-input:focus,.w-select:focus,.w-textarea:focus{border-color:var(--accent);-webkit-box-shadow:var(--focus);box-shadow:var(--focus)}.w-input.is-error,.w-textarea.is-error{border-color:var(--danger);-webkit-box-shadow:var(--focus-danger);box-shadow:var(--focus-danger)}.w-btn-primary{padding:8px 17px;font-size:var(--fs-body);font-weight:var(--fw-medium);border-radius:var(--radius);border:1px solid var(--accent);background:var(--accent);color:#fff;cursor:pointer;-webkit-transition:.15s;transition:.15s}.w-btn-primary:hover{background:var(--accent-hover);border-color:var(--accent-hover)}.w-btn-danger{padding:8px 17px;font-size:var(--fs-body);border-radius:var(--radius);border:1px solid var(--danger);background:transparent;color:var(--danger);cursor:pointer;-webkit-transition:.15s;transition:.15s}.w-btn-danger:hover{background:var(--danger-bg)}.w-btn-ghost{padding:7px 14px;font-size:var(--fs-sm);border:1px solid var(--border);background:transparent;color:var(--c-2);border-radius:var(--radius);cursor:pointer;-webkit-transition:.15s;transition:.15s}.w-btn-ghost:hover{background:var(--bg-3)}.w-mono{font-family:var(--font-code)}.w-muted{color:var(--c-2)}.w-tnum{font-variant-numeric:tabular-nums}.w-seg{display:-webkit-inline-box;display:-ms-inline-flexbox;display:inline-flex;gap:2px;background:var(--bg-2);border:1px solid var(--border);border-radius:9px;padding:3px}.w-seg-btn{border:none;background:transparent;color:var(--c-2);font-size:13px;padding:5px 17px;border-radius:6px;cursor:pointer;font-weight:var(--fw-medium);-webkit-transition:.15s;transition:.15s}.w-seg-btn:hover{color:var(--c-1)}.w-seg-btn.on{background:var(--bg-1);color:var(--accent);-webkit-box-shadow:0 1px 2px rgba(0,0,0,.07);box-shadow:0 1px 2px rgba(0,0,0,.07)}.op-title{font-size:var(--fs-h1);font-weight:var(--fw-bold);letter-spacing:-.01em;margin:6px 0 10px;color:var(--c-1)}.op-path{display:-webkit-inline-box;display:-ms-inline-flexbox;display:inline-flex;-webkit-box-align:center;-ms-flex-align:center;align-items:center;gap:10px;padding:8px 13px;background:var(--bg-2);border:1px solid var(--border);border-radius:var(--radius);font-family:var(--font-code);font-size:13px;color:var(--c-1);max-width:100%;overflow:auto}.op-desc{color:var(--c-2);margin:14px 0 0;max-width:720px;font-size:14.5px;line-height:1.7}.pills{display:-webkit-box;display:-ms-flexbox;display:flex;-ms-flex-wrap:wrap;flex-wrap:wrap;gap:7px;margin:16px 0 4px}.pill{font-size:12px;color:var(--c-2);background:var(--bg-2);border:1px solid var(--border);border-radius:20px;padding:3px 11px}.pill b{color:var(--c-1)}.pill b,.pill.ok{font-weight:var(--fw-bold)}.pill.ok{color:var(--ok-fg);background:var(--ok-bg);border-color:transparent}.pill .kw-chip{display:inline-block;vertical-align:middle;font-size:11px;font-weight:var(--fw-bold);color:#0082d0;background:rgba(0,130,208,.12);border-radius:9px;padding:1px 7px;margin-left:5px}.split{display:grid;grid-template-columns:minmax(0,1.25fr) minmax(0,1fr);gap:34px;margin-top:28px;-webkit-box-align:start;-ms-flex-align:start;align-items:start}@media (max-width:1100px){.split{grid-template-columns:1fr}}.dsec{margin-bottom:28px}.dsec-h{font-size:13px;font-weight:var(--fw-bold);letter-spacing:.05em;text-transform:uppercase;color:var(--c-3);padding-bottom:9px;border-bottom:1px solid var(--border-soft);margin-bottom:12px}.rail{position:sticky;top:14px;display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-orient:vertical;-webkit-box-direction:normal;-ms-flex-direction:column;flex-direction:column;gap:16px}.card{border-radius:var(--radius-lg);overflow:hidden;border:1px solid var(--border)}.card-h{display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-align:center;-ms-flex-align:center;align-items:center;gap:9px;padding:9px 13px;background:var(--bg-2);border-bottom:1px solid var(--border);font-size:12px;color:var(--c-2)}.card-h .lab{color:var(--c-1)}.card-h .lab,.card-h .st{font-weight:var(--fw-bold)}.card-h .st{margin-left:auto;font-size:11.5px;color:var(--ok-fg);background:var(--ok-bg);padding:1px 8px;border-radius:var(--radius-sm)}.card-h .st,.code{font-family:var(--font-code)}.code{background:var(--code-bg);color:var(--code-fg);font-size:12.5px;line-height:1.7;padding:14px 16px;white-space:pre;overflow:auto;margin:0}.code .k{color:#79c0ff}.code .s{color:#a5d6ff}.code .n{color:#f0883e}.code .pn{color:#8b949e}.code .b{color:#ff7b72}.w-status{font-family:var(--font-code);font-weight:var(--fw-bold);font-size:13px;padding:2px 11px;border-radius:var(--radius-sm);display:inline-block}.w-status.s2{color:var(--s-2xx);background:var(--s-2xx-bg)}.w-status.s3{color:var(--s-3xx);background:var(--s-3xx-bg)}.w-status.s4{color:var(--s-4xx);background:var(--s-4xx-bg)}.w-status.s5{color:var(--s-5xx);background:var(--s-5xx-bg)}.pgc-rotate[data-v-5b4e8bee]{width:100%;height:100%;margin:auto;position:absolute;top:0;bottom:0;left:0;right:0;z-index:1;-webkit-transition:all .6s ease-in-out;transition:all .6s ease-in-out;-webkit-animation:progress-circular-rotate-5b4e8bee 1.4s linear infinite;animation:progress-circular-rotate-5b4e8bee 1.4s linear infinite;-webkit-transform-origin:center center;transform-origin:center center}.pgc-dash[data-v-5b4e8bee]{-webkit-animation:progress-circular-dash-5b4e8bee 1.4s ease-in-out infinite;animation:progress-circular-dash-5b4e8bee 1.4s ease-in-out infinite;stroke-linecap:round;stroke-dasharray:80,200;stroke-dashoffset:0px}@-webkit-keyframes progress-circular-dash-5b4e8bee{0%{stroke-dasharray:1,200;stroke-dashoffset:0px}50%{stroke-dasharray:100,200;stroke-dashoffset:-15px}to{stroke-dasharray:100,200;stroke-dashoffset:-124px}}@keyframes progress-circular-dash-5b4e8bee{0%{stroke-dasharray:1,200;stroke-dashoffset:0px}50%{stroke-dasharray:100,200;stroke-dashoffset:-15px}to{stroke-dasharray:100,200;stroke-dashoffset:-124px}}@-webkit-keyframes progress-circular-rotate-5b4e8bee{to{-webkit-transform:rotate(1turn);transform:rotate(1turn)}}@keyframes progress-circular-rotate-5b4e8bee{to{-webkit-transform:rotate(1turn);transform:rotate(1turn)}}.WPopperFix[data-popper-reference-hidden][data-v-77c916dd]{visibility:hidden;pointer-events:none}.sb[data-v-12bf3dc0]{-webkit-transition:opacity .3s;transition:opacity .3s;scrollbar-width:thin;scrollbar-color:rgba(0,0,0,.3) transparent}.sb[data-v-12bf3dc0]::-webkit-scrollbar{width:8px;height:8px}.sb[data-v-12bf3dc0]::-webkit-scrollbar-track{background:transparent}.sb[data-v-12bf3dc0]::-webkit-scrollbar-thumb{background:rgba(0,0,0,.3);border-radius:20px;border:3px solid transparent}.ts[data-v-46cd394a]{-webkit-transition:all .3s cubic-bezier(.25,.8,.5,1);transition:all .3s cubic-bezier(.25,.8,.5,1)}.bs[data-v-46cd394a]{-webkit-box-shadow:0 8px 2px -8px rgba(0,0,0,.3),0 16px 24px 2px rgba(0,0,0,.3),0 6px 30px 5px rgba(0,0,0,.3);box-shadow:0 8px 2px -8px rgba(0,0,0,.3),0 16px 24px 2px rgba(0,0,0,.3),0 6px 30px 5px rgba(0,0,0,.3)}.fade-enter-active[data-v-a0c94508],.fade-leave-active[data-v-a0c94508]{-webkit-transition:all .3s;transition:all .3s}.fade-enter[data-v-a0c94508],.fade-leave-to[data-v-a0c94508]{-webkit-transform:scaleX(0);transform:scaleX(0)}.fade-enter-to[data-v-a0c94508],.fade-leave[data-v-a0c94508]{-webkit-transform:scaleX(100%);transform:scaleX(100%)}.caretRight[data-v-26dfca3e]{cursor:pointer;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;display:inline-block}.cc[data-v-26dfca3e]{display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-align:center;-ms-flex-align:center;align-items:center;-webkit-box-pack:center;-ms-flex-pack:center;justify-content:center}.circle[data-v-26dfca3e]{width:22px;height:22px;min-width:22px;min-height:22px;max-width:22px;max-height:22px;border-radius:50%}.md[data-v-7a1b470c]{font-size:13px;color:var(--c-1,#1b1b1b)}.md[data-v-7a1b470c] .md{contain:none!important}.md[data-v-7a1b470c] table{border-collapse:collapse;width:100%;font-size:13px;margin:2px 0 8px;word-break:normal}.md[data-v-7a1b470c] table tr th{text-align:left;font-weight:600;font-size:11.5px;letter-spacing:.03em;color:var(--c-2,#6b7280);background:transparent;border:none;border-bottom:1px solid var(--border,#e6e8ec);margin:0;padding:8px 18px 8px 0}.md[data-v-7a1b470c] table tr td{border:none;border-bottom:1px solid var(--border-soft,#eef0f3);color:var(--c-1,#1b1b1b);font-family:var(--font-code,ui-monospace,Menlo,Consolas,monospace);font-size:12.5px;vertical-align:top;margin:0;padding:8px 18px 8px 0}.md[data-v-7a1b470c] table tbody tr:last-child td{border-bottom:none}.md[data-v-7a1b470c] table tr td:first-child{font-weight:600;color:var(--c-1,#1b1b1b)}.md[data-v-7a1b470c] table tr td:nth-child(2){color:var(--m-post,#069061)}.md[data-v-7a1b470c] table tr td:nth-child(3){color:var(--c-2,#6b7280)}.md[data-v-7a1b470c] h1,.md[data-v-7a1b470c] h2,.md[data-v-7a1b470c] h3,.md[data-v-7a1b470c] h4,.md[data-v-7a1b470c] h5,.md[data-v-7a1b470c] h6{font-weight:600;font-size:13px;line-height:1.4;color:var(--c-2,#6b7280);margin:8px 0 6px}.md[data-v-7a1b470c] p{color:var(--c-2,#6b7280);line-height:1.6;margin:4px 0}.md[data-v-7a1b470c] code{background:var(--bg-3,#eceef1);border-radius:4px;padding:1px 5px}.md[data-v-7a1b470c] code,.md[data-v-7a1b470c] pre{font-family:var(--font-code,ui-monospace,Menlo,Consolas,monospace);font-size:12px}.md[data-v-7a1b470c] pre{background:var(--bg-2,#f7f8fa);border:1px solid var(--border,#e6e8ec);border-radius:8px;padding:12px 14px;overflow:auto}.md[data-v-7a1b470c] pre code{background:transparent;padding:0}.bk-title-sec[data-v-eb032b26]{font-size:var(--fs-h3);font-weight:600;color:var(--c-1);padding:6px 0 10px 0;border-bottom:1px solid var(--border);margin-bottom:12px}.bk-title[data-v-eb032b26]{font-size:var(--fs-xs);font-weight:500;color:var(--c-2);padding:0 0 6px 0}.bk-item[data-v-eb032b26]{padding:3px 5px;font-size:.9rem;line-height:.9rem;border-radius:var(--radius-lg);border:1px solid var(--border);background:var(--bg-1)}.bk-row[data-v-eb032b26]{display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-orient:vertical;-webkit-box-direction:normal;-ms-flex-direction:column;flex-direction:column;padding:12px 0 6px 0}.bk-col-label[data-v-eb032b26]{width:auto;-ms-flex-negative:0;flex-shrink:0}.bk-col-field[data-v-eb032b26]{-webkit-box-flex:1;-ms-flex:1;flex:1}.bk-input[data-v-eb032b26]{width:100%;-webkit-box-sizing:border-box;box-sizing:border-box;padding:5px 8px;font-size:var(--fs-body);border-radius:var(--radius-lg);border:1px solid var(--border);background:var(--bg-1);color:var(--c-1);outline:none;-webkit-transition:border-color .15s,-webkit-box-shadow .15s;transition:border-color .15s,-webkit-box-shadow .15s;transition:border-color .15s,box-shadow .15s;transition:border-color .15s,box-shadow .15s,-webkit-box-shadow .15s}.bk-input[data-v-eb032b26]:focus{border-color:var(--accent);-webkit-box-shadow:var(--focus);box-shadow:var(--focus)}.bk-textarea[data-v-eb032b26]{width:100%;-webkit-box-sizing:border-box;box-sizing:border-box;padding:5px 8px;font-size:var(--fs-sm);border-radius:var(--radius-lg);border:1px solid var(--border);background:var(--bg-1);color:var(--c-1);outline:none;resize:vertical;font-family:var(--font-code);-webkit-transition:border-color .15s,-webkit-box-shadow .15s;transition:border-color .15s,-webkit-box-shadow .15s;transition:border-color .15s,box-shadow .15s;transition:border-color .15s,box-shadow .15s,-webkit-box-shadow .15s}.bk-textarea[data-v-eb032b26]:focus{border-color:var(--accent);-webkit-box-shadow:var(--focus);box-shadow:var(--focus)}.bk-preview[data-v-eb032b26]{margin-top:6px;padding:8px 10px}.bk-err[data-v-eb032b26]{color:var(--danger);font-size:var(--fs-xs);padding:3px 2px}.bk-hint[data-v-eb032b26]{color:var(--c-3);font-size:var(--fs-xs);line-height:1.6;margin:0 0 8px 0;white-space:pre-line}.btn-save[data-v-eb032b26]{padding:7px 18px;font-size:var(--fs-body);border-radius:var(--radius-lg);border:1px solid var(--accent);background:var(--accent);color:#fff;cursor:pointer;-webkit-transition:background-color .15s,border-color .15s;transition:background-color .15s,border-color .15s}.btn-save[data-v-eb032b26]:hover{background:var(--accent-hover);border-color:var(--accent-hover)}.btn-delete[data-v-eb032b26]{padding:7px 18px;font-size:var(--fs-body);border-radius:var(--radius-lg);border:1px solid var(--danger);background:transparent;color:var(--danger);cursor:pointer;-webkit-transition:background-color .15s;transition:background-color .15s}.btn-delete[data-v-eb032b26]:hover{background:var(--danger-bg)}.btn-cancel[data-v-eb032b26]{padding:7px 18px;font-size:var(--fs-body);border-radius:var(--radius-lg);border:1px solid var(--border);background:transparent;color:var(--c-2);cursor:pointer;-webkit-transition:background-color .15s;transition:background-color .15s}.btn-cancel[data-v-eb032b26]:hover{background:var(--bg-3)}.sec-label[data-v-28338c8f]{font-size:var(--fs-xs);font-weight:var(--fw-bold);letter-spacing:.05em;text-transform:uppercase;color:var(--c-3)}.addr-bar[data-v-28338c8f]{display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-align:stretch;-ms-flex-align:stretch;align-items:stretch;border:1px solid var(--border);border-radius:var(--radius-lg);overflow:hidden;background:var(--bg-1)}.addr-method[data-v-28338c8f]{-ms-flex-negative:0;flex-shrink:0;display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-align:center;-ms-flex-align:center;align-items:center;padding:0 4px;border-right:1px solid var(--border);background:var(--bg-2);font-family:var(--font-code);font-weight:var(--fw-bold);font-size:var(--fs-sm)}.addr-url[data-v-28338c8f]{-webkit-box-flex:1;-ms-flex:1;flex:1;border:none;outline:none;padding:0 14px;font-size:var(--fs-sm);color:var(--c-1);background:transparent;font-family:var(--font-code)}.addr-send[data-v-28338c8f]{-ms-flex-negative:0;flex-shrink:0;margin:5px;padding:0 20px;border:none;border-radius:var(--radius);background:var(--accent);color:#fff;font-size:var(--fs-sm);font-weight:var(--fw-medium);cursor:pointer;-webkit-transition:background-color .15s;transition:background-color .15s}.addr-send[data-v-28338c8f]:hover:not(:disabled){background:var(--accent-hover)}.err-bar[data-v-28338c8f]{padding:8px 12px;border-radius:var(--radius-lg);background:var(--danger-bg);border:1px solid var(--danger);color:var(--danger);font-size:var(--fs-sm)}.kv-table[data-v-28338c8f]{border:1px solid var(--border);border-radius:var(--radius-lg);overflow:hidden}.kv-head[data-v-28338c8f]{display:grid;grid-template-columns:52px 1fr 1fr 34px;-webkit-box-align:center;-ms-flex-align:center;align-items:center;background:var(--bg-2);font-size:var(--fs-xs);color:var(--c-2);font-weight:var(--fw-bold);white-space:nowrap}.kv-head>div[data-v-28338c8f],.kv-row>div[data-v-28338c8f]{padding:7px 10px}.kv-row[data-v-28338c8f]{display:grid;grid-template-columns:52px 1fr 1fr 34px;border-top:1px solid var(--border)}.kv-center[data-v-28338c8f],.kv-row[data-v-28338c8f]{-webkit-box-align:center;-ms-flex-align:center;align-items:center}.kv-center[data-v-28338c8f]{display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-pack:center;-ms-flex-pack:center;justify-content:center}.kv-input[data-v-28338c8f]{width:100%;-webkit-box-sizing:border-box;box-sizing:border-box;border:1px solid transparent;background:transparent;outline:none;color:var(--c-1);font-size:var(--fs-sm);padding:3px 6px;border-radius:var(--radius-sm);font-family:var(--font-code);-webkit-transition:border-color .15s,background-color .15s;transition:border-color .15s,background-color .15s}.kv-input[data-v-28338c8f]:focus{border-color:var(--accent);background:var(--bg-1)}.kv-del-btn[data-v-28338c8f]{width:22px;height:22px;padding:0;border:none;background:transparent;color:var(--c-3);font-size:1rem;cursor:pointer;line-height:1;-webkit-transition:color .15s;transition:color .15s}.kv-del-btn[data-v-28338c8f]:hover{color:var(--danger)}.btn-addrow[data-v-28338c8f]{padding:5px 12px;border:1px solid var(--border);border-radius:var(--radius-lg);background:transparent;color:var(--c-2);font-size:var(--fs-xs);cursor:pointer;-webkit-transition:background-color .15s;transition:background-color .15s}.btn-addrow[data-v-28338c8f]:hover{background:var(--bg-3)}.body-textarea[data-v-28338c8f]{width:100%;min-height:120px;padding:8px 10px;border:1px solid var(--border);border-radius:var(--radius-lg);font-size:var(--fs-sm);font-family:var(--font-code);color:var(--c-1);background:var(--bg-1);resize:vertical;outline:none;-webkit-box-sizing:border-box;box-sizing:border-box;-webkit-transition:border-color .15s,-webkit-box-shadow .15s;transition:border-color .15s,-webkit-box-shadow .15s;transition:border-color .15s,box-shadow .15s;transition:border-color .15s,box-shadow .15s,-webkit-box-shadow .15s}.body-textarea[data-v-28338c8f]:focus{border-color:var(--accent);-webkit-box-shadow:var(--focus);box-shadow:var(--focus)}.res-empty-card[data-v-28338c8f]{background:var(--bg-1)}.w-echarts-vue[data-v-0411c82f]{display:block}.ctrl[data-v-ad946b4e]{margin-bottom:16px;display:grid;grid-template-columns:-webkit-max-content minmax(0,1fr);grid-template-columns:max-content minmax(0,1fr);gap:12px 8px;-webkit-box-align:center;-ms-flex-align:center;align-items:center}.ctrl-row[data-v-ad946b4e]{display:contents}.ctrl-label[data-v-ad946b4e]{font-size:.875rem;color:var(--c-2)}.ctrl-field[data-v-ad946b4e]{display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-align:center;-ms-flex-align:center;align-items:center;gap:8px;min-width:0}.ctrl-select[data-v-ad946b4e]{border:1px solid var(--border);border-radius:var(--radius);background:var(--bg-1);color:var(--c-1);font-size:.875rem;padding:4px 8px;outline:none;cursor:pointer}.ctrl-select[data-v-ad946b4e]:focus{border-color:var(--accent)}.evt-sel-btn[data-v-ad946b4e]{border:1px solid var(--border);border-radius:var(--radius);background:var(--bg-1);color:var(--c-2);font-size:.8rem;padding:3px 12px;cursor:pointer}.evt-sel-btn[data-v-ad946b4e]:hover{border-color:var(--accent);color:var(--accent)}.evt-count[data-v-ad946b4e]{font-size:.78rem;color:var(--c-3);margin-left:4px}.evt-grid[data-v-ad946b4e]{grid-column:2;-ms-flex-wrap:wrap;flex-wrap:wrap;gap:8px}.evt-chip[data-v-ad946b4e],.evt-grid[data-v-ad946b4e]{min-width:0;display:-webkit-box;display:-ms-flexbox;display:flex}.evt-chip[data-v-ad946b4e]{-webkit-box-align:center;-ms-flex-align:center;align-items:center;-webkit-box-sizing:border-box;box-sizing:border-box;-webkit-box-flex:0;-ms-flex:0 1 auto;flex:0 1 auto;max-width:100%;border:1px solid var(--border);border-radius:var(--radius);background:var(--bg-1);padding:5px 10px;font-size:.82rem;color:var(--c-2);cursor:pointer;-webkit-transition:border-color .12s,background .12s,color .12s;transition:border-color .12s,background .12s,color .12s}.evt-chip[data-v-ad946b4e]:hover{border-color:var(--accent)}.evt-chip.on[data-v-ad946b4e]{color:var(--c-1);border-color:var(--accent);background:rgba(0,153,255,.06)}.evt-chip .stats-evt-cb[data-v-ad946b4e]{cursor:pointer;margin:0 6px 0 0;-ms-flex-negative:0;flex-shrink:0}.evt-dot[data-v-ad946b4e]{display:inline-block;width:9px;height:9px;border-radius:2px;margin-right:6px;-ms-flex-negative:0;flex-shrink:0}.evt-name[data-v-ad946b4e]{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.stats-table-area[data-v-ad946b4e]{overflow-x:auto}.stats-table[data-v-ad946b4e]{width:100%;border-collapse:collapse;font-size:.85rem}.stats-table td[data-v-ad946b4e]:first-child{white-space:normal;overflow-wrap:anywhere}.stats-table td[data-v-ad946b4e],.stats-table th[data-v-ad946b4e]{border-bottom:1px solid var(--border);padding:7px 10px;text-align:right;color:var(--c-1);white-space:nowrap}.stats-table th[data-v-ad946b4e]{color:var(--c-2);font-weight:600;background:var(--bg-2)}.w-mm-btn[data-v-32eb1fe9]{width:100%;-webkit-box-sizing:border-box;box-sizing:border-box;padding:10px 4px;border:none;border-left:3px solid transparent;background:transparent;color:var(--c-2);cursor:pointer;display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-orient:vertical;-webkit-box-direction:normal;-ms-flex-direction:column;flex-direction:column;-webkit-box-align:center;-ms-flex-align:center;align-items:center;gap:4px;-webkit-transition:background .15s,color .15s,border-color .15s;transition:background .15s,color .15s,border-color .15s}.w-mm-btn[data-v-32eb1fe9]:hover{background:rgba(0,153,255,.06);color:var(--c-1)}.w-mm-btn.on[data-v-32eb1fe9]{color:var(--accent);border-left-color:var(--accent);background:rgba(0,153,255,.08)}.w-mm-label[data-v-32eb1fe9]{font-size:11px;line-height:1.2;text-align:center;word-break:break-word}body,html{font-family:var(--font);overflow-y:hidden}a,button,div,input,p,pre,span,textarea{font-family:inherit}.fade-enter-active{-webkit-animation:go 1s;animation:go 1s}.fade-leave-active{-webkit-animation:back 1s;animation:back 1s}@-webkit-keyframes go{0%{opacity:0}to{opacity:1}}@keyframes go{0%{opacity:0}to{opacity:1}}@-webkit-keyframes back{0%{opacity:1}to{opacity:0}}@keyframes back{0%{opacity:1}to{opacity:0}}
package/dist/index.tmp CHANGED
@@ -2,4 +2,4 @@
2
2
  urlRedirect: '{urlRedirect}',
3
3
  }</script><script>window.___pmwperm___={
4
4
  language: '{language}',
5
- }</script><script defer="defer" src="{sfd}/js/chunk-vendors.cc9f5247.js" type="module"></script><script defer="defer" src="{sfd}/js/app.955c81f0.js" type="module"></script><link href="{sfd}/css/app.e140ee15.css" rel="stylesheet"><script defer="defer" src="{sfd}/js/chunk-vendors-legacy.cc9f5247.js" nomodule></script><script defer="defer" src="{sfd}/js/app-legacy.955c81f0.js" nomodule></script></head><body style="font-family:'Microsoft JhengHei','Avenir','Helvetica', 'Arial', 'sans-serif'; padding:0px; margin:0px;"><noscript><strong>We're sorry but w-component-vue doesn't work properly without JavaScript enabled. Please enable it to continue.</strong></noscript><div id="app"></div></body></html>
5
+ }</script><script defer="defer" src="{sfd}/js/chunk-vendors.47cf6375.js" type="module"></script><script defer="defer" src="{sfd}/js/app.2aa145e5.js" type="module"></script><link href="{sfd}/css/app.ae472c4d.css" rel="stylesheet"><script defer="defer" src="{sfd}/js/chunk-vendors-legacy.47cf6375.js" nomodule></script><script defer="defer" src="{sfd}/js/app-legacy.2aa145e5.js" nomodule></script></head><body style="font-family:'Microsoft JhengHei','Avenir','Helvetica', 'Arial', 'sans-serif'; padding:0px; margin:0px;"><noscript><strong>We're sorry but w-component-vue doesn't work properly without JavaScript enabled. Please enable it to continue.</strong></noscript><div id="app"></div></body></html>