create-fesd-app 1.0.15 → 1.0.17
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/package.json +2 -2
- package/src/assets/css/layouts/_cookiePolicy.sass +13 -13
- package/src/assets/css/layouts/article4/_article4_setting.sass +10 -13
- package/src/assets/js/commons/cookies/cookieData.js +125 -124
- package/src/assets/js/commons/cookies/cookieElement.js +257 -0
- package/src/assets/js/commons/cookies/cookiePolicy.js +339 -318
- package/src/assets/js/commons/inits.js +7 -4
- package/src/assets/js/commons/methods.js +0 -29
- package/src/layouts/_template.pug +1 -1
- package/src/layouts/components/_cookiePolicy.pug +31 -25
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "create-fesd-app",
|
|
3
|
-
"version": "1.0.
|
|
3
|
+
"version": "1.0.17",
|
|
4
4
|
"type": "module",
|
|
5
5
|
"scripts": {
|
|
6
6
|
"dev": "vite",
|
|
@@ -24,7 +24,7 @@
|
|
|
24
24
|
"dependencies": {
|
|
25
25
|
"@tailwindcss/postcss": "^4.1.10",
|
|
26
26
|
"@tailwindcss/vite": "^4.1.10",
|
|
27
|
-
"@xwadex/fesd": "0.0.
|
|
27
|
+
"@xwadex/fesd": "0.0.40",
|
|
28
28
|
"ansi-colors": "^4.1.3",
|
|
29
29
|
"chalk": "^5.3.0",
|
|
30
30
|
"clsx": "^2.1.1",
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
.cookie-check,
|
|
2
|
-
.cookie-
|
|
2
|
+
.cookie-setting
|
|
3
3
|
.button-group
|
|
4
4
|
display: flex
|
|
5
5
|
.cookie-btn
|
|
@@ -92,7 +92,7 @@
|
|
|
92
92
|
display: flex
|
|
93
93
|
align-items: center
|
|
94
94
|
gap: 10px
|
|
95
|
-
.cookie-
|
|
95
|
+
.cookie-setting-btn
|
|
96
96
|
margin-left: auto
|
|
97
97
|
display: flex
|
|
98
98
|
align-items: center
|
|
@@ -115,20 +115,20 @@
|
|
|
115
115
|
.cookie-container
|
|
116
116
|
.button-group
|
|
117
117
|
flex-direction: column
|
|
118
|
-
.cookie-
|
|
118
|
+
.cookie-setting-btn
|
|
119
119
|
margin-top: 30px
|
|
120
120
|
margin-right: auto
|
|
121
121
|
|
|
122
|
-
[
|
|
123
|
-
|
|
124
|
-
|
|
125
|
-
|
|
126
|
-
|
|
127
|
-
|
|
128
|
-
|
|
129
|
-
|
|
122
|
+
// [t4-id]
|
|
123
|
+
// opacity: 0
|
|
124
|
+
// display: none
|
|
125
|
+
// transition: all .5s
|
|
126
|
+
// &.show
|
|
127
|
+
// opacity: 1
|
|
128
|
+
// &.active
|
|
129
|
+
// display: block
|
|
130
130
|
|
|
131
|
-
.cookie-
|
|
131
|
+
.cookie-setting
|
|
132
132
|
display: flex
|
|
133
133
|
justify-content: center
|
|
134
134
|
align-items: center
|
|
@@ -336,7 +336,7 @@
|
|
|
336
336
|
box-shadow: 0 2px 8px rgba(0,0,0,0.28), 0 0 0 20px rgba(128,128,128,0.1)
|
|
337
337
|
|
|
338
338
|
.setting-container
|
|
339
|
-
&[
|
|
339
|
+
&[t4-id='step2']
|
|
340
340
|
.back
|
|
341
341
|
display: flex
|
|
342
342
|
align-items: center
|
|
@@ -77,10 +77,6 @@ $typeFull-padding_rwd: 30px 20px
|
|
|
77
77
|
$typeFull-content-padding: 85px 75px 100px
|
|
78
78
|
$typeFull-content-padding_rwd: 20px
|
|
79
79
|
|
|
80
|
-
// swiper pagination
|
|
81
|
-
$pagination-TB-gap: 20px
|
|
82
|
-
$pagination-TB-gap_rwd: 10px
|
|
83
|
-
|
|
84
80
|
// 表格與其他物件上下間的距離
|
|
85
81
|
$table-TB-gap: 20px
|
|
86
82
|
$table-TB-gap_rwd: 20px
|
|
@@ -341,28 +337,31 @@ $quote-TB-gap: 20px
|
|
|
341
337
|
// @extend %table_border_rows
|
|
342
338
|
// @extend %table_border_full
|
|
343
339
|
@extend %table_solidSingle_borderColumn
|
|
340
|
+
|
|
341
|
+
&[data-table-markdown="on"]
|
|
342
|
+
table p
|
|
343
|
+
white-space: pre-wrap
|
|
344
|
+
|
|
344
345
|
table
|
|
345
346
|
th, td
|
|
346
347
|
text-align: left
|
|
347
348
|
background: #fff
|
|
349
|
+
span
|
|
350
|
+
display: block
|
|
351
|
+
ol,ul
|
|
352
|
+
&:not(:first-child)
|
|
353
|
+
margin-top: 10px
|
|
348
354
|
thead
|
|
349
355
|
th
|
|
350
356
|
// 以下可修改
|
|
351
357
|
font-size: 16px
|
|
352
358
|
line-height: 1.2
|
|
353
359
|
font-weight: 600
|
|
354
|
-
span
|
|
355
|
-
display: block
|
|
356
360
|
tbody
|
|
357
361
|
td
|
|
358
362
|
// 以下可修改
|
|
359
363
|
font-size: 16px
|
|
360
364
|
line-height: 1.2
|
|
361
|
-
span
|
|
362
|
-
display: block
|
|
363
|
-
ol,ul
|
|
364
|
-
&:not(:first-child)
|
|
365
|
-
margin-top: 10px
|
|
366
365
|
|
|
367
366
|
%table_tipText
|
|
368
367
|
// 以下可修改
|
|
@@ -581,8 +580,6 @@ $quote-TB-gap: 20px
|
|
|
581
580
|
line-height: 1.2
|
|
582
581
|
&:not(:first-child)
|
|
583
582
|
margin-top: 10px
|
|
584
|
-
p
|
|
585
|
-
white-space: pre-wrap
|
|
586
583
|
em
|
|
587
584
|
font-style: italic
|
|
588
585
|
a
|
|
@@ -1,13 +1,15 @@
|
|
|
1
|
-
//
|
|
2
|
-
// 基本上進階版細項開關不開,
|
|
1
|
+
// 此處為 demo 資料, 後端會用相同資料結構洗資料在 #_wcookie 上
|
|
2
|
+
// 給後端: 基本上進階版細項開關不開, 有需求才開; 若開啟進階版細項, 大分類的 close 開關預設會無效, 會以判斷細項是否有開啟 or 全關為主
|
|
3
|
+
// close: 0 -> 開啟; close: 1 -> 關閉
|
|
3
4
|
export const cookieData = [
|
|
4
5
|
{
|
|
6
|
+
multiType: true, // 進階版是否開啟個別選項設定
|
|
5
7
|
title: "您的 Cookie 偏好設定",
|
|
6
8
|
text: "我們使用不同類型的 Cookies 來優化您在我們的網站上的體驗,點擊下面類別以了解其目的與更多訊息。<br>您可以選擇允許的 Cookies 類型,也可以隨時更改您的偏好設定。<br>提醒您,停用 Cookies 可能會影響您在網站上的體驗,您可以瀏覽我們的隱私權政策,進一步了解我們如何使用 Cookie。",
|
|
7
9
|
options: [
|
|
8
10
|
{
|
|
9
11
|
key: "required",
|
|
10
|
-
|
|
12
|
+
close: 0,
|
|
11
13
|
disabled: true,
|
|
12
14
|
title: "必要",
|
|
13
15
|
text: "這些 Cookies 對於支持核心網站功能(例如提供安全登錄)至關重要。",
|
|
@@ -18,26 +20,26 @@ export const cookieData = [
|
|
|
18
20
|
text: "第一方 cookies 由用戶訪問的網站(即主機域名)設置。網站通常使用第一方 cookies 用於跟踪訪客在網站上的行為並個性化他們在網站上的瀏覽體驗以及個性化他們的瀏覽體驗。",
|
|
19
21
|
list: [
|
|
20
22
|
{
|
|
21
|
-
key: "",
|
|
22
|
-
|
|
23
|
+
key: "PHPSESSID",
|
|
24
|
+
close: 0,
|
|
23
25
|
title: "PHPSESSID",
|
|
24
26
|
text: "php用來辨識用戶的session id",
|
|
25
27
|
},
|
|
26
28
|
{
|
|
27
|
-
key: "",
|
|
28
|
-
|
|
29
|
+
key: "XSRF-TOKEN",
|
|
30
|
+
close: 0,
|
|
29
31
|
title: "XSRF-TOKEN",
|
|
30
32
|
text: "網站防止 CSRF(Cross-Site Request Forgery,跨站請求偽造)攻擊 的 token",
|
|
31
33
|
},
|
|
32
34
|
{
|
|
33
|
-
key: "",
|
|
34
|
-
|
|
35
|
+
key: "web_session",
|
|
36
|
+
close: 0,
|
|
35
37
|
title: "web_session",
|
|
36
38
|
text: "網站用來辨識用戶的session id",
|
|
37
39
|
},
|
|
38
40
|
{
|
|
39
|
-
key: "",
|
|
40
|
-
|
|
41
|
+
key: "hubspot",
|
|
42
|
+
close: 0,
|
|
41
43
|
title: "hubspot",
|
|
42
44
|
text: "hubspot 使用了Cloudflare服務,區分真人訪客與惡意機器人",
|
|
43
45
|
},
|
|
@@ -48,77 +50,57 @@ export const cookieData = [
|
|
|
48
50
|
},
|
|
49
51
|
{
|
|
50
52
|
key: "analytics",
|
|
51
|
-
|
|
53
|
+
close: 1,
|
|
52
54
|
disabled: false,
|
|
53
55
|
title: "分析與自訂",
|
|
54
56
|
text: "這些 Cookies 分析網站優化的使用情況。",
|
|
55
57
|
notice: "我們將無法分析您的網站使用情況,以提供自定義內容",
|
|
56
58
|
data: {
|
|
57
59
|
items: [
|
|
58
|
-
// {
|
|
59
|
-
// main: "第一方 Cookie 提供商",
|
|
60
|
-
// text: "第一方 cookies 由用戶訪問的網站(即主機域名)設置。網站通常使用第一方 cookies 用於跟踪訪客在網站上的行為並個性化他們在網站上的瀏覽體驗以及個性化他們的瀏覽體驗。",
|
|
61
|
-
// list: [
|
|
62
|
-
// {
|
|
63
|
-
// title: "gtm",
|
|
64
|
-
// key: "gtm",
|
|
65
|
-
// state: "",
|
|
66
|
-
// },
|
|
67
|
-
// {
|
|
68
|
-
// title: "ga",
|
|
69
|
-
// key: "ga",
|
|
70
|
-
// state: "",
|
|
71
|
-
// detail: [
|
|
72
|
-
// {
|
|
73
|
-
// title: "_ga",
|
|
74
|
-
// text: "用來區分不同使用者。每個使用者會被指派唯一的 ID",
|
|
75
|
-
// typeTitle: "時間 / 類型",
|
|
76
|
-
// typeDesc: "13 個月",
|
|
77
|
-
// },
|
|
78
|
-
// {
|
|
79
|
-
// title: "_ga_<container-id>",
|
|
80
|
-
// text: "追蹤單一屬性 (Property) 的資料。",
|
|
81
|
-
// typeTitle: "時間 / 類型",
|
|
82
|
-
// typeDesc: "13 個月",
|
|
83
|
-
// },
|
|
84
|
-
// ],
|
|
85
|
-
// },
|
|
86
|
-
// ],
|
|
87
|
-
// },
|
|
88
60
|
{
|
|
89
|
-
main: "
|
|
90
|
-
text: "
|
|
61
|
+
main: "第一方 Cookie 提供商",
|
|
62
|
+
text: "第一方 cookies 由用戶訪問的網站(即主機域名)設置。網站通常使用第一方 cookies 用於跟踪訪客在網站上的行為並個性化他們在網站上的瀏覽體驗以及個性化他們的瀏覽體驗。",
|
|
91
63
|
list: [
|
|
92
|
-
// {
|
|
93
|
-
// title: "googlefont",
|
|
94
|
-
// key: "",
|
|
95
|
-
// state: "",
|
|
96
|
-
// },
|
|
97
64
|
{
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
|
|
65
|
+
key: "gtm",
|
|
66
|
+
close: 1,
|
|
67
|
+
title: "gtm",
|
|
68
|
+
},
|
|
69
|
+
{
|
|
70
|
+
key: "ga",
|
|
71
|
+
close: 1,
|
|
72
|
+
title: "ga",
|
|
102
73
|
detail: [
|
|
103
74
|
{
|
|
104
|
-
title: "
|
|
105
|
-
text: "
|
|
75
|
+
title: "_ga",
|
|
76
|
+
text: "用來區分不同使用者。每個使用者會被指派唯一的 ID",
|
|
106
77
|
typeTitle: "時間 / 類型",
|
|
107
|
-
typeDesc: "
|
|
78
|
+
typeDesc: "13 個月",
|
|
108
79
|
},
|
|
109
80
|
{
|
|
110
|
-
title: "
|
|
111
|
-
text: "
|
|
81
|
+
title: "_ga_<container-id>",
|
|
82
|
+
text: "追蹤單一屬性 (Property) 的資料。",
|
|
112
83
|
typeTitle: "時間 / 類型",
|
|
113
|
-
typeDesc: "
|
|
84
|
+
typeDesc: "13 個月",
|
|
114
85
|
},
|
|
115
86
|
],
|
|
116
87
|
},
|
|
88
|
+
],
|
|
89
|
+
},
|
|
90
|
+
{
|
|
91
|
+
main: "第三方 Cookie 提供商",
|
|
92
|
+
text: "第三方 cookies 是由其他第三方實體放置在網站上,而不是網站本身,即使用者在地址欄中看到的網域以外的域名。第三方 cookies 通常跟踪訪客在網站之間的行為,通常用於針對性廣告目的。",
|
|
93
|
+
list: [
|
|
94
|
+
{
|
|
95
|
+
key: "googlefont",
|
|
96
|
+
close: 1,
|
|
97
|
+
title: "googlefont",
|
|
98
|
+
},
|
|
117
99
|
{
|
|
100
|
+
key: "Youtube",
|
|
101
|
+
close: 1,
|
|
118
102
|
title: "Youtube",
|
|
119
103
|
text: "https://www.youtube.com/",
|
|
120
|
-
key: "",
|
|
121
|
-
state: "",
|
|
122
104
|
detail: [
|
|
123
105
|
{
|
|
124
106
|
title: "YSC",
|
|
@@ -157,67 +139,86 @@ export const cookieData = [
|
|
|
157
139
|
},
|
|
158
140
|
],
|
|
159
141
|
},
|
|
160
|
-
|
|
161
|
-
|
|
162
|
-
|
|
163
|
-
|
|
164
|
-
|
|
165
|
-
|
|
166
|
-
|
|
167
|
-
|
|
168
|
-
|
|
169
|
-
|
|
170
|
-
|
|
171
|
-
|
|
172
|
-
|
|
173
|
-
|
|
174
|
-
|
|
175
|
-
|
|
176
|
-
|
|
177
|
-
|
|
178
|
-
|
|
179
|
-
|
|
180
|
-
|
|
181
|
-
|
|
182
|
-
|
|
183
|
-
|
|
184
|
-
|
|
185
|
-
|
|
186
|
-
|
|
187
|
-
|
|
188
|
-
|
|
189
|
-
|
|
190
|
-
|
|
191
|
-
|
|
192
|
-
|
|
193
|
-
|
|
194
|
-
|
|
195
|
-
|
|
196
|
-
|
|
197
|
-
|
|
198
|
-
|
|
199
|
-
|
|
200
|
-
|
|
201
|
-
|
|
202
|
-
|
|
203
|
-
|
|
204
|
-
|
|
205
|
-
|
|
206
|
-
|
|
207
|
-
|
|
208
|
-
|
|
209
|
-
|
|
210
|
-
|
|
211
|
-
|
|
212
|
-
|
|
213
|
-
|
|
214
|
-
|
|
215
|
-
|
|
216
|
-
|
|
217
|
-
|
|
218
|
-
|
|
219
|
-
|
|
220
|
-
|
|
142
|
+
{
|
|
143
|
+
key: "Vimeo",
|
|
144
|
+
close: 1,
|
|
145
|
+
title: "Vimeo",
|
|
146
|
+
text: "https://vimeo.com/",
|
|
147
|
+
detail: [
|
|
148
|
+
{
|
|
149
|
+
title: "_cf_bm",
|
|
150
|
+
text: "Cloudflare bot manager manages incoming traffic that matches the criteria associated with bots.",
|
|
151
|
+
typeTitle: "時間 / 類型",
|
|
152
|
+
typeDesc: "30 分",
|
|
153
|
+
},
|
|
154
|
+
{
|
|
155
|
+
title: "_cfuvid",
|
|
156
|
+
text: "Cloudflare cookie used to enforce rate-limiting rules.",
|
|
157
|
+
typeTitle: "時間 / 類型",
|
|
158
|
+
typeDesc: "session",
|
|
159
|
+
},
|
|
160
|
+
],
|
|
161
|
+
},
|
|
162
|
+
{
|
|
163
|
+
key: "Tiktok",
|
|
164
|
+
close: 1,
|
|
165
|
+
title: "Tiktok",
|
|
166
|
+
text: "https://www.tiktok.com/zh-Hant-TW/",
|
|
167
|
+
detail: [
|
|
168
|
+
{
|
|
169
|
+
title: "_ttp",
|
|
170
|
+
text: "To measure and improve the performance of advertising campaigns and to personalize the customer experience (including ads) on TikTok.",
|
|
171
|
+
typeTitle: "時間 / 類型",
|
|
172
|
+
typeDesc: "13 個月",
|
|
173
|
+
},
|
|
174
|
+
{
|
|
175
|
+
title: "msToken",
|
|
176
|
+
text: "用於存儲用戶的會話令牌,確保用戶在瀏覽器會話期間保持登錄狀態。",
|
|
177
|
+
typeTitle: "時間 / 類型",
|
|
178
|
+
typeDesc: "10 天",
|
|
179
|
+
},
|
|
180
|
+
{
|
|
181
|
+
title: "passport_csrf_token",
|
|
182
|
+
text: "用於防止跨站請求偽造(CSRF)攻擊,確保請求的合法性。",
|
|
183
|
+
typeTitle: "時間 / 類型",
|
|
184
|
+
typeDesc: "60 天",
|
|
185
|
+
},
|
|
186
|
+
{
|
|
187
|
+
title: "ttwid",
|
|
188
|
+
text: "用於識別用戶的唯一 ID,協助 TikTok 進行用戶識別與防止機器人行為。",
|
|
189
|
+
typeTitle: "時間 / 類型",
|
|
190
|
+
typeDesc: "10 天",
|
|
191
|
+
},
|
|
192
|
+
],
|
|
193
|
+
},
|
|
194
|
+
{
|
|
195
|
+
key: "instagram",
|
|
196
|
+
close: 1,
|
|
197
|
+
title: "instagram",
|
|
198
|
+
text: "https://www.instagram.com/",
|
|
199
|
+
detail: [
|
|
200
|
+
{
|
|
201
|
+
title: "mid",
|
|
202
|
+
text: "用於區分不同的用戶,協助 Instagram 提供個性化的內容推薦、廣告展示以及其他社交媒體功能。",
|
|
203
|
+
typeTitle: "時間 / 類型",
|
|
204
|
+
typeDesc: "13 個月",
|
|
205
|
+
},
|
|
206
|
+
],
|
|
207
|
+
},
|
|
208
|
+
{
|
|
209
|
+
key: "meta",
|
|
210
|
+
close: 1,
|
|
211
|
+
title: "meta",
|
|
212
|
+
text: "https://www.facebook.com/privacy/policy",
|
|
213
|
+
detail: [
|
|
214
|
+
{
|
|
215
|
+
title: "_fbp",
|
|
216
|
+
text: "用於辨識網站訪客,讓 Meta 可以顯示相關廣告(再行銷用途)。",
|
|
217
|
+
typeTitle: "時間 / 類型",
|
|
218
|
+
typeDesc: "90 天",
|
|
219
|
+
},
|
|
220
|
+
],
|
|
221
|
+
},
|
|
221
222
|
],
|
|
222
223
|
},
|
|
223
224
|
]
|
|
@@ -225,14 +226,14 @@ export const cookieData = [
|
|
|
225
226
|
},
|
|
226
227
|
{
|
|
227
228
|
key: "functionality",
|
|
228
|
-
|
|
229
|
+
close: 1,
|
|
229
230
|
disabled: false,
|
|
230
231
|
title: "性能與功能",
|
|
231
232
|
text: "這些 Cookies 有助於測量和分析,以改善瀏覽體驗",
|
|
232
233
|
},
|
|
233
234
|
{
|
|
234
235
|
key: "advertising",
|
|
235
|
-
|
|
236
|
+
close: 1,
|
|
236
237
|
disabled: false,
|
|
237
238
|
title: "廣告",
|
|
238
239
|
text: "這些 Cookies 有助於提供與您相關的廣告內容",
|