@appscode/design-system 1.1.0-beta.2 → 1.1.0-beta.4

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 (65) hide show
  1. package/base/_video-player.scss +65 -0
  2. package/base/utilities/_all.scss +5 -4
  3. package/base/utilities/_colors.scss +446 -0
  4. package/base/utilities/_customize-bulma.scss +23 -27
  5. package/base/utilities/_extended.scss +3 -2
  6. package/base/utilities/{_default.scss → _global.scss} +159 -306
  7. package/base/utilities/_layouts.scss +157 -0
  8. package/base/utilities/_spacing.scss +96 -0
  9. package/base/utilities/_typography.scss +34 -2
  10. package/components/_ac-accordion.scss +117 -117
  11. package/components/_ac-alert-box.scss +205 -262
  12. package/components/_ac-card.scss +0 -597
  13. package/components/_ac-input.scss +0 -482
  14. package/components/_ac-modal.scss +212 -212
  15. package/components/_ac-multi-select.scss +84 -55
  16. package/components/_ac-options.scss +122 -122
  17. package/components/_ac-table.scss +503 -502
  18. package/components/_ac-tabs.scss +4 -3
  19. package/components/_ac-tags.scss +116 -116
  20. package/components/_ac-terminal.scss +275 -231
  21. package/components/_all.scss +31 -28
  22. package/components/_app-drawer.scss +0 -134
  23. package/components/_breadcumb.scss +0 -71
  24. package/components/_buttons.scss +779 -779
  25. package/components/_dashboard-header.scss +0 -115
  26. package/components/_image-upload.scss +2 -2
  27. package/components/_left-sidebar-menu.scss +346 -475
  28. package/components/_navbar.scss +786 -752
  29. package/components/_pagination.scss +9 -27
  30. package/components/_payment-card.scss +1 -1
  31. package/components/_widget-menu.scss +247 -247
  32. package/components/ac-toaster/_ac-toasted.scss +6 -11
  33. package/components/ui-builder/_ui-builder.scss +1 -1
  34. package/components/ui-builder/_vue-open-api.scss +512 -0
  35. package/main.scss +26 -10
  36. package/package.json +1 -1
  37. package/plugins/theme.js +11 -9
  38. package/plugins/vue-toaster.js +1 -1
  39. package/vue-components/v2/card/Card.vue +1 -1
  40. package/vue-components/v3/alert/Alert.vue +5 -5
  41. package/vue-components/v3/button/Button.vue +8 -0
  42. package/vue-components/v3/cards/Card.vue +1 -1
  43. package/vue-components/v3/cards/Cluster.vue +0 -4
  44. package/vue-components/v3/cards/Counter.vue +12 -0
  45. package/vue-components/v3/cards/FeatureCard.vue +31 -0
  46. package/vue-components/v3/cards/InfoCard.vue +4 -9
  47. package/vue-components/v3/cards/Monitoring.vue +1 -1
  48. package/vue-components/v3/cards/Vendor.vue +67 -5
  49. package/vue-components/v3/content/ContentTable.vue +7 -2
  50. package/vue-components/v3/editor/FilteredFileEditor.vue +195 -2
  51. package/vue-components/v3/footer/FooterItem.vue +4 -1
  52. package/vue-components/v3/form-fields/AcSingleInput.vue +1 -1
  53. package/vue-components/v3/header/Header.vue +3 -2
  54. package/vue-components/v3/loaders/InfoCardLoader.vue +65 -0
  55. package/vue-components/v3/notification/AlertBox.vue +4 -4
  56. package/vue-components/v3/searchbars/SearchBar.vue +10 -2
  57. package/vue-components/v3/sidebar/ClusterSwitcher.vue +4 -4
  58. package/vue-components/v3/sidebar/Sidebar.vue +3 -8
  59. package/vue-components/v3/sidebar/SidebarFooter.vue +3 -3
  60. package/vue-components/v3/sidebar/SidebarHeader.vue +3 -3
  61. package/vue-components/v3/sidebar/Steps.vue +148 -0
  62. package/vue-components/v3/table/Table.vue +27 -20
  63. package/base/utilities/_derived-variables.scss +0 -24
  64. package/base/utilities/_initial-variables.scss +0 -217
  65. package/components/_basic-card.scss +0 -118
