ts-glitter 22.4.7 → 22.4.9

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 (98) hide show
  1. package/lib/glitterBundle/Glitter.css +74 -62
  2. package/lowcode/Entry.js +1 -1
  3. package/lowcode/Entry.ts +1 -1
  4. package/lowcode/backend-manager/bg-product.js +49 -32
  5. package/lowcode/backend-manager/bg-product.ts +57 -39
  6. package/lowcode/backend-manager/bg-widget.js +17 -0
  7. package/lowcode/backend-manager/bg-widget.ts +18 -0
  8. package/lowcode/cms-plugin/information/information-module.js +5 -5
  9. package/lowcode/cms-plugin/information/information-module.ts +9 -5
  10. package/lowcode/cms-plugin/menus-setting.js +69 -55
  11. package/lowcode/cms-plugin/menus-setting.ts +77 -61
  12. package/lowcode/cms-plugin/module/form-module.js +109 -89
  13. package/lowcode/cms-plugin/module/form-module.ts +680 -650
  14. package/lowcode/cms-plugin/module/product-excel.js +1 -0
  15. package/lowcode/cms-plugin/module/product-excel.ts +2 -0
  16. package/lowcode/cms-plugin/pos-pages/payment-page.js +28 -10
  17. package/lowcode/cms-plugin/pos-pages/payment-page.ts +29 -10
  18. package/lowcode/cms-plugin/shopping-allowance-manager.js +0 -1
  19. package/lowcode/cms-plugin/shopping-allowance-manager.ts +0 -1
  20. package/lowcode/cms-plugin/shopping-collections.js +367 -193
  21. package/lowcode/cms-plugin/shopping-collections.ts +664 -243
  22. package/lowcode/cms-plugin/shopping-information.js +392 -38
  23. package/lowcode/cms-plugin/shopping-information.ts +479 -87
  24. package/lowcode/cms-plugin/shopping-product-setting.js +2 -2
  25. package/lowcode/cms-plugin/shopping-product-setting.ts +2 -2
  26. package/lowcode/cms-plugin/shopping-setting-advance.js +906 -766
  27. package/lowcode/cms-plugin/shopping-setting-advance.ts +977 -841
  28. package/lowcode/cms-plugin/shopping-setting-basic.js +1547 -1285
  29. package/lowcode/cms-plugin/shopping-setting-basic.ts +1742 -1466
  30. package/lowcode/cms-plugin/stock-stores.js +1 -0
  31. package/lowcode/cms-plugin/stock-stores.ts +1 -0
  32. package/lowcode/cms-plugin/user-list.js +47 -12
  33. package/lowcode/cms-plugin/user-list.ts +52 -14
  34. package/lowcode/css/editor.css +6 -0
  35. package/lowcode/glitterBundle/Glitter.css +74 -62
  36. package/lowcode/jslib/nestable/index.html +317 -0
  37. package/lowcode/jslib/nestable/jquery.nestable.js +484 -0
  38. package/lowcode/official_view_component/form-widget/input-custom.js +98 -6
  39. package/lowcode/official_view_component/form-widget/input-custom.ts +121 -16
  40. package/lowcode/public-components/headers/header-class.js +63 -0
  41. package/lowcode/public-components/headers/header-class.ts +65 -0
  42. package/lowcode/public-components/headers/sy-02.js +386 -400
  43. package/lowcode/public-components/headers/sy-02.ts +482 -492
  44. package/lowcode/public-components/headers/sy-03.js +42 -43
  45. package/lowcode/public-components/headers/sy-03.ts +46 -43
  46. package/lowcode/public-components/headers/sy-04.js +43 -41
  47. package/lowcode/public-components/headers/sy-04.ts +48 -41
  48. package/lowcode/public-components/headers/sy-05.js +30 -27
  49. package/lowcode/public-components/headers/sy-05.ts +33 -27
  50. package/lowcode/public-components/product/product-list.js +160 -148
  51. package/lowcode/public-components/product/product-list.ts +186 -165
  52. package/lowcode/public-models/product.ts +26 -1
  53. package/lowcode/src/glitterBundle/Glitter.css +74 -62
  54. package/package.json +1 -1
  55. package/rxmnt81tnk.json +1 -0
  56. package/src/api-public/controllers/shop.js +10 -4
  57. package/src/api-public/controllers/shop.js.map +1 -1
  58. package/src/api-public/controllers/shop.ts +14 -9
  59. package/src/api-public/services/ezpay/tool.d.ts +1 -0
  60. package/src/api-public/services/mail.js +1 -1
  61. package/src/api-public/services/mail.js.map +1 -1
  62. package/src/api-public/services/mail.ts +1 -1
  63. package/src/api-public/services/schedule.d.ts +0 -1
  64. package/src/api-public/services/schedule.js +12 -35
  65. package/src/api-public/services/schedule.js.map +1 -1
  66. package/src/api-public/services/schedule.ts +15 -39
  67. package/src/api-public/services/shopee.js +7 -17
  68. package/src/api-public/services/shopping.d.ts +27 -6
  69. package/src/api-public/services/shopping.js +364 -85
  70. package/src/api-public/services/shopping.js.map +1 -1
  71. package/src/api-public/services/shopping.ts +510 -101
  72. package/src/api-public/services/updated-table-checked.js +58 -1
  73. package/src/api-public/services/updated-table-checked.js.map +1 -1
  74. package/src/api-public/services/updated-table-checked.ts +62 -1
  75. package/src/api-public/services/user-update.js +14 -0
  76. package/src/api-public/services/user-update.js.map +1 -1
  77. package/src/api-public/services/user-update.ts +15 -0
  78. package/src/api-public/services/user.js +1 -1
  79. package/src/api-public/services/user.js.map +1 -1
  80. package/src/api-public/services/user.ts +1 -1
  81. package/src/app-project/serverless/src/modules/database.d.ts +1 -1
  82. package/src/app-project/serverless/src/modules/redis.d.ts +1 -1
  83. package/src/helper/glitter-util.d.ts +1 -0
  84. package/src/index.js +7 -5
  85. package/src/index.js.map +1 -1
  86. package/src/index.ts +45 -38
  87. package/src/modules/firebase.js +1 -0
  88. package/src/modules/firebase.js.map +1 -1
  89. package/src/modules/firebase.ts +1 -0
  90. package/src/seo-config.d.ts +1 -1
  91. package/src/seo-config.js +1 -2
  92. package/src/seo-config.js.map +1 -1
  93. package/src/seo-config.ts +1 -2
  94. package/src/services/saas-table-check.js.map +1 -1
  95. package/src/services/ses.js +4 -3
  96. package/src/services/ses.js.map +1 -1
  97. package/src/services/system-schedule.js.map +1 -1
  98. package/src/services/system-schedule.ts +1 -0
