@neutron.co.id/operasional-interfaces 1.17.7 → 1.17.8
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/build/@office/models/personalia/shift/ShiftAdministrator.vue +1 -33
- package/build/@office/models/personalia/shift/ShiftSupervisor.vue +0 -1
- package/build/@office/models/personalia/shiftStaff/ShiftStaffCollectionBranch.vue +1 -1
- package/build/@office/models/personalia/shiftStaff/ShiftStaffCollectionStaff.vue +2 -1
- package/build/@office/models/personalia/shiftStaff/ShiftStaffWrapper/ShiftStaffDisplay.vue +4 -2
- package/build/mock/index.cjs +9 -38
- package/build/mock/index.mjs +9 -38
- package/build/mock/style.css +7 -7
- package/build/module.json +1 -1
- package/build/nuxt.json +1 -1
- package/package.json +6 -6
|
@@ -18,7 +18,6 @@ import dayjs from 'dayjs'
|
|
|
18
18
|
import utc from 'dayjs/plugin/utc'
|
|
19
19
|
import timezone from 'dayjs/plugin/timezone'
|
|
20
20
|
|
|
21
|
-
// import { ShiftStaffWrapper } from './ShiftStaffWrapper'
|
|
22
21
|
defineOptions({ name: 'OfficeSingleSync' })
|
|
23
22
|
|
|
24
23
|
dayjs.extend(utc)
|
|
@@ -180,38 +179,7 @@ async function generate() {
|
|
|
180
179
|
v-bind="fields.totalTime"
|
|
181
180
|
is-disabled
|
|
182
181
|
/>
|
|
183
|
-
|
|
184
|
-
<NeonField
|
|
185
|
-
v-model="values.startedTime"
|
|
186
|
-
v-bind="{
|
|
187
|
-
handle: 'startedTime',
|
|
188
|
-
name: 'Jam mulai',
|
|
189
|
-
options: {
|
|
190
|
-
note: 'Jam datang shift.',
|
|
191
|
-
},
|
|
192
|
-
}"
|
|
193
|
-
is-disabled
|
|
194
|
-
>
|
|
195
|
-
<template #input>
|
|
196
|
-
<NeonTime v-model="values.startedTime" is-disabled />
|
|
197
|
-
</template>
|
|
198
|
-
</NeonField>
|
|
199
|
-
<NeonField
|
|
200
|
-
v-model="values.endedTime"
|
|
201
|
-
v-bind="{
|
|
202
|
-
handle: 'endedTime',
|
|
203
|
-
name: 'Jam Selesai',
|
|
204
|
-
options: {
|
|
205
|
-
note: 'Jam selesai shift.',
|
|
206
|
-
},
|
|
207
|
-
}"
|
|
208
|
-
is-disabled
|
|
209
|
-
>
|
|
210
|
-
<template #input>
|
|
211
|
-
<NeonTime v-model="values.endedTime" is-disabled />
|
|
212
|
-
</template>
|
|
213
|
-
</NeonField>
|
|
214
|
-
</div> -->
|
|
182
|
+
|
|
215
183
|
<OfficeRelation
|
|
216
184
|
v-model="values"
|
|
217
185
|
:field="fields.building"
|
|
@@ -20,7 +20,7 @@ async function onPeriodUpdate(period: any) {
|
|
|
20
20
|
scope="branchs"
|
|
21
21
|
path="personalia/shift-staffs"
|
|
22
22
|
view="single-branchs-view"
|
|
23
|
-
:displays="['table', 'calendar'
|
|
23
|
+
:displays="['table', 'calendar']"
|
|
24
24
|
:is-loading="isLoading"
|
|
25
25
|
:query="queryBranch"
|
|
26
26
|
@update:date="onPeriodUpdate"
|
|
@@ -19,10 +19,11 @@ async function onPeriodUpdate(period: any) {
|
|
|
19
19
|
description="Daftar jadwal shift pada minggu ini."
|
|
20
20
|
scope="staff"
|
|
21
21
|
path="/jadwal/period"
|
|
22
|
-
:displays="['table', 'calendar'
|
|
22
|
+
:displays="['table', 'calendar']"
|
|
23
23
|
:excludes="['create', 'click']"
|
|
24
24
|
:is-loading="isLoading"
|
|
25
25
|
:query="query"
|
|
26
|
+
:filters="['shiftingStaff', 'branches', 'typeShift', 'startedAt']"
|
|
26
27
|
@update:date="onPeriodUpdate"
|
|
27
28
|
@update:period="onPeriodUpdate"
|
|
28
29
|
></ShiftStaffWrapper>
|
|
@@ -1,13 +1,13 @@
|
|
|
1
1
|
<script setup lang="ts">
|
|
2
2
|
import { useCollection, usePermit } from '@neon.id/context'
|
|
3
|
-
import type { NCalendar
|
|
3
|
+
import type { NCalendar } from '@neon.id/display'
|
|
4
4
|
import {
|
|
5
5
|
OfficeCollectionCalendar,
|
|
6
6
|
OfficeCollectionOperation,
|
|
7
7
|
OfficeCollectionQuery,
|
|
8
8
|
OfficeCollectionTable,
|
|
9
9
|
} from '@neon.id/office'
|
|
10
|
-
import { type PropType
|
|
10
|
+
import { type PropType } from 'vue'
|
|
11
11
|
import type { NNQuery } from '@neon.id/discovery'
|
|
12
12
|
import type {
|
|
13
13
|
TPersonaliaShiftStaffModel,
|
|
@@ -112,7 +112,9 @@ function onCalendarPeriodUpdate(period: NCalendar.PeriodData) {
|
|
|
112
112
|
:default-all-day="false"
|
|
113
113
|
:views="['week', 'month']"
|
|
114
114
|
:period="period"
|
|
115
|
+
:fields="fields"
|
|
115
116
|
:use-filter="false"
|
|
117
|
+
:is-readonly="true"
|
|
116
118
|
@update:period="onCalendarPeriodUpdate"
|
|
117
119
|
/>
|
|
118
120
|
</div>
|
package/build/mock/index.cjs
CHANGED
|
@@ -24923,38 +24923,6 @@ const _sfc_main$j = /* @__PURE__ */ vue.defineComponent({
|
|
|
24923
24923
|
modelValue: vue.unref(values).totalTime,
|
|
24924
24924
|
"onUpdate:modelValue": _cache[7] || (_cache[7] = ($event) => vue.unref(values).totalTime = $event)
|
|
24925
24925
|
}, vue.unref(fields).totalTime, { "is-disabled": "" }), null, 16, ["modelValue"])) : vue.createCommentVNode("v-if", true),
|
|
24926
|
-
vue.createCommentVNode(` <div class="grid gap-2 sm:grid-cols-2">
|
|
24927
|
-
<NeonField
|
|
24928
|
-
v-model="values.startedTime"
|
|
24929
|
-
v-bind="{
|
|
24930
|
-
handle: 'startedTime',
|
|
24931
|
-
name: 'Jam mulai',
|
|
24932
|
-
options: {
|
|
24933
|
-
note: 'Jam datang shift.',
|
|
24934
|
-
},
|
|
24935
|
-
}"
|
|
24936
|
-
is-disabled
|
|
24937
|
-
>
|
|
24938
|
-
<template #input>
|
|
24939
|
-
<NeonTime v-model="values.startedTime" is-disabled />
|
|
24940
|
-
</template>
|
|
24941
|
-
</NeonField>
|
|
24942
|
-
<NeonField
|
|
24943
|
-
v-model="values.endedTime"
|
|
24944
|
-
v-bind="{
|
|
24945
|
-
handle: 'endedTime',
|
|
24946
|
-
name: 'Jam Selesai',
|
|
24947
|
-
options: {
|
|
24948
|
-
note: 'Jam selesai shift.',
|
|
24949
|
-
},
|
|
24950
|
-
}"
|
|
24951
|
-
is-disabled
|
|
24952
|
-
>
|
|
24953
|
-
<template #input>
|
|
24954
|
-
<NeonTime v-model="values.endedTime" is-disabled />
|
|
24955
|
-
</template>
|
|
24956
|
-
</NeonField>
|
|
24957
|
-
</div> `),
|
|
24958
24926
|
vue.createVNode(vue.unref(office$1.OfficeRelation), {
|
|
24959
24927
|
modelValue: vue.unref(values),
|
|
24960
24928
|
"onUpdate:modelValue": _cache[8] || (_cache[8] = ($event) => vue.isRef(values) ? values.value = $event : null),
|
|
@@ -25042,7 +25010,7 @@ const _sfc_main$j = /* @__PURE__ */ vue.defineComponent({
|
|
|
25042
25010
|
};
|
|
25043
25011
|
}
|
|
25044
25012
|
});
|
|
25045
|
-
const ShiftAdministrator = /* @__PURE__ */ _export_sfc$1(_sfc_main$j, [["__scopeId", "data-v-
|
|
25013
|
+
const ShiftAdministrator = /* @__PURE__ */ _export_sfc$1(_sfc_main$j, [["__scopeId", "data-v-390eb6e1"]]);
|
|
25046
25014
|
const _sfc_main$i = /* @__PURE__ */ vue.defineComponent({
|
|
25047
25015
|
...{ name: "OfficeSingleSync" },
|
|
25048
25016
|
__name: "ShiftSupervisor",
|
|
@@ -25318,7 +25286,7 @@ const _sfc_main$i = /* @__PURE__ */ vue.defineComponent({
|
|
|
25318
25286
|
};
|
|
25319
25287
|
}
|
|
25320
25288
|
});
|
|
25321
|
-
const ShiftSupervisor = /* @__PURE__ */ _export_sfc$1(_sfc_main$i, [["__scopeId", "data-v-
|
|
25289
|
+
const ShiftSupervisor = /* @__PURE__ */ _export_sfc$1(_sfc_main$i, [["__scopeId", "data-v-7201e94f"]]);
|
|
25322
25290
|
const _sfc_main$h = /* @__PURE__ */ vue.defineComponent({
|
|
25323
25291
|
...{ name: "ShiftCollection" },
|
|
25324
25292
|
__name: "ShiftCollection",
|
|
@@ -26081,14 +26049,16 @@ const _sfc_main$b = /* @__PURE__ */ vue.defineComponent({
|
|
|
26081
26049
|
"default-all-day": false,
|
|
26082
26050
|
views: ["week", "month"],
|
|
26083
26051
|
period: __props.period,
|
|
26052
|
+
fields: vue.unref(fields),
|
|
26084
26053
|
"use-filter": false,
|
|
26054
|
+
"is-readonly": true,
|
|
26085
26055
|
"onUpdate:period": onCalendarPeriodUpdate
|
|
26086
|
-
}, null, 8, ["period"])) : vue.createCommentVNode("v-if", true)
|
|
26056
|
+
}, null, 8, ["period", "fields"])) : vue.createCommentVNode("v-if", true)
|
|
26087
26057
|
]);
|
|
26088
26058
|
};
|
|
26089
26059
|
}
|
|
26090
26060
|
});
|
|
26091
|
-
const ShiftStaffDisplay = /* @__PURE__ */ _export_sfc$1(_sfc_main$b, [["__scopeId", "data-v-
|
|
26061
|
+
const ShiftStaffDisplay = /* @__PURE__ */ _export_sfc$1(_sfc_main$b, [["__scopeId", "data-v-d0b26535"]]);
|
|
26092
26062
|
const _hoisted_1$1 = { class: "buttons" };
|
|
26093
26063
|
const _sfc_main$a = /* @__PURE__ */ vue.defineComponent({
|
|
26094
26064
|
...{ name: "ShiftStaffWrapper" },
|
|
@@ -26320,10 +26290,11 @@ const _sfc_main$9 = /* @__PURE__ */ vue.defineComponent({
|
|
|
26320
26290
|
description: "Daftar jadwal shift pada minggu ini.",
|
|
26321
26291
|
scope: "staff",
|
|
26322
26292
|
path: "/jadwal/period",
|
|
26323
|
-
displays: ["table", "calendar"
|
|
26293
|
+
displays: ["table", "calendar"],
|
|
26324
26294
|
excludes: ["create", "click"],
|
|
26325
26295
|
"is-loading": vue.unref(isLoading),
|
|
26326
26296
|
query: vue.unref(query2),
|
|
26297
|
+
filters: ["shiftingStaff", "branches", "typeShift", "startedAt"],
|
|
26327
26298
|
"onUpdate:date": onPeriodUpdate,
|
|
26328
26299
|
"onUpdate:period": onPeriodUpdate
|
|
26329
26300
|
}, null, 8, ["is-loading", "query"]);
|
|
@@ -26346,7 +26317,7 @@ const _sfc_main$8 = /* @__PURE__ */ vue.defineComponent({
|
|
|
26346
26317
|
scope: "branchs",
|
|
26347
26318
|
path: "personalia/shift-staffs",
|
|
26348
26319
|
view: "single-branchs-view",
|
|
26349
|
-
displays: ["table", "calendar"
|
|
26320
|
+
displays: ["table", "calendar"],
|
|
26350
26321
|
"is-loading": vue.unref(isLoading),
|
|
26351
26322
|
query: vue.unref(queryBranch),
|
|
26352
26323
|
"onUpdate:date": onPeriodUpdate,
|
package/build/mock/index.mjs
CHANGED
|
@@ -24904,38 +24904,6 @@ const _sfc_main$j = /* @__PURE__ */ defineComponent({
|
|
|
24904
24904
|
modelValue: unref(values).totalTime,
|
|
24905
24905
|
"onUpdate:modelValue": _cache[7] || (_cache[7] = ($event) => unref(values).totalTime = $event)
|
|
24906
24906
|
}, unref(fields).totalTime, { "is-disabled": "" }), null, 16, ["modelValue"])) : createCommentVNode("v-if", true),
|
|
24907
|
-
createCommentVNode(` <div class="grid gap-2 sm:grid-cols-2">
|
|
24908
|
-
<NeonField
|
|
24909
|
-
v-model="values.startedTime"
|
|
24910
|
-
v-bind="{
|
|
24911
|
-
handle: 'startedTime',
|
|
24912
|
-
name: 'Jam mulai',
|
|
24913
|
-
options: {
|
|
24914
|
-
note: 'Jam datang shift.',
|
|
24915
|
-
},
|
|
24916
|
-
}"
|
|
24917
|
-
is-disabled
|
|
24918
|
-
>
|
|
24919
|
-
<template #input>
|
|
24920
|
-
<NeonTime v-model="values.startedTime" is-disabled />
|
|
24921
|
-
</template>
|
|
24922
|
-
</NeonField>
|
|
24923
|
-
<NeonField
|
|
24924
|
-
v-model="values.endedTime"
|
|
24925
|
-
v-bind="{
|
|
24926
|
-
handle: 'endedTime',
|
|
24927
|
-
name: 'Jam Selesai',
|
|
24928
|
-
options: {
|
|
24929
|
-
note: 'Jam selesai shift.',
|
|
24930
|
-
},
|
|
24931
|
-
}"
|
|
24932
|
-
is-disabled
|
|
24933
|
-
>
|
|
24934
|
-
<template #input>
|
|
24935
|
-
<NeonTime v-model="values.endedTime" is-disabled />
|
|
24936
|
-
</template>
|
|
24937
|
-
</NeonField>
|
|
24938
|
-
</div> `),
|
|
24939
24907
|
createVNode(unref(OfficeRelation), {
|
|
24940
24908
|
modelValue: unref(values),
|
|
24941
24909
|
"onUpdate:modelValue": _cache[8] || (_cache[8] = ($event) => isRef(values) ? values.value = $event : null),
|
|
@@ -25023,7 +24991,7 @@ const _sfc_main$j = /* @__PURE__ */ defineComponent({
|
|
|
25023
24991
|
};
|
|
25024
24992
|
}
|
|
25025
24993
|
});
|
|
25026
|
-
const ShiftAdministrator = /* @__PURE__ */ _export_sfc$1(_sfc_main$j, [["__scopeId", "data-v-
|
|
24994
|
+
const ShiftAdministrator = /* @__PURE__ */ _export_sfc$1(_sfc_main$j, [["__scopeId", "data-v-390eb6e1"]]);
|
|
25027
24995
|
const _sfc_main$i = /* @__PURE__ */ defineComponent({
|
|
25028
24996
|
...{ name: "OfficeSingleSync" },
|
|
25029
24997
|
__name: "ShiftSupervisor",
|
|
@@ -25299,7 +25267,7 @@ const _sfc_main$i = /* @__PURE__ */ defineComponent({
|
|
|
25299
25267
|
};
|
|
25300
25268
|
}
|
|
25301
25269
|
});
|
|
25302
|
-
const ShiftSupervisor = /* @__PURE__ */ _export_sfc$1(_sfc_main$i, [["__scopeId", "data-v-
|
|
25270
|
+
const ShiftSupervisor = /* @__PURE__ */ _export_sfc$1(_sfc_main$i, [["__scopeId", "data-v-7201e94f"]]);
|
|
25303
25271
|
const _sfc_main$h = /* @__PURE__ */ defineComponent({
|
|
25304
25272
|
...{ name: "ShiftCollection" },
|
|
25305
25273
|
__name: "ShiftCollection",
|
|
@@ -26062,14 +26030,16 @@ const _sfc_main$b = /* @__PURE__ */ defineComponent({
|
|
|
26062
26030
|
"default-all-day": false,
|
|
26063
26031
|
views: ["week", "month"],
|
|
26064
26032
|
period: __props.period,
|
|
26033
|
+
fields: unref(fields),
|
|
26065
26034
|
"use-filter": false,
|
|
26035
|
+
"is-readonly": true,
|
|
26066
26036
|
"onUpdate:period": onCalendarPeriodUpdate
|
|
26067
|
-
}, null, 8, ["period"])) : createCommentVNode("v-if", true)
|
|
26037
|
+
}, null, 8, ["period", "fields"])) : createCommentVNode("v-if", true)
|
|
26068
26038
|
]);
|
|
26069
26039
|
};
|
|
26070
26040
|
}
|
|
26071
26041
|
});
|
|
26072
|
-
const ShiftStaffDisplay = /* @__PURE__ */ _export_sfc$1(_sfc_main$b, [["__scopeId", "data-v-
|
|
26042
|
+
const ShiftStaffDisplay = /* @__PURE__ */ _export_sfc$1(_sfc_main$b, [["__scopeId", "data-v-d0b26535"]]);
|
|
26073
26043
|
const _hoisted_1$1 = { class: "buttons" };
|
|
26074
26044
|
const _sfc_main$a = /* @__PURE__ */ defineComponent({
|
|
26075
26045
|
...{ name: "ShiftStaffWrapper" },
|
|
@@ -26301,10 +26271,11 @@ const _sfc_main$9 = /* @__PURE__ */ defineComponent({
|
|
|
26301
26271
|
description: "Daftar jadwal shift pada minggu ini.",
|
|
26302
26272
|
scope: "staff",
|
|
26303
26273
|
path: "/jadwal/period",
|
|
26304
|
-
displays: ["table", "calendar"
|
|
26274
|
+
displays: ["table", "calendar"],
|
|
26305
26275
|
excludes: ["create", "click"],
|
|
26306
26276
|
"is-loading": unref(isLoading),
|
|
26307
26277
|
query: unref(query),
|
|
26278
|
+
filters: ["shiftingStaff", "branches", "typeShift", "startedAt"],
|
|
26308
26279
|
"onUpdate:date": onPeriodUpdate,
|
|
26309
26280
|
"onUpdate:period": onPeriodUpdate
|
|
26310
26281
|
}, null, 8, ["is-loading", "query"]);
|
|
@@ -26327,7 +26298,7 @@ const _sfc_main$8 = /* @__PURE__ */ defineComponent({
|
|
|
26327
26298
|
scope: "branchs",
|
|
26328
26299
|
path: "personalia/shift-staffs",
|
|
26329
26300
|
view: "single-branchs-view",
|
|
26330
|
-
displays: ["table", "calendar"
|
|
26301
|
+
displays: ["table", "calendar"],
|
|
26331
26302
|
"is-loading": unref(isLoading),
|
|
26332
26303
|
query: unref(queryBranch),
|
|
26333
26304
|
"onUpdate:date": onPeriodUpdate,
|
package/build/mock/style.css
CHANGED
|
@@ -413,11 +413,11 @@
|
|
|
413
413
|
display: block
|
|
414
414
|
}
|
|
415
415
|
|
|
416
|
-
.neu-shift-single[data-v-
|
|
416
|
+
.neu-shift-single[data-v-390eb6e1] {
|
|
417
417
|
display: block
|
|
418
418
|
}
|
|
419
419
|
|
|
420
|
-
.neu-shift-single[data-v-
|
|
420
|
+
.neu-shift-single[data-v-7201e94f] {
|
|
421
421
|
display: block
|
|
422
422
|
}
|
|
423
423
|
|
|
@@ -429,7 +429,7 @@
|
|
|
429
429
|
--neon-calendar-min-height: auto;
|
|
430
430
|
}
|
|
431
431
|
|
|
432
|
-
.shift-staff-display[data-v-
|
|
432
|
+
.shift-staff-display[data-v-d0b26535] {
|
|
433
433
|
|
|
434
434
|
height: 100%;
|
|
435
435
|
|
|
@@ -441,7 +441,7 @@
|
|
|
441
441
|
|
|
442
442
|
overflow: hidden
|
|
443
443
|
}
|
|
444
|
-
.shift-staff-display .header[data-v-
|
|
444
|
+
.shift-staff-display .header[data-v-d0b26535] {
|
|
445
445
|
|
|
446
446
|
display: flex;
|
|
447
447
|
|
|
@@ -459,15 +459,15 @@
|
|
|
459
459
|
|
|
460
460
|
font-size: 0.875rem
|
|
461
461
|
}
|
|
462
|
-
.shift-staff-display .header .start[data-v-
|
|
462
|
+
.shift-staff-display .header .start[data-v-d0b26535] {
|
|
463
463
|
|
|
464
464
|
line-height: 1.25
|
|
465
465
|
}
|
|
466
|
-
.shift-staff-display .header .title[data-v-
|
|
466
|
+
.shift-staff-display .header .title[data-v-d0b26535] {
|
|
467
467
|
|
|
468
468
|
font-weight: 700
|
|
469
469
|
}
|
|
470
|
-
.shift-staff-display .header .description[data-v-
|
|
470
|
+
.shift-staff-display .header .description[data-v-d0b26535] {
|
|
471
471
|
|
|
472
472
|
--tw-text-opacity: 1;
|
|
473
473
|
|
package/build/module.json
CHANGED
package/build/nuxt.json
CHANGED
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@neutron.co.id/operasional-interfaces",
|
|
3
|
-
"version": "1.17.
|
|
3
|
+
"version": "1.17.8",
|
|
4
4
|
"description": "Interface library of Neutron Operasional.",
|
|
5
5
|
"sideEffects": [
|
|
6
6
|
"*.css"
|
|
@@ -78,8 +78,8 @@
|
|
|
78
78
|
"@neon.id/nuxt": "^1.5.0",
|
|
79
79
|
"@neon.id/office": "1.46.0",
|
|
80
80
|
"@neon.id/utils": "^1.51.0",
|
|
81
|
-
"@neutron.co.id/operasional-modules": "1.12.
|
|
82
|
-
"@neutron.co.id/personalia-models": "1.13.
|
|
81
|
+
"@neutron.co.id/operasional-modules": "1.12.17",
|
|
82
|
+
"@neutron.co.id/personalia-models": "1.13.13",
|
|
83
83
|
"@nuxt/kit": "^3.12.3",
|
|
84
84
|
"file-saver": "^2.0.5",
|
|
85
85
|
"papaparse": "5.4.1",
|
|
@@ -153,8 +153,8 @@
|
|
|
153
153
|
"@neon.id/nuxt": "^1.5.0",
|
|
154
154
|
"@neon.id/office": "1.46.0",
|
|
155
155
|
"@neon.id/utils": "^1.51.0",
|
|
156
|
-
"@neutron.co.id/operasional-modules": "1.12.
|
|
157
|
-
"@neutron.co.id/personalia-models": "1.13.
|
|
156
|
+
"@neutron.co.id/operasional-modules": "1.12.17",
|
|
157
|
+
"@neutron.co.id/personalia-models": "1.13.13",
|
|
158
158
|
"@nuxt/kit": "^3.12.3",
|
|
159
159
|
"file-saver": "^2.0.5",
|
|
160
160
|
"qr-scanner": "^1.4.2",
|
|
@@ -164,5 +164,5 @@
|
|
|
164
164
|
"publishConfig": {
|
|
165
165
|
"access": "public"
|
|
166
166
|
},
|
|
167
|
-
"build":
|
|
167
|
+
"build": 190
|
|
168
168
|
}
|