@@ -1,13 +1,13 @@
1
1
  <script setup lang="ts">
2
2
  import { defineAsyncComponent } from "vue";
3
3
  interface Props {
4
- isColorpickerEnabled: boolean;
4
+ isColorpickerEnabled?: boolean;
5
5
  }
6
6
 
7
7
  withDefaults(defineProps<Props>(), {
8
8
  isColorpickerEnabled: false,
9
9
  });
10
-
10
+ defineEmits(["toggleSidebar"]);
11
11
  const AccentColorPicker = defineAsyncComponent(
12
12
  () => import("./AccentColorPicker.vue")
13
13
  );
@@ -16,7 +16,7 @@ const AccentColorPicker = defineAsyncComponent(
16
16
  <template>
17
17
  <div class="sidebar-footer">
18
18
  <!-- back button -->
19
- <button class="back-button is-transparent">
19
+ <button class="back-button is-transparent" @click="$emit('toggleSidebar')">
20
20
  <svg
21
21
  width="18"
22
22
  height="18"
@@ -2,7 +2,7 @@
2
2
  defineEmits(["toggleSidebar"]);
3
3
 
4
4
  interface Props {
5
- brandLogo: string;
5
+ brandLogo?: string;
6
6
  brandLogoAlt?: string;
7
7
  url?: string;
8
8
  modifierClasses?: string;
@@ -16,9 +16,9 @@ withDefaults(defineProps<Props>(), {
16
16
  });
17
17
  </script>
18
18
  <template>
19
- <div class="sidebar-header" @click="$emit('toggleSidebar')">
19
+ <div class="sidebar-header">
20
20
  <!-- hamburger icon -->
21
- <div class="icon hamburger-icon mr-16">
21
+ <div class="icon hamburger-icon mr-16" @click="$emit('toggleSidebar')">
22
22
  <svg
23
23
  width="18"
24
24
  height="18"
@@ -0,0 +1,148 @@
1
+ <script lang="ts" setup>
2
+ import FeCheck from "~icons/fe/check";
3
+ </script>
4
+
5
+ <template>
6
+ <!-- steps 01-->
7
+ <li>
8
+ <strong
9
+ ><span class="step-count is-active">1</span>
10
+ <span class="label-text">CLUSTER SELECTION</span></strong
11
+ >
12
+ <ul>
13
+ <li class="is-active">
14
+ <strong
15
+ ><span class="step-count"><FeCheck /></span>
16
+ <span class="label-text">Select Provider</span></strong
17
+ >
18
+ </li>
19
+ <li>
20
+ <strong
21
+ ><span class="step-count"><FeCheck /></span>
22
+ <span class="label-text">Select Credential</span></strong
23
+ >
24
+ </li>
25
+ <li>
26
+ <strong
27
+ ><span class="step-count"> <FeCheck /> </span>
28
+ <span class="label-text">Select Cluster</span></strong
29
+ >
30
+ </li>
31
+ </ul>
32
+ </li>
33
+ <!-- steps 01-->
34
+
35
+ <!-- steps 02-->
36
+ <li>
37
+ <strong
38
+ ><span class="step-count">2</span>
39
+ <span class="label-text">IMPORT</span></strong
40
+ >
41
+ <ul>
42
+ <li>
43
+ <strong
44
+ ><span class="step-count"><FeCheck /></span>
45
+ <span class="label-text">Select Provider</span></strong
46
+ >
47
+ </li>
48
+ <li>
49
+ <strong
50
+ ><span class="step-count"><FeCheck /></span>
51
+ <span class="label-text">Select Credential</span></strong
52
+ >
53
+ </li>
54
+ <li>
55
+ <strong
56
+ ><span class="step-count"> <FeCheck /> </span>
57
+ <span class="label-text">Select Cluster</span></strong
58
+ >
59
+ </li>
60
+ </ul>
61
+ </li>
62
+ <!-- steps 02-->
63
+ </template>
64
+
65
+ <style lang="scss" scoped>
66
+ ul {
67
+ padding-left: 4px !important;
68
+ position: relative;
69
+ z-index: 1;
70
+ &::after {
71
+ position: absolute;
72
+ content: "";
73
+ left: 15px;
74
+ top: -16px;
75
+ width: 1px;
76
+ height: 100%;
77
+ /* colors/primary/40-primary */
78
+ border: 1px dashed #186cb4;
79
+ z-index: -1;
80
+ }
81
+ li {
82
+ display: block;
83
+ padding: 6px 0;
84
+ cursor: pointer;
85
+ strong {
86
+ /* colors/white */
87
+ color: #ffffff;
88
+ display: flex;
89
+ align-items: center;
90
+
91
+ .step-count {
92
+ width: 32px;
93
+ height: 32px;
94
+ margin-right: 8px;
95
+ display: flex;
96
+ align-items: center;
97
+ justify-content: center;
98
+ border-radius: 50%;
99
+ background-color: $primary-20;
100
+ border: 1px solid $primary-40;
101
+ color: $primary-80;
102
+ font-size: 16px;
103
+ &.is-active {
104
+ background-color: $primary;
105
+ color: $white-100;
106
+ border: 1px solid $primary-90;
107
+ }
108
+ }
109
+ }
110
+
111
+ ul {
112
+ max-height: 100% !important;
113
+
114
+ li {
115
+ &.is-active {
116
+ strong {
117
+ .step-count {
118
+ background-color: $primary;
119
+ color: $white-100;
120
+ border: 1px solid $primary-90;
121
+ }
122
+ .label-text {
123
+ color: $white-100;
124
+ font-weight: 500;
125
+ }
126
+ }
127
+ }
128
+ strong {
129
+ .step-count {
130
+ width: 22px;
131
+ height: 22px;
132
+ margin-right: 16px;
133
+ background: $primary-20;
134
+ color: $primary-80;
135
+ border: 1px solid $primary-40;
136
+ font-size: 14px;
137
+ }
138
+
139
+ .label-text {
140
+ color: $primary-95;
141
+ font-weight: 400;
142
+ }
143
+ }
144
+ }
145
+ }
146
+ }
147
+ }
148
+ </style>
@@ -145,7 +145,7 @@ onUpdated(() => {
145
145
  <table-container ref="ac_table_container" @scroller="handleScroller">
146
146
  <table
147
147
  ref="ac_table"
148
- class="table ac-table ac-label-texted"
148
+ class="table ac-table is-bordered"
149
149
  :class="{
150
150
  'is-fullwidth':
151
151
  !isDynamicWidthTable ||
@@ -153,7 +153,7 @@ onUpdated(() => {
153
153
  isTableEmpty ||
154
154
  isLoaderActive,
155
155
  // 'ac-striped': !columnStriped,
156
- // 'ac-label-texted': columnStriped,
156
+ // 'is-bordered': columnStriped,
157
157
  }"
158
158
  >
159
159
  <thead>
@@ -338,11 +338,33 @@ onUpdated(() => {
338
338
  }
339
339
 
340
340
  tr {
341
+ border-bottom: 1px solid var(--ac-white-light);
341
342
  &.is-link {
342
343
  cursor: pointer;
343
344
  }
344
- border-bottom: 1px solid var(--ac-white-light);
345
+ &.is-selected {
346
+ background-color: $primary-97 !important;
347
+ transform: matrix(1, 0, 0, 1, 0, 0) !important;
348
+ box-shadow: inset 0 0 0 1.2px $primary;
349
+ border-radius: 4px;
350
+ border-bottom: none;
351
+ color: $ac-black;
352
+ transition: 0.3s ease-in-out;
353
+ .tag {
354
+ background-color: $primary-90;
355
+ }
356
+ &:hover {
357
+ background-color: $primary-95 !important;
358
+ transform: matrix(1, 0, 0, 1, 0, 0) !important;
359
+ box-shadow: inset 0 0 0 1.2px $primary !important;
360
+ }
361
+ }
345
362
 
363
+ &.is-hoverless {
364
+ box-shadow: none !important;
365
+ transform: none !important;
366
+ background-color: $white-100 !important;
367
+ }
346
368
  td {
347
369
  font-size: 13px;
348
370
  padding: 5px 20px;
@@ -369,7 +391,7 @@ onUpdated(() => {
369
391
  }
370
392
  }
371
393
 
372
- &.is-error {
394
+ &.is-danger {
373
395
  color: $danger;
374
396
  }
375
397
 
@@ -434,21 +456,6 @@ onUpdated(() => {
434
456
  }
435
457
  }
436
458
 
437
- &.is-selected {
438
- background-color: $white-100 !important;
439
- transform: matrix(1, 0, 0, 1, 0, 0) !important;
440
- box-shadow: inset 0 0 0 1px $primary;
441
- border-radius: 4px;
442
- border-bottom: none;
443
- color: $ac-black;
444
- }
445
-
446
- &.is-hoverless {
447
- box-shadow: none !important;
448
- transform: none !important;
449
- background-color: $white-100 !important;
450
- }
451
-
452
459
  transition: 0.3s ease-in-out;
453
460
  }
454
461
  }
@@ -479,7 +486,7 @@ onUpdated(() => {
479
486
  }
480
487
  }
481
488
 
482
- &.ac-label-texted {
489
+ &.is-bordered {
483
490
  thead {
484
491
  tr {
485
492
  th {
@@ -1,24 +0,0 @@
1
- // color
2
- $info: $blue;
3
- $success: $primary;
4
- $warning: $yellow;
5
- $danger: $danger
6
-
7
- // Text colors
8
- $primary-10: var(--ac-text);
9
- $primary-5: var(--ac-text-heading);
10
-
11
- // Link colors
12
- $ac-link: $blue;
13
- $ac-link-visited: $purple;
14
-
15
- // Box Shadow
16
- $ac-shadow-1: 0 1px 4px rgba(26, 80, 151, 0.16);
17
- $ac-shadow-2: 0px 8px 57px rgba(0, 0, 0, 0.16);
18
- $ac-shadow-3: 0 3px 4px 0 rgba(0, 0, 0, 0.18),
19
- 0 3px 3px -2px rgba(0, 0, 0, 0.16), 0 1px 6px 0 rgba(0, 0, 0, 0.12);
20
-
21
- $ac-shadow-sm: 0 1px 4px rgba(26, 80, 151, 0.16);
22
- $ac-shadow-xl: 0px 8px 57px rgba(0, 0, 0, 0.16);
23
- $ac-shadow-lg: 0 3px 4px 0 rgba(0, 0, 0, 0.18),
24
- 0 3px 3px -2px rgba(0, 0, 0, 0.16), 0 1px 6px 0 rgba(0, 0, 0, 0.12);
@@ -1,217 +0,0 @@
1
- // Typography
2
- @import url("https://fonts.googleapis.com/css2?family=Inconsolata:wght@200;300;400;500;600;700&family=Roboto:ital,wght@0,400;0,500;0,700;0,900;1,400;1,500;1,700&display=swap");
3
-
4
- $font-heading: "Roboto", sans-serif;
5
- $font-paragraph: "Roboto", sans-serif;
6
-
7
- // body font size
8
- 16px: 16px;
9
- 15px: 15px;
10
- 14px: 14px;
11
- 13px: 13px;
12
- 12px: 12px;
13
- 11px: 11px;
14
-
15
- // Base Color
16
- $ac-orange: #ff8000;
17
- $warning: #f7ad2a;
18
- $success: #158748;
19
- $info: #0aafff;
20
- $purple: #791e94;
21
- $ac-red: #ff3729;
22
-
23
- // Products Color
24
- $voyager-primary: #2d2a78;
25
- $guard-primary: #d84e27;
26
- $kubeci-primary: #2c3e50;
27
- $kubed-primary: #1c7bd4;
28
- $kubedb-primary: #4d4dcb;
29
- $kubesheild-primary: #2516c7;
30
- $kubevault-primary: #326ce5;
31
- $pharmer-primary: #326de6;
32
- $searchlight-primary: #111738;
33
- $servicebroker-primary: #29b4a2;
34
- $stash-primary: #5e2dea;
35
- $swift-primary: #3f51b6;
36
-
37
- // Colors Primary
38
- // root colors
39
- :root {
40
- --hsl-hue: 208;
41
- --hsl-saturation: 77%;
42
- --hsl-lightness: 42%;
43
- --contrast-threshold: 60%;
44
- --ac-bg: #ffffff;
45
- --ac-white: #ffffff;
46
- --ac-full-white: #ffffff;
47
- --ac-gray-dark: #5f5f5f;
48
- --ac-gray-light: #8d8d8d;
49
- --ac-gray-lightest: #d1d1d1;
50
- --ac-white-light: #d2e7f9;
51
- --ac-white-lighter: #f2f5f8;
52
- --ac-white-lightest: #f8f9fb;
53
-
54
- --ac-black: #000000;
55
- --ac-color-text-90: #323232;
56
- --ac-link-black: #32325d;
57
- --ac-gray-darker: #494949;
58
- --ac-gray: #767676;
59
- --ac-gray-lighter: #a4a4a4;
60
- --ac-white-text: #b4c0cc;
61
-
62
- // theme color
63
- --dark-bg: #21272e;
64
- --dark-bg-light: #2e323c;
65
-
66
- // --ac-blue-light: #eceff4;
67
- --ac-bg-light-gray: #f4f6f9;
68
- --table-header: #e4e8ef;
69
- --ac-label-text: #a6abbd;
70
-
71
- --font-hsl-hue: 0;
72
- --font-hsl-saturation: 0%;
73
- --font-hsl-lightness: 11%;
74
-
75
- --ac-primary: hsla(var(--hsl-hue),
76
- var(--hsl-saturation),
77
- var(--hsl-lightness),
78
- 1);
79
-
80
- --ac-text: hsla(var(--font-hsl-hue),
81
- calc(var(--font-hsl-saturation) + 10%),
82
- calc(var(--font-hsl-lightness) + 10%),
83
- 1);
84
- --ac-text-heading: hsla(var(--font-hsl-hue),
85
- var(--font-hsl-saturation),
86
- var(--font-hsl-lightness),
87
- 1);
88
- --ac-color-value: hsl(var(--font-hsl-hue),
89
- var(--font-hsl-saturation),
90
- calc(var(--font-hsl-lightness) + 25%));
91
- }
92
-
93
- $ac-bg: var(--ac-bg);
94
- $primary: var(--ac-primary);
95
- $primary-20: var(--ac-color-value);
96
-
97
- // Colors
98
- $ac-black: var(--ac-black);
99
- $primary-10-90: var(--ac-color-text-90);
100
- $ac-link-black: var(--ac-link-black);
101
- $black-40: var(--ac-gray-darker);
102
- $black-30: var(--ac-gray-dark);
103
- $ac-gray: var(--ac-gray);
104
- $ac-gray-light: var(--ac-gray-light);
105
- $ac-gray-lighter: var(--ac-gray-lighter);
106
- $ac-gray-lightest: var(--ac-gray-lightest);
107
- $white-100-light: var(--ac-white-light);
108
- $white-100-lighter: var(--ac-white-lighter);
109
- $white-100-lightest: var(--ac-white-lightest);
110
- $white-100: var(--ac-white);
111
- $ac-full-white: var(--ac-full-white);
112
-
113
- // $info-light: var(--ac-blue-light);
114
- $ac-bg-light-gray: var(--ac-bg-light-gray);
115
- $table-header: var(--table-header);
116
- $ac-label-text: var(--ac-label-text);
117
-
118
- // for dark theme CSS
119
- $dark-bg: var(--dark-bg);
120
- $dark-bg-light: var(--dark-bg-light);
121
-
122
- /* Deafult Margin & Padding view-height & view-width */
123
- @for $i from 0 through 100 {
124
- .m-#{$i} {
125
- margin: #{$i}px !important;
126
- }
127
-
128
- .mt-#{$i} {
129
- margin-top: #{$i}px !important;
130
- }
131
-
132
- .mb-#{$i} {
133
- margin-bottom: #{$i}px !important;
134
- }
135
-
136
- .ml-#{$i} {
137
- margin-left: #{$i}px !important;
138
- }
139
-
140
- .mr-#{$i} {
141
- margin-right: #{$i}px !important;
142
- }
143
-
144
- .p-#{$i} {
145
- padding: #{$i}px !important;
146
- }
147
-
148
- .pt-#{$i} {
149
- padding-top: #{$i}px !important;
150
- }
151
-
152
- .pb-#{$i} {
153
- padding-bottom: #{$i}px !important;
154
- }
155
-
156
- .pl-#{$i} {
157
- padding-left: #{$i}px !important;
158
- }
159
-
160
- .pr-#{$i} {
161
- padding-right: #{$i}px !important;
162
- }
163
-
164
- .vh-#{$i} {
165
- height: #{$i}vh !important;
166
- }
167
-
168
- .vw-#{$i} {
169
- width: #{$i}vw !important;
170
- }
171
-
172
- .font-size-#{$i} {
173
- font-size: #{$i}px !important;
174
- }
175
- }
176
-
177
- .mx-auto {
178
- margin: 0 auto;
179
- }
180
-
181
- .mr-auto {
182
- margin-right: auto;
183
- }
184
-
185
- .ml-auto {
186
- margin-left: auto;
187
- }
188
-
189
- /* Deafult height & widht */
190
- @for $i from 0 through 300 {
191
- .height-#{$i} {
192
- height: #{$i}px !important;
193
- }
194
-
195
- .width-#{$i} {
196
- width: #{$i}px !important;
197
- }
198
- }
199
-
200
- .width-auto {
201
- width: auto !important;
202
- }
203
-
204
- .height-auto {
205
- height: auto !important;
206
- }
207
-
208
- /* Deafult z-index and font-weight*/
209
- @for $i from 0 through 10 {
210
- .z-index-#{$i} {
211
- z-index: #{$i} !important;
212
- }
213
-
214
- .font-weight-#{$i*100} {
215
- font-weight: #{$i * 100} !important;
216
- }
217
- }
@@ -1,118 +0,0 @@
1
- // .card-details {
2
- // border: 1px solid #d2e7f9;
3
- // padding: 30px 20px;
4
- // width: calc(33.3% - 8px);
5
- // min-width: 400px;
6
- // max-width: 525px;
7
- // // border-radius: 4px;
8
- // transition: 0.3s ease-in-out;
9
- // position: relative;
10
- // z-index: 1;
11
-
12
- // .c-header {
13
- // display: flex;
14
- // margin-bottom: 20px;
15
-
16
- // .c-logo {
17
- // width: 54px;
18
- // height: 54px;
19
- // background: #e8f3fc;
20
- // border-radius: 50%;
21
- // display: flex;
22
- // align-items: center;
23
- // justify-content: center;
24
- // margin-right: 24px;
25
-
26
- // img {
27
- // height: 24px;
28
- // }
29
- // }
30
-
31
- // .c-content {
32
- // width: calc(100% - 78px);
33
- // h4 {
34
- // font-size: 18px;
35
- // line-height: 130%;
36
- // color: #030d17;
37
- // }
38
- // .icon {
39
- // color: #0c365a;
40
- // cursor: pointer;
41
- // position: relative;
42
- // z-index: 1;
43
- // &:after {
44
- // position: absolute;
45
- // content: "";
46
- // border-radius: 50%;
47
- // width: 32px;
48
- // height: 32px;
49
- // background: #e8f3fc;
50
- // opacity: 0;
51
- // visibility: hidden;
52
- // transition: 0.3s ease-in-out;
53
- // z-index: -1;
54
- // }
55
- // &:hover {
56
- // &:after {
57
- // opacity: 1;
58
- // visibility: visible;
59
- // }
60
- // }
61
- // }
62
- // .tags {
63
- // margin-top: 12px;
64
- // }
65
- // }
66
- // }
67
-
68
- // .c-body {
69
- // display: flex;
70
- // flex-wrap: wrap;
71
- // gap: 20px;
72
- // justify-content: space-between;
73
- // p {
74
- // width: calc(25% - 16px);
75
-
76
- // span {
77
- // font-size: 11px;
78
- // color: #666666;
79
- // display: block;
80
- // }
81
- // strong {
82
- // color: #061b2d;
83
- // font-size: 13px;
84
- // font-weight: 400;
85
- // }
86
- // }
87
- // }
88
- // }
89
-
90
- // // ac card
91
- // .card-basic {
92
- // padding: 20px;
93
- // width: calc(25% - 8px);
94
- // max-width: 390px;
95
- // min-width: 290px;
96
- // position: relative;
97
-
98
- // .required {
99
- // position: absolute;
100
- // left: 20px;
101
- // top: -9px;
102
- // }
103
- // .c-header {
104
- // .c-title {
105
-
106
- // h4 {
107
- // font-size: 18px;
108
- // color: #061b2d;
109
- // }
110
- // }
111
- // }
112
-
113
- // .c-body {
114
- // p {
115
- // color: #0C365A;
116
- // }
117
- // }
118
- // }