@@ -24,234 +24,168 @@ export class Sy02 {
24
24
  return HeadInitial.initial({
25
25
  widget: widget,
26
26
  browser: () => {
27
- var _a, _b, _c, _d, _e;
28
27
  let changePage = (index, type, subData) => { };
29
- gvc.glitter.getModule(new URL('./official_event/page/change-page.js', gvc.glitter.root_path).href, cl => {
30
- changePage = cl.changePage;
31
- });
28
+ gvc.glitter.getModule(HeaderClass.getChangePagePath(gvc), cl => (changePage = cl.changePage));
32
29
  const colors = Color.getTheme(gvc, widget.formData);
33
- return html `
34
- <!--Header Sy02-->
35
- <div style="height: 76px;"></div>
36
- <nav
37
- class="navbar navbar-expand-lg vw-100 header header-place shadow position-fixed top-0 left-0 py-0"
38
- style="background: ${(_a = widget.formData.theme_color['background']) !== null && _a !== void 0 ? _a : '#000'} !important;height: 76px;z-index:9999;
39
-
40
- "
41
- >
42
- <div class="mx-auto header-place h-100" style="max-width: 100% !important; ${document.body.clientWidth > 1300
43
- ? `min-width: 1280px !important;`
44
- : `width:100%;
45
- padding-left: 10px;padding-right: 10px;
46
- `}">
47
- <!--LOGO顯示區塊-->
48
- <div class="d-flex align-items-center justify-content-center h-100 w-100 gap-2">
49
- <!--手機版選單-->
50
- <div
51
- class="d-flex d-lg-none align-items-center justify-content-center"
52
- style="width:40px !important;height:40px !important;"
53
- onclick="${gvc.event(() => {
54
- gvc.glitter.setDrawer(gvc.bindView(() => {
55
- var _a;
56
- const id = gvc.glitter.getUUID();
57
- return {
58
- bind: id,
59
- view: () => {
30
+ HeaderClass.addStyle(gvc);
31
+ function navbar() {
32
+ const id = gvc.glitter.getUUID();
33
+ const vm = { data: [] };
34
+ ApiUser.getPublicConfig(widget.formData.menu_refer || 'menu-setting', 'manager', window.appName).then(res => {
35
+ vm.data = res.response.value[Language.getLanguage()];
36
+ gvc.notifyDataChange(id);
37
+ });
38
+ function resetToggle() {
39
+ function loop(data) {
40
+ data.map((dd) => {
60
41
  var _a;
61
- return html ` <div
62
- class="div d-flex align-items-center flex-column w-100 p-3"
63
- style="border-bottom:1px solid ${widget.formData.theme_color['title']};"
64
- >
65
- <div class="d-flex align-items-center ">
66
- <div>
67
- <div
68
- class="h-100"
69
- onclick="${gvc.event(() => {
70
- changePage('index', 'home', {});
71
- })}"
72
- >
73
- ${widget.formData.logo.type === 'text'
74
- ? html `
75
- <div
76
- class=" fw-bold d-flex align-items-center justify-content-center"
77
- style="width: 150px; margin-bottom: 20px;font-size: 36px;color: ${(_a = widget
78
- .formData.theme_color['title']) !== null && _a !== void 0 ? _a : '#000'};"
79
- >
80
- ${widget.formData.logo.value}
81
- </div>
82
- `
83
- : html `<img
84
- style="width: 150px;
85
- background-position: center;
86
- background-size: cover;
87
- background-repeat: no-repeat;
88
- border-radius: 10px;
89
- margin-bottom: 20px;"
90
- src="${widget.formData.logo.value}"
91
- /> `}
92
- </div>
93
- </div>
94
- </div>
95
- <div class="mb-3">${LanguageView.selectLanguage(gvc, colors)}</div>
96
- <div class="position-relative">
97
- <input
98
- class="form-control fw-500 "
99
- placeholder="${Language.text('find_product')}"
100
- autocomplete="off"
101
- value=""
102
- onchange="${gvc.event((e, event) => {
103
- gvc.glitter.href = `/all-product?search=${e.value}`;
104
- })}"
105
- />
106
-
107
- <div
108
- style=" position: absolute;
109
- right: 10px;
110
- top: 50%;
111
- transform: translateY(-50%);
112
- color: rgb(107, 114, 128);"
113
- >
114
- <i class="fa-solid fa-magnifying-glass"></i>
115
- </div>
116
- </div>
117
- </div>
118
-
119
- <div class="offcanvas-body p-0 ">
120
- ${gvc.bindView(() => {
121
- const id = gvc.glitter.getUUID();
122
- const vm = {
123
- data: [],
124
- };
125
- ApiUser.getPublicConfig(widget.formData.menu_refer || 'menu-setting', 'manager', window.appName).then(res => {
126
- vm.data = res.response.value[Language.getLanguage()];
127
- gvc.notifyDataChange(id);
128
- });
129
- return {
130
- bind: id,
131
- view: () => {
132
- function resetToggle() {
133
- function loop(data) {
134
- data.map((dd) => {
135
- var _a;
136
- dd.open = false;
137
- loop((_a = dd.items) !== null && _a !== void 0 ? _a : []);
138
- });
139
- }
140
- loop(vm.data);
141
- }
142
- function loopItems(data, show_border) {
143
- return data
144
- .map((dd) => {
145
- var _a, _b, _c, _d, _e;
146
- return html `
147
- <li
148
- style="${show_border
149
- ? `border-bottom: 1px solid ${(_a = widget.formData.theme_color['title']) !== null && _a !== void 0 ? _a : '#000'} !important;`
150
- : ``}"
151
- >
152
- <div
153
- class="nav-link d-flex justify-content-between"
154
- style="padding: 16px;"
155
- onclick="${gvc.event(() => {
156
- var _a;
157
- if (((_a = dd.items) !== null && _a !== void 0 ? _a : []).length === 0) {
158
- if (dd.link) {
159
- gvc.glitter.href = dd.link;
160
- gvc.glitter.closeDrawer();
161
- }
162
- }
163
- else {
164
- let og = dd.open;
165
- resetToggle();
166
- if (!og) {
167
- dd.open = true;
168
- }
169
- gvc.notifyDataChange(id);
170
- }
171
- })}"
172
- >
173
- <div
174
- style="color: ${(_b = widget.formData.theme_color['title']) !== null && _b !== void 0 ? _b : '#000'} !important;"
175
- onclick="${gvc.event((e, event) => {
176
- if (dd.link) {
177
- gvc.glitter.href = dd.link;
178
- gvc.glitter.closeDrawer();
179
- }
180
- event.stopPropagation();
181
- event.preventDefault();
182
- })}"
183
- >
184
- ${dd.title}
185
- </div>
186
- ${((_c = dd.items) !== null && _c !== void 0 ? _c : []).length
187
- ? html ` <i
188
- class="fa-solid ${dd.open
189
- ? `fa-angle-up`
190
- : `fa-angle-down`}"
191
- style="color: ${(_d = widget.formData.theme_color['title']) !== null && _d !== void 0 ? _d : '#000'} !important;"
192
- ></i>`
193
- : ``}
194
- </div>
195
- ${dd.open
196
- ? `<ul class="ps-3 pb-2">${loopItems((_e = dd.items) !== null && _e !== void 0 ? _e : [], false)}</ul>`
197
- : ``}
198
- </li>
199
- `;
200
- })
201
- .join('');
202
- }
203
- return loopItems(vm.data, true);
204
- },
205
- divCreate: {
206
- class: `navbar-nav me-auto mb-2 mb-lg-0`,
207
- style: ``,
208
- elem: `ul`,
209
- },
210
- };
211
- })}
212
- </div>`;
213
- },
214
- divCreate: {
215
- class: `w-100 h-100`,
216
- style: `z-index: 9999;overflow-y:auto;
217
- background: ${(_a = colors.bgr) !== null && _a !== void 0 ? _a : '#000'};overflow-x: hidden;`,
218
- },
219
- };
220
- }), () => {
221
- gvc.glitter.openDrawer(280);
42
+ dd.open = false;
43
+ loop((_a = dd.items) !== null && _a !== void 0 ? _a : []);
44
+ });
45
+ }
46
+ loop(vm.data);
47
+ }
48
+ function openParent(data, current_path, depth) {
49
+ data.open = current_path[depth] === data.title;
50
+ if ((data.items || []).length > 0) {
51
+ for (const d87 of data.items) {
52
+ openParent(d87, current_path, depth + 1);
53
+ }
54
+ }
55
+ }
56
+ function loopItems(data, show_border, current_path) {
57
+ return data
58
+ .map((dd) => {
59
+ var _a, _b, _c, _d;
60
+ const path = [...current_path, dd.title];
61
+ function linkEvent() {
62
+ var _a;
63
+ if (((_a = dd.items) !== null && _a !== void 0 ? _a : []).length === 0) {
64
+ if (dd.link) {
65
+ gvc.glitter.href = dd.link;
66
+ gvc.glitter.closeDrawer();
67
+ }
68
+ }
69
+ else {
70
+ let og = dd.open;
71
+ resetToggle();
72
+ if (!og) {
73
+ dd.open = true;
74
+ }
75
+ for (const d4 of vm.data) {
76
+ openParent(d4, path, 0);
77
+ }
78
+ gvc.notifyDataChange(id);
79
+ }
80
+ }
81
+ function stopEvent(event) {
82
+ if (dd.link) {
83
+ gvc.glitter.href = dd.link;
84
+ gvc.glitter.closeDrawer();
85
+ }
86
+ event.stopPropagation();
87
+ event.preventDefault();
88
+ }
89
+ return html `
90
+ <li
91
+ style="${show_border
92
+ ? `border-bottom: 1px solid ${(_a = widget.formData.theme_color['title']) !== null && _a !== void 0 ? _a : '#000'} !important;`
93
+ : ''}"
94
+ >
95
+ <div
96
+ class="nav-link d-flex justify-content-between"
97
+ style="padding: 16px; gap: 30px;"
98
+ onclick="${gvc.event(() => linkEvent())}"
99
+ >
100
+ <div
101
+ style="color: ${(_b = widget.formData.theme_color['title']) !== null && _b !== void 0 ? _b : '#000'} !important;"
102
+ onclick="${gvc.event((_, event) => stopEvent(event))}"
103
+ >
104
+ ${dd.title}
105
+ </div>
106
+ ${(dd.items || []).length
107
+ ? html ` <i
108
+ class="fa-solid ${dd.open ? 'fa-angle-up' : 'fa-angle-down'}"
109
+ style="color: ${(_c = widget.formData.theme_color['title']) !== null && _c !== void 0 ? _c : '#000'} !important;"
110
+ ></i>`
111
+ : ''}
112
+ </div>
113
+ ${dd.open
114
+ ? html `<ul class="ps-3 pb-2">
115
+ ${loopItems((_d = dd.items) !== null && _d !== void 0 ? _d : [], false, path)}
116
+ </ul>`
117
+ : ''}
118
+ </li>
119
+ `;
120
+ })
121
+ .join('');
122
+ }
123
+ return {
124
+ bind: id,
125
+ view: () => {
126
+ return loopItems(vm.data, true, []);
127
+ },
128
+ divCreate: {
129
+ class: 'navbar-nav me-auto mb-2 mb-lg-0',
130
+ elem: 'ul',
131
+ },
132
+ };
133
+ }
134
+ function drawer() {
135
+ var _a;
136
+ return gvc.bindView({
137
+ bind: gvc.glitter.getUUID(),
138
+ view: () => {
139
+ var _a;
140
+ return html `<div
141
+ class="div d-flex align-items-center flex-column w-100 p-3"
142
+ style="border-bottom:1px solid ${widget.formData.theme_color['title']};"
143
+ >
144
+ <div class="d-flex align-items-center">
145
+ <div>
146
+ <div class="h-100" onclick="${gvc.event(() => changePage('index', 'home', {}))}">
147
+ ${widget.formData.logo.type === 'text'
148
+ ? html `
149
+ <div
150
+ class="fw-bold d-flex align-items-center justify-content-center h-logo-text-1"
151
+ style="color: ${(_a = widget.formData.theme_color['title']) !== null && _a !== void 0 ? _a : '#000'};"
152
+ >
153
+ ${widget.formData.logo.value}
154
+ </div>
155
+ `
156
+ : html `<img class="h-logo-image" src="${widget.formData.logo.value}" /> `}
157
+ </div>
158
+ </div>
159
+ </div>
160
+ <div class="mb-3">${LanguageView.selectLanguage(gvc, colors)}</div>
161
+ <div class="position-relative">
162
+ <input
163
+ class="form-control fw-500 "
164
+ placeholder="${Language.text('find_product')}"
165
+ autocomplete="off"
166
+ onchange="${gvc.event(e => {
167
+ gvc.glitter.href = `/all-product?search=${e.value}`;
168
+ })}"
169
+ />
170
+ <div class="h-glass-div">
171
+ <i class="fa-solid fa-magnifying-glass"></i>
172
+ </div>
173
+ </div>
174
+ </div>
175
+ <div class="offcanvas-body p-0">${gvc.bindView(navbar())}</div>`;
176
+ },
177
+ divCreate: {
178
+ class: 'w-100 h-100',
179
+ style: `
180
+ z-index: 9999;
181
+ overflow-y: auto;
182
+ overflow-x: hidden;
183
+ background: ${(_a = colors.bgr) !== null && _a !== void 0 ? _a : '#000'};
184
+ `,
185
+ },
222
186
  });
223
- })}"
224
- >
225
- <i
226
- class="fa-solid fa-bars fa-fw d-md-none "
227
- style="font-size: 20px;
228
- color: ${(_b = widget.formData.theme_color['title']) !== null && _b !== void 0 ? _b : '#000'};"
229
- ></i>
230
- </div>
231
- <div class="${widget.formData.logo.type === 'text' ? `` : `h-100`}"
232
- onclick="${gvc.event(() => {
233
- changePage('index', 'home', {});
234
- })}"> ${widget.formData.logo.type === 'text'
235
- ? html `
236
- <div
237
- class=" fw-bold d-flex align-items-center h-100 mb-1 mb-sm-auto"
238
- style="font-size: 28px;line-height: 28px;color: ${(_c = widget.formData.theme_color['title']) !== null && _c !== void 0 ? _c : '#000'};"
239
- >
240
- ${widget.formData.logo.value}
241
- </div>
242
- `
243
- : html `
244
- <div class="d-flex align-items-center justify-content-center h-100 py-2">
245
- <img
246
- src="${widget.formData.logo.value}"
247
- style="max-height: 100%;max-width:200px;"
248
- />
249
- </div>
250
- `}
251
- </div>
252
- <!--選單列表顯示區塊-->
253
- <ul class="navbar-nav d-none d-md-block flex-fill ps-2" >
254
- ${gvc.bindView(() => {
187
+ }
188
+ function menu() {
255
189
  const id = gvc.glitter.getUUID();
256
190
  const vm = {
257
191
  data: [],
@@ -260,7 +194,7 @@ background: ${(_a = colors.bgr) !== null && _a !== void 0 ? _a : '#000'};overflo
260
194
  vm.data = res.response.value[Language.getLanguage()];
261
195
  gvc.notifyDataChange(id);
262
196
  });
263
- return {
197
+ return gvc.bindView({
264
198
  bind: id,
265
199
  view: () => __awaiter(this, void 0, void 0, function* () {
266
200
  const userData = yield ApiUser.getUserData(gvc.glitter.share.GlobalUser.token, 'me');
@@ -272,28 +206,25 @@ background: ${(_a = colors.bgr) !== null && _a !== void 0 ? _a : '#000'};overflo
272
206
  return '';
273
207
  }
274
208
  return html ` <li class="nav-item dropdown">
275
- <a
276
- class="nav-link header-link "
277
- style="color: ${(_a = widget.formData.theme_color['title']) !== null && _a !== void 0 ? _a : '#000'} !important;cursor: pointer;font-size: 15px;"
278
- onclick="${gvc.event(() => {
209
+ <a
210
+ class="nav-link header-link "
211
+ style="color: ${(_a = widget.formData.theme_color['title']) !== null && _a !== void 0 ? _a : '#000'} !important;cursor: pointer;font-size: 15px;"
212
+ onclick="${gvc.event(() => {
279
213
  if (dd.link) {
280
214
  gvc.glitter.href = dd.link;
281
215
  }
282
216
  })}"
283
- >${dd.title}
284
- ${dd.items.length > 0
285
- ? `<i class="fa-solid fa-angle-down ms-2"></i>`
286
- : ``}</a
287
- >
288
- ${dd.items.length > 0
217
+ >${dd.title} ${dd.items.length > 0 ? html `<i class="fa-solid fa-angle-down ms-2"></i>` : ''}</a
218
+ >
219
+ ${dd.items.length > 0
289
220
  ? html ` <ul
290
- class="dropdown-menu"
291
- style="background:${(_b = widget.formData.theme_color['background']) !== null && _b !== void 0 ? _b : '#000'} !important; cursor: pointer; z-index: 99999;"
292
- >
293
- ${loopItems(dd.items)}
294
- </ul>`
295
- : ``}
296
- </li>`;
221
+ class="dropdown-menu"
222
+ style="background:${(_b = widget.formData.theme_color['background']) !== null && _b !== void 0 ? _b : '#000'} !important; cursor: pointer; z-index: 99999;"
223
+ >
224
+ ${loopItems(dd.items)}
225
+ </ul>`
226
+ : ''}
227
+ </li>`;
297
228
  })
298
229
  .filter(Boolean)
299
230
  .join('');
@@ -301,17 +232,14 @@ background: ${(_a = colors.bgr) !== null && _a !== void 0 ? _a : '#000'};overflo
301
232
  return loopItems(vm.data);
302
233
  }),
303
234
  divCreate: {
304
- class: `navbar-nav ms-3 me-auto`,
305
- style: `flex-direction: row; gap: 15px;`,
306
- elem: `ul`,
235
+ class: 'navbar-nav ms-3 me-auto flex-wrap',
236
+ style: 'flex-direction: row; gap: 8px;',
237
+ elem: 'ul',
307
238
  },
308
- };
309
- })}
310
- </ul>
311
- <div class="d-flex align-items-center ms-auto">
312
- <!--固定按鈕顯示區塊-->
313
- <ul class="navbar-nav flex-row ms-auto">
314
- ${gvc.bindView(() => {
239
+ });
240
+ }
241
+ function defaultButton() {
242
+ var _a, _b;
315
243
  const id = gvc.glitter.getUUID();
316
244
  const vm = {
317
245
  visible: false,
@@ -322,183 +250,241 @@ background: ${(_a = colors.bgr) !== null && _a !== void 0 ? _a : '#000'};overflo
322
250
  gvc.notifyDataChange(id);
323
251
  }
324
252
  });
325
- return {
253
+ const style = `
254
+ color: ${(_a = widget.formData.theme_color['title']) !== null && _a !== void 0 ? _a : '#000'} !important;
255
+ width: 30px;
256
+ height: 30px;
257
+ font-size: 15px;
258
+ border: 2px solid ${(_b = widget.formData.theme_color['title']) !== null && _b !== void 0 ? _b : '#000'} !important;
259
+ border-radius: 50%;
260
+ font-weight: 700 !important;
261
+ padding-bottom: 2px;
262
+ `;
263
+ return gvc.bindView({
326
264
  bind: id,
327
265
  view: () => {
328
- var _a, _b;
329
- return html ` <div
330
- class="d-flex align-items-center justify-content-center "
331
- style="color: ${(_a = widget.formData.theme_color['title']) !== null && _a !== void 0 ? _a : '#000'} !important;width:30px;height:30px;font-size: 15px;
332
- border: 2px solid ${(_b = widget.formData.theme_color['title']) !== null && _b !== void 0 ? _b : '#000'} !important;
333
- border-radius: 50%;
334
- font-weight: 700 !important;
335
- padding-bottom: 2px;
336
- "
337
- >
338
- AI
339
- </div>`;
266
+ return html `<div class="d-flex align-items-center justify-content-center " style="${style}">AI</div>`;
340
267
  },
341
268
  divCreate: () => {
342
269
  return {
343
- class: `nav-item ${vm.visible ? `d-flex` : `d-none`} align-items-center justify-content-center`,
344
- style: `width:48px !important;cursor: pointer;`,
270
+ class: `nav-item ${vm.visible ? 'd-flex' : 'd-none'} align-items-center justify-content-center`,
271
+ style: 'width: 48px !important; cursor: pointer;',
345
272
  option: [
346
273
  {
347
274
  key: 'onclick',
348
- value: gvc.event(() => {
349
- AiSearch.searchProduct(gvc);
350
- }),
275
+ value: gvc.event(() => AiSearch.searchProduct(gvc)),
351
276
  },
352
277
  ],
353
278
  };
354
279
  },
280
+ });
281
+ }
282
+ function searchView() {
283
+ if (PdClass.isShoppingPage()) {
284
+ return '';
285
+ }
286
+ const vm = {
287
+ id: gvc.glitter.getUUID(),
288
+ toggle: false,
355
289
  };
356
- })}
357
- ${HeaderClass.hideShopperBtn()
358
- ? ``
359
- : `<li class="nav-item d-none d-sm-flex align-items-center justify-content-center "
360
- >
361
- ${gvc.bindView(() => {
362
- const vm = {
363
- id: gvc.glitter.getUUID(),
364
- toggle: false,
365
- };
366
- return {
367
- bind: vm.id,
368
- view: () => {
369
- var _a, _b;
370
- if (PdClass.isShoppingPage()) {
371
- return ``;
372
- }
373
- if (!vm.toggle) {
374
- return html `<i
375
- class="fa-regular fa-magnifying-glass"
376
- style="color: ${(_a = widget.formData.theme_color['title']) !== null && _a !== void 0 ? _a : '#000'};cursor: pointer;font-size:20px;"
377
- onclick="${gvc.event(() => {
378
- vm.toggle = !vm.toggle;
379
- gvc.notifyDataChange(vm.id);
380
- })}"
381
- ></i>`;
382
- }
383
- else {
384
- return html `<a class="nav-link search-container d-flex align-items-center"
385
- ><i
386
- class="fa-regular fa-circle-xmark"
387
- style="color: ${(_b = widget.formData.theme_color['title']) !== null && _b !== void 0 ? _b : '#000'};cursor: pointer;font-size:20px;"
388
- onclick="${gvc.event(() => {
389
- vm.toggle = !vm.toggle;
390
- gvc.notifyDataChange(vm.id);
391
- })}"
392
- ></i
393
- ><input
394
- class="ms-3 form-control"
395
- style="height:40px;"
396
- placeholder="${Language.text('input_product_keyword')}"
397
- autocomplete="off"
398
- onchange="${gvc.event((e, event) => {
399
- gvc.glitter.href = `/all-product?search=${`${e.value}`.trim()}`;
400
- vm.toggle = !vm.toggle;
401
- gvc.notifyDataChange(vm.id);
402
- })}"
403
- />
404
- </a>`;
405
- }
406
- },
407
- divCreate: {
408
- class: `nav-link search-container`,
409
- elem: `a`,
410
- },
411
- };
412
- })}
413
- </li>`}
414
- <li class="nav-item d-flex align-items-center justify-content-center"
415
- style="width:40px !important;">
416
- ${gvc.bindView(() => {
290
+ return gvc.bindView({
291
+ bind: vm.id,
292
+ view: () => {
293
+ var _a, _b;
294
+ if (!vm.toggle) {
295
+ return html `<i
296
+ class="fa-regular fa-magnifying-glass h-20px-pointer"
297
+ style="color: ${(_a = widget.formData.theme_color['title']) !== null && _a !== void 0 ? _a : '#000'};"
298
+ onclick="${gvc.event(() => {
299
+ vm.toggle = !vm.toggle;
300
+ gvc.notifyDataChange(vm.id);
301
+ })}"
302
+ ></i>`;
303
+ }
304
+ return html `<a class="nav-link search-container d-flex align-items-center"
305
+ ><i
306
+ class="fa-regular fa-circle-xmark h-20px-pointer"
307
+ style="color: ${(_b = widget.formData.theme_color['title']) !== null && _b !== void 0 ? _b : '#000'};"
308
+ onclick="${gvc.event(() => {
309
+ vm.toggle = !vm.toggle;
310
+ gvc.notifyDataChange(vm.id);
311
+ })}"
312
+ ></i
313
+ ><input
314
+ class="ms-3 form-control"
315
+ style="height:40px;"
316
+ placeholder="${Language.text('input_product_keyword')}"
317
+ autocomplete="off"
318
+ onchange="${gvc.event(e => {
319
+ gvc.glitter.href = `/all-product?search=${`${e.value}`.trim()}`;
320
+ vm.toggle = !vm.toggle;
321
+ gvc.notifyDataChange(vm.id);
322
+ })}"
323
+ />
324
+ </a>`;
325
+ },
326
+ divCreate: {
327
+ class: 'nav-link search-container',
328
+ elem: 'a',
329
+ },
330
+ });
331
+ }
332
+ function shoppingCount() {
417
333
  const vm = {
418
334
  id: gvc.glitter.getUUID(),
419
335
  count: 0,
420
336
  };
421
- return {
337
+ return gvc.bindView({
422
338
  bind: vm.id,
423
339
  view: () => {
424
340
  var _a;
425
341
  return html `<span
426
- class="position-relative"
427
- onclick="${gvc.event(() => {
428
- HeaderClass.rightCartMenu(gvc, widget);
429
- })}"
430
- >
431
- <i
432
- class="fa-duotone fa-cart-shopping"
433
- style="color: ${(_a = widget.formData.theme_color['title']) !== null && _a !== void 0 ? _a : '#000'} !important;cursor: pointer;font-size:20px;"
434
- ></i>
435
- ${gvc.bindView(() => {
436
- return {
437
- bind: gvc.glitter.getUUID(),
438
- view: () => {
439
- return new Promise((resolve, reject) => {
440
- getCheckoutCount(count => {
441
- vm.count = count;
442
- resolve(vm.count
443
- ? html ` <div
444
- class="position-absolute"
445
- style="font-size: 10px;right: -10px;top: -6px;"
446
- >
447
- <div
448
- class="rounded-circle bg-danger text-white align-items-center justify-content-center fw-500 d-flex"
449
- style="width:18px;height: 18px;color: white !important;background:#fe5541;"
450
- >
451
- ${vm.count}
452
- </div>
453
- </div>`
454
- : ``);
455
- });
342
+ class="position-relative"
343
+ onclick="${gvc.event(() => HeaderClass.rightCartMenu(gvc, widget))}"
344
+ >
345
+ <i
346
+ class="fa-duotone fa-cart-shopping h-20px-pointer"
347
+ style="color: ${(_a = widget.formData.theme_color['title']) !== null && _a !== void 0 ? _a : '#000'} !important;"
348
+ ></i>
349
+ ${gvc.bindView({
350
+ bind: gvc.glitter.getUUID(),
351
+ view: () => {
352
+ return new Promise(resolve => {
353
+ getCheckoutCount(count => {
354
+ vm.count = count;
355
+ resolve(vm.count
356
+ ? html ` <div class="position-absolute" style="font-size: 10px; right: -10px; top: -6px;">
357
+ <div class="rounded-circle bg-danger h-checkout-count-icon">${vm.count}</div>
358
+ </div>`
359
+ : '');
456
360
  });
457
- },
458
- };
361
+ });
362
+ },
459
363
  })}
460
- </span>`;
364
+ </span>`;
461
365
  },
462
366
  divCreate: {
463
- class: `nav-link js-cart-count `,
367
+ class: 'nav-link js-cart-count',
464
368
  },
465
- };
466
- })}
467
- </li>
468
- <li
469
- class="nav-item d-flex align-items-center justify-content-center ms-3 "
470
-
471
- onclick="${gvc.event(() => {
472
- if (GlobalUser.token) {
473
- changePage('account_userinfo', 'page', {});
474
- }
475
- else {
476
- if (localStorage.getItem('redirect_cart') === 'true') {
477
- localStorage.removeItem('redirect_cart');
369
+ });
370
+ }
371
+ function view() {
372
+ var _a, _b, _c;
373
+ return html ` <!--Header Sy02-->
374
+ <div id="header-bgr" style="height: 76px;"></div>
375
+ <nav
376
+ class="navbar navbar-expand-lg vw-100 header header-place shadow position-fixed top-0 left-0 py-0"
377
+ style="background: ${(_a = widget.formData.theme_color['background']) !== null && _a !== void 0 ? _a : '#000'} !important; min-height: 76px; z-index:9999;"
378
+ >
379
+ <div
380
+ class="mx-auto header-place h-100"
381
+ style="max-width: 100% !important; ${document.body.clientWidth > 1300
382
+ ? 'min-width: 1280px !important;'
383
+ : 'width: 100%; padding-left: 10px; padding-right: 10px;'}"
384
+ >
385
+ <!--LOGO顯示區塊-->
386
+ <div class="d-flex align-items-center justify-content-center h-100 w-100 gap-2 px-0 px-md-3 px-lg-5">
387
+ <!--手機版選單-->
388
+ <div
389
+ class="d-flex d-lg-none align-items-center justify-content-center"
390
+ style="width: 40px !important; height: 40px !important;"
391
+ onclick="${gvc.event(() => {
392
+ gvc.glitter.setDrawer(drawer(), () => gvc.glitter.openDrawer(280));
393
+ })}"
394
+ >
395
+ <i
396
+ class="fa-solid fa-bars fa-fw d-md-none"
397
+ style="font-size: 20px; color: ${(_b = widget.formData.theme_color['title']) !== null && _b !== void 0 ? _b : '#000'};"
398
+ ></i>
399
+ </div>
400
+ <div
401
+ class="${widget.formData.logo.type === 'text' ? '' : `h-100`}"
402
+ onclick="${gvc.event(() => changePage('index', 'home', {}))}"
403
+ >
404
+ ${widget.formData.logo.type === 'text'
405
+ ? html `
406
+ <div
407
+ class="fw-bold d-flex align-items-center h-100 mb-1 mb-sm-auto"
408
+ style="font-size: 28px; line-height: 28px; cursor: pointer; color: ${(_c = widget.formData
409
+ .theme_color['title']) !== null && _c !== void 0 ? _c : '#000'};"
410
+ >
411
+ ${widget.formData.logo.value}
412
+ </div>
413
+ `
414
+ : html `
415
+ <div class="d-flex align-items-center justify-content-center h-100 p-2">
416
+ <img src="${widget.formData.logo.value}" style="max-height: 100%;max-width:60px;" />
417
+ </div>
418
+ `}
419
+ </div>
420
+ <!--選單列表顯示區塊-->
421
+ <ul class="navbar-nav d-none d-md-block flex-fill ps-2">
422
+ ${menu()}
423
+ </ul>
424
+ <div class="d-flex align-items-center ms-auto">
425
+ <!--固定按鈕顯示區塊-->
426
+ <ul class="navbar-nav flex-row ms-auto">
427
+ ${defaultButton()}
428
+ ${HeaderClass.hideShopperBtn()
429
+ ? ''
430
+ : html `<li class="nav-item d-none d-sm-flex align-items-center justify-content-center">
431
+ ${searchView()}
432
+ </li>`}
433
+ <li
434
+ class="nav-item d-flex align-items-center justify-content-center"
435
+ style="width:40px !important;"
436
+ >
437
+ ${shoppingCount()}
438
+ </li>
439
+ <li
440
+ class="nav-item d-flex align-items-center justify-content-center ms-3 "
441
+ onclick="${gvc.event(() => {
442
+ if (GlobalUser.token) {
443
+ changePage('account_userinfo', 'page', {});
478
444
  }
479
- changePage('login', 'page', {});
480
- }
481
- })}"
482
- >
483
- <div
484
-
485
- style="background: ${(_d = widget.formData.theme_color['solid-button-bg']) !== null && _d !== void 0 ? _d : '#000'};
486
- color: ${(_e = widget.formData.theme_color['solid-button-text']) !== null && _e !== void 0 ? _e : '#000'}; cursor: pointer;
487
- display: flex;
488
- width: 100px;
489
- padding: 7px;
490
- justify-content: center;
491
- align-items: center;
492
- gap: 10px;
493
- border-radius: 5px;"
494
- >
495
- ${GlobalUser.token ? Language.text('member_management') : Language.text('member_login')}
496
- </div>
497
- </li>
498
- </ul>
445
+ else {
446
+ if (localStorage.getItem('redirect_cart') === 'true') {
447
+ localStorage.removeItem('redirect_cart');
448
+ }
449
+ changePage('login', 'page', {});
450
+ }
451
+ })}"
452
+ >
453
+ <div
454
+ class="h-member-button"
455
+ style="${(() => {
456
+ var _a, _b;
457
+ const bgr = (_a = widget.formData.theme_color['solid-button-bg']) !== null && _a !== void 0 ? _a : '#000';
458
+ const color = (_b = widget.formData.theme_color['solid-button-text']) !== null && _b !== void 0 ? _b : '#000';
459
+ return `background: ${bgr}; color: ${color};`;
460
+ })()}"
461
+ >
462
+ ${GlobalUser.token ? Language.text('member_management') : Language.text('member_login')}
499
463
  </div>
500
- </div>
464
+ </li>
465
+ </ul>
466
+ </div>
467
+ </div>
468
+ </div>
501
469
  </nav>`;
470
+ }
471
+ return gvc.bindView({
472
+ bind: gvc.glitter.getUUID(),
473
+ view: () => view(),
474
+ onCreate: () => {
475
+ setTimeout(() => {
476
+ const nav = document.querySelector('nav');
477
+ const headerBgr = document.getElementById('header-bgr');
478
+ const resizeObserver = new ResizeObserver(entries => {
479
+ for (let entry of entries) {
480
+ if (headerBgr)
481
+ headerBgr.style.height = `${entry.contentRect.height}px`;
482
+ }
483
+ });
484
+ nav && resizeObserver.observe(nav);
485
+ }, 200);
486
+ },
487
+ });
502
488
  },
503
489
  mobile: () => {
504
490
  return HeaderMobile.mian({