@neutron.co.id/operasional-interfaces 1.1.1-beta.5 → 1.3.0-beta.1

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 (37) hide show
  1. package/build/index.cjs +3528 -467
  2. package/build/index.mjs +3370 -309
  3. package/build/style.css +138 -0
  4. package/build/types/components/checkIn/checkIn.types.d.ts +2 -0
  5. package/build/types/components/checkIn/index.d.ts +2 -0
  6. package/build/types/components/checkIn/sheets/CheckInAccess.vue.d.ts +6 -0
  7. package/build/types/components/checkIn/sheets/CheckInCollection.vue.d.ts +2 -0
  8. package/build/types/components/checkIn/sheets/CheckInPresenceCollection.vue.d.ts +2 -0
  9. package/build/types/components/checkIn/sheets/CheckInScanError.vue.d.ts +2 -0
  10. package/build/types/components/checkIn/sheets/CheckInScanSuccess.vue.d.ts +6 -0
  11. package/build/types/components/checkIn/sheets/CheckInScanner.vue.d.ts +7 -0
  12. package/build/types/components/checkIn/sheets/CheckInSingle.vue.d.ts +2 -0
  13. package/build/types/components/checkIn/sheets/index.d.ts +7 -0
  14. package/build/types/components/index.d.ts +2 -0
  15. package/build/types/components/situation/index.d.ts +2 -0
  16. package/build/types/components/situation/sheets/SituationCollection.vue.d.ts +2 -0
  17. package/build/types/components/situation/sheets/SituationSingle.vue.d.ts +2 -0
  18. package/build/types/components/situation/sheets/SituationSupportive.vue.d.ts +2 -0
  19. package/build/types/components/situation/sheets/SituationWork.vue.d.ts +2 -0
  20. package/build/types/components/situation/sheets/index.d.ts +4 -0
  21. package/build/types/components/situation/situation.types.d.ts +2 -0
  22. package/build/types/components/staff/staff.types.d.ts +1 -1
  23. package/build/types/components/task/task.types.d.ts +1 -1
  24. package/build/types/gql/graphql.d.ts +9 -5
  25. package/build/types/index.d.ts +1 -0
  26. package/build/types/providers/index.d.ts +1 -0
  27. package/build/types/providers/operasional/attendance.store.d.ts +15 -0
  28. package/build/types/providers/operasional/bus.d.ts +7 -0
  29. package/build/types/providers/operasional/index.d.ts +6 -0
  30. package/build/types/providers/operasional/operasional.store.d.ts +2 -0
  31. package/build/types/providers/operasional/operasional.types.d.ts +11 -0
  32. package/build/types/providers/operasional/useOperasional.d.ts +7 -0
  33. package/build/types/providers/operasional/withOperasional.d.ts +2 -0
  34. package/build/types/utils/date/index.d.ts +11 -0
  35. package/build/types/utils/date/util.date.d.ts +20 -0
  36. package/build/types/utils/index.d.ts +1 -0
  37. package/package.json +6 -4
package/build/index.cjs CHANGED
@@ -3,14 +3,21 @@ Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
3
3
  const client = require("@neon.id/utils/client");
4
4
  const vue = require("vue");
5
5
  const interfaces = require("@neon.id/interfaces");
6
- const personaliaModels = require("@neutron.co.id/personalia-models");
6
+ const tempatModels = require("@neutron.co.id/tempat-models");
7
7
  const context = require("@neon.id/context");
8
8
  const office = require("@neon.id/office");
9
+ const query = require("@neon.id/query");
10
+ const sentralInterfaces = require("@neutron.co.id/sentral-interfaces");
11
+ const identitasInterfaces = require("@neon.id/identitas-interfaces");
12
+ const pinia = require("pinia");
13
+ const component = require("@neon.id/utils/component");
14
+ const core = require("@vueuse/core");
9
15
  const form = require("@neon.id/form");
10
- const _hoisted_1$1 = { class: "xxx-button" };
11
- const __default__$4 = vue.defineComponent({ name: "XxxButton" });
12
- const _sfc_main$8 = /* @__PURE__ */ vue.defineComponent({
13
- ...__default__$4,
16
+ const personaliaModels = require("@neutron.co.id/personalia-models");
17
+ const _hoisted_1$8 = { class: "xxx-button" };
18
+ const __default__$8 = vue.defineComponent({ name: "XxxButton" });
19
+ const _sfc_main$j = /* @__PURE__ */ vue.defineComponent({
20
+ ...__default__$8,
14
21
  props: {
15
22
  color: {
16
23
  type: String,
@@ -19,341 +26,78 @@ const _sfc_main$8 = /* @__PURE__ */ vue.defineComponent({
19
26
  },
20
27
  setup(__props) {
21
28
  return (_ctx, _cache) => {
22
- return vue.openBlock(), vue.createElementBlock("div", _hoisted_1$1, [
29
+ return vue.openBlock(), vue.createElementBlock("div", _hoisted_1$8, [
23
30
  vue.createVNode(vue.unref(interfaces.NeonButton), { label: "XXX" })
24
31
  ]);
25
32
  };
26
33
  }
27
34
  });
28
- const StaffModel = personaliaModels.models.StaffModel;
29
- const __default__$3 = vue.defineComponent({
30
- name: "StaffCollection"
31
- });
32
- const _sfc_main$7 = /* @__PURE__ */ vue.defineComponent({
33
- ...__default__$3,
34
- setup(__props) {
35
- context.useCollection();
36
- return (_ctx, _cache) => {
37
- return vue.openBlock(), vue.createBlock(vue.unref(context.NeonCollection), { class: "neu-staff-collection" }, {
38
- default: vue.withCtx(() => [
39
- vue.createVNode(vue.unref(office.OfficeCollectionTable))
40
- ]),
41
- _: 1
42
- /* STABLE */
43
- });
44
- };
35
+ const CheckInModel = tempatModels.models.CheckInModel;
36
+ function devAssert(condition, message) {
37
+ const booleanCondition = Boolean(condition);
38
+ if (!booleanCondition) {
39
+ throw new Error(message);
45
40
  }
46
- });
47
- const _hoisted_1 = { class: "grid gap-4 sm:grid-cols-[3fr_1fr]" };
48
- const _hoisted_2 = { class: "grid gap-4 sm:grid-cols-2" };
49
- const _sfc_main$6 = /* @__PURE__ */ vue.defineComponent({
50
- __name: "StaffSingle",
51
- setup(__props) {
52
- const {
53
- fields,
54
- id,
55
- initialValues,
56
- values,
57
- isLoading,
58
- isChanged,
59
- isReady,
60
- isMain,
61
- isNew,
62
- saveOne,
63
- discardChanges
64
- } = context.useSingle();
65
- return (_ctx, _cache) => {
66
- return vue.openBlock(), vue.createBlock(vue.unref(context.NeonSingle), { class: "neu-staff-single" }, {
67
- default: vue.withCtx(() => [
68
- vue.createVNode(vue.unref(office.OfficeTabs), { "use-url": vue.unref(isMain) }, {
69
- default: vue.withCtx(() => [
70
- vue.createVNode(vue.unref(office.OfficeTab), {
71
- handle: "info",
72
- icon: "circle-info",
73
- title: "Info"
74
- }, {
75
- default: vue.withCtx(() => [
76
- vue.createVNode(vue.unref(form.NeonForm), {
77
- handle: "info",
78
- "initial-values": vue.unref(initialValues),
79
- "is-loading": vue.unref(isLoading),
80
- "is-changed": vue.unref(isChanged),
81
- "use-unsaved": "",
82
- onCancel: vue.unref(discardChanges),
83
- onSubmit: vue.unref(saveOne)
84
- }, {
85
- default: vue.withCtx(() => [
86
- vue.createElementVNode("div", _hoisted_1, [
87
- vue.createVNode(vue.unref(form.NeonField), vue.mergeProps({
88
- modelValue: vue.unref(values).name,
89
- "onUpdate:modelValue": _cache[0] || (_cache[0] = ($event) => vue.unref(values).name = $event)
90
- }, vue.unref(fields).name), null, 16, ["modelValue"]),
91
- vue.createVNode(vue.unref(form.NeonField), vue.mergeProps({
92
- modelValue: vue.unref(values).nik,
93
- "onUpdate:modelValue": _cache[1] || (_cache[1] = ($event) => vue.unref(values).nik = $event)
94
- }, vue.unref(fields).nik), null, 16, ["modelValue"])
95
- ]),
96
- vue.createElementVNode("div", _hoisted_2, [
97
- vue.createVNode(vue.unref(form.NeonField), vue.mergeProps({
98
- modelValue: vue.unref(values).birthPlace,
99
- "onUpdate:modelValue": _cache[2] || (_cache[2] = ($event) => vue.unref(values).birthPlace = $event)
100
- }, vue.unref(fields).birthPlace), null, 16, ["modelValue"]),
101
- vue.createVNode(vue.unref(form.NeonField), vue.mergeProps({
102
- modelValue: vue.unref(values).birthDate,
103
- "onUpdate:modelValue": _cache[3] || (_cache[3] = ($event) => vue.unref(values).birthDate = $event)
104
- }, vue.unref(fields).birthDate), null, 16, ["modelValue"])
105
- ]),
106
- vue.createVNode(vue.unref(form.NeonField), vue.mergeProps({
107
- modelValue: vue.unref(values).image,
108
- "onUpdate:modelValue": _cache[4] || (_cache[4] = ($event) => vue.unref(values).image = $event)
109
- }, vue.unref(fields).image), null, 16, ["modelValue"]),
110
- vue.createVNode(vue.unref(form.NeonField), vue.mergeProps({
111
- modelValue: vue.unref(values).note,
112
- "onUpdate:modelValue": _cache[5] || (_cache[5] = ($event) => vue.unref(values).note = $event)
113
- }, vue.unref(fields).note), null, 16, ["modelValue"])
114
- ]),
115
- _: 1
116
- /* STABLE */
117
- }, 8, ["initial-values", "is-loading", "is-changed", "onCancel", "onSubmit"])
118
- ]),
119
- _: 1
120
- /* STABLE */
121
- }),
122
- vue.createCommentVNode(' IDENTITAS\n <OfficeTab handle="identity" icon="circle-info" title="Identity">\n </OfficeTab> '),
123
- vue.createCommentVNode(" CABANG "),
124
- vue.createVNode(vue.unref(office.OfficeTab), {
125
- handle: "branch",
126
- icon: "circle-info",
127
- title: "Cabang"
128
- }, {
129
- default: vue.withCtx(() => [
130
- vue.createVNode(vue.unref(form.NeonForm), {
131
- handle: "branch",
132
- "initial-values": vue.unref(initialValues),
133
- "is-loading": vue.unref(isLoading),
134
- "is-changed": vue.unref(isChanged),
135
- "use-unsaved": "",
136
- onCancel: vue.unref(discardChanges),
137
- onSubmit: vue.unref(saveOne)
138
- }, {
139
- default: vue.withCtx(() => [
140
- vue.createVNode(vue.unref(office.OfficeRelation), {
141
- modelValue: vue.unref(values),
142
- "onUpdate:modelValue": _cache[6] || (_cache[6] = ($event) => vue.isRef(values) ? values.value = $event : null),
143
- field: vue.unref(fields).branch
144
- }, null, 8, ["modelValue", "field"]),
145
- vue.createVNode(vue.unref(office.OfficeRelation), {
146
- modelValue: vue.unref(values),
147
- "onUpdate:modelValue": _cache[7] || (_cache[7] = ($event) => vue.isRef(values) ? values.value = $event : null),
148
- field: vue.unref(fields).branches
149
- }, null, 8, ["modelValue", "field"])
150
- ]),
151
- _: 1
152
- /* STABLE */
153
- }, 8, ["initial-values", "is-loading", "is-changed", "onCancel", "onSubmit"])
154
- ]),
155
- _: 1
156
- /* STABLE */
157
- }),
158
- vue.createCommentVNode(" KELUAR MASUK "),
159
- vue.createVNode(vue.unref(office.OfficeTab), {
160
- handle: "checkIn",
161
- icon: "person-to-door",
162
- title: "Keluar Masuk"
163
- }, {
164
- default: vue.withCtx(() => [
165
- vue.createCommentVNode(` <OfficeCollectionRelated
166
- definition="neu:tempat:checkIn"
167
- title="Keluar Masuk"
168
- description="Keluar masuk."
169
- :query="
170
- Query.define({
171
- filter: {
172
- handle: 'staffId',
173
- operator: 'eq',
174
- value: id,
175
- },
176
- })
177
- "
178
- /> `)
179
- ]),
180
- _: 1
181
- /* STABLE */
182
- })
183
- ]),
184
- _: 1
185
- /* STABLE */
186
- }, 8, ["use-url"])
187
- ]),
188
- _: 1
189
- /* STABLE */
190
- });
191
- };
41
+ }
42
+ function isObjectLike(value) {
43
+ return typeof value == "object" && value !== null;
44
+ }
45
+ function invariant(condition, message) {
46
+ const booleanCondition = Boolean(condition);
47
+ if (!booleanCondition) {
48
+ throw new Error(
49
+ message != null ? message : "Unexpected invariant triggered."
50
+ );
192
51
  }
193
- });
194
- const StaffSingle_vue_vue_type_style_index_0_scoped_dbeb1998_lang = "";
195
- const _export_sfc = (sfc, props) => {
196
- const target = sfc.__vccOpts || sfc;
197
- for (const [key, val] of props) {
198
- target[key] = val;
52
+ }
53
+ const LineRegExp = /\r\n|[\n\r]/g;
54
+ function getLocation(source, position) {
55
+ let lastLineStart = 0;
56
+ let line = 1;
57
+ for (const match of source.body.matchAll(LineRegExp)) {
58
+ typeof match.index === "number" || invariant(false);
59
+ if (match.index >= position) {
60
+ break;
61
+ }
62
+ lastLineStart = match.index + match[0].length;
63
+ line += 1;
199
64
  }
200
- return target;
201
- };
202
- const StaffSingle = /* @__PURE__ */ _export_sfc(_sfc_main$6, [["__scopeId", "data-v-dbeb1998"]]);
203
- const SituationTypeModel = personaliaModels.models.SituationTypeModel;
204
- const __default__$2 = vue.defineComponent({ name: "SituationTypeCollection" });
205
- const _sfc_main$5 = /* @__PURE__ */ vue.defineComponent({
206
- ...__default__$2,
207
- setup(__props) {
208
- context.useCollection();
209
- return (_ctx, _cache) => {
210
- return vue.openBlock(), vue.createBlock(vue.unref(context.NeonCollection), { class: "neu-situationType-collection" }, {
211
- default: vue.withCtx(() => [
212
- vue.createVNode(vue.unref(office.OfficeCollectionTable))
213
- ]),
214
- _: 1
215
- /* STABLE */
216
- });
217
- };
218
- }
219
- });
220
- const _sfc_main$4 = /* @__PURE__ */ vue.defineComponent({
221
- __name: "SituationTypeSingle",
222
- setup(__props) {
223
- const {
224
- fields,
225
- id,
226
- initialValues,
227
- values,
228
- isNew,
229
- isLoading,
230
- isChanged,
231
- isReady,
232
- isMain,
233
- saveOne,
234
- discardChanges
235
- } = context.useSingle();
236
- return (_ctx, _cache) => {
237
- return vue.openBlock(), vue.createBlock(vue.unref(context.NeonSingle), { class: "neu-situation-type-single" }, {
238
- default: vue.withCtx(() => [
239
- vue.createVNode(vue.unref(office.OfficeTabs), { "use-url": vue.unref(isMain) }, {
240
- default: vue.withCtx(() => [
241
- vue.createVNode(vue.unref(office.OfficeTab), {
242
- handle: "info",
243
- icon: "circle-info",
244
- title: "Info"
245
- }, {
246
- default: vue.withCtx(() => [
247
- vue.createVNode(vue.unref(form.NeonForm), {
248
- handle: "info",
249
- "initial-values": vue.unref(initialValues),
250
- "is-loading": vue.unref(isLoading),
251
- "is-changed": vue.unref(isChanged),
252
- "use-unsaved": "",
253
- onCancel: vue.unref(discardChanges),
254
- onSubmit: vue.unref(saveOne)
255
- }, {
256
- default: vue.withCtx(() => [
257
- vue.createVNode(vue.unref(form.NeonFields), { md: "grid-cols-4" }, {
258
- default: vue.withCtx(() => [
259
- vue.createVNode(vue.unref(form.NeonField), vue.mergeProps({
260
- modelValue: vue.unref(values).situationTypeName,
261
- "onUpdate:modelValue": _cache[0] || (_cache[0] = ($event) => vue.unref(values).situationTypeName = $event)
262
- }, vue.unref(fields).situationTypeName), null, 16, ["modelValue"])
263
- ]),
264
- _: 1
265
- /* STABLE */
266
- }),
267
- vue.createVNode(vue.unref(office.OfficeRelation), {
268
- modelValue: vue.unref(values),
269
- "onUpdate:modelValue": _cache[1] || (_cache[1] = ($event) => vue.isRef(values) ? values.value = $event : null),
270
- field: vue.unref(fields).branches
271
- }, null, 8, ["modelValue", "field"])
272
- ]),
273
- _: 1
274
- /* STABLE */
275
- }, 8, ["initial-values", "is-loading", "is-changed", "onCancel", "onSubmit"])
276
- ]),
277
- _: 1
278
- /* STABLE */
279
- })
280
- ]),
281
- _: 1
282
- /* STABLE */
283
- }, 8, ["use-url"])
284
- ]),
285
- _: 1
286
- /* STABLE */
287
- });
288
- };
289
- }
290
- });
291
- const TaskModel = personaliaModels.models.TaskModel;
292
- function devAssert(condition, message) {
293
- const booleanCondition = Boolean(condition);
294
- if (!booleanCondition) {
295
- throw new Error(message);
296
- }
297
- }
298
- function isObjectLike(value) {
299
- return typeof value == "object" && value !== null;
300
- }
301
- function invariant(condition, message) {
302
- const booleanCondition = Boolean(condition);
303
- if (!booleanCondition) {
304
- throw new Error(
305
- message != null ? message : "Unexpected invariant triggered."
306
- );
307
- }
308
- }
309
- const LineRegExp = /\r\n|[\n\r]/g;
310
- function getLocation(source, position) {
311
- let lastLineStart = 0;
312
- let line = 1;
313
- for (const match of source.body.matchAll(LineRegExp)) {
314
- typeof match.index === "number" || invariant(false);
315
- if (match.index >= position) {
316
- break;
317
- }
318
- lastLineStart = match.index + match[0].length;
319
- line += 1;
320
- }
321
- return {
322
- line,
323
- column: position + 1 - lastLineStart
324
- };
325
- }
326
- function printLocation(location) {
327
- return printSourceLocation(
328
- location.source,
329
- getLocation(location.source, location.start)
330
- );
331
- }
332
- function printSourceLocation(source, sourceLocation) {
333
- const firstLineColumnOffset = source.locationOffset.column - 1;
334
- const body = "".padStart(firstLineColumnOffset) + source.body;
335
- const lineIndex = sourceLocation.line - 1;
336
- const lineOffset = source.locationOffset.line - 1;
337
- const lineNum = sourceLocation.line + lineOffset;
338
- const columnOffset = sourceLocation.line === 1 ? firstLineColumnOffset : 0;
339
- const columnNum = sourceLocation.column + columnOffset;
340
- const locationStr = `${source.name}:${lineNum}:${columnNum}
341
- `;
342
- const lines = body.split(/\r\n|[\n\r]/g);
343
- const locationLine = lines[lineIndex];
344
- if (locationLine.length > 120) {
345
- const subLineIndex = Math.floor(columnNum / 80);
346
- const subLineColumnNum = columnNum % 80;
347
- const subLines = [];
348
- for (let i2 = 0; i2 < locationLine.length; i2 += 80) {
349
- subLines.push(locationLine.slice(i2, i2 + 80));
350
- }
351
- return locationStr + printPrefixedLines([
352
- [`${lineNum} |`, subLines[0]],
353
- ...subLines.slice(1, subLineIndex + 1).map((subLine) => ["|", subLine]),
354
- ["|", "^".padStart(subLineColumnNum)],
355
- ["|", subLines[subLineIndex + 1]]
356
- ]);
65
+ return {
66
+ line,
67
+ column: position + 1 - lastLineStart
68
+ };
69
+ }
70
+ function printLocation(location) {
71
+ return printSourceLocation(
72
+ location.source,
73
+ getLocation(location.source, location.start)
74
+ );
75
+ }
76
+ function printSourceLocation(source, sourceLocation) {
77
+ const firstLineColumnOffset = source.locationOffset.column - 1;
78
+ const body = "".padStart(firstLineColumnOffset) + source.body;
79
+ const lineIndex = sourceLocation.line - 1;
80
+ const lineOffset = source.locationOffset.line - 1;
81
+ const lineNum = sourceLocation.line + lineOffset;
82
+ const columnOffset = sourceLocation.line === 1 ? firstLineColumnOffset : 0;
83
+ const columnNum = sourceLocation.column + columnOffset;
84
+ const locationStr = `${source.name}:${lineNum}:${columnNum}
85
+ `;
86
+ const lines = body.split(/\r\n|[\n\r]/g);
87
+ const locationLine = lines[lineIndex];
88
+ if (locationLine.length > 120) {
89
+ const subLineIndex = Math.floor(columnNum / 80);
90
+ const subLineColumnNum = columnNum % 80;
91
+ const subLines = [];
92
+ for (let i2 = 0; i2 < locationLine.length; i2 += 80) {
93
+ subLines.push(locationLine.slice(i2, i2 + 80));
94
+ }
95
+ return locationStr + printPrefixedLines([
96
+ [`${lineNum} |`, subLines[0]],
97
+ ...subLines.slice(1, subLineIndex + 1).map((subLine) => ["|", subLine]),
98
+ ["|", "^".padStart(subLineColumnNum)],
99
+ ["|", subLines[subLineIndex + 1]]
100
+ ]);
357
101
  }
358
102
  return locationStr + printPrefixedLines([
359
103
  // Lines specified like this: ["prefix", "string"],
@@ -3282,11 +3026,11 @@ function hasMultilineItems(maybeArray) {
3282
3026
  var _maybeArray$some;
3283
3027
  return (_maybeArray$some = maybeArray === null || maybeArray === void 0 ? void 0 : maybeArray.some((str) => str.includes("\n"))) !== null && _maybeArray$some !== void 0 ? _maybeArray$some : false;
3284
3028
  }
3285
- var e;
3029
+ var e$1;
3286
3030
  !function(e2) {
3287
3031
  e2[e2.Pull = 0] = "Pull";
3288
3032
  e2[e2.Close = 1] = "Close";
3289
- }(e || (e = {}));
3033
+ }(e$1 || (e$1 = {}));
3290
3034
  var r;
3291
3035
  !function(e2) {
3292
3036
  e2[e2.Start = 0] = "Start";
@@ -3314,9 +3058,9 @@ function onEnd(t2) {
3314
3058
  } else if (l3.tag === r.Start) {
3315
3059
  var i2 = l3[0];
3316
3060
  n(start((r2) => {
3317
- if (r2 === e.Close) {
3061
+ if (r2 === e$1.Close) {
3318
3062
  a = true;
3319
- i2(e.Close);
3063
+ i2(e$1.Close);
3320
3064
  t2();
3321
3065
  } else {
3322
3066
  i2(r2);
@@ -3343,7 +3087,7 @@ function take(l2) {
3343
3087
  if (l2 <= 0) {
3344
3088
  s2 = true;
3345
3089
  a(r.End);
3346
- t2[0](e.Close);
3090
+ t2[0](e$1.Close);
3347
3091
  } else {
3348
3092
  i2 = t2[0];
3349
3093
  }
@@ -3352,18 +3096,18 @@ function take(l2) {
3352
3096
  if (!s2 && f2 >= l2) {
3353
3097
  s2 = true;
3354
3098
  a(r.End);
3355
- i2(e.Close);
3099
+ i2(e$1.Close);
3356
3100
  }
3357
3101
  } else {
3358
3102
  a(t2);
3359
3103
  }
3360
3104
  });
3361
3105
  a(start((r2) => {
3362
- if (r2 === e.Close && !s2) {
3106
+ if (r2 === e$1.Close && !s2) {
3363
3107
  s2 = true;
3364
- i2(e.Close);
3365
- } else if (r2 === e.Pull && !s2 && f2 < l2) {
3366
- i2(e.Pull);
3108
+ i2(e$1.Close);
3109
+ } else if (r2 === e$1.Pull && !s2 && f2 < l2) {
3110
+ i2(e$1.Pull);
3367
3111
  }
3368
3112
  }));
3369
3113
  };
@@ -3376,17 +3120,17 @@ function subscribe(l2) {
3376
3120
  if (t2 === r.End) {
3377
3121
  i2 = true;
3378
3122
  } else if (t2.tag === r.Start) {
3379
- (a = t2[0])(e.Pull);
3123
+ (a = t2[0])(e$1.Pull);
3380
3124
  } else if (!i2) {
3381
3125
  l2(t2[0]);
3382
- a(e.Pull);
3126
+ a(e$1.Pull);
3383
3127
  }
3384
3128
  });
3385
3129
  return {
3386
3130
  unsubscribe() {
3387
3131
  if (!i2) {
3388
3132
  i2 = true;
3389
- a(e.Close);
3133
+ a(e$1.Close);
3390
3134
  }
3391
3135
  }
3392
3136
  };
@@ -3400,10 +3144,10 @@ function toPromise(l2) {
3400
3144
  if (t2 === r.End) {
3401
3145
  Promise.resolve(i2).then(n);
3402
3146
  } else if (t2.tag === r.Start) {
3403
- (a = t2[0])(e.Pull);
3147
+ (a = t2[0])(e$1.Pull);
3404
3148
  } else {
3405
3149
  i2 = t2[0];
3406
- a(e.Pull);
3150
+ a(e$1.Pull);
3407
3151
  }
3408
3152
  });
3409
3153
  });
@@ -3699,127 +3443,3310 @@ function callUseMutation(e2, r2 = useClient()) {
3699
3443
  o2.value = e3.extensions;
3700
3444
  return e3;
3701
3445
  });
3702
- }
3703
- };
3704
- }
3705
- var d = {
3706
- flush: "pre"
3707
- };
3708
- function callUseSubscription(e2, l2, t2 = useClient(), n = []) {
3709
- var o2 = vue.reactive(e2);
3710
- var v2 = vue.ref();
3711
- var f2 = vue.ref(false);
3712
- var y = vue.ref(false);
3713
- var b2 = vue.ref();
3714
- var h = vue.ref();
3715
- var x = vue.ref();
3716
- var w = vue.ref(l2);
3717
- var P = vue.isRef(e2.pause) ? e2.pause : vue.ref(!!e2.pause);
3718
- var q = vue.ref(createRequest(o2.query, unwrapPossibleProxy(o2.variables)));
3719
- var E = vue.ref();
3720
- n.push(vue.watchEffect(() => {
3721
- var e3 = createRequest(o2.query, unwrapPossibleProxy(o2.variables));
3722
- if (q.value.key !== e3.key) {
3723
- q.value = e3;
3724
- }
3725
- }, d));
3726
- n.push(vue.watchEffect(() => {
3727
- E.value = !P.value ? t2.value.executeSubscription(q.value, {
3728
- ...o2.context
3729
- }) : void 0;
3730
- }, d));
3731
- n.push(vue.watchEffect((e3) => {
3732
- if (E.value) {
3733
- y.value = true;
3734
- e3(subscribe((e4) => {
3735
- y.value = true;
3736
- v2.value = void 0 !== e4.data ? "function" == typeof w.value ? w.value(v2.value, e4.data) : e4.data : e4.data, b2.value = e4.error;
3737
- x.value = e4.extensions;
3738
- f2.value = !!e4.stale;
3739
- h.value = e4.operation;
3740
- })(onEnd(() => {
3741
- y.value = false;
3742
- })(E.value)).unsubscribe);
3743
- } else {
3744
- y.value = false;
3745
- }
3746
- }, d));
3747
- var m = {
3748
- data: v2,
3749
- stale: f2,
3750
- error: b2,
3751
- operation: h,
3752
- extensions: x,
3753
- fetching: y,
3754
- isPaused: P,
3755
- executeSubscription(e3) {
3756
- E.value = t2.value.executeSubscription(q.value, {
3757
- ...o2.context,
3758
- ...e3
3446
+ }
3447
+ };
3448
+ }
3449
+ var d = {
3450
+ flush: "pre"
3451
+ };
3452
+ function callUseSubscription(e2, l2, t2 = useClient(), n = []) {
3453
+ var o2 = vue.reactive(e2);
3454
+ var v2 = vue.ref();
3455
+ var f2 = vue.ref(false);
3456
+ var y = vue.ref(false);
3457
+ var b2 = vue.ref();
3458
+ var h = vue.ref();
3459
+ var x = vue.ref();
3460
+ var w = vue.ref(l2);
3461
+ var P = vue.isRef(e2.pause) ? e2.pause : vue.ref(!!e2.pause);
3462
+ var q = vue.ref(createRequest(o2.query, unwrapPossibleProxy(o2.variables)));
3463
+ var E = vue.ref();
3464
+ n.push(vue.watchEffect(() => {
3465
+ var e3 = createRequest(o2.query, unwrapPossibleProxy(o2.variables));
3466
+ if (q.value.key !== e3.key) {
3467
+ q.value = e3;
3468
+ }
3469
+ }, d));
3470
+ n.push(vue.watchEffect(() => {
3471
+ E.value = !P.value ? t2.value.executeSubscription(q.value, {
3472
+ ...o2.context
3473
+ }) : void 0;
3474
+ }, d));
3475
+ n.push(vue.watchEffect((e3) => {
3476
+ if (E.value) {
3477
+ y.value = true;
3478
+ e3(subscribe((e4) => {
3479
+ y.value = true;
3480
+ v2.value = void 0 !== e4.data ? "function" == typeof w.value ? w.value(v2.value, e4.data) : e4.data : e4.data, b2.value = e4.error;
3481
+ x.value = e4.extensions;
3482
+ f2.value = !!e4.stale;
3483
+ h.value = e4.operation;
3484
+ })(onEnd(() => {
3485
+ y.value = false;
3486
+ })(E.value)).unsubscribe);
3487
+ } else {
3488
+ y.value = false;
3489
+ }
3490
+ }, d));
3491
+ var m = {
3492
+ data: v2,
3493
+ stale: f2,
3494
+ error: b2,
3495
+ operation: h,
3496
+ extensions: x,
3497
+ fetching: y,
3498
+ isPaused: P,
3499
+ executeSubscription(e3) {
3500
+ E.value = t2.value.executeSubscription(q.value, {
3501
+ ...o2.context,
3502
+ ...e3
3503
+ });
3504
+ return m;
3505
+ },
3506
+ pause() {
3507
+ P.value = true;
3508
+ },
3509
+ resume() {
3510
+ P.value = false;
3511
+ }
3512
+ };
3513
+ return m;
3514
+ }
3515
+ function useClientHandle() {
3516
+ var e2 = useClient();
3517
+ var u = [];
3518
+ vue.onBeforeUnmount(() => {
3519
+ var e3;
3520
+ while (e3 = u.shift()) {
3521
+ e3();
3522
+ }
3523
+ });
3524
+ var r2 = {
3525
+ client: e2.value,
3526
+ useQuery: (r3) => callUseQuery(r3, e2, u),
3527
+ useSubscription: (r3, a) => callUseSubscription(r3, a, e2, u),
3528
+ useMutation: (u2) => callUseMutation(u2, e2)
3529
+ };
3530
+ if ("production" !== process.env.NODE_ENV) {
3531
+ vue.onMounted(() => {
3532
+ Object.assign(r2, {
3533
+ useQuery(r3) {
3534
+ if ("production" !== process.env.NODE_ENV && !vue.getCurrentInstance()) {
3535
+ throw new Error("`handle.useQuery()` should only be called in the `setup()` or a lifecycle hook.");
3536
+ }
3537
+ return callUseQuery(r3, e2, u);
3538
+ },
3539
+ useSubscription(r3, a) {
3540
+ if ("production" !== process.env.NODE_ENV && !vue.getCurrentInstance()) {
3541
+ throw new Error("`handle.useSubscription()` should only be called in the `setup()` or a lifecycle hook.");
3542
+ }
3543
+ return callUseSubscription(r3, a, e2, u);
3544
+ }
3545
+ });
3546
+ });
3547
+ }
3548
+ return r2;
3549
+ }
3550
+ var commonjsGlobal = typeof globalThis !== "undefined" ? globalThis : typeof window !== "undefined" ? window : typeof global !== "undefined" ? global : typeof self !== "undefined" ? self : {};
3551
+ function getDefaultExportFromCjs(x) {
3552
+ return x && x.__esModule && Object.prototype.hasOwnProperty.call(x, "default") ? x["default"] : x;
3553
+ }
3554
+ var dayjs_minExports = {};
3555
+ var dayjs_min = {
3556
+ get exports() {
3557
+ return dayjs_minExports;
3558
+ },
3559
+ set exports(v2) {
3560
+ dayjs_minExports = v2;
3561
+ }
3562
+ };
3563
+ (function(module2, exports2) {
3564
+ !function(t2, e2) {
3565
+ module2.exports = e2();
3566
+ }(commonjsGlobal, function() {
3567
+ var t2 = 1e3, e2 = 6e4, n = 36e5, r2 = "millisecond", i2 = "second", s2 = "minute", u = "hour", a = "day", o2 = "week", f2 = "month", h = "quarter", c = "year", d2 = "date", l2 = "Invalid Date", $ = /^(\d{4})[-/]?(\d{1,2})?[-/]?(\d{0,2})[Tt\s]*(\d{1,2})?:?(\d{1,2})?:?(\d{1,2})?[.:]?(\d+)?$/, y = /\[([^\]]+)]|Y{1,4}|M{1,4}|D{1,2}|d{1,4}|H{1,2}|h{1,2}|a|A|m{1,2}|s{1,2}|Z{1,2}|SSS/g, M = { name: "en", weekdays: "Sunday_Monday_Tuesday_Wednesday_Thursday_Friday_Saturday".split("_"), months: "January_February_March_April_May_June_July_August_September_October_November_December".split("_"), ordinal: function(t3) {
3568
+ var e3 = ["th", "st", "nd", "rd"], n2 = t3 % 100;
3569
+ return "[" + t3 + (e3[(n2 - 20) % 10] || e3[n2] || e3[0]) + "]";
3570
+ } }, m = function(t3, e3, n2) {
3571
+ var r3 = String(t3);
3572
+ return !r3 || r3.length >= e3 ? t3 : "" + Array(e3 + 1 - r3.length).join(n2) + t3;
3573
+ }, v2 = { s: m, z: function(t3) {
3574
+ var e3 = -t3.utcOffset(), n2 = Math.abs(e3), r3 = Math.floor(n2 / 60), i3 = n2 % 60;
3575
+ return (e3 <= 0 ? "+" : "-") + m(r3, 2, "0") + ":" + m(i3, 2, "0");
3576
+ }, m: function t3(e3, n2) {
3577
+ if (e3.date() < n2.date())
3578
+ return -t3(n2, e3);
3579
+ var r3 = 12 * (n2.year() - e3.year()) + (n2.month() - e3.month()), i3 = e3.clone().add(r3, f2), s3 = n2 - i3 < 0, u2 = e3.clone().add(r3 + (s3 ? -1 : 1), f2);
3580
+ return +(-(r3 + (n2 - i3) / (s3 ? i3 - u2 : u2 - i3)) || 0);
3581
+ }, a: function(t3) {
3582
+ return t3 < 0 ? Math.ceil(t3) || 0 : Math.floor(t3);
3583
+ }, p: function(t3) {
3584
+ return { M: f2, y: c, w: o2, d: a, D: d2, h: u, m: s2, s: i2, ms: r2, Q: h }[t3] || String(t3 || "").toLowerCase().replace(/s$/, "");
3585
+ }, u: function(t3) {
3586
+ return void 0 === t3;
3587
+ } }, g = "en", D = {};
3588
+ D[g] = M;
3589
+ var p = function(t3) {
3590
+ return t3 instanceof _;
3591
+ }, S = function t3(e3, n2, r3) {
3592
+ var i3;
3593
+ if (!e3)
3594
+ return g;
3595
+ if ("string" == typeof e3) {
3596
+ var s3 = e3.toLowerCase();
3597
+ D[s3] && (i3 = s3), n2 && (D[s3] = n2, i3 = s3);
3598
+ var u2 = e3.split("-");
3599
+ if (!i3 && u2.length > 1)
3600
+ return t3(u2[0]);
3601
+ } else {
3602
+ var a2 = e3.name;
3603
+ D[a2] = e3, i3 = a2;
3604
+ }
3605
+ return !r3 && i3 && (g = i3), i3 || !r3 && g;
3606
+ }, w = function(t3, e3) {
3607
+ if (p(t3))
3608
+ return t3.clone();
3609
+ var n2 = "object" == typeof e3 ? e3 : {};
3610
+ return n2.date = t3, n2.args = arguments, new _(n2);
3611
+ }, O = v2;
3612
+ O.l = S, O.i = p, O.w = function(t3, e3) {
3613
+ return w(t3, { locale: e3.$L, utc: e3.$u, x: e3.$x, $offset: e3.$offset });
3614
+ };
3615
+ var _ = function() {
3616
+ function M2(t3) {
3617
+ this.$L = S(t3.locale, null, true), this.parse(t3);
3618
+ }
3619
+ var m2 = M2.prototype;
3620
+ return m2.parse = function(t3) {
3621
+ this.$d = function(t4) {
3622
+ var e3 = t4.date, n2 = t4.utc;
3623
+ if (null === e3)
3624
+ return new Date(NaN);
3625
+ if (O.u(e3))
3626
+ return new Date();
3627
+ if (e3 instanceof Date)
3628
+ return new Date(e3);
3629
+ if ("string" == typeof e3 && !/Z$/i.test(e3)) {
3630
+ var r3 = e3.match($);
3631
+ if (r3) {
3632
+ var i3 = r3[2] - 1 || 0, s3 = (r3[7] || "0").substring(0, 3);
3633
+ return n2 ? new Date(Date.UTC(r3[1], i3, r3[3] || 1, r3[4] || 0, r3[5] || 0, r3[6] || 0, s3)) : new Date(r3[1], i3, r3[3] || 1, r3[4] || 0, r3[5] || 0, r3[6] || 0, s3);
3634
+ }
3635
+ }
3636
+ return new Date(e3);
3637
+ }(t3), this.$x = t3.x || {}, this.init();
3638
+ }, m2.init = function() {
3639
+ var t3 = this.$d;
3640
+ this.$y = t3.getFullYear(), this.$M = t3.getMonth(), this.$D = t3.getDate(), this.$W = t3.getDay(), this.$H = t3.getHours(), this.$m = t3.getMinutes(), this.$s = t3.getSeconds(), this.$ms = t3.getMilliseconds();
3641
+ }, m2.$utils = function() {
3642
+ return O;
3643
+ }, m2.isValid = function() {
3644
+ return !(this.$d.toString() === l2);
3645
+ }, m2.isSame = function(t3, e3) {
3646
+ var n2 = w(t3);
3647
+ return this.startOf(e3) <= n2 && n2 <= this.endOf(e3);
3648
+ }, m2.isAfter = function(t3, e3) {
3649
+ return w(t3) < this.startOf(e3);
3650
+ }, m2.isBefore = function(t3, e3) {
3651
+ return this.endOf(e3) < w(t3);
3652
+ }, m2.$g = function(t3, e3, n2) {
3653
+ return O.u(t3) ? this[e3] : this.set(n2, t3);
3654
+ }, m2.unix = function() {
3655
+ return Math.floor(this.valueOf() / 1e3);
3656
+ }, m2.valueOf = function() {
3657
+ return this.$d.getTime();
3658
+ }, m2.startOf = function(t3, e3) {
3659
+ var n2 = this, r3 = !!O.u(e3) || e3, h2 = O.p(t3), l3 = function(t4, e4) {
3660
+ var i3 = O.w(n2.$u ? Date.UTC(n2.$y, e4, t4) : new Date(n2.$y, e4, t4), n2);
3661
+ return r3 ? i3 : i3.endOf(a);
3662
+ }, $2 = function(t4, e4) {
3663
+ return O.w(n2.toDate()[t4].apply(n2.toDate("s"), (r3 ? [0, 0, 0, 0] : [23, 59, 59, 999]).slice(e4)), n2);
3664
+ }, y2 = this.$W, M3 = this.$M, m3 = this.$D, v3 = "set" + (this.$u ? "UTC" : "");
3665
+ switch (h2) {
3666
+ case c:
3667
+ return r3 ? l3(1, 0) : l3(31, 11);
3668
+ case f2:
3669
+ return r3 ? l3(1, M3) : l3(0, M3 + 1);
3670
+ case o2:
3671
+ var g2 = this.$locale().weekStart || 0, D2 = (y2 < g2 ? y2 + 7 : y2) - g2;
3672
+ return l3(r3 ? m3 - D2 : m3 + (6 - D2), M3);
3673
+ case a:
3674
+ case d2:
3675
+ return $2(v3 + "Hours", 0);
3676
+ case u:
3677
+ return $2(v3 + "Minutes", 1);
3678
+ case s2:
3679
+ return $2(v3 + "Seconds", 2);
3680
+ case i2:
3681
+ return $2(v3 + "Milliseconds", 3);
3682
+ default:
3683
+ return this.clone();
3684
+ }
3685
+ }, m2.endOf = function(t3) {
3686
+ return this.startOf(t3, false);
3687
+ }, m2.$set = function(t3, e3) {
3688
+ var n2, o3 = O.p(t3), h2 = "set" + (this.$u ? "UTC" : ""), l3 = (n2 = {}, n2[a] = h2 + "Date", n2[d2] = h2 + "Date", n2[f2] = h2 + "Month", n2[c] = h2 + "FullYear", n2[u] = h2 + "Hours", n2[s2] = h2 + "Minutes", n2[i2] = h2 + "Seconds", n2[r2] = h2 + "Milliseconds", n2)[o3], $2 = o3 === a ? this.$D + (e3 - this.$W) : e3;
3689
+ if (o3 === f2 || o3 === c) {
3690
+ var y2 = this.clone().set(d2, 1);
3691
+ y2.$d[l3]($2), y2.init(), this.$d = y2.set(d2, Math.min(this.$D, y2.daysInMonth())).$d;
3692
+ } else
3693
+ l3 && this.$d[l3]($2);
3694
+ return this.init(), this;
3695
+ }, m2.set = function(t3, e3) {
3696
+ return this.clone().$set(t3, e3);
3697
+ }, m2.get = function(t3) {
3698
+ return this[O.p(t3)]();
3699
+ }, m2.add = function(r3, h2) {
3700
+ var d3, l3 = this;
3701
+ r3 = Number(r3);
3702
+ var $2 = O.p(h2), y2 = function(t3) {
3703
+ var e3 = w(l3);
3704
+ return O.w(e3.date(e3.date() + Math.round(t3 * r3)), l3);
3705
+ };
3706
+ if ($2 === f2)
3707
+ return this.set(f2, this.$M + r3);
3708
+ if ($2 === c)
3709
+ return this.set(c, this.$y + r3);
3710
+ if ($2 === a)
3711
+ return y2(1);
3712
+ if ($2 === o2)
3713
+ return y2(7);
3714
+ var M3 = (d3 = {}, d3[s2] = e2, d3[u] = n, d3[i2] = t2, d3)[$2] || 1, m3 = this.$d.getTime() + r3 * M3;
3715
+ return O.w(m3, this);
3716
+ }, m2.subtract = function(t3, e3) {
3717
+ return this.add(-1 * t3, e3);
3718
+ }, m2.format = function(t3) {
3719
+ var e3 = this, n2 = this.$locale();
3720
+ if (!this.isValid())
3721
+ return n2.invalidDate || l2;
3722
+ var r3 = t3 || "YYYY-MM-DDTHH:mm:ssZ", i3 = O.z(this), s3 = this.$H, u2 = this.$m, a2 = this.$M, o3 = n2.weekdays, f3 = n2.months, h2 = function(t4, n3, i4, s4) {
3723
+ return t4 && (t4[n3] || t4(e3, r3)) || i4[n3].slice(0, s4);
3724
+ }, c2 = function(t4) {
3725
+ return O.s(s3 % 12 || 12, t4, "0");
3726
+ }, d3 = n2.meridiem || function(t4, e4, n3) {
3727
+ var r4 = t4 < 12 ? "AM" : "PM";
3728
+ return n3 ? r4.toLowerCase() : r4;
3729
+ }, $2 = { YY: String(this.$y).slice(-2), YYYY: this.$y, M: a2 + 1, MM: O.s(a2 + 1, 2, "0"), MMM: h2(n2.monthsShort, a2, f3, 3), MMMM: h2(f3, a2), D: this.$D, DD: O.s(this.$D, 2, "0"), d: String(this.$W), dd: h2(n2.weekdaysMin, this.$W, o3, 2), ddd: h2(n2.weekdaysShort, this.$W, o3, 3), dddd: o3[this.$W], H: String(s3), HH: O.s(s3, 2, "0"), h: c2(1), hh: c2(2), a: d3(s3, u2, true), A: d3(s3, u2, false), m: String(u2), mm: O.s(u2, 2, "0"), s: String(this.$s), ss: O.s(this.$s, 2, "0"), SSS: O.s(this.$ms, 3, "0"), Z: i3 };
3730
+ return r3.replace(y, function(t4, e4) {
3731
+ return e4 || $2[t4] || i3.replace(":", "");
3732
+ });
3733
+ }, m2.utcOffset = function() {
3734
+ return 15 * -Math.round(this.$d.getTimezoneOffset() / 15);
3735
+ }, m2.diff = function(r3, d3, l3) {
3736
+ var $2, y2 = O.p(d3), M3 = w(r3), m3 = (M3.utcOffset() - this.utcOffset()) * e2, v3 = this - M3, g2 = O.m(this, M3);
3737
+ return g2 = ($2 = {}, $2[c] = g2 / 12, $2[f2] = g2, $2[h] = g2 / 3, $2[o2] = (v3 - m3) / 6048e5, $2[a] = (v3 - m3) / 864e5, $2[u] = v3 / n, $2[s2] = v3 / e2, $2[i2] = v3 / t2, $2)[y2] || v3, l3 ? g2 : O.a(g2);
3738
+ }, m2.daysInMonth = function() {
3739
+ return this.endOf(f2).$D;
3740
+ }, m2.$locale = function() {
3741
+ return D[this.$L];
3742
+ }, m2.locale = function(t3, e3) {
3743
+ if (!t3)
3744
+ return this.$L;
3745
+ var n2 = this.clone(), r3 = S(t3, e3, true);
3746
+ return r3 && (n2.$L = r3), n2;
3747
+ }, m2.clone = function() {
3748
+ return O.w(this.$d, this);
3749
+ }, m2.toDate = function() {
3750
+ return new Date(this.valueOf());
3751
+ }, m2.toJSON = function() {
3752
+ return this.isValid() ? this.toISOString() : null;
3753
+ }, m2.toISOString = function() {
3754
+ return this.$d.toISOString();
3755
+ }, m2.toString = function() {
3756
+ return this.$d.toUTCString();
3757
+ }, M2;
3758
+ }(), T = _.prototype;
3759
+ return w.prototype = T, [["$ms", r2], ["$s", i2], ["$m", s2], ["$H", u], ["$W", a], ["$M", f2], ["$y", c], ["$D", d2]].forEach(function(t3) {
3760
+ T[t3[1]] = function(e3) {
3761
+ return this.$g(e3, t3[0], t3[1]);
3762
+ };
3763
+ }), w.extend = function(t3, e3) {
3764
+ return t3.$i || (t3(e3, _, w), t3.$i = true), w;
3765
+ }, w.locale = S, w.isDayjs = p, w.unix = function(t3) {
3766
+ return w(1e3 * t3);
3767
+ }, w.en = D[g], w.Ls = D, w.p = {}, w;
3768
+ });
3769
+ })(dayjs_min);
3770
+ const dayjs = dayjs_minExports;
3771
+ var idExports = {};
3772
+ var id = {
3773
+ get exports() {
3774
+ return idExports;
3775
+ },
3776
+ set exports(v2) {
3777
+ idExports = v2;
3778
+ }
3779
+ };
3780
+ (function(module2, exports2) {
3781
+ !function(e2, a) {
3782
+ module2.exports = a(dayjs_minExports);
3783
+ }(commonjsGlobal, function(e2) {
3784
+ function a(e3) {
3785
+ return e3 && "object" == typeof e3 && "default" in e3 ? e3 : { default: e3 };
3786
+ }
3787
+ var t2 = a(e2), _ = { name: "id", weekdays: "Minggu_Senin_Selasa_Rabu_Kamis_Jumat_Sabtu".split("_"), months: "Januari_Februari_Maret_April_Mei_Juni_Juli_Agustus_September_Oktober_November_Desember".split("_"), weekdaysShort: "Min_Sen_Sel_Rab_Kam_Jum_Sab".split("_"), monthsShort: "Jan_Feb_Mar_Apr_Mei_Jun_Jul_Agt_Sep_Okt_Nov_Des".split("_"), weekdaysMin: "Mg_Sn_Sl_Rb_Km_Jm_Sb".split("_"), weekStart: 1, formats: { LT: "HH.mm", LTS: "HH.mm.ss", L: "DD/MM/YYYY", LL: "D MMMM YYYY", LLL: "D MMMM YYYY [pukul] HH.mm", LLLL: "dddd, D MMMM YYYY [pukul] HH.mm" }, relativeTime: { future: "dalam %s", past: "%s yang lalu", s: "beberapa detik", m: "semenit", mm: "%d menit", h: "sejam", hh: "%d jam", d: "sehari", dd: "%d hari", M: "sebulan", MM: "%d bulan", y: "setahun", yy: "%d tahun" }, ordinal: function(e3) {
3788
+ return e3 + ".";
3789
+ } };
3790
+ return t2.default.locale(_, null, true), _;
3791
+ });
3792
+ })(id);
3793
+ function toInteger$2(dirtyNumber) {
3794
+ if (dirtyNumber === null || dirtyNumber === true || dirtyNumber === false) {
3795
+ return NaN;
3796
+ }
3797
+ var number = Number(dirtyNumber);
3798
+ if (isNaN(number)) {
3799
+ return number;
3800
+ }
3801
+ return number < 0 ? Math.ceil(number) : Math.floor(number);
3802
+ }
3803
+ function requiredArgs(required, args) {
3804
+ if (args.length < required) {
3805
+ throw new TypeError(required + " argument" + (required > 1 ? "s" : "") + " required, but only " + args.length + " present");
3806
+ }
3807
+ }
3808
+ function _typeof(obj) {
3809
+ "@babel/helpers - typeof";
3810
+ if (typeof Symbol === "function" && typeof Symbol.iterator === "symbol") {
3811
+ _typeof = function _typeof2(obj2) {
3812
+ return typeof obj2;
3813
+ };
3814
+ } else {
3815
+ _typeof = function _typeof2(obj2) {
3816
+ return obj2 && typeof Symbol === "function" && obj2.constructor === Symbol && obj2 !== Symbol.prototype ? "symbol" : typeof obj2;
3817
+ };
3818
+ }
3819
+ return _typeof(obj);
3820
+ }
3821
+ function toDate$1(argument) {
3822
+ requiredArgs(1, arguments);
3823
+ var argStr = Object.prototype.toString.call(argument);
3824
+ if (argument instanceof Date || _typeof(argument) === "object" && argStr === "[object Date]") {
3825
+ return new Date(argument.getTime());
3826
+ } else if (typeof argument === "number" || argStr === "[object Number]") {
3827
+ return new Date(argument);
3828
+ } else {
3829
+ if ((typeof argument === "string" || argStr === "[object String]") && typeof console !== "undefined") {
3830
+ console.warn("Starting with v2.0.0-beta.1 date-fns doesn't accept strings as date arguments. Please use `parseISO` to parse strings. See: https://github.com/date-fns/date-fns/blob/master/docs/upgradeGuide.md#string-arguments");
3831
+ console.warn(new Error().stack);
3832
+ }
3833
+ return new Date(NaN);
3834
+ }
3835
+ }
3836
+ function startOfDay(dirtyDate) {
3837
+ requiredArgs(1, arguments);
3838
+ var date = toDate$1(dirtyDate);
3839
+ date.setHours(0, 0, 0, 0);
3840
+ return date;
3841
+ }
3842
+ var millisecondsInMinute = 6e4;
3843
+ var millisecondsInHour = 36e5;
3844
+ function endOfDay(dirtyDate) {
3845
+ requiredArgs(1, arguments);
3846
+ var date = toDate$1(dirtyDate);
3847
+ date.setHours(23, 59, 59, 999);
3848
+ return date;
3849
+ }
3850
+ function parseISO(argument, options) {
3851
+ var _options$additionalDi;
3852
+ requiredArgs(1, arguments);
3853
+ var additionalDigits = toInteger$2((_options$additionalDi = options === null || options === void 0 ? void 0 : options.additionalDigits) !== null && _options$additionalDi !== void 0 ? _options$additionalDi : 2);
3854
+ if (additionalDigits !== 2 && additionalDigits !== 1 && additionalDigits !== 0) {
3855
+ throw new RangeError("additionalDigits must be 0, 1 or 2");
3856
+ }
3857
+ if (!(typeof argument === "string" || Object.prototype.toString.call(argument) === "[object String]")) {
3858
+ return new Date(NaN);
3859
+ }
3860
+ var dateStrings = splitDateString$1(argument);
3861
+ var date;
3862
+ if (dateStrings.date) {
3863
+ var parseYearResult = parseYear$1(dateStrings.date, additionalDigits);
3864
+ date = parseDate$1(parseYearResult.restDateString, parseYearResult.year);
3865
+ }
3866
+ if (!date || isNaN(date.getTime())) {
3867
+ return new Date(NaN);
3868
+ }
3869
+ var timestamp = date.getTime();
3870
+ var time = 0;
3871
+ var offset;
3872
+ if (dateStrings.time) {
3873
+ time = parseTime$1(dateStrings.time);
3874
+ if (isNaN(time)) {
3875
+ return new Date(NaN);
3876
+ }
3877
+ }
3878
+ if (dateStrings.timezone) {
3879
+ offset = parseTimezone(dateStrings.timezone);
3880
+ if (isNaN(offset)) {
3881
+ return new Date(NaN);
3882
+ }
3883
+ } else {
3884
+ var dirtyDate = new Date(timestamp + time);
3885
+ var result = new Date(0);
3886
+ result.setFullYear(dirtyDate.getUTCFullYear(), dirtyDate.getUTCMonth(), dirtyDate.getUTCDate());
3887
+ result.setHours(dirtyDate.getUTCHours(), dirtyDate.getUTCMinutes(), dirtyDate.getUTCSeconds(), dirtyDate.getUTCMilliseconds());
3888
+ return result;
3889
+ }
3890
+ return new Date(timestamp + time + offset);
3891
+ }
3892
+ var patterns$2 = {
3893
+ dateTimeDelimiter: /[T ]/,
3894
+ timeZoneDelimiter: /[Z ]/i,
3895
+ timezone: /([Z+-].*)$/
3896
+ };
3897
+ var dateRegex = /^-?(?:(\d{3})|(\d{2})(?:-?(\d{2}))?|W(\d{2})(?:-?(\d{1}))?|)$/;
3898
+ var timeRegex = /^(\d{2}(?:[.,]\d*)?)(?::?(\d{2}(?:[.,]\d*)?))?(?::?(\d{2}(?:[.,]\d*)?))?$/;
3899
+ var timezoneRegex = /^([+-])(\d{2})(?::?(\d{2}))?$/;
3900
+ function splitDateString$1(dateString) {
3901
+ var dateStrings = {};
3902
+ var array = dateString.split(patterns$2.dateTimeDelimiter);
3903
+ var timeString;
3904
+ if (array.length > 2) {
3905
+ return dateStrings;
3906
+ }
3907
+ if (/:/.test(array[0])) {
3908
+ timeString = array[0];
3909
+ } else {
3910
+ dateStrings.date = array[0];
3911
+ timeString = array[1];
3912
+ if (patterns$2.timeZoneDelimiter.test(dateStrings.date)) {
3913
+ dateStrings.date = dateString.split(patterns$2.timeZoneDelimiter)[0];
3914
+ timeString = dateString.substr(dateStrings.date.length, dateString.length);
3915
+ }
3916
+ }
3917
+ if (timeString) {
3918
+ var token = patterns$2.timezone.exec(timeString);
3919
+ if (token) {
3920
+ dateStrings.time = timeString.replace(token[1], "");
3921
+ dateStrings.timezone = token[1];
3922
+ } else {
3923
+ dateStrings.time = timeString;
3924
+ }
3925
+ }
3926
+ return dateStrings;
3927
+ }
3928
+ function parseYear$1(dateString, additionalDigits) {
3929
+ var regex = new RegExp("^(?:(\\d{4}|[+-]\\d{" + (4 + additionalDigits) + "})|(\\d{2}|[+-]\\d{" + (2 + additionalDigits) + "})$)");
3930
+ var captures = dateString.match(regex);
3931
+ if (!captures)
3932
+ return {
3933
+ year: NaN,
3934
+ restDateString: ""
3935
+ };
3936
+ var year = captures[1] ? parseInt(captures[1]) : null;
3937
+ var century = captures[2] ? parseInt(captures[2]) : null;
3938
+ return {
3939
+ year: century === null ? year : century * 100,
3940
+ restDateString: dateString.slice((captures[1] || captures[2]).length)
3941
+ };
3942
+ }
3943
+ function parseDate$1(dateString, year) {
3944
+ if (year === null)
3945
+ return new Date(NaN);
3946
+ var captures = dateString.match(dateRegex);
3947
+ if (!captures)
3948
+ return new Date(NaN);
3949
+ var isWeekDate = !!captures[4];
3950
+ var dayOfYear = parseDateUnit(captures[1]);
3951
+ var month = parseDateUnit(captures[2]) - 1;
3952
+ var day = parseDateUnit(captures[3]);
3953
+ var week = parseDateUnit(captures[4]);
3954
+ var dayOfWeek = parseDateUnit(captures[5]) - 1;
3955
+ if (isWeekDate) {
3956
+ if (!validateWeekDate$1(year, week, dayOfWeek)) {
3957
+ return new Date(NaN);
3958
+ }
3959
+ return dayOfISOWeekYear$1(year, week, dayOfWeek);
3960
+ } else {
3961
+ var date = new Date(0);
3962
+ if (!validateDate$1(year, month, day) || !validateDayOfYearDate$1(year, dayOfYear)) {
3963
+ return new Date(NaN);
3964
+ }
3965
+ date.setUTCFullYear(year, month, Math.max(dayOfYear, day));
3966
+ return date;
3967
+ }
3968
+ }
3969
+ function parseDateUnit(value) {
3970
+ return value ? parseInt(value) : 1;
3971
+ }
3972
+ function parseTime$1(timeString) {
3973
+ var captures = timeString.match(timeRegex);
3974
+ if (!captures)
3975
+ return NaN;
3976
+ var hours = parseTimeUnit(captures[1]);
3977
+ var minutes = parseTimeUnit(captures[2]);
3978
+ var seconds = parseTimeUnit(captures[3]);
3979
+ if (!validateTime$1(hours, minutes, seconds)) {
3980
+ return NaN;
3981
+ }
3982
+ return hours * millisecondsInHour + minutes * millisecondsInMinute + seconds * 1e3;
3983
+ }
3984
+ function parseTimeUnit(value) {
3985
+ return value && parseFloat(value.replace(",", ".")) || 0;
3986
+ }
3987
+ function parseTimezone(timezoneString) {
3988
+ if (timezoneString === "Z")
3989
+ return 0;
3990
+ var captures = timezoneString.match(timezoneRegex);
3991
+ if (!captures)
3992
+ return 0;
3993
+ var sign = captures[1] === "+" ? -1 : 1;
3994
+ var hours = parseInt(captures[2]);
3995
+ var minutes = captures[3] && parseInt(captures[3]) || 0;
3996
+ if (!validateTimezone$1(hours, minutes)) {
3997
+ return NaN;
3998
+ }
3999
+ return sign * (hours * millisecondsInHour + minutes * millisecondsInMinute);
4000
+ }
4001
+ function dayOfISOWeekYear$1(isoWeekYear, week, day) {
4002
+ var date = new Date(0);
4003
+ date.setUTCFullYear(isoWeekYear, 0, 4);
4004
+ var fourthOfJanuaryDay = date.getUTCDay() || 7;
4005
+ var diff = (week - 1) * 7 + day + 1 - fourthOfJanuaryDay;
4006
+ date.setUTCDate(date.getUTCDate() + diff);
4007
+ return date;
4008
+ }
4009
+ var daysInMonths = [31, null, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31];
4010
+ function isLeapYearIndex$1(year) {
4011
+ return year % 400 === 0 || year % 4 === 0 && year % 100 !== 0;
4012
+ }
4013
+ function validateDate$1(year, month, date) {
4014
+ return month >= 0 && month <= 11 && date >= 1 && date <= (daysInMonths[month] || (isLeapYearIndex$1(year) ? 29 : 28));
4015
+ }
4016
+ function validateDayOfYearDate$1(year, dayOfYear) {
4017
+ return dayOfYear >= 1 && dayOfYear <= (isLeapYearIndex$1(year) ? 366 : 365);
4018
+ }
4019
+ function validateWeekDate$1(_year, week, day) {
4020
+ return week >= 1 && week <= 53 && day >= 0 && day <= 6;
4021
+ }
4022
+ function validateTime$1(hours, minutes, seconds) {
4023
+ if (hours === 24) {
4024
+ return minutes === 0 && seconds === 0;
4025
+ }
4026
+ return seconds >= 0 && seconds < 60 && minutes >= 0 && minutes < 60 && hours >= 0 && hours < 25;
4027
+ }
4028
+ function validateTimezone$1(_hours, minutes) {
4029
+ return minutes >= 0 && minutes <= 59;
4030
+ }
4031
+ var toIntegerExports = {};
4032
+ var toInteger$1 = {
4033
+ get exports() {
4034
+ return toIntegerExports;
4035
+ },
4036
+ set exports(v2) {
4037
+ toIntegerExports = v2;
4038
+ }
4039
+ };
4040
+ (function(module2, exports2) {
4041
+ Object.defineProperty(exports2, "__esModule", {
4042
+ value: true
4043
+ });
4044
+ exports2.default = toInteger2;
4045
+ function toInteger2(dirtyNumber) {
4046
+ if (dirtyNumber === null || dirtyNumber === true || dirtyNumber === false) {
4047
+ return NaN;
4048
+ }
4049
+ var number = Number(dirtyNumber);
4050
+ if (isNaN(number)) {
4051
+ return number;
4052
+ }
4053
+ return number < 0 ? Math.ceil(number) : Math.floor(number);
4054
+ }
4055
+ module2.exports = exports2.default;
4056
+ })(toInteger$1, toIntegerExports);
4057
+ const toInteger = /* @__PURE__ */ getDefaultExportFromCjs(toIntegerExports);
4058
+ var getTimezoneOffsetInMillisecondsExports = {};
4059
+ var getTimezoneOffsetInMilliseconds$1 = {
4060
+ get exports() {
4061
+ return getTimezoneOffsetInMillisecondsExports;
4062
+ },
4063
+ set exports(v2) {
4064
+ getTimezoneOffsetInMillisecondsExports = v2;
4065
+ }
4066
+ };
4067
+ (function(module2, exports2) {
4068
+ Object.defineProperty(exports2, "__esModule", {
4069
+ value: true
4070
+ });
4071
+ exports2.default = getTimezoneOffsetInMilliseconds2;
4072
+ function getTimezoneOffsetInMilliseconds2(date) {
4073
+ var utcDate = new Date(Date.UTC(date.getFullYear(), date.getMonth(), date.getDate(), date.getHours(), date.getMinutes(), date.getSeconds(), date.getMilliseconds()));
4074
+ utcDate.setUTCFullYear(date.getFullYear());
4075
+ return date.getTime() - utcDate.getTime();
4076
+ }
4077
+ module2.exports = exports2.default;
4078
+ })(getTimezoneOffsetInMilliseconds$1, getTimezoneOffsetInMillisecondsExports);
4079
+ const getTimezoneOffsetInMilliseconds = /* @__PURE__ */ getDefaultExportFromCjs(getTimezoneOffsetInMillisecondsExports);
4080
+ function tzTokenizeDate(date, timeZone) {
4081
+ var dtf = getDateTimeFormat(timeZone);
4082
+ return dtf.formatToParts ? partsOffset(dtf, date) : hackyOffset(dtf, date);
4083
+ }
4084
+ var typeToPos = {
4085
+ year: 0,
4086
+ month: 1,
4087
+ day: 2,
4088
+ hour: 3,
4089
+ minute: 4,
4090
+ second: 5
4091
+ };
4092
+ function partsOffset(dtf, date) {
4093
+ try {
4094
+ var formatted = dtf.formatToParts(date);
4095
+ var filled = [];
4096
+ for (var i2 = 0; i2 < formatted.length; i2++) {
4097
+ var pos = typeToPos[formatted[i2].type];
4098
+ if (pos >= 0) {
4099
+ filled[pos] = parseInt(formatted[i2].value, 10);
4100
+ }
4101
+ }
4102
+ return filled;
4103
+ } catch (error) {
4104
+ if (error instanceof RangeError) {
4105
+ return [NaN];
4106
+ }
4107
+ throw error;
4108
+ }
4109
+ }
4110
+ function hackyOffset(dtf, date) {
4111
+ var formatted = dtf.format(date).replace(/\u200E/g, "");
4112
+ var parsed = /(\d+)\/(\d+)\/(\d+),? (\d+):(\d+):(\d+)/.exec(formatted);
4113
+ return [parsed[3], parsed[1], parsed[2], parsed[4], parsed[5], parsed[6]];
4114
+ }
4115
+ var dtfCache = {};
4116
+ function getDateTimeFormat(timeZone) {
4117
+ if (!dtfCache[timeZone]) {
4118
+ var testDateFormatted = new Intl.DateTimeFormat("en-US", {
4119
+ hour12: false,
4120
+ timeZone: "America/New_York",
4121
+ year: "numeric",
4122
+ month: "numeric",
4123
+ day: "2-digit",
4124
+ hour: "2-digit",
4125
+ minute: "2-digit",
4126
+ second: "2-digit"
4127
+ }).format(new Date("2014-06-25T04:00:00.123Z"));
4128
+ var hourCycleSupported = testDateFormatted === "06/25/2014, 00:00:00" || testDateFormatted === "‎06‎/‎25‎/‎2014‎ ‎00‎:‎00‎:‎00";
4129
+ dtfCache[timeZone] = hourCycleSupported ? new Intl.DateTimeFormat("en-US", {
4130
+ hour12: false,
4131
+ timeZone,
4132
+ year: "numeric",
4133
+ month: "numeric",
4134
+ day: "2-digit",
4135
+ hour: "2-digit",
4136
+ minute: "2-digit",
4137
+ second: "2-digit"
4138
+ }) : new Intl.DateTimeFormat("en-US", {
4139
+ hourCycle: "h23",
4140
+ timeZone,
4141
+ year: "numeric",
4142
+ month: "numeric",
4143
+ day: "2-digit",
4144
+ hour: "2-digit",
4145
+ minute: "2-digit",
4146
+ second: "2-digit"
4147
+ });
4148
+ }
4149
+ return dtfCache[timeZone];
4150
+ }
4151
+ function newDateUTC(fullYear, month, day, hour, minute, second, millisecond) {
4152
+ var utcDate = new Date(0);
4153
+ utcDate.setUTCFullYear(fullYear, month, day);
4154
+ utcDate.setUTCHours(hour, minute, second, millisecond);
4155
+ return utcDate;
4156
+ }
4157
+ var MILLISECONDS_IN_HOUR$1 = 36e5;
4158
+ var MILLISECONDS_IN_MINUTE$1 = 6e4;
4159
+ var patterns$1 = {
4160
+ timezone: /([Z+-].*)$/,
4161
+ timezoneZ: /^(Z)$/,
4162
+ timezoneHH: /^([+-]\d{2})$/,
4163
+ timezoneHHMM: /^([+-]\d{2}):?(\d{2})$/
4164
+ };
4165
+ function tzParseTimezone(timezoneString, date, isUtcDate) {
4166
+ var token;
4167
+ var absoluteOffset;
4168
+ if (!timezoneString) {
4169
+ return 0;
4170
+ }
4171
+ token = patterns$1.timezoneZ.exec(timezoneString);
4172
+ if (token) {
4173
+ return 0;
4174
+ }
4175
+ var hours;
4176
+ token = patterns$1.timezoneHH.exec(timezoneString);
4177
+ if (token) {
4178
+ hours = parseInt(token[1], 10);
4179
+ if (!validateTimezone(hours)) {
4180
+ return NaN;
4181
+ }
4182
+ return -(hours * MILLISECONDS_IN_HOUR$1);
4183
+ }
4184
+ token = patterns$1.timezoneHHMM.exec(timezoneString);
4185
+ if (token) {
4186
+ hours = parseInt(token[1], 10);
4187
+ var minutes = parseInt(token[2], 10);
4188
+ if (!validateTimezone(hours, minutes)) {
4189
+ return NaN;
4190
+ }
4191
+ absoluteOffset = Math.abs(hours) * MILLISECONDS_IN_HOUR$1 + minutes * MILLISECONDS_IN_MINUTE$1;
4192
+ return hours > 0 ? -absoluteOffset : absoluteOffset;
4193
+ }
4194
+ if (isValidTimezoneIANAString(timezoneString)) {
4195
+ date = new Date(date || Date.now());
4196
+ var utcDate = isUtcDate ? date : toUtcDate(date);
4197
+ var offset = calcOffset(utcDate, timezoneString);
4198
+ var fixedOffset = isUtcDate ? offset : fixOffset(date, offset, timezoneString);
4199
+ return -fixedOffset;
4200
+ }
4201
+ return NaN;
4202
+ }
4203
+ function toUtcDate(date) {
4204
+ return newDateUTC(
4205
+ date.getFullYear(),
4206
+ date.getMonth(),
4207
+ date.getDate(),
4208
+ date.getHours(),
4209
+ date.getMinutes(),
4210
+ date.getSeconds(),
4211
+ date.getMilliseconds()
4212
+ );
4213
+ }
4214
+ function calcOffset(date, timezoneString) {
4215
+ var tokens = tzTokenizeDate(date, timezoneString);
4216
+ var asUTC = newDateUTC(
4217
+ tokens[0],
4218
+ tokens[1] - 1,
4219
+ tokens[2],
4220
+ tokens[3] % 24,
4221
+ tokens[4],
4222
+ tokens[5],
4223
+ 0
4224
+ ).getTime();
4225
+ var asTS = date.getTime();
4226
+ var over = asTS % 1e3;
4227
+ asTS -= over >= 0 ? over : 1e3 + over;
4228
+ return asUTC - asTS;
4229
+ }
4230
+ function fixOffset(date, offset, timezoneString) {
4231
+ var localTS = date.getTime();
4232
+ var utcGuess = localTS - offset;
4233
+ var o2 = calcOffset(new Date(utcGuess), timezoneString);
4234
+ if (offset === o2) {
4235
+ return offset;
4236
+ }
4237
+ utcGuess -= o2 - offset;
4238
+ var o3 = calcOffset(new Date(utcGuess), timezoneString);
4239
+ if (o2 === o3) {
4240
+ return o2;
4241
+ }
4242
+ return Math.max(o2, o3);
4243
+ }
4244
+ function validateTimezone(hours, minutes) {
4245
+ return -23 <= hours && hours <= 23 && (minutes == null || 0 <= minutes && minutes <= 59);
4246
+ }
4247
+ var validIANATimezoneCache = {};
4248
+ function isValidTimezoneIANAString(timeZoneString) {
4249
+ if (validIANATimezoneCache[timeZoneString])
4250
+ return true;
4251
+ try {
4252
+ new Intl.DateTimeFormat(void 0, { timeZone: timeZoneString });
4253
+ validIANATimezoneCache[timeZoneString] = true;
4254
+ return true;
4255
+ } catch (error) {
4256
+ return false;
4257
+ }
4258
+ }
4259
+ var tzPattern = /(Z|[+-]\d{2}(?::?\d{2})?| UTC| [a-zA-Z]+\/[a-zA-Z_]+(?:\/[a-zA-Z_]+)?)$/;
4260
+ const tzPattern$1 = tzPattern;
4261
+ var MILLISECONDS_IN_HOUR = 36e5;
4262
+ var MILLISECONDS_IN_MINUTE = 6e4;
4263
+ var DEFAULT_ADDITIONAL_DIGITS = 2;
4264
+ var patterns = {
4265
+ dateTimePattern: /^([0-9W+-]+)(T| )(.*)/,
4266
+ datePattern: /^([0-9W+-]+)(.*)/,
4267
+ plainTime: /:/,
4268
+ // year tokens
4269
+ YY: /^(\d{2})$/,
4270
+ YYY: [
4271
+ /^([+-]\d{2})$/,
4272
+ // 0 additional digits
4273
+ /^([+-]\d{3})$/,
4274
+ // 1 additional digit
4275
+ /^([+-]\d{4})$/
4276
+ // 2 additional digits
4277
+ ],
4278
+ YYYY: /^(\d{4})/,
4279
+ YYYYY: [
4280
+ /^([+-]\d{4})/,
4281
+ // 0 additional digits
4282
+ /^([+-]\d{5})/,
4283
+ // 1 additional digit
4284
+ /^([+-]\d{6})/
4285
+ // 2 additional digits
4286
+ ],
4287
+ // date tokens
4288
+ MM: /^-(\d{2})$/,
4289
+ DDD: /^-?(\d{3})$/,
4290
+ MMDD: /^-?(\d{2})-?(\d{2})$/,
4291
+ Www: /^-?W(\d{2})$/,
4292
+ WwwD: /^-?W(\d{2})-?(\d{1})$/,
4293
+ HH: /^(\d{2}([.,]\d*)?)$/,
4294
+ HHMM: /^(\d{2}):?(\d{2}([.,]\d*)?)$/,
4295
+ HHMMSS: /^(\d{2}):?(\d{2}):?(\d{2}([.,]\d*)?)$/,
4296
+ // time zone tokens (to identify the presence of a tz)
4297
+ timeZone: tzPattern$1
4298
+ };
4299
+ function toDate(argument, dirtyOptions) {
4300
+ if (arguments.length < 1) {
4301
+ throw new TypeError("1 argument required, but only " + arguments.length + " present");
4302
+ }
4303
+ if (argument === null) {
4304
+ return new Date(NaN);
4305
+ }
4306
+ var options = dirtyOptions || {};
4307
+ var additionalDigits = options.additionalDigits == null ? DEFAULT_ADDITIONAL_DIGITS : toInteger(options.additionalDigits);
4308
+ if (additionalDigits !== 2 && additionalDigits !== 1 && additionalDigits !== 0) {
4309
+ throw new RangeError("additionalDigits must be 0, 1 or 2");
4310
+ }
4311
+ if (argument instanceof Date || typeof argument === "object" && Object.prototype.toString.call(argument) === "[object Date]") {
4312
+ return new Date(argument.getTime());
4313
+ } else if (typeof argument === "number" || Object.prototype.toString.call(argument) === "[object Number]") {
4314
+ return new Date(argument);
4315
+ } else if (!(typeof argument === "string" || Object.prototype.toString.call(argument) === "[object String]")) {
4316
+ return new Date(NaN);
4317
+ }
4318
+ var dateStrings = splitDateString(argument);
4319
+ var parseYearResult = parseYear(dateStrings.date, additionalDigits);
4320
+ var year = parseYearResult.year;
4321
+ var restDateString = parseYearResult.restDateString;
4322
+ var date = parseDate(restDateString, year);
4323
+ if (isNaN(date)) {
4324
+ return new Date(NaN);
4325
+ }
4326
+ if (date) {
4327
+ var timestamp = date.getTime();
4328
+ var time = 0;
4329
+ var offset;
4330
+ if (dateStrings.time) {
4331
+ time = parseTime(dateStrings.time);
4332
+ if (isNaN(time)) {
4333
+ return new Date(NaN);
4334
+ }
4335
+ }
4336
+ if (dateStrings.timeZone || options.timeZone) {
4337
+ offset = tzParseTimezone(dateStrings.timeZone || options.timeZone, new Date(timestamp + time));
4338
+ if (isNaN(offset)) {
4339
+ return new Date(NaN);
4340
+ }
4341
+ } else {
4342
+ offset = getTimezoneOffsetInMilliseconds(new Date(timestamp + time));
4343
+ offset = getTimezoneOffsetInMilliseconds(new Date(timestamp + time + offset));
4344
+ }
4345
+ return new Date(timestamp + time + offset);
4346
+ } else {
4347
+ return new Date(NaN);
4348
+ }
4349
+ }
4350
+ function splitDateString(dateString) {
4351
+ var dateStrings = {};
4352
+ var parts = patterns.dateTimePattern.exec(dateString);
4353
+ var timeString;
4354
+ if (!parts) {
4355
+ parts = patterns.datePattern.exec(dateString);
4356
+ if (parts) {
4357
+ dateStrings.date = parts[1];
4358
+ timeString = parts[2];
4359
+ } else {
4360
+ dateStrings.date = null;
4361
+ timeString = dateString;
4362
+ }
4363
+ } else {
4364
+ dateStrings.date = parts[1];
4365
+ timeString = parts[3];
4366
+ }
4367
+ if (timeString) {
4368
+ var token = patterns.timeZone.exec(timeString);
4369
+ if (token) {
4370
+ dateStrings.time = timeString.replace(token[1], "");
4371
+ dateStrings.timeZone = token[1].trim();
4372
+ } else {
4373
+ dateStrings.time = timeString;
4374
+ }
4375
+ }
4376
+ return dateStrings;
4377
+ }
4378
+ function parseYear(dateString, additionalDigits) {
4379
+ var patternYYY = patterns.YYY[additionalDigits];
4380
+ var patternYYYYY = patterns.YYYYY[additionalDigits];
4381
+ var token;
4382
+ token = patterns.YYYY.exec(dateString) || patternYYYYY.exec(dateString);
4383
+ if (token) {
4384
+ var yearString = token[1];
4385
+ return {
4386
+ year: parseInt(yearString, 10),
4387
+ restDateString: dateString.slice(yearString.length)
4388
+ };
4389
+ }
4390
+ token = patterns.YY.exec(dateString) || patternYYY.exec(dateString);
4391
+ if (token) {
4392
+ var centuryString = token[1];
4393
+ return {
4394
+ year: parseInt(centuryString, 10) * 100,
4395
+ restDateString: dateString.slice(centuryString.length)
4396
+ };
4397
+ }
4398
+ return {
4399
+ year: null
4400
+ };
4401
+ }
4402
+ function parseDate(dateString, year) {
4403
+ if (year === null) {
4404
+ return null;
4405
+ }
4406
+ var token;
4407
+ var date;
4408
+ var month;
4409
+ var week;
4410
+ if (dateString.length === 0) {
4411
+ date = new Date(0);
4412
+ date.setUTCFullYear(year);
4413
+ return date;
4414
+ }
4415
+ token = patterns.MM.exec(dateString);
4416
+ if (token) {
4417
+ date = new Date(0);
4418
+ month = parseInt(token[1], 10) - 1;
4419
+ if (!validateDate(year, month)) {
4420
+ return new Date(NaN);
4421
+ }
4422
+ date.setUTCFullYear(year, month);
4423
+ return date;
4424
+ }
4425
+ token = patterns.DDD.exec(dateString);
4426
+ if (token) {
4427
+ date = new Date(0);
4428
+ var dayOfYear = parseInt(token[1], 10);
4429
+ if (!validateDayOfYearDate(year, dayOfYear)) {
4430
+ return new Date(NaN);
4431
+ }
4432
+ date.setUTCFullYear(year, 0, dayOfYear);
4433
+ return date;
4434
+ }
4435
+ token = patterns.MMDD.exec(dateString);
4436
+ if (token) {
4437
+ date = new Date(0);
4438
+ month = parseInt(token[1], 10) - 1;
4439
+ var day = parseInt(token[2], 10);
4440
+ if (!validateDate(year, month, day)) {
4441
+ return new Date(NaN);
4442
+ }
4443
+ date.setUTCFullYear(year, month, day);
4444
+ return date;
4445
+ }
4446
+ token = patterns.Www.exec(dateString);
4447
+ if (token) {
4448
+ week = parseInt(token[1], 10) - 1;
4449
+ if (!validateWeekDate(year, week)) {
4450
+ return new Date(NaN);
4451
+ }
4452
+ return dayOfISOWeekYear(year, week);
4453
+ }
4454
+ token = patterns.WwwD.exec(dateString);
4455
+ if (token) {
4456
+ week = parseInt(token[1], 10) - 1;
4457
+ var dayOfWeek = parseInt(token[2], 10) - 1;
4458
+ if (!validateWeekDate(year, week, dayOfWeek)) {
4459
+ return new Date(NaN);
4460
+ }
4461
+ return dayOfISOWeekYear(year, week, dayOfWeek);
4462
+ }
4463
+ return null;
4464
+ }
4465
+ function parseTime(timeString) {
4466
+ var token;
4467
+ var hours;
4468
+ var minutes;
4469
+ token = patterns.HH.exec(timeString);
4470
+ if (token) {
4471
+ hours = parseFloat(token[1].replace(",", "."));
4472
+ if (!validateTime(hours)) {
4473
+ return NaN;
4474
+ }
4475
+ return hours % 24 * MILLISECONDS_IN_HOUR;
4476
+ }
4477
+ token = patterns.HHMM.exec(timeString);
4478
+ if (token) {
4479
+ hours = parseInt(token[1], 10);
4480
+ minutes = parseFloat(token[2].replace(",", "."));
4481
+ if (!validateTime(hours, minutes)) {
4482
+ return NaN;
4483
+ }
4484
+ return hours % 24 * MILLISECONDS_IN_HOUR + minutes * MILLISECONDS_IN_MINUTE;
4485
+ }
4486
+ token = patterns.HHMMSS.exec(timeString);
4487
+ if (token) {
4488
+ hours = parseInt(token[1], 10);
4489
+ minutes = parseInt(token[2], 10);
4490
+ var seconds = parseFloat(token[3].replace(",", "."));
4491
+ if (!validateTime(hours, minutes, seconds)) {
4492
+ return NaN;
4493
+ }
4494
+ return hours % 24 * MILLISECONDS_IN_HOUR + minutes * MILLISECONDS_IN_MINUTE + seconds * 1e3;
4495
+ }
4496
+ return null;
4497
+ }
4498
+ function dayOfISOWeekYear(isoWeekYear, week, day) {
4499
+ week = week || 0;
4500
+ day = day || 0;
4501
+ var date = new Date(0);
4502
+ date.setUTCFullYear(isoWeekYear, 0, 4);
4503
+ var fourthOfJanuaryDay = date.getUTCDay() || 7;
4504
+ var diff = week * 7 + day + 1 - fourthOfJanuaryDay;
4505
+ date.setUTCDate(date.getUTCDate() + diff);
4506
+ return date;
4507
+ }
4508
+ var DAYS_IN_MONTH = [31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31];
4509
+ var DAYS_IN_MONTH_LEAP_YEAR = [31, 29, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31];
4510
+ function isLeapYearIndex(year) {
4511
+ return year % 400 === 0 || year % 4 === 0 && year % 100 !== 0;
4512
+ }
4513
+ function validateDate(year, month, date) {
4514
+ if (month < 0 || month > 11) {
4515
+ return false;
4516
+ }
4517
+ if (date != null) {
4518
+ if (date < 1) {
4519
+ return false;
4520
+ }
4521
+ var isLeapYear = isLeapYearIndex(year);
4522
+ if (isLeapYear && date > DAYS_IN_MONTH_LEAP_YEAR[month]) {
4523
+ return false;
4524
+ }
4525
+ if (!isLeapYear && date > DAYS_IN_MONTH[month]) {
4526
+ return false;
4527
+ }
4528
+ }
4529
+ return true;
4530
+ }
4531
+ function validateDayOfYearDate(year, dayOfYear) {
4532
+ if (dayOfYear < 1) {
4533
+ return false;
4534
+ }
4535
+ var isLeapYear = isLeapYearIndex(year);
4536
+ if (isLeapYear && dayOfYear > 366) {
4537
+ return false;
4538
+ }
4539
+ if (!isLeapYear && dayOfYear > 365) {
4540
+ return false;
4541
+ }
4542
+ return true;
4543
+ }
4544
+ function validateWeekDate(year, week, day) {
4545
+ if (week < 0 || week > 52) {
4546
+ return false;
4547
+ }
4548
+ if (day != null && (day < 0 || day > 6)) {
4549
+ return false;
4550
+ }
4551
+ return true;
4552
+ }
4553
+ function validateTime(hours, minutes, seconds) {
4554
+ if (hours != null && (hours < 0 || hours >= 25)) {
4555
+ return false;
4556
+ }
4557
+ if (minutes != null && (minutes < 0 || minutes >= 60)) {
4558
+ return false;
4559
+ }
4560
+ if (seconds != null && (seconds < 0 || seconds >= 60)) {
4561
+ return false;
4562
+ }
4563
+ return true;
4564
+ }
4565
+ var cloneObjectExports = {};
4566
+ var cloneObject$1 = {
4567
+ get exports() {
4568
+ return cloneObjectExports;
4569
+ },
4570
+ set exports(v2) {
4571
+ cloneObjectExports = v2;
4572
+ }
4573
+ };
4574
+ var assignExports = {};
4575
+ var assign = {
4576
+ get exports() {
4577
+ return assignExports;
4578
+ },
4579
+ set exports(v2) {
4580
+ assignExports = v2;
4581
+ }
4582
+ };
4583
+ (function(module2, exports2) {
4584
+ Object.defineProperty(exports2, "__esModule", {
4585
+ value: true
4586
+ });
4587
+ exports2.default = assign2;
4588
+ function assign2(target, object) {
4589
+ if (target == null) {
4590
+ throw new TypeError("assign requires that input parameter not be null or undefined");
4591
+ }
4592
+ for (var property in object) {
4593
+ if (Object.prototype.hasOwnProperty.call(object, property)) {
4594
+ target[property] = object[property];
4595
+ }
4596
+ }
4597
+ return target;
4598
+ }
4599
+ module2.exports = exports2.default;
4600
+ })(assign, assignExports);
4601
+ (function(module2, exports2) {
4602
+ Object.defineProperty(exports2, "__esModule", {
4603
+ value: true
4604
+ });
4605
+ exports2.default = cloneObject2;
4606
+ var _index = _interopRequireDefault(assignExports);
4607
+ function _interopRequireDefault(obj) {
4608
+ return obj && obj.__esModule ? obj : { default: obj };
4609
+ }
4610
+ function cloneObject2(object) {
4611
+ return (0, _index.default)({}, object);
4612
+ }
4613
+ module2.exports = exports2.default;
4614
+ })(cloneObject$1, cloneObjectExports);
4615
+ const cloneObject = /* @__PURE__ */ getDefaultExportFromCjs(cloneObjectExports);
4616
+ function utcToZonedTime(dirtyDate, timeZone, options) {
4617
+ var date = toDate(dirtyDate, options);
4618
+ var offsetMilliseconds = tzParseTimezone(timeZone, date, true);
4619
+ var d2 = new Date(date.getTime() - offsetMilliseconds);
4620
+ var resultDate = new Date(0);
4621
+ resultDate.setFullYear(d2.getUTCFullYear(), d2.getUTCMonth(), d2.getUTCDate());
4622
+ resultDate.setHours(d2.getUTCHours(), d2.getUTCMinutes(), d2.getUTCSeconds(), d2.getUTCMilliseconds());
4623
+ return resultDate;
4624
+ }
4625
+ function zonedTimeToUtc(date, timeZone, options) {
4626
+ if (typeof date === "string" && !date.match(tzPattern$1)) {
4627
+ var extendedOptions = cloneObject(options);
4628
+ extendedOptions.timeZone = timeZone;
4629
+ return toDate(date, extendedOptions);
4630
+ }
4631
+ var d2 = toDate(date, options);
4632
+ var utc = newDateUTC(
4633
+ d2.getFullYear(),
4634
+ d2.getMonth(),
4635
+ d2.getDate(),
4636
+ d2.getHours(),
4637
+ d2.getMinutes(),
4638
+ d2.getSeconds(),
4639
+ d2.getMilliseconds()
4640
+ ).getTime();
4641
+ var offsetMilliseconds = tzParseTimezone(timeZone, new Date(utc));
4642
+ return new Date(utc + offsetMilliseconds);
4643
+ }
4644
+ const zone = "Asia/Jakarta";
4645
+ dayjs.locale("id");
4646
+ class PeriodUtil {
4647
+ static getStartOfDay(date) {
4648
+ const _date = parseISO(date);
4649
+ const _dateZoned = utcToZonedTime(_date, zone);
4650
+ const _dateResult = startOfDay(_dateZoned);
4651
+ return zonedTimeToUtc(_dateResult, zone);
4652
+ }
4653
+ static getEndOfDay(date) {
4654
+ const _date = parseISO(date);
4655
+ const _dateZoned = utcToZonedTime(_date, zone);
4656
+ const _dateResult = endOfDay(_dateZoned);
4657
+ return zonedTimeToUtc(_dateResult, zone);
4658
+ }
4659
+ static getPeriodFilter(keyStart, startedAt, keyEnd, endedAt) {
4660
+ const start2 = this.getStartOfDay(startedAt);
4661
+ const end = this.getEndOfDay(endedAt || startedAt);
4662
+ const filter = [
4663
+ { [keyStart]: { $gte: start2 } },
4664
+ { [keyEnd || keyStart]: { $lte: end } }
4665
+ ];
4666
+ return filter;
4667
+ }
4668
+ static getPastPeriodFilter(key, startedAt) {
4669
+ const start2 = this.getStartOfDay(startedAt);
4670
+ const filter = [{ [key]: { $lt: start2 } }];
4671
+ return filter;
4672
+ }
4673
+ }
4674
+ const useOperasionalStore = pinia.defineStore("neu:operasional", () => {
4675
+ const isLoading = vue.ref(false);
4676
+ const staff = vue.ref(null);
4677
+ return {
4678
+ isLoading,
4679
+ staff,
4680
+ setStaff
4681
+ };
4682
+ function setStaff(data) {
4683
+ staff.value = data;
4684
+ }
4685
+ });
4686
+ const useAttendanceStore = pinia.defineStore("neu:personalia:attendance", {
4687
+ state: () => ({
4688
+ isEntering: false,
4689
+ isAsking: false,
4690
+ isScanning: false,
4691
+ isScanError: false,
4692
+ isScanned: false,
4693
+ qrKey: "",
4694
+ type: "in",
4695
+ checkInId: ""
4696
+ }),
4697
+ getters: {},
4698
+ actions: {
4699
+ reset() {
4700
+ this.$patch((state) => {
4701
+ state.isEntering = false;
4702
+ state.isScanning = false;
4703
+ state.isScanError = false;
4704
+ state.isScanned = false;
4705
+ state.qrKey = "";
4706
+ state.type = "in";
4707
+ state.checkInId = "";
4708
+ });
4709
+ },
4710
+ async checkInStaff(qrKey, type, staffId) {
4711
+ const { client: client2 } = useClientHandle();
4712
+ try {
4713
+ this.qrKey = qrKey;
4714
+ this.type = type;
4715
+ const resp = await client2.mutation(context.GraphUtil.executeOne(tempatModels.models.CheckInModel, {}), {
4716
+ action: "presence",
4717
+ input: {
4718
+ staffId,
4719
+ qrKey: this.qrKey || null,
4720
+ type: this.type
4721
+ }
4722
+ }).toPromise();
4723
+ const data = resp.data.executeCheckIn.output;
4724
+ if (data) {
4725
+ this.checkInId = data || "";
4726
+ this.isScanning = false;
4727
+ this.isScanned = true;
4728
+ } else
4729
+ throw new Error("Terjadi kesalahan.");
4730
+ } catch (error) {
4731
+ console.log(error);
4732
+ this.isScanError = true;
4733
+ }
4734
+ }
4735
+ }
4736
+ });
4737
+ const operasional_types = /* @__PURE__ */ Object.freeze(/* @__PURE__ */ Object.defineProperty({
4738
+ __proto__: null
4739
+ }, Symbol.toStringTag, { value: "Module" }));
4740
+ function useOperasional() {
4741
+ const context2 = component.ComponentUtil.injectStrict(
4742
+ "neu:operasional:operasional"
4743
+ );
4744
+ return { ...context2 };
4745
+ }
4746
+ const { StaffModel: StaffModel$1 } = personaliaModels.models;
4747
+ function withOperasional() {
4748
+ const authStore = identitasInterfaces.useAuthStore();
4749
+ const { userId } = pinia.storeToRefs(authStore);
4750
+ const store = useOperasionalStore();
4751
+ const { isLoading, staff } = pinia.storeToRefs(store);
4752
+ const { client: client2 } = useClientHandle();
4753
+ const context$1 = {
4754
+ isLoading,
4755
+ staff,
4756
+ setStaff: store.setStaff,
4757
+ getStaff,
4758
+ init
4759
+ };
4760
+ vue.provide("neu:operasional:operasional", context$1);
4761
+ return context$1;
4762
+ async function init() {
4763
+ await Promise.all([getStaff()]);
4764
+ }
4765
+ async function getStaff() {
4766
+ var _a;
4767
+ const resp = await client2.query(
4768
+ context.GraphUtil.getMany(StaffModel$1, {
4769
+ id: 1,
4770
+ flag: 1,
4771
+ display: 1,
4772
+ nik: 1,
4773
+ name: 1,
4774
+ birthDate: 1,
4775
+ birthPlace: 1,
4776
+ image: 1,
4777
+ branchId: 1,
4778
+ branchIds: 1,
4779
+ branch: { id: 1, name: 1 },
4780
+ branches: { id: 1, name: 1 },
4781
+ note: 1
4782
+ }),
4783
+ {
4784
+ filter: { userId: userId.value },
4785
+ limit: 1,
4786
+ logs: ["error"]
4787
+ },
4788
+ { requestPolicy: "network-only" }
4789
+ ).toPromise();
4790
+ const wrapper = (_a = resp.data) == null ? void 0 : _a[StaffModel$1.plural];
4791
+ const items = (wrapper == null ? void 0 : wrapper.items) || [];
4792
+ store.setStaff(items[0]);
4793
+ }
4794
+ }
4795
+ function mitt(n) {
4796
+ return { all: n = n || /* @__PURE__ */ new Map(), on: function(t2, e2) {
4797
+ var i2 = n.get(t2);
4798
+ i2 ? i2.push(e2) : n.set(t2, [e2]);
4799
+ }, off: function(t2, e2) {
4800
+ var i2 = n.get(t2);
4801
+ i2 && (e2 ? i2.splice(i2.indexOf(e2) >>> 0, 1) : n.set(t2, []));
4802
+ }, emit: function(t2, e2) {
4803
+ var i2 = n.get(t2);
4804
+ i2 && i2.slice().map(function(n2) {
4805
+ n2(e2);
4806
+ }), (i2 = n.get("*")) && i2.slice().map(function(n2) {
4807
+ n2(t2, e2);
4808
+ });
4809
+ } };
4810
+ }
4811
+ const bus = mitt();
4812
+ const _withScopeId$2 = (n) => (vue.pushScopeId("data-v-e0b216d6"), n = n(), vue.popScopeId(), n);
4813
+ const _hoisted_1$7 = { id: "view-checkIns" };
4814
+ const _hoisted_2$4 = { class: "summary" };
4815
+ const _hoisted_3$1 = { class: "wrapper" };
4816
+ const _hoisted_4$1 = { class: "header" };
4817
+ const _hoisted_5 = /* @__PURE__ */ _withScopeId$2(() => /* @__PURE__ */ vue.createElementVNode(
4818
+ "div",
4819
+ { class: "start" },
4820
+ [
4821
+ /* @__PURE__ */ vue.createElementVNode("div", { class: "title" }, "➡️ Presensi"),
4822
+ /* @__PURE__ */ vue.createElementVNode("div", { class: "description" }, "Daftar presensi hari ini.")
4823
+ ],
4824
+ -1
4825
+ /* HOISTED */
4826
+ ));
4827
+ const _hoisted_6 = { class: "end" };
4828
+ const __default__$7 = vue.defineComponent({
4829
+ name: "CheckInCollection"
4830
+ });
4831
+ const _sfc_main$i = /* @__PURE__ */ vue.defineComponent({
4832
+ ...__default__$7,
4833
+ setup(__props) {
4834
+ const { client: client2 } = useClientHandle();
4835
+ identitasInterfaces.useAuthStore();
4836
+ const { staff } = useOperasional();
4837
+ const attendanceStore = useAttendanceStore();
4838
+ const { isAsking, isScanning, isEntering, isScanError, isScanned, type } = pinia.storeToRefs(attendanceStore);
4839
+ const toast = interfaces.useToastStore();
4840
+ const isCheckpoint = vue.ref(false);
4841
+ const query$1 = vue.computed(() => {
4842
+ var _a;
4843
+ return query.Query.define({
4844
+ filter: {
4845
+ handle: "",
4846
+ operator: "mongo",
4847
+ value: {
4848
+ staffId: (_a = staff.value) == null ? void 0 : _a.id,
4849
+ $and: PeriodUtil.getPeriodFilter("checkInAt", new Date().toISOString())
4850
+ }
4851
+ }
4852
+ });
4853
+ });
4854
+ function onPresenceIn(data) {
4855
+ isAsking.value = true;
4856
+ type.value = "in";
4857
+ }
4858
+ function onPresenceOut(data) {
4859
+ isAsking.value = true;
4860
+ type.value = "out";
4861
+ }
4862
+ async function onPresenceHome() {
4863
+ var _a;
4864
+ await checkInStaff(null, "home", (_a = staff.value) == null ? void 0 : _a.id);
4865
+ }
4866
+ async function onScanned(data) {
4867
+ var _a;
4868
+ await checkInStaff(data, type.value, (_a = staff.value) == null ? void 0 : _a.id);
4869
+ }
4870
+ async function checkInStaff(qrKey, type2, staffId) {
4871
+ const toastId = "neu:personalia:staff:checkIn";
4872
+ console.log("bangunan...", qrKey);
4873
+ try {
4874
+ const resp = await client2.mutation(context.GraphUtil.executeOne(tempatModels.models.CheckInModel, {}), {
4875
+ action: "presence",
4876
+ input: {
4877
+ staffId,
4878
+ key: qrKey,
4879
+ type: type2
4880
+ }
4881
+ }).toPromise();
4882
+ const data = resp.data.executeCheckIn.output;
4883
+ if (data) {
4884
+ isScanning.value = false;
4885
+ isScanned.value = true;
4886
+ toast.push({
4887
+ id: toastId,
4888
+ icon: "check",
4889
+ content: "Presensi berhasil.",
4890
+ color: "success"
4891
+ });
4892
+ } else
4893
+ throw new Error("Terjadi kesalahan.");
4894
+ } catch (error) {
4895
+ console.log(error);
4896
+ isScanError.value = true;
4897
+ toast.push({
4898
+ id: toastId,
4899
+ icon: "xmark",
4900
+ content: "Presensi gagal, cek kembali qrcode atau koneksi internet kamu dan coba lagi.",
4901
+ color: "danger"
4902
+ });
4903
+ }
4904
+ }
4905
+ return (_ctx, _cache) => {
4906
+ const _component_CheckInSingleView = vue.resolveComponent("CheckInSingleView");
4907
+ return vue.openBlock(), vue.createElementBlock("div", _hoisted_1$7, [
4908
+ vue.createVNode(vue.unref(office.OfficeContent), {
4909
+ icon: "barcode-read",
4910
+ title: "Presensi",
4911
+ "is-expanded": ""
4912
+ }, {
4913
+ "header-detail": vue.withCtx(() => [
4914
+ vue.createElementVNode("div", _hoisted_2$4, [
4915
+ vue.createVNode(vue.unref(interfaces.NeonSlider), {
4916
+ "per-view": 2,
4917
+ gap: 16,
4918
+ offset: 16,
4919
+ peek: 24,
4920
+ breakpoints: {
4921
+ xl: { perView: 5 },
4922
+ lg: { perView: 4 },
4923
+ md: { perView: 4 },
4924
+ sm: { perView: 3 }
4925
+ }
4926
+ }, {
4927
+ default: vue.withCtx(() => [
4928
+ vue.createVNode(vue.unref(interfaces.NeonSlide), null, {
4929
+ default: vue.withCtx(() => [
4930
+ vue.createVNode(vue.unref(interfaces.NeonStat), {
4931
+ label: "Masuk",
4932
+ icon: "barcode-read",
4933
+ onClick: onPresenceIn
4934
+ }, {
4935
+ default: vue.withCtx(() => [
4936
+ vue.createTextVNode("Masuk")
4937
+ ]),
4938
+ _: 1
4939
+ /* STABLE */
4940
+ })
4941
+ ]),
4942
+ _: 1
4943
+ /* STABLE */
4944
+ }),
4945
+ vue.createVNode(vue.unref(interfaces.NeonSlide), null, {
4946
+ default: vue.withCtx(() => [
4947
+ vue.createVNode(vue.unref(interfaces.NeonStat), {
4948
+ label: "Checkpoint",
4949
+ icon: "barcode-read",
4950
+ onClick: _cache[0] || (_cache[0] = ($event) => isCheckpoint.value = true)
4951
+ }, {
4952
+ default: vue.withCtx(() => [
4953
+ vue.createTextVNode("Checkpoint")
4954
+ ]),
4955
+ _: 1
4956
+ /* STABLE */
4957
+ })
4958
+ ]),
4959
+ _: 1
4960
+ /* STABLE */
4961
+ }),
4962
+ vue.createVNode(vue.unref(interfaces.NeonSlide), null, {
4963
+ default: vue.withCtx(() => [
4964
+ vue.createVNode(vue.unref(interfaces.NeonStat), {
4965
+ label: "Keluar",
4966
+ icon: "barcode-read",
4967
+ onClick: onPresenceOut
4968
+ }, {
4969
+ default: vue.withCtx(() => [
4970
+ vue.createTextVNode("Keluar")
4971
+ ]),
4972
+ _: 1
4973
+ /* STABLE */
4974
+ })
4975
+ ]),
4976
+ _: 1
4977
+ /* STABLE */
4978
+ }),
4979
+ vue.createVNode(vue.unref(interfaces.NeonSlide), null, {
4980
+ default: vue.withCtx(() => [
4981
+ vue.createVNode(vue.unref(interfaces.NeonStat), {
4982
+ label: "Pulang",
4983
+ icon: "barcode-read",
4984
+ onClick: onPresenceHome
4985
+ }, {
4986
+ default: vue.withCtx(() => [
4987
+ vue.createTextVNode("Pulang")
4988
+ ]),
4989
+ _: 1
4990
+ /* STABLE */
4991
+ })
4992
+ ]),
4993
+ _: 1
4994
+ /* STABLE */
4995
+ })
4996
+ ]),
4997
+ _: 1
4998
+ /* STABLE */
4999
+ }),
5000
+ isCheckpoint.value ? (vue.openBlock(), vue.createBlock(vue.unref(interfaces.NeonModal), {
5001
+ key: 0,
5002
+ "is-active": "",
5003
+ size: "md",
5004
+ onClose: _cache[2] || (_cache[2] = ($event) => isCheckpoint.value = false)
5005
+ }, {
5006
+ default: vue.withCtx(() => [
5007
+ vue.createVNode(_component_CheckInSingleView, {
5008
+ id: "new",
5009
+ "is-new": "",
5010
+ "is-main": false,
5011
+ onClose: _cache[1] || (_cache[1] = ($event) => isCheckpoint.value = false)
5012
+ })
5013
+ ]),
5014
+ _: 1
5015
+ /* STABLE */
5016
+ })) : vue.createCommentVNode("v-if", true),
5017
+ vue.createVNode(vue.unref(CheckInAccess), {
5018
+ onClose: _cache[3] || (_cache[3] = ($event) => isAsking.value = false)
5019
+ }),
5020
+ vue.createVNode(vue.unref(CheckInScanner), {
5021
+ onScanned,
5022
+ onClose: _cache[4] || (_cache[4] = ($event) => isScanning.value = false)
5023
+ }),
5024
+ vue.createCommentVNode(' <CheckInScanError @close="isScanError = false" />\n <CheckInScanSuccess @close="isScanned = false" /> ')
5025
+ ])
5026
+ ]),
5027
+ default: vue.withCtx(() => [
5028
+ vue.createElementVNode("div", _hoisted_3$1, [
5029
+ vue.createVNode(vue.unref(context.NeonCollectionContext), {
5030
+ definition: "neu:tempat:checkIn",
5031
+ scope: "_checkIns",
5032
+ sheet: "single-view",
5033
+ query: vue.unref(query$1),
5034
+ peeks: ["modal"],
5035
+ excludes: ["create"],
5036
+ "is-ready": "",
5037
+ "is-main": ""
5038
+ }, {
5039
+ default: vue.withCtx(() => [
5040
+ vue.createElementVNode("div", _hoisted_4$1, [
5041
+ _hoisted_5,
5042
+ vue.createElementVNode("div", _hoisted_6, [
5043
+ vue.createVNode(vue.unref(office.OfficeCollectionQuery), { displays: ["table"] }, {
5044
+ default: vue.withCtx(() => [
5045
+ vue.createVNode(vue.unref(office.OfficeCollectionOperation), { "is-main": "" })
5046
+ ]),
5047
+ _: 1
5048
+ /* STABLE */
5049
+ })
5050
+ ])
5051
+ ]),
5052
+ vue.createVNode(vue.unref(sentralInterfaces.CheckInCollection))
5053
+ ]),
5054
+ _: 1
5055
+ /* STABLE */
5056
+ }, 8, ["query"])
5057
+ ])
5058
+ ]),
5059
+ _: 1
5060
+ /* STABLE */
5061
+ })
5062
+ ]);
5063
+ };
5064
+ }
5065
+ });
5066
+ const CheckInPresenceCollection_vue_vue_type_style_index_0_scoped_e0b216d6_lang = "";
5067
+ const _export_sfc = (sfc, props) => {
5068
+ const target = sfc.__vccOpts || sfc;
5069
+ for (const [key, val] of props) {
5070
+ target[key] = val;
5071
+ }
5072
+ return target;
5073
+ };
5074
+ const CheckInPresenceCollection = /* @__PURE__ */ _export_sfc(_sfc_main$i, [["__scopeId", "data-v-e0b216d6"]]);
5075
+ const _hoisted_1$6 = { class: "grid gap-4 sm:grid-cols-2" };
5076
+ const _sfc_main$h = /* @__PURE__ */ vue.defineComponent({
5077
+ __name: "CheckInSingle",
5078
+ setup(__props) {
5079
+ const {
5080
+ fields,
5081
+ id: id2,
5082
+ initialValues,
5083
+ values,
5084
+ isLoading,
5085
+ isChanged,
5086
+ isReady,
5087
+ isMain,
5088
+ isNew,
5089
+ saveOne,
5090
+ discardChanges
5091
+ } = context.useSingle();
5092
+ useOperasional();
5093
+ return (_ctx, _cache) => {
5094
+ return vue.openBlock(), vue.createBlock(vue.unref(context.NeonSingle), { class: "neu-checkIn-single" }, {
5095
+ default: vue.withCtx(() => [
5096
+ vue.createVNode(vue.unref(office.OfficeTabs), { "use-url": vue.unref(isMain) }, {
5097
+ default: vue.withCtx(() => [
5098
+ vue.createVNode(vue.unref(office.OfficeTab), {
5099
+ handle: "info",
5100
+ icon: "circle-info",
5101
+ title: "Info"
5102
+ }, {
5103
+ default: vue.withCtx(() => [
5104
+ vue.createVNode(vue.unref(form.NeonForm), {
5105
+ handle: "info",
5106
+ "initial-values": vue.unref(initialValues),
5107
+ "is-loading": vue.unref(isLoading),
5108
+ "is-changed": vue.unref(isChanged),
5109
+ "use-unsaved": "",
5110
+ onCancel: vue.unref(discardChanges),
5111
+ onSubmit: vue.unref(saveOne)
5112
+ }, {
5113
+ default: vue.withCtx(() => [
5114
+ vue.createVNode(vue.unref(office.OfficeRelation), {
5115
+ modelValue: vue.unref(values),
5116
+ "onUpdate:modelValue": _cache[0] || (_cache[0] = ($event) => vue.isRef(values) ? values.value = $event : null),
5117
+ field: vue.unref(fields).building,
5118
+ "is-disabled": ""
5119
+ }, null, 8, ["modelValue", "field"]),
5120
+ vue.createElementVNode("div", _hoisted_1$6, [
5121
+ vue.createVNode(vue.unref(form.NeonField), vue.mergeProps({
5122
+ modelValue: vue.unref(values).type,
5123
+ "onUpdate:modelValue": _cache[1] || (_cache[1] = ($event) => vue.unref(values).type = $event)
5124
+ }, vue.unref(fields).type, { "is-disabled": true }), null, 16, ["modelValue"]),
5125
+ vue.createVNode(vue.unref(form.NeonField), vue.mergeProps({
5126
+ modelValue: vue.unref(values).checkInAt,
5127
+ "onUpdate:modelValue": _cache[2] || (_cache[2] = ($event) => vue.unref(values).checkInAt = $event)
5128
+ }, vue.unref(fields).checkInAt, { "is-disabled": "" }), null, 16, ["modelValue"])
5129
+ ]),
5130
+ vue.createVNode(vue.unref(office.OfficeRelation), {
5131
+ modelValue: vue.unref(values),
5132
+ "onUpdate:modelValue": _cache[3] || (_cache[3] = ($event) => vue.isRef(values) ? values.value = $event : null),
5133
+ field: vue.unref(fields).staff,
5134
+ "is-disabled": ""
5135
+ }, null, 8, ["modelValue", "field"]),
5136
+ vue.createVNode(vue.unref(form.NeonField), vue.mergeProps({
5137
+ modelValue: vue.unref(values).note,
5138
+ "onUpdate:modelValue": _cache[4] || (_cache[4] = ($event) => vue.unref(values).note = $event)
5139
+ }, vue.unref(fields).note), null, 16, ["modelValue"])
5140
+ ]),
5141
+ _: 1
5142
+ /* STABLE */
5143
+ }, 8, ["initial-values", "is-loading", "is-changed", "onCancel", "onSubmit"])
5144
+ ]),
5145
+ _: 1
5146
+ /* STABLE */
5147
+ })
5148
+ ]),
5149
+ _: 1
5150
+ /* STABLE */
5151
+ }, 8, ["use-url"])
5152
+ ]),
5153
+ _: 1
5154
+ /* STABLE */
5155
+ });
5156
+ };
5157
+ }
5158
+ });
5159
+ const CheckInSingle_vue_vue_type_style_index_0_scoped_bc128a25_lang = "";
5160
+ const CheckInSingle = /* @__PURE__ */ _export_sfc(_sfc_main$h, [["__scopeId", "data-v-bc128a25"]]);
5161
+ const _withScopeId$1 = (n) => (vue.pushScopeId("data-v-d23b6de5"), n = n(), vue.popScopeId(), n);
5162
+ const _hoisted_1$5 = /* @__PURE__ */ _withScopeId$1(() => /* @__PURE__ */ vue.createElementVNode(
5163
+ "h4",
5164
+ { align: "center" },
5165
+ "Aktifkan kamera untuk scan QR Code",
5166
+ -1
5167
+ /* HOISTED */
5168
+ ));
5169
+ const _hoisted_2$3 = /* @__PURE__ */ _withScopeId$1(() => /* @__PURE__ */ vue.createElementVNode(
5170
+ "p",
5171
+ { align: "center" },
5172
+ [
5173
+ /* @__PURE__ */ vue.createTextVNode(' Neutron Kantor membutuhkan akses ke kamera. Dengan klik "'),
5174
+ /* @__PURE__ */ vue.createElementVNode("b", null, "Saya Setuju"),
5175
+ /* @__PURE__ */ vue.createTextVNode('", kamu telah menyetujui syarat dan ketentuan yang berlaku. ')
5176
+ ],
5177
+ -1
5178
+ /* HOISTED */
5179
+ ));
5180
+ const _sfc_main$g = /* @__PURE__ */ vue.defineComponent({
5181
+ __name: "CheckInAccess",
5182
+ emits: ["close"],
5183
+ setup(__props) {
5184
+ const attendanceStore = useAttendanceStore();
5185
+ const { isAsking, isScanError, isScanning } = pinia.storeToRefs(attendanceStore);
5186
+ function ok() {
5187
+ isAsking.value = false;
5188
+ isScanError.value = false;
5189
+ isScanning.value = true;
5190
+ }
5191
+ return (_ctx, _cache) => {
5192
+ return vue.openBlock(), vue.createBlock(vue.unref(interfaces.NeonModal), {
5193
+ "is-active": vue.unref(isAsking),
5194
+ "onUpdate:isActive": _cache[1] || (_cache[1] = ($event) => vue.isRef(isAsking) ? isAsking.value = $event : null),
5195
+ size: "lg",
5196
+ onClose: _cache[2] || (_cache[2] = ($event) => _ctx.$emit("close"))
5197
+ }, {
5198
+ default: vue.withCtx(() => [
5199
+ vue.createVNode(vue.unref(interfaces.NeonSheet), {
5200
+ title: "Aktifkan Kamera",
5201
+ icon: "camera",
5202
+ onClose: _cache[0] || (_cache[0] = ($event) => _ctx.$emit("close"))
5203
+ }, {
5204
+ default: vue.withCtx(() => [
5205
+ _hoisted_1$5,
5206
+ _hoisted_2$3,
5207
+ vue.createVNode(vue.unref(interfaces.NeonButton), {
5208
+ "is-full": "",
5209
+ size: "md",
5210
+ color: "success",
5211
+ "icon-left": "check",
5212
+ class: "buttons",
5213
+ onClick: ok
5214
+ }, {
5215
+ default: vue.withCtx(() => [
5216
+ vue.createTextVNode("Saya Setuju")
5217
+ ]),
5218
+ _: 1
5219
+ /* STABLE */
5220
+ })
5221
+ ]),
5222
+ _: 1
5223
+ /* STABLE */
5224
+ })
5225
+ ]),
5226
+ _: 1
5227
+ /* STABLE */
5228
+ }, 8, ["is-active"]);
5229
+ };
5230
+ }
5231
+ });
5232
+ const CheckInAccess_vue_vue_type_style_index_0_scoped_d23b6de5_lang = "";
5233
+ const CheckInAccess = /* @__PURE__ */ _export_sfc(_sfc_main$g, [["__scopeId", "data-v-d23b6de5"]]);
5234
+ const _hoisted_1$4 = { class: "buttons" };
5235
+ const _sfc_main$f = /* @__PURE__ */ vue.defineComponent({
5236
+ __name: "CheckInScanError",
5237
+ setup(__props) {
5238
+ const attendanceStore = useAttendanceStore();
5239
+ const { isScanError } = pinia.storeToRefs(attendanceStore);
5240
+ function ok() {
5241
+ isScanError.value = false;
5242
+ }
5243
+ return (_ctx, _cache) => {
5244
+ return vue.openBlock(), vue.createBlock(vue.unref(interfaces.NeonModal), null, {
5245
+ default: vue.withCtx(() => [
5246
+ vue.createVNode(vue.unref(interfaces.NeonSheet), null, {
5247
+ footer: vue.withCtx(() => [
5248
+ vue.createElementVNode("div", _hoisted_1$4, [
5249
+ vue.createVNode(vue.unref(interfaces.NeonButton), {
5250
+ "is-full": "",
5251
+ "is-rounded": "",
5252
+ "icon-left": "arrows-rotate",
5253
+ color: "success",
5254
+ onClick: ok
5255
+ }, {
5256
+ default: vue.withCtx(() => [
5257
+ vue.createTextVNode(" Coba Scan Lagi ")
5258
+ ]),
5259
+ _: 1
5260
+ /* STABLE */
5261
+ })
5262
+ ])
5263
+ ]),
5264
+ default: vue.withCtx(() => [
5265
+ vue.createVNode(vue.unref(interfaces.NeonInfo), {
5266
+ title: "Scan kode QR belum berhasil",
5267
+ description: "Pastikan koneksi internetmu stabil dan kameramu dalam kondisi baik. Coba lagi yuk!",
5268
+ "is-full": "",
5269
+ class: "mt-4"
5270
+ })
5271
+ ]),
5272
+ _: 1
5273
+ /* STABLE */
5274
+ })
5275
+ ]),
5276
+ _: 1
5277
+ /* STABLE */
5278
+ });
5279
+ };
5280
+ }
5281
+ });
5282
+ class e {
5283
+ constructor(a, b2, c, d2, f2) {
5284
+ this._legacyCanvasSize = e.DEFAULT_CANVAS_SIZE;
5285
+ this._preferredCamera = "environment";
5286
+ this._maxScansPerSecond = 25;
5287
+ this._lastScanTimestamp = -1;
5288
+ this._destroyed = this._flashOn = this._paused = this._active = false;
5289
+ this.$video = a;
5290
+ this.$canvas = document.createElement("canvas");
5291
+ c && "object" === typeof c ? this._onDecode = b2 : (c || d2 || f2 ? console.warn("You're using a deprecated version of the QrScanner constructor which will be removed in the future") : console.warn("Note that the type of the scan result passed to onDecode will change in the future. To already switch to the new api today, you can pass returnDetailedScanResult: true."), this._legacyOnDecode = b2);
5292
+ b2 = "object" === typeof c ? c : {};
5293
+ this._onDecodeError = b2.onDecodeError || ("function" === typeof c ? c : this._onDecodeError);
5294
+ this._calculateScanRegion = b2.calculateScanRegion || ("function" === typeof d2 ? d2 : this._calculateScanRegion);
5295
+ this._preferredCamera = b2.preferredCamera || f2 || this._preferredCamera;
5296
+ this._legacyCanvasSize = "number" === typeof c ? c : "number" === typeof d2 ? d2 : this._legacyCanvasSize;
5297
+ this._maxScansPerSecond = b2.maxScansPerSecond || this._maxScansPerSecond;
5298
+ this._onPlay = this._onPlay.bind(this);
5299
+ this._onLoadedMetaData = this._onLoadedMetaData.bind(this);
5300
+ this._onVisibilityChange = this._onVisibilityChange.bind(this);
5301
+ this._updateOverlay = this._updateOverlay.bind(this);
5302
+ a.disablePictureInPicture = true;
5303
+ a.playsInline = true;
5304
+ a.muted = true;
5305
+ let h = false;
5306
+ a.hidden && (a.hidden = false, h = true);
5307
+ document.body.contains(a) || (document.body.appendChild(a), h = true);
5308
+ c = a.parentElement;
5309
+ if (b2.highlightScanRegion || b2.highlightCodeOutline) {
5310
+ d2 = !!b2.overlay;
5311
+ this.$overlay = b2.overlay || document.createElement("div");
5312
+ f2 = this.$overlay.style;
5313
+ f2.position = "absolute";
5314
+ f2.display = "none";
5315
+ f2.pointerEvents = "none";
5316
+ this.$overlay.classList.add("scan-region-highlight");
5317
+ if (!d2 && b2.highlightScanRegion) {
5318
+ this.$overlay.innerHTML = '<svg class="scan-region-highlight-svg" viewBox="0 0 238 238" preserveAspectRatio="none" style="position:absolute;width:100%;height:100%;left:0;top:0;fill:none;stroke:#e9b213;stroke-width:4;stroke-linecap:round;stroke-linejoin:round"><path d="M31 2H10a8 8 0 0 0-8 8v21M207 2h21a8 8 0 0 1 8 8v21m0 176v21a8 8 0 0 1-8 8h-21m-176 0H10a8 8 0 0 1-8-8v-21"/></svg>';
5319
+ try {
5320
+ this.$overlay.firstElementChild.animate({ transform: [
5321
+ "scale(.98)",
5322
+ "scale(1.01)"
5323
+ ] }, { duration: 400, iterations: Infinity, direction: "alternate", easing: "ease-in-out" });
5324
+ } catch (m) {
5325
+ }
5326
+ c.insertBefore(this.$overlay, this.$video.nextSibling);
5327
+ }
5328
+ b2.highlightCodeOutline && (this.$overlay.insertAdjacentHTML("beforeend", '<svg class="code-outline-highlight" preserveAspectRatio="none" style="display:none;width:100%;height:100%;fill:none;stroke:#e9b213;stroke-width:5;stroke-dasharray:25;stroke-linecap:round;stroke-linejoin:round"><polygon/></svg>'), this.$codeOutlineHighlight = this.$overlay.lastElementChild);
5329
+ }
5330
+ this._scanRegion = this._calculateScanRegion(a);
5331
+ requestAnimationFrame(() => {
5332
+ let m = window.getComputedStyle(a);
5333
+ "none" === m.display && (a.style.setProperty("display", "block", "important"), h = true);
5334
+ "visible" !== m.visibility && (a.style.setProperty("visibility", "visible", "important"), h = true);
5335
+ h && (console.warn("QrScanner has overwritten the video hiding style to avoid Safari stopping the playback."), a.style.opacity = "0", a.style.width = "0", a.style.height = "0", this.$overlay && this.$overlay.parentElement && this.$overlay.parentElement.removeChild(this.$overlay), delete this.$overlay, delete this.$codeOutlineHighlight);
5336
+ this.$overlay && this._updateOverlay();
5337
+ });
5338
+ a.addEventListener("play", this._onPlay);
5339
+ a.addEventListener("loadedmetadata", this._onLoadedMetaData);
5340
+ document.addEventListener("visibilitychange", this._onVisibilityChange);
5341
+ window.addEventListener("resize", this._updateOverlay);
5342
+ this._qrEnginePromise = e.createQrEngine();
5343
+ }
5344
+ static set WORKER_PATH(a) {
5345
+ console.warn("Setting QrScanner.WORKER_PATH is not required and not supported anymore. Have a look at the README for new setup instructions.");
5346
+ }
5347
+ static async hasCamera() {
5348
+ try {
5349
+ return !!(await e.listCameras(false)).length;
5350
+ } catch (a) {
5351
+ return false;
5352
+ }
5353
+ }
5354
+ static async listCameras(a = false) {
5355
+ if (!navigator.mediaDevices)
5356
+ return [];
5357
+ let b2 = async () => (await navigator.mediaDevices.enumerateDevices()).filter((d2) => "videoinput" === d2.kind), c;
5358
+ try {
5359
+ a && (await b2()).every((d2) => !d2.label) && (c = await navigator.mediaDevices.getUserMedia({ audio: false, video: true }));
5360
+ } catch (d2) {
5361
+ }
5362
+ try {
5363
+ return (await b2()).map((d2, f2) => ({ id: d2.deviceId, label: d2.label || (0 === f2 ? "Default Camera" : `Camera ${f2 + 1}`) }));
5364
+ } finally {
5365
+ c && (console.warn("Call listCameras after successfully starting a QR scanner to avoid creating a temporary video stream"), e._stopVideoStream(c));
5366
+ }
5367
+ }
5368
+ async hasFlash() {
5369
+ let a;
5370
+ try {
5371
+ if (this.$video.srcObject) {
5372
+ if (!(this.$video.srcObject instanceof MediaStream))
5373
+ return false;
5374
+ a = this.$video.srcObject;
5375
+ } else
5376
+ a = (await this._getCameraStream()).stream;
5377
+ return "torch" in a.getVideoTracks()[0].getSettings();
5378
+ } catch (b2) {
5379
+ return false;
5380
+ } finally {
5381
+ a && a !== this.$video.srcObject && (console.warn("Call hasFlash after successfully starting the scanner to avoid creating a temporary video stream"), e._stopVideoStream(a));
5382
+ }
5383
+ }
5384
+ isFlashOn() {
5385
+ return this._flashOn;
5386
+ }
5387
+ async toggleFlash() {
5388
+ this._flashOn ? await this.turnFlashOff() : await this.turnFlashOn();
5389
+ }
5390
+ async turnFlashOn() {
5391
+ if (!this._flashOn && !this._destroyed && (this._flashOn = true, this._active && !this._paused))
5392
+ try {
5393
+ if (!await this.hasFlash())
5394
+ throw "No flash available";
5395
+ await this.$video.srcObject.getVideoTracks()[0].applyConstraints({ advanced: [{ torch: true }] });
5396
+ } catch (a) {
5397
+ throw this._flashOn = false, a;
5398
+ }
5399
+ }
5400
+ async turnFlashOff() {
5401
+ this._flashOn && (this._flashOn = false, await this._restartVideoStream());
5402
+ }
5403
+ destroy() {
5404
+ this.$video.removeEventListener("loadedmetadata", this._onLoadedMetaData);
5405
+ this.$video.removeEventListener("play", this._onPlay);
5406
+ document.removeEventListener(
5407
+ "visibilitychange",
5408
+ this._onVisibilityChange
5409
+ );
5410
+ window.removeEventListener("resize", this._updateOverlay);
5411
+ this._destroyed = true;
5412
+ this._flashOn = false;
5413
+ this.stop();
5414
+ e._postWorkerMessage(this._qrEnginePromise, "close");
5415
+ }
5416
+ async start() {
5417
+ if (this._destroyed)
5418
+ throw Error("The QR scanner can not be started as it had been destroyed.");
5419
+ if (!this._active || this._paused) {
5420
+ if ("https:" !== window.location.protocol && console.warn("The camera stream is only accessible if the page is transferred via https."), this._active = true, !document.hidden)
5421
+ if (this._paused = false, this.$video.srcObject)
5422
+ await this.$video.play();
5423
+ else
5424
+ try {
5425
+ let { stream: a, facingMode: b2 } = await this._getCameraStream();
5426
+ !this._active || this._paused ? e._stopVideoStream(a) : (this._setVideoMirror(b2), this.$video.srcObject = a, await this.$video.play(), this._flashOn && (this._flashOn = false, this.turnFlashOn().catch(() => {
5427
+ })));
5428
+ } catch (a) {
5429
+ if (!this._paused)
5430
+ throw this._active = false, a;
5431
+ }
5432
+ }
5433
+ }
5434
+ stop() {
5435
+ this.pause();
5436
+ this._active = false;
5437
+ }
5438
+ async pause(a = false) {
5439
+ this._paused = true;
5440
+ if (!this._active)
5441
+ return true;
5442
+ this.$video.pause();
5443
+ this.$overlay && (this.$overlay.style.display = "none");
5444
+ let b2 = () => {
5445
+ this.$video.srcObject instanceof MediaStream && (e._stopVideoStream(this.$video.srcObject), this.$video.srcObject = null);
5446
+ };
5447
+ if (a)
5448
+ return b2(), true;
5449
+ await new Promise((c) => setTimeout(c, 300));
5450
+ if (!this._paused)
5451
+ return false;
5452
+ b2();
5453
+ return true;
5454
+ }
5455
+ async setCamera(a) {
5456
+ a !== this._preferredCamera && (this._preferredCamera = a, await this._restartVideoStream());
5457
+ }
5458
+ static async scanImage(a, b2, c, d2, f2 = false, h = false) {
5459
+ let m, n = false;
5460
+ b2 && ("scanRegion" in b2 || "qrEngine" in b2 || "canvas" in b2 || "disallowCanvasResizing" in b2 || "alsoTryWithoutScanRegion" in b2 || "returnDetailedScanResult" in b2) ? (m = b2.scanRegion, c = b2.qrEngine, d2 = b2.canvas, f2 = b2.disallowCanvasResizing || false, h = b2.alsoTryWithoutScanRegion || false, n = true) : b2 || c || d2 || f2 || h ? console.warn("You're using a deprecated api for scanImage which will be removed in the future.") : console.warn("Note that the return type of scanImage will change in the future. To already switch to the new api today, you can pass returnDetailedScanResult: true.");
5461
+ b2 = !!c;
5462
+ try {
5463
+ let p, k;
5464
+ [c, p] = await Promise.all([c || e.createQrEngine(), e._loadImage(a)]);
5465
+ [d2, k] = e._drawToCanvas(p, m, d2, f2);
5466
+ let q;
5467
+ if (c instanceof Worker) {
5468
+ let g = c;
5469
+ b2 || e._postWorkerMessageSync(g, "inversionMode", "both");
5470
+ q = await new Promise((l2, v2) => {
5471
+ let w, u, r2, y = -1;
5472
+ u = (t2) => {
5473
+ t2.data.id === y && (g.removeEventListener("message", u), g.removeEventListener("error", r2), clearTimeout(w), null !== t2.data.data ? l2({ data: t2.data.data, cornerPoints: e._convertPoints(t2.data.cornerPoints, m) }) : v2(e.NO_QR_CODE_FOUND));
5474
+ };
5475
+ r2 = (t2) => {
5476
+ g.removeEventListener("message", u);
5477
+ g.removeEventListener("error", r2);
5478
+ clearTimeout(w);
5479
+ v2("Scanner error: " + (t2 ? t2.message || t2 : "Unknown Error"));
5480
+ };
5481
+ g.addEventListener("message", u);
5482
+ g.addEventListener("error", r2);
5483
+ w = setTimeout(() => r2("timeout"), 1e4);
5484
+ let x = k.getImageData(0, 0, d2.width, d2.height);
5485
+ y = e._postWorkerMessageSync(g, "decode", x, [x.data.buffer]);
5486
+ });
5487
+ } else
5488
+ q = await Promise.race([new Promise((g, l2) => window.setTimeout(() => l2("Scanner error: timeout"), 1e4)), (async () => {
5489
+ try {
5490
+ var [g] = await c.detect(d2);
5491
+ if (!g)
5492
+ throw e.NO_QR_CODE_FOUND;
5493
+ return { data: g.rawValue, cornerPoints: e._convertPoints(g.cornerPoints, m) };
5494
+ } catch (l2) {
5495
+ g = l2.message || l2;
5496
+ if (/not implemented|service unavailable/.test(g))
5497
+ return e._disableBarcodeDetector = true, e.scanImage(a, { scanRegion: m, canvas: d2, disallowCanvasResizing: f2, alsoTryWithoutScanRegion: h });
5498
+ throw `Scanner error: ${g}`;
5499
+ }
5500
+ })()]);
5501
+ return n ? q : q.data;
5502
+ } catch (p) {
5503
+ if (!m || !h)
5504
+ throw p;
5505
+ let k = await e.scanImage(a, { qrEngine: c, canvas: d2, disallowCanvasResizing: f2 });
5506
+ return n ? k : k.data;
5507
+ } finally {
5508
+ b2 || e._postWorkerMessage(c, "close");
5509
+ }
5510
+ }
5511
+ setGrayscaleWeights(a, b2, c, d2 = true) {
5512
+ e._postWorkerMessage(this._qrEnginePromise, "grayscaleWeights", {
5513
+ red: a,
5514
+ green: b2,
5515
+ blue: c,
5516
+ useIntegerApproximation: d2
5517
+ });
5518
+ }
5519
+ setInversionMode(a) {
5520
+ e._postWorkerMessage(this._qrEnginePromise, "inversionMode", a);
5521
+ }
5522
+ static async createQrEngine(a) {
5523
+ a && console.warn("Specifying a worker path is not required and not supported anymore.");
5524
+ return !e._disableBarcodeDetector && "BarcodeDetector" in window && BarcodeDetector.getSupportedFormats && (await BarcodeDetector.getSupportedFormats()).includes("qr_code") ? new BarcodeDetector({ formats: ["qr_code"] }) : Promise.resolve().then(() => qrScannerWorker_min).then((b2) => b2.createWorker());
5525
+ }
5526
+ _onPlay() {
5527
+ this._scanRegion = this._calculateScanRegion(this.$video);
5528
+ this._updateOverlay();
5529
+ this.$overlay && (this.$overlay.style.display = "");
5530
+ this._scanFrame();
5531
+ }
5532
+ _onLoadedMetaData() {
5533
+ this._scanRegion = this._calculateScanRegion(this.$video);
5534
+ this._updateOverlay();
5535
+ }
5536
+ _onVisibilityChange() {
5537
+ document.hidden ? this.pause() : this._active && this.start();
5538
+ }
5539
+ _calculateScanRegion(a) {
5540
+ let b2 = Math.round(2 / 3 * Math.min(a.videoWidth, a.videoHeight));
5541
+ return {
5542
+ x: Math.round((a.videoWidth - b2) / 2),
5543
+ y: Math.round((a.videoHeight - b2) / 2),
5544
+ width: b2,
5545
+ height: b2,
5546
+ downScaledWidth: this._legacyCanvasSize,
5547
+ downScaledHeight: this._legacyCanvasSize
5548
+ };
5549
+ }
5550
+ _updateOverlay() {
5551
+ requestAnimationFrame(() => {
5552
+ if (this.$overlay) {
5553
+ var a = this.$video, b2 = a.videoWidth, c = a.videoHeight, d2 = a.offsetWidth, f2 = a.offsetHeight, h = a.offsetLeft, m = a.offsetTop, n = window.getComputedStyle(a), p = n.objectFit, k = b2 / c, q = d2 / f2;
5554
+ switch (p) {
5555
+ case "none":
5556
+ var g = b2;
5557
+ var l2 = c;
5558
+ break;
5559
+ case "fill":
5560
+ g = d2;
5561
+ l2 = f2;
5562
+ break;
5563
+ default:
5564
+ ("cover" === p ? k > q : k < q) ? (l2 = f2, g = l2 * k) : (g = d2, l2 = g / k), "scale-down" === p && (g = Math.min(g, b2), l2 = Math.min(l2, c));
5565
+ }
5566
+ var [v2, w] = n.objectPosition.split(" ").map((r2, y) => {
5567
+ const x = parseFloat(r2);
5568
+ return r2.endsWith("%") ? (y ? f2 - l2 : d2 - g) * x / 100 : x;
5569
+ });
5570
+ n = this._scanRegion.width || b2;
5571
+ q = this._scanRegion.height || c;
5572
+ p = this._scanRegion.x || 0;
5573
+ var u = this._scanRegion.y || 0;
5574
+ k = this.$overlay.style;
5575
+ k.width = `${n / b2 * g}px`;
5576
+ k.height = `${q / c * l2}px`;
5577
+ k.top = `${m + w + u / c * l2}px`;
5578
+ c = /scaleX\(-1\)/.test(a.style.transform);
5579
+ k.left = `${h + (c ? d2 - v2 - g : v2) + (c ? b2 - p - n : p) / b2 * g}px`;
5580
+ k.transform = a.style.transform;
5581
+ }
5582
+ });
5583
+ }
5584
+ static _convertPoints(a, b2) {
5585
+ if (!b2)
5586
+ return a;
5587
+ let c = b2.x || 0, d2 = b2.y || 0, f2 = b2.width && b2.downScaledWidth ? b2.width / b2.downScaledWidth : 1;
5588
+ b2 = b2.height && b2.downScaledHeight ? b2.height / b2.downScaledHeight : 1;
5589
+ for (let h of a)
5590
+ h.x = h.x * f2 + c, h.y = h.y * b2 + d2;
5591
+ return a;
5592
+ }
5593
+ _scanFrame() {
5594
+ !this._active || this.$video.paused || this.$video.ended || ("requestVideoFrameCallback" in this.$video ? this.$video.requestVideoFrameCallback.bind(this.$video) : requestAnimationFrame)(async () => {
5595
+ if (!(1 >= this.$video.readyState)) {
5596
+ var a = Date.now() - this._lastScanTimestamp, b2 = 1e3 / this._maxScansPerSecond;
5597
+ a < b2 && await new Promise((d2) => setTimeout(d2, b2 - a));
5598
+ this._lastScanTimestamp = Date.now();
5599
+ try {
5600
+ var c = await e.scanImage(
5601
+ this.$video,
5602
+ { scanRegion: this._scanRegion, qrEngine: this._qrEnginePromise, canvas: this.$canvas }
5603
+ );
5604
+ } catch (d2) {
5605
+ if (!this._active)
5606
+ return;
5607
+ this._onDecodeError(d2);
5608
+ }
5609
+ !e._disableBarcodeDetector || await this._qrEnginePromise instanceof Worker || (this._qrEnginePromise = e.createQrEngine());
5610
+ c ? (this._onDecode ? this._onDecode(c) : this._legacyOnDecode && this._legacyOnDecode(c.data), this.$codeOutlineHighlight && (clearTimeout(this._codeOutlineHighlightRemovalTimeout), this._codeOutlineHighlightRemovalTimeout = void 0, this.$codeOutlineHighlight.setAttribute(
5611
+ "viewBox",
5612
+ `${this._scanRegion.x || 0} ${this._scanRegion.y || 0} ${this._scanRegion.width || this.$video.videoWidth} ${this._scanRegion.height || this.$video.videoHeight}`
5613
+ ), this.$codeOutlineHighlight.firstElementChild.setAttribute("points", c.cornerPoints.map(({ x: d2, y: f2 }) => `${d2},${f2}`).join(" ")), this.$codeOutlineHighlight.style.display = "")) : this.$codeOutlineHighlight && !this._codeOutlineHighlightRemovalTimeout && (this._codeOutlineHighlightRemovalTimeout = setTimeout(() => this.$codeOutlineHighlight.style.display = "none", 100));
5614
+ }
5615
+ this._scanFrame();
5616
+ });
5617
+ }
5618
+ _onDecodeError(a) {
5619
+ a !== e.NO_QR_CODE_FOUND && console.log(a);
5620
+ }
5621
+ async _getCameraStream() {
5622
+ if (!navigator.mediaDevices)
5623
+ throw "Camera not found.";
5624
+ let a = /^(environment|user)$/.test(this._preferredCamera) ? "facingMode" : "deviceId", b2 = [{ width: { min: 1024 } }, { width: { min: 768 } }, {}], c = b2.map((d2) => Object.assign({}, d2, { [a]: { exact: this._preferredCamera } }));
5625
+ for (let d2 of [...c, ...b2])
5626
+ try {
5627
+ let f2 = await navigator.mediaDevices.getUserMedia({ video: d2, audio: false }), h = this._getFacingMode(f2) || (d2.facingMode ? this._preferredCamera : "environment" === this._preferredCamera ? "user" : "environment");
5628
+ return { stream: f2, facingMode: h };
5629
+ } catch (f2) {
5630
+ }
5631
+ throw "Camera not found.";
5632
+ }
5633
+ async _restartVideoStream() {
5634
+ let a = this._paused;
5635
+ await this.pause(true) && !a && this._active && await this.start();
5636
+ }
5637
+ static _stopVideoStream(a) {
5638
+ for (let b2 of a.getTracks())
5639
+ b2.stop(), a.removeTrack(b2);
5640
+ }
5641
+ _setVideoMirror(a) {
5642
+ this.$video.style.transform = "scaleX(" + ("user" === a ? -1 : 1) + ")";
5643
+ }
5644
+ _getFacingMode(a) {
5645
+ return (a = a.getVideoTracks()[0]) ? /rear|back|environment/i.test(a.label) ? "environment" : /front|user|face/i.test(a.label) ? "user" : null : null;
5646
+ }
5647
+ static _drawToCanvas(a, b2, c, d2 = false) {
5648
+ c = c || document.createElement("canvas");
5649
+ let f2 = b2 && b2.x ? b2.x : 0, h = b2 && b2.y ? b2.y : 0, m = b2 && b2.width ? b2.width : a.videoWidth || a.width, n = b2 && b2.height ? b2.height : a.videoHeight || a.height;
5650
+ d2 || (d2 = b2 && b2.downScaledWidth ? b2.downScaledWidth : m, b2 = b2 && b2.downScaledHeight ? b2.downScaledHeight : n, c.width !== d2 && (c.width = d2), c.height !== b2 && (c.height = b2));
5651
+ b2 = c.getContext("2d", { alpha: false });
5652
+ b2.imageSmoothingEnabled = false;
5653
+ b2.drawImage(a, f2, h, m, n, 0, 0, c.width, c.height);
5654
+ return [c, b2];
5655
+ }
5656
+ static async _loadImage(a) {
5657
+ if (a instanceof Image)
5658
+ return await e._awaitImageLoad(a), a;
5659
+ if (a instanceof HTMLVideoElement || a instanceof HTMLCanvasElement || a instanceof SVGImageElement || "OffscreenCanvas" in window && a instanceof OffscreenCanvas || "ImageBitmap" in window && a instanceof ImageBitmap)
5660
+ return a;
5661
+ if (a instanceof File || a instanceof Blob || a instanceof URL || "string" === typeof a) {
5662
+ let b2 = new Image();
5663
+ b2.src = a instanceof File || a instanceof Blob ? URL.createObjectURL(a) : a.toString();
5664
+ try {
5665
+ return await e._awaitImageLoad(b2), b2;
5666
+ } finally {
5667
+ (a instanceof File || a instanceof Blob) && URL.revokeObjectURL(b2.src);
5668
+ }
5669
+ } else
5670
+ throw "Unsupported image type.";
5671
+ }
5672
+ static async _awaitImageLoad(a) {
5673
+ a.complete && 0 !== a.naturalWidth || await new Promise((b2, c) => {
5674
+ let d2 = (f2) => {
5675
+ a.removeEventListener("load", d2);
5676
+ a.removeEventListener("error", d2);
5677
+ f2 instanceof ErrorEvent ? c("Image load error") : b2();
5678
+ };
5679
+ a.addEventListener("load", d2);
5680
+ a.addEventListener("error", d2);
5681
+ });
5682
+ }
5683
+ static async _postWorkerMessage(a, b2, c, d2) {
5684
+ return e._postWorkerMessageSync(await a, b2, c, d2);
5685
+ }
5686
+ static _postWorkerMessageSync(a, b2, c, d2) {
5687
+ if (!(a instanceof Worker))
5688
+ return -1;
5689
+ let f2 = e._workerMessageId++;
5690
+ a.postMessage({ id: f2, type: b2, data: c }, d2);
5691
+ return f2;
5692
+ }
5693
+ }
5694
+ e.DEFAULT_CANVAS_SIZE = 400;
5695
+ e.NO_QR_CODE_FOUND = "No QR code found";
5696
+ e._disableBarcodeDetector = false;
5697
+ e._workerMessageId = 0;
5698
+ const Scanner = e;
5699
+ const _withScopeId = (n) => (vue.pushScopeId("data-v-ef426ef3"), n = n(), vue.popScopeId(), n);
5700
+ const _hoisted_1$3 = /* @__PURE__ */ _withScopeId(() => /* @__PURE__ */ vue.createElementVNode(
5701
+ "div",
5702
+ { class: "invalid-message" },
5703
+ "Invalid Code!",
5704
+ -1
5705
+ /* HOISTED */
5706
+ ));
5707
+ const _hoisted_2$2 = /* @__PURE__ */ _withScopeId(() => /* @__PURE__ */ vue.createElementVNode(
5708
+ "div",
5709
+ null,
5710
+ null,
5711
+ -1
5712
+ /* HOISTED */
5713
+ ));
5714
+ const _hoisted_3 = ["onClick"];
5715
+ const _hoisted_4 = { class: "mr-2 text-sm" };
5716
+ const _sfc_main$e = /* @__PURE__ */ vue.defineComponent({
5717
+ __name: "CheckInScanner",
5718
+ emits: ["start", "stop", "scanned", "close"],
5719
+ setup(__props, { emit }) {
5720
+ const attendanceStore = useAttendanceStore();
5721
+ const { isScanning } = pinia.storeToRefs(attendanceStore);
5722
+ const frameEl = vue.ref();
5723
+ const videoEl = vue.ref();
5724
+ const scanner = vue.ref();
5725
+ const state = vue.reactive({
5726
+ isScanning: false,
5727
+ isInvalid: false,
5728
+ result: "",
5729
+ currentIndex: 0
5730
+ });
5731
+ const cameras = vue.ref([]);
5732
+ const currentCamera = vue.computed(
5733
+ () => {
5734
+ var _a;
5735
+ return ((_a = cameras.value[state.currentIndex]) == null ? void 0 : _a.label) || "";
5736
+ }
5737
+ );
5738
+ const canSwitch = vue.computed(() => cameras.value.length > 1);
5739
+ const { resume, pause } = core.useIntervalFn(
5740
+ async () => {
5741
+ cameras.value = await Scanner.listCameras();
5742
+ console.log(cameras.value);
5743
+ },
5744
+ 1e3,
5745
+ { immediate: false }
5746
+ );
5747
+ const throttledEmit = core.useThrottleFn(emitResult, 2e3);
5748
+ vue.watchEffect(() => {
5749
+ if (isScanning.value && videoEl.value) {
5750
+ scanner.value = new Scanner(
5751
+ videoEl.value,
5752
+ (result) => {
5753
+ if (!result.data)
5754
+ return;
5755
+ throttledEmit(result.data);
5756
+ stopScan();
5757
+ },
5758
+ {
5759
+ preferredCamera: "environment",
5760
+ highlightScanRegion: true,
5761
+ highlightCodeOutline: true
5762
+ }
5763
+ );
5764
+ resume();
5765
+ startScan();
5766
+ }
5767
+ });
5768
+ vue.watchEffect(() => {
5769
+ if (!isScanning.value) {
5770
+ stopScan();
5771
+ destroy();
5772
+ }
5773
+ });
5774
+ bus.on("attendance:scan", (isStart) => {
5775
+ if (isStart)
5776
+ startScan();
5777
+ else
5778
+ stopScan();
5779
+ });
5780
+ vue.onBeforeUnmount(() => {
5781
+ bus.off("attendance:scan");
5782
+ destroy();
5783
+ });
5784
+ function emitResult(data) {
5785
+ state.result = data;
5786
+ emit("scanned", data);
5787
+ }
5788
+ function switchCamera() {
5789
+ var _a, _b;
5790
+ if (cameras.value.length - 1 === state.currentIndex) {
5791
+ state.currentIndex = 0;
5792
+ } else {
5793
+ state.currentIndex++;
5794
+ }
5795
+ const deviceId = (_a = cameras.value[state.currentIndex]) == null ? void 0 : _a.id;
5796
+ (_b = scanner.value) == null ? void 0 : _b.setCamera(deviceId);
5797
+ }
5798
+ function startScan() {
5799
+ var _a;
5800
+ (_a = scanner.value) == null ? void 0 : _a.start();
5801
+ state.isScanning = true;
5802
+ emit("start");
5803
+ }
5804
+ function stopScan() {
5805
+ var _a;
5806
+ (_a = scanner.value) == null ? void 0 : _a.stop();
5807
+ state.isScanning = false;
5808
+ pause();
5809
+ emit("stop");
5810
+ }
5811
+ function destroy() {
5812
+ var _a;
5813
+ (_a = scanner.value) == null ? void 0 : _a.destroy();
5814
+ scanner.value = void 0;
5815
+ }
5816
+ return (_ctx, _cache) => {
5817
+ return vue.openBlock(), vue.createBlock(vue.unref(interfaces.NeonModal), {
5818
+ "is-active": vue.unref(isScanning),
5819
+ "onUpdate:isActive": _cache[1] || (_cache[1] = ($event) => vue.isRef(isScanning) ? isScanning.value = $event : null),
5820
+ size: "xl",
5821
+ onClose: _cache[2] || (_cache[2] = ($event) => _ctx.$emit("close"))
5822
+ }, {
5823
+ default: vue.withCtx(() => [
5824
+ vue.createVNode(vue.unref(interfaces.NeonSheet), {
5825
+ icon: "barcode-read",
5826
+ title: "Scan QR Code",
5827
+ onClose: _cache[0] || (_cache[0] = ($event) => _ctx.$emit("close"))
5828
+ }, {
5829
+ default: vue.withCtx(() => [
5830
+ vue.createElementVNode(
5831
+ "div",
5832
+ {
5833
+ ref_key: "frameEl",
5834
+ ref: frameEl,
5835
+ class: vue.normalizeClass(["video-frame", [
5836
+ {
5837
+ "is-scanning": state.isScanning,
5838
+ "is-invalid": state.isInvalid
5839
+ }
5840
+ ]])
5841
+ },
5842
+ [
5843
+ vue.createElementVNode(
5844
+ "video",
5845
+ {
5846
+ ref_key: "videoEl",
5847
+ ref: videoEl,
5848
+ style: {
5849
+ height: `auto`,
5850
+ width: `auto`
5851
+ }
5852
+ },
5853
+ null,
5854
+ 512
5855
+ /* NEED_PATCH */
5856
+ ),
5857
+ vue.createElementVNode("div", {
5858
+ class: "inner",
5859
+ onClick: switchCamera
5860
+ }, [
5861
+ _hoisted_1$3,
5862
+ _hoisted_2$2,
5863
+ vue.createElementVNode("div", {
5864
+ class: "button-switch",
5865
+ onClick: vue.withModifiers(switchCamera, ["stop"])
5866
+ }, [
5867
+ vue.createElementVNode(
5868
+ "div",
5869
+ _hoisted_4,
5870
+ vue.toDisplayString(vue.unref(currentCamera)),
5871
+ 1
5872
+ /* TEXT */
5873
+ ),
5874
+ vue.createVNode(vue.unref(interfaces.NeonButton), {
5875
+ "icon-left": "arrows-repeat",
5876
+ "is-squared": "",
5877
+ size: "sm",
5878
+ "is-disabled": !vue.unref(canSwitch)
5879
+ }, null, 8, ["is-disabled"])
5880
+ ], 8, _hoisted_3)
5881
+ ])
5882
+ ],
5883
+ 2
5884
+ /* CLASS */
5885
+ )
5886
+ ]),
5887
+ _: 1
5888
+ /* STABLE */
5889
+ })
5890
+ ]),
5891
+ _: 1
5892
+ /* STABLE */
5893
+ }, 8, ["is-active"]);
5894
+ };
5895
+ }
5896
+ });
5897
+ const CheckInScanner_vue_vue_type_style_index_0_scoped_ef426ef3_lang = "";
5898
+ const CheckInScanner = /* @__PURE__ */ _export_sfc(_sfc_main$e, [["__scopeId", "data-v-ef426ef3"]]);
5899
+ const _hoisted_1$2 = /* @__PURE__ */ vue.createElementVNode(
5900
+ "h3",
5901
+ { align: "center" },
5902
+ "Presensi Berhasil!",
5903
+ -1
5904
+ /* HOISTED */
5905
+ );
5906
+ const _sfc_main$d = /* @__PURE__ */ vue.defineComponent({
5907
+ __name: "CheckInScanSuccess",
5908
+ emits: ["close"],
5909
+ setup(__props) {
5910
+ const attendanceStore = useAttendanceStore();
5911
+ const { isScanned } = pinia.storeToRefs(attendanceStore);
5912
+ return (_ctx, _cache) => {
5913
+ return vue.openBlock(), vue.createBlock(vue.unref(interfaces.NeonModal), {
5914
+ "is-active": vue.unref(isScanned),
5915
+ "onUpdate:isActive": _cache[1] || (_cache[1] = ($event) => vue.isRef(isScanned) ? isScanned.value = $event : null),
5916
+ size: "lg",
5917
+ onClose: _cache[2] || (_cache[2] = ($event) => _ctx.$emit("close"))
5918
+ }, {
5919
+ default: vue.withCtx(() => [
5920
+ vue.createVNode(vue.unref(interfaces.NeonSheet), {
5921
+ title: "Presensi",
5922
+ icon: "check",
5923
+ onClose: _cache[0] || (_cache[0] = ($event) => _ctx.$emit("close"))
5924
+ }, {
5925
+ default: vue.withCtx(() => [
5926
+ _hoisted_1$2
5927
+ ]),
5928
+ _: 1
5929
+ /* STABLE */
5930
+ })
5931
+ ]),
5932
+ _: 1
5933
+ /* STABLE */
5934
+ }, 8, ["is-active"]);
5935
+ };
5936
+ }
5937
+ });
5938
+ const __default__$6 = vue.defineComponent({
5939
+ name: "CheckInCollection"
5940
+ });
5941
+ const _sfc_main$c = /* @__PURE__ */ vue.defineComponent({
5942
+ ...__default__$6,
5943
+ setup(__props) {
5944
+ context.useCollection();
5945
+ return (_ctx, _cache) => {
5946
+ return vue.openBlock(), vue.createBlock(vue.unref(context.NeonCollection), { class: "neu-checkIn-collection" }, {
5947
+ default: vue.withCtx(() => [
5948
+ vue.createVNode(vue.unref(office.OfficeCollectionTable))
5949
+ ]),
5950
+ _: 1
5951
+ /* STABLE */
5952
+ });
5953
+ };
5954
+ }
5955
+ });
5956
+ const StaffModel = personaliaModels.models.StaffModel;
5957
+ const __default__$5 = vue.defineComponent({
5958
+ name: "StaffCollection"
5959
+ });
5960
+ const _sfc_main$b = /* @__PURE__ */ vue.defineComponent({
5961
+ ...__default__$5,
5962
+ setup(__props) {
5963
+ context.useCollection();
5964
+ return (_ctx, _cache) => {
5965
+ return vue.openBlock(), vue.createBlock(vue.unref(context.NeonCollection), { class: "neu-staff-collection" }, {
5966
+ default: vue.withCtx(() => [
5967
+ vue.createVNode(vue.unref(office.OfficeCollectionTable))
5968
+ ]),
5969
+ _: 1
5970
+ /* STABLE */
5971
+ });
5972
+ };
5973
+ }
5974
+ });
5975
+ const _hoisted_1$1 = { class: "grid gap-4 sm:grid-cols-[3fr_1fr]" };
5976
+ const _hoisted_2$1 = { class: "grid gap-4 sm:grid-cols-2" };
5977
+ const _sfc_main$a = /* @__PURE__ */ vue.defineComponent({
5978
+ __name: "StaffSingle",
5979
+ setup(__props) {
5980
+ const {
5981
+ fields,
5982
+ id: id2,
5983
+ initialValues,
5984
+ values,
5985
+ isLoading,
5986
+ isChanged,
5987
+ isReady,
5988
+ isMain,
5989
+ isNew,
5990
+ saveOne,
5991
+ discardChanges
5992
+ } = context.useSingle();
5993
+ return (_ctx, _cache) => {
5994
+ return vue.openBlock(), vue.createBlock(vue.unref(context.NeonSingle), { class: "neu-staff-single" }, {
5995
+ default: vue.withCtx(() => [
5996
+ vue.createVNode(vue.unref(office.OfficeTabs), { "use-url": vue.unref(isMain) }, {
5997
+ default: vue.withCtx(() => [
5998
+ vue.createVNode(vue.unref(office.OfficeTab), {
5999
+ handle: "info",
6000
+ icon: "circle-info",
6001
+ title: "Info"
6002
+ }, {
6003
+ default: vue.withCtx(() => [
6004
+ vue.createVNode(vue.unref(form.NeonForm), {
6005
+ handle: "info",
6006
+ "initial-values": vue.unref(initialValues),
6007
+ "is-loading": vue.unref(isLoading),
6008
+ "is-changed": vue.unref(isChanged),
6009
+ "use-unsaved": "",
6010
+ onCancel: vue.unref(discardChanges),
6011
+ onSubmit: vue.unref(saveOne)
6012
+ }, {
6013
+ default: vue.withCtx(() => [
6014
+ vue.createElementVNode("div", _hoisted_1$1, [
6015
+ vue.createVNode(vue.unref(form.NeonField), vue.mergeProps({
6016
+ modelValue: vue.unref(values).name,
6017
+ "onUpdate:modelValue": _cache[0] || (_cache[0] = ($event) => vue.unref(values).name = $event)
6018
+ }, vue.unref(fields).name), null, 16, ["modelValue"]),
6019
+ vue.createVNode(vue.unref(form.NeonField), vue.mergeProps({
6020
+ modelValue: vue.unref(values).nik,
6021
+ "onUpdate:modelValue": _cache[1] || (_cache[1] = ($event) => vue.unref(values).nik = $event)
6022
+ }, vue.unref(fields).nik), null, 16, ["modelValue"])
6023
+ ]),
6024
+ vue.createElementVNode("div", _hoisted_2$1, [
6025
+ vue.createVNode(vue.unref(form.NeonField), vue.mergeProps({
6026
+ modelValue: vue.unref(values).birthPlace,
6027
+ "onUpdate:modelValue": _cache[2] || (_cache[2] = ($event) => vue.unref(values).birthPlace = $event)
6028
+ }, vue.unref(fields).birthPlace), null, 16, ["modelValue"]),
6029
+ vue.createVNode(vue.unref(form.NeonField), vue.mergeProps({
6030
+ modelValue: vue.unref(values).birthDate,
6031
+ "onUpdate:modelValue": _cache[3] || (_cache[3] = ($event) => vue.unref(values).birthDate = $event)
6032
+ }, vue.unref(fields).birthDate), null, 16, ["modelValue"])
6033
+ ]),
6034
+ vue.createVNode(vue.unref(form.NeonField), vue.mergeProps({
6035
+ modelValue: vue.unref(values).image,
6036
+ "onUpdate:modelValue": _cache[4] || (_cache[4] = ($event) => vue.unref(values).image = $event)
6037
+ }, vue.unref(fields).image), null, 16, ["modelValue"]),
6038
+ vue.createVNode(vue.unref(form.NeonField), vue.mergeProps({
6039
+ modelValue: vue.unref(values).note,
6040
+ "onUpdate:modelValue": _cache[5] || (_cache[5] = ($event) => vue.unref(values).note = $event)
6041
+ }, vue.unref(fields).note), null, 16, ["modelValue"])
6042
+ ]),
6043
+ _: 1
6044
+ /* STABLE */
6045
+ }, 8, ["initial-values", "is-loading", "is-changed", "onCancel", "onSubmit"])
6046
+ ]),
6047
+ _: 1
6048
+ /* STABLE */
6049
+ }),
6050
+ vue.createCommentVNode(' IDENTITAS\n <OfficeTab handle="identity" icon="circle-info" title="Identity">\n </OfficeTab> '),
6051
+ vue.createCommentVNode(" CABANG "),
6052
+ vue.createVNode(vue.unref(office.OfficeTab), {
6053
+ handle: "branch",
6054
+ icon: "circle-info",
6055
+ title: "Cabang"
6056
+ }, {
6057
+ default: vue.withCtx(() => [
6058
+ vue.createVNode(vue.unref(form.NeonForm), {
6059
+ handle: "branch",
6060
+ "initial-values": vue.unref(initialValues),
6061
+ "is-loading": vue.unref(isLoading),
6062
+ "is-changed": vue.unref(isChanged),
6063
+ "use-unsaved": "",
6064
+ onCancel: vue.unref(discardChanges),
6065
+ onSubmit: vue.unref(saveOne)
6066
+ }, {
6067
+ default: vue.withCtx(() => [
6068
+ vue.createVNode(vue.unref(office.OfficeRelation), {
6069
+ modelValue: vue.unref(values),
6070
+ "onUpdate:modelValue": _cache[6] || (_cache[6] = ($event) => vue.isRef(values) ? values.value = $event : null),
6071
+ field: vue.unref(fields).branch
6072
+ }, null, 8, ["modelValue", "field"]),
6073
+ vue.createVNode(vue.unref(office.OfficeRelation), {
6074
+ modelValue: vue.unref(values),
6075
+ "onUpdate:modelValue": _cache[7] || (_cache[7] = ($event) => vue.isRef(values) ? values.value = $event : null),
6076
+ field: vue.unref(fields).branches
6077
+ }, null, 8, ["modelValue", "field"])
6078
+ ]),
6079
+ _: 1
6080
+ /* STABLE */
6081
+ }, 8, ["initial-values", "is-loading", "is-changed", "onCancel", "onSubmit"])
6082
+ ]),
6083
+ _: 1
6084
+ /* STABLE */
6085
+ }),
6086
+ vue.createCommentVNode(" KELUAR MASUK "),
6087
+ vue.createVNode(vue.unref(office.OfficeTab), {
6088
+ handle: "checkIn",
6089
+ icon: "person-to-door",
6090
+ title: "Keluar Masuk"
6091
+ }, {
6092
+ default: vue.withCtx(() => [
6093
+ vue.createCommentVNode(` <OfficeCollectionRelated
6094
+ definition="neu:tempat:checkIn"
6095
+ title="Keluar Masuk"
6096
+ description="Keluar masuk."
6097
+ :query="
6098
+ Query.define({
6099
+ filter: {
6100
+ handle: 'staffId',
6101
+ operator: 'eq',
6102
+ value: id,
6103
+ },
6104
+ })
6105
+ "
6106
+ /> `)
6107
+ ]),
6108
+ _: 1
6109
+ /* STABLE */
6110
+ })
6111
+ ]),
6112
+ _: 1
6113
+ /* STABLE */
6114
+ }, 8, ["use-url"])
6115
+ ]),
6116
+ _: 1
6117
+ /* STABLE */
6118
+ });
6119
+ };
6120
+ }
6121
+ });
6122
+ const StaffSingle_vue_vue_type_style_index_0_scoped_dbeb1998_lang = "";
6123
+ const StaffSingle = /* @__PURE__ */ _export_sfc(_sfc_main$a, [["__scopeId", "data-v-dbeb1998"]]);
6124
+ const SituationModel = personaliaModels.models.SituationModel;
6125
+ const __default__$4 = vue.defineComponent({ name: "SituationCollection" });
6126
+ const _sfc_main$9 = /* @__PURE__ */ vue.defineComponent({
6127
+ ...__default__$4,
6128
+ setup(__props) {
6129
+ context.useCollection();
6130
+ return (_ctx, _cache) => {
6131
+ return vue.openBlock(), vue.createBlock(vue.unref(context.NeonCollection), { class: "neu-situation-collection" }, {
6132
+ default: vue.withCtx(() => [
6133
+ vue.createVNode(vue.unref(office.OfficeCollectionTable))
6134
+ ]),
6135
+ _: 1
6136
+ /* STABLE */
6137
+ });
6138
+ };
6139
+ }
6140
+ });
6141
+ const _sfc_main$8 = /* @__PURE__ */ vue.defineComponent({
6142
+ __name: "SituationSingle",
6143
+ setup(__props) {
6144
+ const {
6145
+ fields,
6146
+ id: id2,
6147
+ initialValues,
6148
+ values,
6149
+ isNew,
6150
+ isLoading,
6151
+ isChanged,
6152
+ isReady,
6153
+ isMain,
6154
+ saveOne,
6155
+ discardChanges
6156
+ } = context.useSingle();
6157
+ return (_ctx, _cache) => {
6158
+ return vue.openBlock(), vue.createBlock(vue.unref(context.NeonSingle), { class: "neu-situation-single" }, {
6159
+ default: vue.withCtx(() => [
6160
+ vue.createVNode(vue.unref(office.OfficeTabs), { "use-url": vue.unref(isMain) }, {
6161
+ default: vue.withCtx(() => [
6162
+ vue.createVNode(vue.unref(office.OfficeTab), {
6163
+ handle: "info",
6164
+ icon: "circle-info",
6165
+ title: "Info"
6166
+ }, {
6167
+ default: vue.withCtx(() => [
6168
+ vue.createVNode(vue.unref(form.NeonForm), {
6169
+ handle: "info",
6170
+ "initial-values": vue.unref(initialValues),
6171
+ "is-loading": vue.unref(isLoading),
6172
+ "is-changed": vue.unref(isChanged),
6173
+ "use-unsaved": "",
6174
+ onCancel: vue.unref(discardChanges),
6175
+ onSubmit: vue.unref(saveOne)
6176
+ }, {
6177
+ default: vue.withCtx(() => [
6178
+ vue.createVNode(vue.unref(form.NeonFields), {
6179
+ md: "grid-cols-4",
6180
+ title: "Situasi"
6181
+ }, {
6182
+ default: vue.withCtx(() => [
6183
+ vue.createVNode(vue.unref(form.NeonField), vue.mergeProps({
6184
+ modelValue: vue.unref(values).situationStatus,
6185
+ "onUpdate:modelValue": _cache[0] || (_cache[0] = ($event) => vue.unref(values).situationStatus = $event)
6186
+ }, vue.unref(fields).situationStatus), null, 16, ["modelValue"])
6187
+ ]),
6188
+ _: 1
6189
+ /* STABLE */
6190
+ }),
6191
+ vue.createVNode(vue.unref(office.OfficeRelation), {
6192
+ modelValue: vue.unref(values),
6193
+ "onUpdate:modelValue": _cache[1] || (_cache[1] = ($event) => vue.isRef(values) ? values.value = $event : null),
6194
+ field: vue.unref(fields).branches
6195
+ }, null, 8, ["modelValue", "field"]),
6196
+ vue.createVNode(vue.unref(office.OfficeRelation), {
6197
+ modelValue: vue.unref(values),
6198
+ "onUpdate:modelValue": _cache[2] || (_cache[2] = ($event) => vue.isRef(values) ? values.value = $event : null),
6199
+ field: vue.unref(fields).situationType
6200
+ }, null, 8, ["modelValue", "field"]),
6201
+ vue.createVNode(vue.unref(office.OfficeRelation), {
6202
+ modelValue: vue.unref(values),
6203
+ "onUpdate:modelValue": _cache[3] || (_cache[3] = ($event) => vue.isRef(values) ? values.value = $event : null),
6204
+ field: vue.unref(fields).situationReportedBy
6205
+ }, null, 8, ["modelValue", "field"]),
6206
+ vue.createVNode(vue.unref(form.NeonFields), { md: "grid-cols-4" }, {
6207
+ default: vue.withCtx(() => [
6208
+ vue.createVNode(vue.unref(form.NeonField), vue.mergeProps({
6209
+ modelValue: vue.unref(values).situationDescription,
6210
+ "onUpdate:modelValue": _cache[4] || (_cache[4] = ($event) => vue.unref(values).situationDescription = $event)
6211
+ }, vue.unref(fields).situationDescription), null, 16, ["modelValue"])
6212
+ ]),
6213
+ _: 1
6214
+ /* STABLE */
6215
+ }),
6216
+ vue.createVNode(vue.unref(form.NeonFields), { md: "grid-cols-4" }, {
6217
+ default: vue.withCtx(() => [
6218
+ vue.createVNode(vue.unref(form.NeonField), vue.mergeProps({
6219
+ modelValue: vue.unref(values).urgentSituationDate,
6220
+ "onUpdate:modelValue": _cache[5] || (_cache[5] = ($event) => vue.unref(values).urgentSituationDate = $event)
6221
+ }, vue.unref(fields).urgentSituationDate), null, 16, ["modelValue"])
6222
+ ]),
6223
+ _: 1
6224
+ /* STABLE */
6225
+ }),
6226
+ vue.createVNode(vue.unref(office.OfficeRelation), {
6227
+ modelValue: vue.unref(values),
6228
+ "onUpdate:modelValue": _cache[6] || (_cache[6] = ($event) => vue.isRef(values) ? values.value = $event : null),
6229
+ field: vue.unref(fields).situationRelatedBy
6230
+ }, null, 8, ["modelValue", "field"]),
6231
+ vue.createVNode(vue.unref(form.NeonFields), {
6232
+ md: "grid-cols-4",
6233
+ title: "Suportif"
6234
+ }, {
6235
+ default: vue.withCtx(() => [
6236
+ vue.createVNode(vue.unref(form.NeonField), vue.mergeProps({
6237
+ modelValue: vue.unref(values).supportiveStatus,
6238
+ "onUpdate:modelValue": _cache[7] || (_cache[7] = ($event) => vue.unref(values).supportiveStatus = $event)
6239
+ }, vue.unref(fields).supportiveStatus), null, 16, ["modelValue"])
6240
+ ]),
6241
+ _: 1
6242
+ /* STABLE */
6243
+ }),
6244
+ vue.createVNode(vue.unref(office.OfficeRelation), {
6245
+ modelValue: vue.unref(values),
6246
+ "onUpdate:modelValue": _cache[8] || (_cache[8] = ($event) => vue.isRef(values) ? values.value = $event : null),
6247
+ field: vue.unref(fields).situationSupportedBy
6248
+ }, null, 8, ["modelValue", "field"]),
6249
+ vue.createVNode(vue.unref(form.NeonFields), { md: "grid-cols-4" }, {
6250
+ default: vue.withCtx(() => [
6251
+ vue.createVNode(vue.unref(form.NeonField), vue.mergeProps({
6252
+ modelValue: vue.unref(values).situationResponse,
6253
+ "onUpdate:modelValue": _cache[9] || (_cache[9] = ($event) => vue.unref(values).situationResponse = $event)
6254
+ }, vue.unref(fields).situationResponse), null, 16, ["modelValue"])
6255
+ ]),
6256
+ _: 1
6257
+ /* STABLE */
6258
+ })
6259
+ ]),
6260
+ _: 1
6261
+ /* STABLE */
6262
+ }, 8, ["initial-values", "is-loading", "is-changed", "onCancel", "onSubmit"])
6263
+ ]),
6264
+ _: 1
6265
+ /* STABLE */
6266
+ })
6267
+ ]),
6268
+ _: 1
6269
+ /* STABLE */
6270
+ }, 8, ["use-url"])
6271
+ ]),
6272
+ _: 1
6273
+ /* STABLE */
6274
+ });
6275
+ };
6276
+ }
6277
+ });
6278
+ const _sfc_main$7 = /* @__PURE__ */ vue.defineComponent({
6279
+ __name: "SituationWork",
6280
+ setup(__props) {
6281
+ const {
6282
+ fields,
6283
+ id: id2,
6284
+ initialValues,
6285
+ values,
6286
+ isNew,
6287
+ isLoading,
6288
+ isChanged,
6289
+ isReady,
6290
+ isMain,
6291
+ saveOne,
6292
+ discardChanges
6293
+ } = context.useSingle();
6294
+ return (_ctx, _cache) => {
6295
+ return vue.openBlock(), vue.createBlock(vue.unref(context.NeonSingle), { class: "neu-situation-single" }, {
6296
+ default: vue.withCtx(() => [
6297
+ vue.createVNode(vue.unref(office.OfficeTabs), { "use-url": vue.unref(isMain) }, {
6298
+ default: vue.withCtx(() => [
6299
+ vue.createVNode(vue.unref(office.OfficeTab), {
6300
+ handle: "info",
6301
+ icon: "circle-info",
6302
+ title: "Info"
6303
+ }, {
6304
+ default: vue.withCtx(() => [
6305
+ vue.createVNode(vue.unref(form.NeonForm), {
6306
+ handle: "info",
6307
+ "initial-values": vue.unref(initialValues),
6308
+ "is-loading": vue.unref(isLoading),
6309
+ "is-changed": vue.unref(isChanged),
6310
+ "use-unsaved": "",
6311
+ onCancel: vue.unref(discardChanges),
6312
+ onSubmit: vue.unref(saveOne)
6313
+ }, {
6314
+ default: vue.withCtx(() => [
6315
+ vue.createVNode(vue.unref(form.NeonFields), {
6316
+ md: "grid-cols-4",
6317
+ title: "Situasi"
6318
+ }, {
6319
+ default: vue.withCtx(() => [
6320
+ vue.createVNode(vue.unref(form.NeonField), vue.mergeProps({
6321
+ modelValue: vue.unref(values).situationStatus,
6322
+ "onUpdate:modelValue": _cache[0] || (_cache[0] = ($event) => vue.unref(values).situationStatus = $event)
6323
+ }, vue.unref(fields).situationStatus, { "is-disabled": "" }), null, 16, ["modelValue"])
6324
+ ]),
6325
+ _: 1
6326
+ /* STABLE */
6327
+ }),
6328
+ vue.createVNode(vue.unref(office.OfficeRelation), {
6329
+ modelValue: vue.unref(values),
6330
+ "onUpdate:modelValue": _cache[1] || (_cache[1] = ($event) => vue.isRef(values) ? values.value = $event : null),
6331
+ field: vue.unref(fields).branches
6332
+ }, null, 8, ["modelValue", "field"]),
6333
+ vue.createVNode(vue.unref(office.OfficeRelation), {
6334
+ modelValue: vue.unref(values),
6335
+ "onUpdate:modelValue": _cache[2] || (_cache[2] = ($event) => vue.isRef(values) ? values.value = $event : null),
6336
+ field: vue.unref(fields).situationType
6337
+ }, null, 8, ["modelValue", "field"]),
6338
+ vue.createVNode(vue.unref(office.OfficeRelation), {
6339
+ modelValue: vue.unref(values),
6340
+ "onUpdate:modelValue": _cache[3] || (_cache[3] = ($event) => vue.isRef(values) ? values.value = $event : null),
6341
+ field: vue.unref(fields).situationReportedBy,
6342
+ "is-disabled": ""
6343
+ }, null, 8, ["modelValue", "field"]),
6344
+ vue.createVNode(vue.unref(form.NeonFields), { md: "grid-cols-4" }, {
6345
+ default: vue.withCtx(() => [
6346
+ vue.createVNode(vue.unref(form.NeonField), vue.mergeProps({
6347
+ modelValue: vue.unref(values).situationDescription,
6348
+ "onUpdate:modelValue": _cache[4] || (_cache[4] = ($event) => vue.unref(values).situationDescription = $event)
6349
+ }, vue.unref(fields).situationDescription), null, 16, ["modelValue"])
6350
+ ]),
6351
+ _: 1
6352
+ /* STABLE */
6353
+ }),
6354
+ vue.createVNode(vue.unref(form.NeonFields), { md: "grid-cols-4" }, {
6355
+ default: vue.withCtx(() => [
6356
+ vue.createVNode(vue.unref(form.NeonField), vue.mergeProps({
6357
+ modelValue: vue.unref(values).urgentSituationDate,
6358
+ "onUpdate:modelValue": _cache[5] || (_cache[5] = ($event) => vue.unref(values).urgentSituationDate = $event)
6359
+ }, vue.unref(fields).urgentSituationDate), null, 16, ["modelValue"])
6360
+ ]),
6361
+ _: 1
6362
+ /* STABLE */
6363
+ }),
6364
+ vue.createVNode(vue.unref(office.OfficeRelation), {
6365
+ modelValue: vue.unref(values),
6366
+ "onUpdate:modelValue": _cache[6] || (_cache[6] = ($event) => vue.isRef(values) ? values.value = $event : null),
6367
+ field: vue.unref(fields).situationRelatedBy
6368
+ }, null, 8, ["modelValue", "field"]),
6369
+ vue.createVNode(vue.unref(form.NeonFields), {
6370
+ md: "grid-cols-4",
6371
+ title: "Suportif"
6372
+ }, {
6373
+ default: vue.withCtx(() => [
6374
+ vue.createVNode(vue.unref(form.NeonField), vue.mergeProps({
6375
+ modelValue: vue.unref(values).supportiveStatus,
6376
+ "onUpdate:modelValue": _cache[7] || (_cache[7] = ($event) => vue.unref(values).supportiveStatus = $event)
6377
+ }, vue.unref(fields).supportiveStatus), null, 16, ["modelValue"])
6378
+ ]),
6379
+ _: 1
6380
+ /* STABLE */
6381
+ }),
6382
+ vue.createVNode(vue.unref(office.OfficeRelation), {
6383
+ modelValue: vue.unref(values),
6384
+ "onUpdate:modelValue": _cache[8] || (_cache[8] = ($event) => vue.isRef(values) ? values.value = $event : null),
6385
+ field: vue.unref(fields).situationSupportedBy
6386
+ }, null, 8, ["modelValue", "field"]),
6387
+ vue.createVNode(vue.unref(form.NeonFields), { md: "grid-cols-4" }, {
6388
+ default: vue.withCtx(() => [
6389
+ vue.createVNode(vue.unref(form.NeonField), vue.mergeProps({
6390
+ modelValue: vue.unref(values).situationResponse,
6391
+ "onUpdate:modelValue": _cache[9] || (_cache[9] = ($event) => vue.unref(values).situationResponse = $event)
6392
+ }, vue.unref(fields).situationResponse), null, 16, ["modelValue"])
6393
+ ]),
6394
+ _: 1
6395
+ /* STABLE */
6396
+ })
6397
+ ]),
6398
+ _: 1
6399
+ /* STABLE */
6400
+ }, 8, ["initial-values", "is-loading", "is-changed", "onCancel", "onSubmit"])
6401
+ ]),
6402
+ _: 1
6403
+ /* STABLE */
6404
+ })
6405
+ ]),
6406
+ _: 1
6407
+ /* STABLE */
6408
+ }, 8, ["use-url"])
6409
+ ]),
6410
+ _: 1
6411
+ /* STABLE */
6412
+ });
6413
+ };
6414
+ }
6415
+ });
6416
+ const __default__$3 = vue.defineComponent({ name: "SituationSupportive" });
6417
+ const _sfc_main$6 = /* @__PURE__ */ vue.defineComponent({
6418
+ ...__default__$3,
6419
+ setup(__props) {
6420
+ const {
6421
+ fields,
6422
+ id: id2,
6423
+ initialValues,
6424
+ values,
6425
+ isNew,
6426
+ isLoading,
6427
+ isChanged,
6428
+ isReady,
6429
+ isMain,
6430
+ saveOne,
6431
+ discardChanges
6432
+ } = context.useSingle();
6433
+ return (_ctx, _cache) => {
6434
+ return vue.openBlock(), vue.createBlock(vue.unref(context.NeonSingle), { class: "neu-situation-single" }, {
6435
+ default: vue.withCtx(() => [
6436
+ vue.createVNode(vue.unref(office.OfficeTabs), { "use-url": vue.unref(isMain) }, {
6437
+ default: vue.withCtx(() => [
6438
+ vue.createVNode(vue.unref(office.OfficeTab), {
6439
+ handle: "info",
6440
+ icon: "circle-info",
6441
+ title: "Info"
6442
+ }, {
6443
+ default: vue.withCtx(() => [
6444
+ vue.createVNode(vue.unref(form.NeonForm), {
6445
+ handle: "info",
6446
+ "initial-values": vue.unref(initialValues),
6447
+ "is-loading": vue.unref(isLoading),
6448
+ "is-changed": vue.unref(isChanged),
6449
+ "use-unsaved": "",
6450
+ onCancel: vue.unref(discardChanges),
6451
+ onSubmit: vue.unref(saveOne)
6452
+ }, {
6453
+ default: vue.withCtx(() => [
6454
+ vue.createVNode(vue.unref(form.NeonFields), {
6455
+ md: "grid-cols-4",
6456
+ title: "Suportif"
6457
+ }, {
6458
+ default: vue.withCtx(() => [
6459
+ vue.createVNode(vue.unref(form.NeonField), vue.mergeProps({
6460
+ modelValue: vue.unref(values).situationStatus,
6461
+ "onUpdate:modelValue": _cache[0] || (_cache[0] = ($event) => vue.unref(values).situationStatus = $event)
6462
+ }, vue.unref(fields).situationStatus, { "is-disabled": "" }), null, 16, ["modelValue"])
6463
+ ]),
6464
+ _: 1
6465
+ /* STABLE */
6466
+ }),
6467
+ vue.createVNode(vue.unref(office.OfficeRelation), {
6468
+ modelValue: vue.unref(values),
6469
+ "onUpdate:modelValue": _cache[1] || (_cache[1] = ($event) => vue.isRef(values) ? values.value = $event : null),
6470
+ field: vue.unref(fields).situationSupportedBy
6471
+ }, null, 8, ["modelValue", "field"]),
6472
+ vue.createVNode(vue.unref(form.NeonFields), {
6473
+ md: "grid-cols-4",
6474
+ title: "Situasi"
6475
+ }, {
6476
+ default: vue.withCtx(() => [
6477
+ vue.createVNode(vue.unref(form.NeonField), vue.mergeProps({
6478
+ modelValue: vue.unref(values).situationResponse,
6479
+ "onUpdate:modelValue": _cache[2] || (_cache[2] = ($event) => vue.unref(values).situationResponse = $event)
6480
+ }, vue.unref(fields).situationResponse), null, 16, ["modelValue"])
6481
+ ]),
6482
+ _: 1
6483
+ /* STABLE */
6484
+ }),
6485
+ vue.createVNode(vue.unref(office.OfficeRelation), {
6486
+ modelValue: vue.unref(values),
6487
+ "onUpdate:modelValue": _cache[3] || (_cache[3] = ($event) => vue.isRef(values) ? values.value = $event : null),
6488
+ field: vue.unref(fields).branches,
6489
+ "is-disabled": ""
6490
+ }, null, 8, ["modelValue", "field"]),
6491
+ vue.createVNode(vue.unref(office.OfficeRelation), {
6492
+ modelValue: vue.unref(values),
6493
+ "onUpdate:modelValue": _cache[4] || (_cache[4] = ($event) => vue.isRef(values) ? values.value = $event : null),
6494
+ field: vue.unref(fields).situationType,
6495
+ "is-disabled": ""
6496
+ }, null, 8, ["modelValue", "field"]),
6497
+ vue.createVNode(vue.unref(office.OfficeRelation), {
6498
+ modelValue: vue.unref(values),
6499
+ "onUpdate:modelValue": _cache[5] || (_cache[5] = ($event) => vue.isRef(values) ? values.value = $event : null),
6500
+ field: vue.unref(fields).situationReportedBy,
6501
+ "is-disabled": ""
6502
+ }, null, 8, ["modelValue", "field"]),
6503
+ vue.createVNode(vue.unref(form.NeonFields), { md: "grid-cols-4" }, {
6504
+ default: vue.withCtx(() => [
6505
+ vue.createVNode(vue.unref(form.NeonField), vue.mergeProps({
6506
+ modelValue: vue.unref(values).situationDescription,
6507
+ "onUpdate:modelValue": _cache[6] || (_cache[6] = ($event) => vue.unref(values).situationDescription = $event)
6508
+ }, vue.unref(fields).situationDescription, { "is-disabled": "" }), null, 16, ["modelValue"])
6509
+ ]),
6510
+ _: 1
6511
+ /* STABLE */
6512
+ }),
6513
+ vue.createVNode(vue.unref(form.NeonFields), { md: "grid-cols-4" }, {
6514
+ default: vue.withCtx(() => [
6515
+ vue.createVNode(vue.unref(form.NeonField), vue.mergeProps({
6516
+ modelValue: vue.unref(values).urgentSituationDate,
6517
+ "onUpdate:modelValue": _cache[7] || (_cache[7] = ($event) => vue.unref(values).urgentSituationDate = $event)
6518
+ }, vue.unref(fields).urgentSituationDate, { "is-disabled": "" }), null, 16, ["modelValue"])
6519
+ ]),
6520
+ _: 1
6521
+ /* STABLE */
6522
+ }),
6523
+ vue.createVNode(vue.unref(office.OfficeRelation), {
6524
+ modelValue: vue.unref(values),
6525
+ "onUpdate:modelValue": _cache[8] || (_cache[8] = ($event) => vue.isRef(values) ? values.value = $event : null),
6526
+ field: vue.unref(fields).situationRelatedBy,
6527
+ "is-disabled": ""
6528
+ }, null, 8, ["modelValue", "field"])
6529
+ ]),
6530
+ _: 1
6531
+ /* STABLE */
6532
+ }, 8, ["initial-values", "is-loading", "is-changed", "onCancel", "onSubmit"])
6533
+ ]),
6534
+ _: 1
6535
+ /* STABLE */
6536
+ })
6537
+ ]),
6538
+ _: 1
6539
+ /* STABLE */
6540
+ }, 8, ["use-url"])
6541
+ ]),
6542
+ _: 1
6543
+ /* STABLE */
6544
+ });
6545
+ };
6546
+ }
6547
+ });
6548
+ const SituationTypeModel = personaliaModels.models.SituationTypeModel;
6549
+ const __default__$2 = vue.defineComponent({ name: "SituationTypeCollection" });
6550
+ const _sfc_main$5 = /* @__PURE__ */ vue.defineComponent({
6551
+ ...__default__$2,
6552
+ setup(__props) {
6553
+ context.useCollection();
6554
+ return (_ctx, _cache) => {
6555
+ return vue.openBlock(), vue.createBlock(vue.unref(context.NeonCollection), { class: "neu-situationType-collection" }, {
6556
+ default: vue.withCtx(() => [
6557
+ vue.createVNode(vue.unref(office.OfficeCollectionTable))
6558
+ ]),
6559
+ _: 1
6560
+ /* STABLE */
3759
6561
  });
3760
- return m;
3761
- },
3762
- pause() {
3763
- P.value = true;
3764
- },
3765
- resume() {
3766
- P.value = false;
3767
- }
3768
- };
3769
- return m;
3770
- }
3771
- function useClientHandle() {
3772
- var e2 = useClient();
3773
- var u = [];
3774
- vue.onBeforeUnmount(() => {
3775
- var e3;
3776
- while (e3 = u.shift()) {
3777
- e3();
3778
- }
3779
- });
3780
- var r2 = {
3781
- client: e2.value,
3782
- useQuery: (r3) => callUseQuery(r3, e2, u),
3783
- useSubscription: (r3, a) => callUseSubscription(r3, a, e2, u),
3784
- useMutation: (u2) => callUseMutation(u2, e2)
3785
- };
3786
- if ("production" !== process.env.NODE_ENV) {
3787
- vue.onMounted(() => {
3788
- Object.assign(r2, {
3789
- useQuery(r3) {
3790
- if ("production" !== process.env.NODE_ENV && !vue.getCurrentInstance()) {
3791
- throw new Error("`handle.useQuery()` should only be called in the `setup()` or a lifecycle hook.");
3792
- }
3793
- return callUseQuery(r3, e2, u);
3794
- },
3795
- useSubscription(r3, a) {
3796
- if ("production" !== process.env.NODE_ENV && !vue.getCurrentInstance()) {
3797
- throw new Error("`handle.useSubscription()` should only be called in the `setup()` or a lifecycle hook.");
3798
- }
3799
- return callUseSubscription(r3, a, e2, u);
3800
- }
6562
+ };
6563
+ }
6564
+ });
6565
+ const _sfc_main$4 = /* @__PURE__ */ vue.defineComponent({
6566
+ __name: "SituationTypeSingle",
6567
+ setup(__props) {
6568
+ const {
6569
+ fields,
6570
+ id: id2,
6571
+ initialValues,
6572
+ values,
6573
+ isNew,
6574
+ isLoading,
6575
+ isChanged,
6576
+ isReady,
6577
+ isMain,
6578
+ saveOne,
6579
+ discardChanges
6580
+ } = context.useSingle();
6581
+ return (_ctx, _cache) => {
6582
+ return vue.openBlock(), vue.createBlock(vue.unref(context.NeonSingle), { class: "neu-situation-type-single" }, {
6583
+ default: vue.withCtx(() => [
6584
+ vue.createVNode(vue.unref(office.OfficeTabs), { "use-url": vue.unref(isMain) }, {
6585
+ default: vue.withCtx(() => [
6586
+ vue.createVNode(vue.unref(office.OfficeTab), {
6587
+ handle: "info",
6588
+ icon: "circle-info",
6589
+ title: "Info"
6590
+ }, {
6591
+ default: vue.withCtx(() => [
6592
+ vue.createVNode(vue.unref(form.NeonForm), {
6593
+ handle: "info",
6594
+ "initial-values": vue.unref(initialValues),
6595
+ "is-loading": vue.unref(isLoading),
6596
+ "is-changed": vue.unref(isChanged),
6597
+ "use-unsaved": "",
6598
+ onCancel: vue.unref(discardChanges),
6599
+ onSubmit: vue.unref(saveOne)
6600
+ }, {
6601
+ default: vue.withCtx(() => [
6602
+ vue.createVNode(vue.unref(form.NeonFields), { md: "grid-cols-4" }, {
6603
+ default: vue.withCtx(() => [
6604
+ vue.createVNode(vue.unref(form.NeonField), vue.mergeProps({
6605
+ modelValue: vue.unref(values).situationTypeName,
6606
+ "onUpdate:modelValue": _cache[0] || (_cache[0] = ($event) => vue.unref(values).situationTypeName = $event)
6607
+ }, vue.unref(fields).situationTypeName), null, 16, ["modelValue"])
6608
+ ]),
6609
+ _: 1
6610
+ /* STABLE */
6611
+ }),
6612
+ vue.createVNode(vue.unref(office.OfficeRelation), {
6613
+ modelValue: vue.unref(values),
6614
+ "onUpdate:modelValue": _cache[1] || (_cache[1] = ($event) => vue.isRef(values) ? values.value = $event : null),
6615
+ field: vue.unref(fields).branches
6616
+ }, null, 8, ["modelValue", "field"])
6617
+ ]),
6618
+ _: 1
6619
+ /* STABLE */
6620
+ }, 8, ["initial-values", "is-loading", "is-changed", "onCancel", "onSubmit"])
6621
+ ]),
6622
+ _: 1
6623
+ /* STABLE */
6624
+ })
6625
+ ]),
6626
+ _: 1
6627
+ /* STABLE */
6628
+ }, 8, ["use-url"])
6629
+ ]),
6630
+ _: 1
6631
+ /* STABLE */
3801
6632
  });
3802
- });
6633
+ };
3803
6634
  }
3804
- return r2;
3805
- }
6635
+ });
6636
+ const TaskModel = personaliaModels.models.TaskModel;
6637
+ const _hoisted_1 = { key: 0 };
6638
+ const _hoisted_2 = { key: 1 };
3806
6639
  const __default__$1 = vue.defineComponent({ name: "TaskWorkButton" });
3807
6640
  const _sfc_main$3 = /* @__PURE__ */ vue.defineComponent({
3808
6641
  ...__default__$1,
3809
6642
  setup(__props) {
3810
- useClientHandle();
3811
- const startTaskWork = () => {
3812
- console.info("Start work");
6643
+ const { client: client2 } = useClientHandle();
6644
+ const {
6645
+ fields,
6646
+ id: id2,
6647
+ initialValues,
6648
+ values,
6649
+ isNew,
6650
+ isLoading,
6651
+ isChanged,
6652
+ isReady,
6653
+ isMain,
6654
+ saveOne,
6655
+ discardChanges
6656
+ } = context.useSingle();
6657
+ const onHandleTaskWork = vue.ref({
6658
+ onStartTaskWorking: true,
6659
+ onFinishedTaskWorking: false,
6660
+ onFinishedDisabledTaskWorking: false
6661
+ });
6662
+ vue.watch(
6663
+ () => [values.value.resultAssignment],
6664
+ ([resultAssignment]) => {
6665
+ switch (true) {
6666
+ case (resultAssignment === null || resultAssignment === void 0):
6667
+ onHandleTaskWork.value.onStartTaskWorking = false;
6668
+ onHandleTaskWork.value.onFinishedTaskWorking = true;
6669
+ break;
6670
+ case (resultAssignment !== null || resultAssignment !== void 0):
6671
+ onHandleTaskWork.value.onStartTaskWorking = false;
6672
+ onHandleTaskWork.value.onFinishedTaskWorking = true;
6673
+ onHandleTaskWork.value.onFinishedDisabledTaskWorking = true;
6674
+ break;
6675
+ default:
6676
+ onHandleTaskWork.value.onStartTaskWorking = true;
6677
+ onHandleTaskWork.value.onFinishedTaskWorking = false;
6678
+ break;
6679
+ }
6680
+ },
6681
+ {
6682
+ immediate: true
6683
+ }
6684
+ );
6685
+ const onClickHandlerStartTaskWork = async () => {
6686
+ var _a, _b;
6687
+ onHandleTaskWork.value.onStartTaskWorking = false;
6688
+ onHandleTaskWork.value.onFinishedTaskWorking = true;
6689
+ try {
6690
+ const responseStartTaskWork = await client2.mutation(context.GraphUtil.executeOne(personaliaModels.models.TaskModel, {}), {
6691
+ action: "startTaskWork",
6692
+ input: {
6693
+ estimatedRealizedAssignmentStart: Date.now(),
6694
+ taskId: (_a = values.value) == null ? void 0 : _a.id
6695
+ }
6696
+ }).toPromise();
6697
+ const wrapper = (_b = responseStartTaskWork.data) == null ? void 0 : _b.executeStartTaskWork;
6698
+ window.location.reload();
6699
+ } catch (error) {
6700
+ }
6701
+ };
6702
+ const onClickHandlerFinishTaskWork = async () => {
6703
+ var _a, _b;
6704
+ onHandleTaskWork.value.onStartTaskWorking = false;
6705
+ onHandleTaskWork.value.onFinishedTaskWorking = true;
6706
+ onHandleTaskWork.value.onFinishedDisabledTaskWorking = true;
6707
+ try {
6708
+ const responseFinishedTaskWork = await client2.mutation(context.GraphUtil.executeOne(personaliaModels.models.TaskModel, {}), {
6709
+ action: "finishTaskWork",
6710
+ input: {
6711
+ estimatedRealizedAssignmentEnd: Date.now(),
6712
+ taskId: (_a = values.value) == null ? void 0 : _a.id
6713
+ }
6714
+ }).toPromise();
6715
+ const wrapper = (_b = responseFinishedTaskWork.data) == null ? void 0 : _b.executeStartTaskWork;
6716
+ window.location.reload();
6717
+ } catch (error) {
6718
+ }
3813
6719
  };
3814
6720
  return (_ctx, _cache) => {
3815
- return vue.openBlock(), vue.createBlock(vue.unref(interfaces.NeonButton), {
3816
- "is-rounded": true,
3817
- size: "sm",
3818
- color: "warning",
3819
- "icon-left": "play",
3820
- label: "Mulai",
3821
- onClick: startTaskWork
3822
- });
6721
+ return vue.openBlock(), vue.createElementBlock(
6722
+ vue.Fragment,
6723
+ null,
6724
+ [
6725
+ onHandleTaskWork.value.onStartTaskWorking ? (vue.openBlock(), vue.createElementBlock("div", _hoisted_1, [
6726
+ vue.createVNode(vue.unref(interfaces.NeonButton), {
6727
+ "is-rounded": true,
6728
+ size: "sm",
6729
+ color: "warning",
6730
+ "icon-left": "play",
6731
+ label: "Mulai",
6732
+ onClick: onClickHandlerStartTaskWork
6733
+ })
6734
+ ])) : vue.createCommentVNode("v-if", true),
6735
+ onHandleTaskWork.value.onFinishedTaskWorking ? (vue.openBlock(), vue.createElementBlock("div", _hoisted_2, [
6736
+ vue.createVNode(vue.unref(interfaces.NeonButton), {
6737
+ "is-rounded": true,
6738
+ size: "sm",
6739
+ color: "success",
6740
+ "icon-left": "check",
6741
+ label: "Selesai",
6742
+ "is-disabled": onHandleTaskWork.value.onFinishedDisabledTaskWorking,
6743
+ onClick: onClickHandlerFinishTaskWork
6744
+ }, null, 8, ["is-disabled"])
6745
+ ])) : vue.createCommentVNode("v-if", true)
6746
+ ],
6747
+ 64
6748
+ /* STABLE_FRAGMENT */
6749
+ );
3823
6750
  };
3824
6751
  }
3825
6752
  });
@@ -3844,7 +6771,7 @@ const _sfc_main$1 = /* @__PURE__ */ vue.defineComponent({
3844
6771
  setup(__props) {
3845
6772
  const {
3846
6773
  fields,
3847
- id,
6774
+ id: id2,
3848
6775
  initialValues,
3849
6776
  values,
3850
6777
  isNew,
@@ -4072,7 +6999,7 @@ const _sfc_main = /* @__PURE__ */ vue.defineComponent({
4072
6999
  setup(__props) {
4073
7000
  const {
4074
7001
  fields,
4075
- id,
7002
+ id: id2,
4076
7003
  initialValues,
4077
7004
  values,
4078
7005
  isNew,
@@ -4298,10 +7225,23 @@ const _sfc_main = /* @__PURE__ */ vue.defineComponent({
4298
7225
  });
4299
7226
  const components = /* @__PURE__ */ Object.freeze(/* @__PURE__ */ Object.defineProperty({
4300
7227
  __proto__: null,
7228
+ CheckInAccess,
7229
+ CheckInCollection: _sfc_main$c,
7230
+ CheckInModel,
7231
+ CheckInPresenceCollection,
7232
+ CheckInScanError: _sfc_main$f,
7233
+ CheckInScanSuccess: _sfc_main$d,
7234
+ CheckInScanner,
7235
+ CheckInSingle,
7236
+ SituationCollection: _sfc_main$9,
7237
+ SituationModel,
7238
+ SituationSingle: _sfc_main$8,
7239
+ SituationSupportive: _sfc_main$6,
4301
7240
  SituationTypeCollection: _sfc_main$5,
4302
7241
  SituationTypeModel,
4303
7242
  SituationTypeSingle: _sfc_main$4,
4304
- StaffCollection: _sfc_main$7,
7243
+ SituationWork: _sfc_main$7,
7244
+ StaffCollection: _sfc_main$b,
4305
7245
  StaffModel,
4306
7246
  StaffSingle,
4307
7247
  TaskCollection: _sfc_main$2,
@@ -4309,11 +7249,11 @@ const components = /* @__PURE__ */ Object.freeze(/* @__PURE__ */ Object.definePr
4309
7249
  TaskSingle: _sfc_main$1,
4310
7250
  TaskWork: _sfc_main,
4311
7251
  TaskWorkButton: _sfc_main$3,
4312
- XxxButton: _sfc_main$8
7252
+ XxxButton: _sfc_main$j
4313
7253
  }, Symbol.toStringTag, { value: "Module" }));
4314
7254
  function registerComponents(app) {
4315
- Object.entries(components).forEach(([name, component]) => {
4316
- client.ComponentUtil.register(app, name, component);
7255
+ Object.entries(components).forEach(([name, component2]) => {
7256
+ client.ComponentUtil.register(app, name, component2);
4317
7257
  });
4318
7258
  }
4319
7259
  const graphql = /* @__PURE__ */ Object.freeze(/* @__PURE__ */ Object.defineProperty({
@@ -4324,12 +7264,128 @@ const OperasionalInterfacesPlugin = {
4324
7264
  registerComponents(app);
4325
7265
  }
4326
7266
  };
7267
+ const createWorker = () => new Worker(URL.createObjectURL(new Blob([`class x{constructor(a,b){this.width=b;this.height=a.length/b;this.data=a}static createEmpty(a,b){return new x(new Uint8ClampedArray(a*b),a)}get(a,b){return 0>a||a>=this.width||0>b||b>=this.height?!1:!!this.data[b*this.width+a]}set(a,b,c){this.data[b*this.width+a]=c?1:0}setRegion(a,b,c,d,e){for(let f=b;f<b+d;f++)for(let g=a;g<a+c;g++)this.set(g,f,!!e)}}
7268
+ class A{constructor(a,b,c){this.width=a;a*=b;if(c&&c.length!==a)throw Error("Wrong buffer size");this.data=c||new Uint8ClampedArray(a)}get(a,b){return this.data[b*this.width+a]}set(a,b,c){this.data[b*this.width+a]=c}}
7269
+ class ba{constructor(a){this.bitOffset=this.byteOffset=0;this.bytes=a}readBits(a){if(1>a||32<a||a>this.available())throw Error("Cannot read "+a.toString()+" bits");var b=0;if(0<this.bitOffset){b=8-this.bitOffset;var c=a<b?a:b;b-=c;b=(this.bytes[this.byteOffset]&255>>8-c<<b)>>b;a-=c;this.bitOffset+=c;8===this.bitOffset&&(this.bitOffset=0,this.byteOffset++)}if(0<a){for(;8<=a;)b=b<<8|this.bytes[this.byteOffset]&255,this.byteOffset++,a-=8;0<a&&(c=8-a,b=b<<a|(this.bytes[this.byteOffset]&255>>c<<c)>>c,
7270
+ this.bitOffset+=a)}return b}available(){return 8*(this.bytes.length-this.byteOffset)-this.bitOffset}}var B,C=B||(B={});C.Numeric="numeric";C.Alphanumeric="alphanumeric";C.Byte="byte";C.Kanji="kanji";C.ECI="eci";C.StructuredAppend="structuredappend";var D,E=D||(D={});E[E.Terminator=0]="Terminator";E[E.Numeric=1]="Numeric";E[E.Alphanumeric=2]="Alphanumeric";E[E.Byte=4]="Byte";E[E.Kanji=8]="Kanji";E[E.ECI=7]="ECI";E[E.StructuredAppend=3]="StructuredAppend";let F="0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ $%*+-./:".split("");
7271
+ function ca(a,b){let c=[],d="";b=a.readBits([8,16,16][b]);for(let e=0;e<b;e++){let f=a.readBits(8);c.push(f)}try{d+=decodeURIComponent(c.map(e=>\`%\${("0"+e.toString(16)).substr(-2)}\`).join(""))}catch(e){}return{bytes:c,text:d}}
7272
+ function da(a,b){a=new ba(a);let c=9>=b?0:26>=b?1:2;for(b={text:"",bytes:[],chunks:[],version:b};4<=a.available();){var d=a.readBits(4);if(d===D.Terminator)return b;if(d===D.ECI)0===a.readBits(1)?b.chunks.push({type:B.ECI,assignmentNumber:a.readBits(7)}):0===a.readBits(1)?b.chunks.push({type:B.ECI,assignmentNumber:a.readBits(14)}):0===a.readBits(1)?b.chunks.push({type:B.ECI,assignmentNumber:a.readBits(21)}):b.chunks.push({type:B.ECI,assignmentNumber:-1});else if(d===D.Numeric){var e=a,f=[];d="";for(var g=
7273
+ e.readBits([10,12,14][c]);3<=g;){var h=e.readBits(10);if(1E3<=h)throw Error("Invalid numeric value above 999");var k=Math.floor(h/100),m=Math.floor(h/10)%10;h%=10;f.push(48+k,48+m,48+h);d+=k.toString()+m.toString()+h.toString();g-=3}if(2===g){g=e.readBits(7);if(100<=g)throw Error("Invalid numeric value above 99");e=Math.floor(g/10);g%=10;f.push(48+e,48+g);d+=e.toString()+g.toString()}else if(1===g){e=e.readBits(4);if(10<=e)throw Error("Invalid numeric value above 9");f.push(48+e);d+=e.toString()}b.text+=
7274
+ d;b.bytes.push(...f);b.chunks.push({type:B.Numeric,text:d})}else if(d===D.Alphanumeric){e=a;f=[];d="";for(g=e.readBits([9,11,13][c]);2<=g;)m=e.readBits(11),k=Math.floor(m/45),m%=45,f.push(F[k].charCodeAt(0),F[m].charCodeAt(0)),d+=F[k]+F[m],g-=2;1===g&&(e=e.readBits(6),f.push(F[e].charCodeAt(0)),d+=F[e]);b.text+=d;b.bytes.push(...f);b.chunks.push({type:B.Alphanumeric,text:d})}else if(d===D.Byte)d=ca(a,c),b.text+=d.text,b.bytes.push(...d.bytes),b.chunks.push({type:B.Byte,bytes:d.bytes,text:d.text});
7275
+ else if(d===D.Kanji){f=a;d=[];e=f.readBits([8,10,12][c]);for(g=0;g<e;g++)k=f.readBits(13),k=Math.floor(k/192)<<8|k%192,k=7936>k?k+33088:k+49472,d.push(k>>8,k&255);f=(new TextDecoder("shift-jis")).decode(Uint8Array.from(d));b.text+=f;b.bytes.push(...d);b.chunks.push({type:B.Kanji,bytes:d,text:f})}else d===D.StructuredAppend&&b.chunks.push({type:B.StructuredAppend,currentSequence:a.readBits(4),totalSequence:a.readBits(4),parity:a.readBits(8)})}if(0===a.available()||0===a.readBits(a.available()))return b}
7276
+ class G{constructor(a,b){if(0===b.length)throw Error("No coefficients.");this.field=a;let c=b.length;if(1<c&&0===b[0]){let d=1;for(;d<c&&0===b[d];)d++;if(d===c)this.coefficients=a.zero.coefficients;else for(this.coefficients=new Uint8ClampedArray(c-d),a=0;a<this.coefficients.length;a++)this.coefficients[a]=b[d+a]}else this.coefficients=b}degree(){return this.coefficients.length-1}isZero(){return 0===this.coefficients[0]}getCoefficient(a){return this.coefficients[this.coefficients.length-1-a]}addOrSubtract(a){if(this.isZero())return a;
7277
+ if(a.isZero())return this;let b=this.coefficients;a=a.coefficients;b.length>a.length&&([b,a]=[a,b]);let c=new Uint8ClampedArray(a.length),d=a.length-b.length;for(var e=0;e<d;e++)c[e]=a[e];for(e=d;e<a.length;e++)c[e]=b[e-d]^a[e];return new G(this.field,c)}multiply(a){if(0===a)return this.field.zero;if(1===a)return this;let b=this.coefficients.length,c=new Uint8ClampedArray(b);for(let d=0;d<b;d++)c[d]=this.field.multiply(this.coefficients[d],a);return new G(this.field,c)}multiplyPoly(a){if(this.isZero()||
7278
+ a.isZero())return this.field.zero;let b=this.coefficients,c=b.length;a=a.coefficients;let d=a.length,e=new Uint8ClampedArray(c+d-1);for(let f=0;f<c;f++){let g=b[f];for(let h=0;h<d;h++)e[f+h]=H(e[f+h],this.field.multiply(g,a[h]))}return new G(this.field,e)}multiplyByMonomial(a,b){if(0>a)throw Error("Invalid degree less than 0");if(0===b)return this.field.zero;let c=this.coefficients.length;a=new Uint8ClampedArray(c+a);for(let d=0;d<c;d++)a[d]=this.field.multiply(this.coefficients[d],b);return new G(this.field,
7279
+ a)}evaluateAt(a){let b=0;if(0===a)return this.getCoefficient(0);let c=this.coefficients.length;if(1===a)return this.coefficients.forEach(d=>{b^=d}),b;b=this.coefficients[0];for(let d=1;d<c;d++)b=H(this.field.multiply(a,b),this.coefficients[d]);return b}}function H(a,b){return a^b}
7280
+ class ea{constructor(a,b,c){this.primitive=a;this.size=b;this.generatorBase=c;this.expTable=Array(this.size);this.logTable=Array(this.size);a=1;for(b=0;b<this.size;b++)this.expTable[b]=a,a*=2,a>=this.size&&(a=(a^this.primitive)&this.size-1);for(a=0;a<this.size-1;a++)this.logTable[this.expTable[a]]=a;this.zero=new G(this,Uint8ClampedArray.from([0]));this.one=new G(this,Uint8ClampedArray.from([1]))}multiply(a,b){return 0===a||0===b?0:this.expTable[(this.logTable[a]+this.logTable[b])%(this.size-1)]}inverse(a){if(0===
7281
+ a)throw Error("Can't invert 0");return this.expTable[this.size-this.logTable[a]-1]}buildMonomial(a,b){if(0>a)throw Error("Invalid monomial degree less than 0");if(0===b)return this.zero;a=new Uint8ClampedArray(a+1);a[0]=b;return new G(this,a)}log(a){if(0===a)throw Error("Can't take log(0)");return this.logTable[a]}exp(a){return this.expTable[a]}}
7282
+ function fa(a,b,c,d){b.degree()<c.degree()&&([b,c]=[c,b]);let e=a.zero;for(var f=a.one;c.degree()>=d/2;){var g=b;let h=e;b=c;e=f;if(b.isZero())return null;c=g;f=a.zero;g=b.getCoefficient(b.degree());for(g=a.inverse(g);c.degree()>=b.degree()&&!c.isZero();){let k=c.degree()-b.degree(),m=a.multiply(c.getCoefficient(c.degree()),g);f=f.addOrSubtract(a.buildMonomial(k,m));c=c.addOrSubtract(b.multiplyByMonomial(k,m))}f=f.multiplyPoly(e).addOrSubtract(h);if(c.degree()>=b.degree())return null}d=f.getCoefficient(0);
7283
+ if(0===d)return null;a=a.inverse(d);return[f.multiply(a),c.multiply(a)]}
7284
+ function ha(a,b){let c=new Uint8ClampedArray(a.length);c.set(a);a=new ea(285,256,0);var d=new G(a,c),e=new Uint8ClampedArray(b),f=!1;for(var g=0;g<b;g++){var h=d.evaluateAt(a.exp(g+a.generatorBase));e[e.length-1-g]=h;0!==h&&(f=!0)}if(!f)return c;d=new G(a,e);d=fa(a,a.buildMonomial(b,1),d,b);if(null===d)return null;b=d[0];g=b.degree();if(1===g)b=[b.getCoefficient(1)];else{e=Array(g);f=0;for(h=1;h<a.size&&f<g;h++)0===b.evaluateAt(h)&&(e[f]=a.inverse(h),f++);b=f!==g?null:e}if(null==b)return null;e=d[1];
7285
+ f=b.length;d=Array(f);for(g=0;g<f;g++){h=a.inverse(b[g]);let k=1;for(let m=0;m<f;m++)g!==m&&(k=a.multiply(k,H(1,a.multiply(b[m],h))));d[g]=a.multiply(e.evaluateAt(h),a.inverse(k));0!==a.generatorBase&&(d[g]=a.multiply(d[g],h))}for(e=0;e<b.length;e++){f=c.length-1-a.log(b[e]);if(0>f)return null;c[f]^=d[e]}return c}
7286
+ let I=[{infoBits:null,versionNumber:1,alignmentPatternCenters:[],errorCorrectionLevels:[{ecCodewordsPerBlock:7,ecBlocks:[{numBlocks:1,dataCodewordsPerBlock:19}]},{ecCodewordsPerBlock:10,ecBlocks:[{numBlocks:1,dataCodewordsPerBlock:16}]},{ecCodewordsPerBlock:13,ecBlocks:[{numBlocks:1,dataCodewordsPerBlock:13}]},{ecCodewordsPerBlock:17,ecBlocks:[{numBlocks:1,dataCodewordsPerBlock:9}]}]},{infoBits:null,versionNumber:2,alignmentPatternCenters:[6,18],errorCorrectionLevels:[{ecCodewordsPerBlock:10,ecBlocks:[{numBlocks:1,
7287
+ dataCodewordsPerBlock:34}]},{ecCodewordsPerBlock:16,ecBlocks:[{numBlocks:1,dataCodewordsPerBlock:28}]},{ecCodewordsPerBlock:22,ecBlocks:[{numBlocks:1,dataCodewordsPerBlock:22}]},{ecCodewordsPerBlock:28,ecBlocks:[{numBlocks:1,dataCodewordsPerBlock:16}]}]},{infoBits:null,versionNumber:3,alignmentPatternCenters:[6,22],errorCorrectionLevels:[{ecCodewordsPerBlock:15,ecBlocks:[{numBlocks:1,dataCodewordsPerBlock:55}]},{ecCodewordsPerBlock:26,ecBlocks:[{numBlocks:1,dataCodewordsPerBlock:44}]},{ecCodewordsPerBlock:18,
7288
+ ecBlocks:[{numBlocks:2,dataCodewordsPerBlock:17}]},{ecCodewordsPerBlock:22,ecBlocks:[{numBlocks:2,dataCodewordsPerBlock:13}]}]},{infoBits:null,versionNumber:4,alignmentPatternCenters:[6,26],errorCorrectionLevels:[{ecCodewordsPerBlock:20,ecBlocks:[{numBlocks:1,dataCodewordsPerBlock:80}]},{ecCodewordsPerBlock:18,ecBlocks:[{numBlocks:2,dataCodewordsPerBlock:32}]},{ecCodewordsPerBlock:26,ecBlocks:[{numBlocks:2,dataCodewordsPerBlock:24}]},{ecCodewordsPerBlock:16,ecBlocks:[{numBlocks:4,dataCodewordsPerBlock:9}]}]},
7289
+ {infoBits:null,versionNumber:5,alignmentPatternCenters:[6,30],errorCorrectionLevels:[{ecCodewordsPerBlock:26,ecBlocks:[{numBlocks:1,dataCodewordsPerBlock:108}]},{ecCodewordsPerBlock:24,ecBlocks:[{numBlocks:2,dataCodewordsPerBlock:43}]},{ecCodewordsPerBlock:18,ecBlocks:[{numBlocks:2,dataCodewordsPerBlock:15},{numBlocks:2,dataCodewordsPerBlock:16}]},{ecCodewordsPerBlock:22,ecBlocks:[{numBlocks:2,dataCodewordsPerBlock:11},{numBlocks:2,dataCodewordsPerBlock:12}]}]},{infoBits:null,versionNumber:6,alignmentPatternCenters:[6,
7290
+ 34],errorCorrectionLevels:[{ecCodewordsPerBlock:18,ecBlocks:[{numBlocks:2,dataCodewordsPerBlock:68}]},{ecCodewordsPerBlock:16,ecBlocks:[{numBlocks:4,dataCodewordsPerBlock:27}]},{ecCodewordsPerBlock:24,ecBlocks:[{numBlocks:4,dataCodewordsPerBlock:19}]},{ecCodewordsPerBlock:28,ecBlocks:[{numBlocks:4,dataCodewordsPerBlock:15}]}]},{infoBits:31892,versionNumber:7,alignmentPatternCenters:[6,22,38],errorCorrectionLevels:[{ecCodewordsPerBlock:20,ecBlocks:[{numBlocks:2,dataCodewordsPerBlock:78}]},{ecCodewordsPerBlock:18,
7291
+ ecBlocks:[{numBlocks:4,dataCodewordsPerBlock:31}]},{ecCodewordsPerBlock:18,ecBlocks:[{numBlocks:2,dataCodewordsPerBlock:14},{numBlocks:4,dataCodewordsPerBlock:15}]},{ecCodewordsPerBlock:26,ecBlocks:[{numBlocks:4,dataCodewordsPerBlock:13},{numBlocks:1,dataCodewordsPerBlock:14}]}]},{infoBits:34236,versionNumber:8,alignmentPatternCenters:[6,24,42],errorCorrectionLevels:[{ecCodewordsPerBlock:24,ecBlocks:[{numBlocks:2,dataCodewordsPerBlock:97}]},{ecCodewordsPerBlock:22,ecBlocks:[{numBlocks:2,dataCodewordsPerBlock:38},
7292
+ {numBlocks:2,dataCodewordsPerBlock:39}]},{ecCodewordsPerBlock:22,ecBlocks:[{numBlocks:4,dataCodewordsPerBlock:18},{numBlocks:2,dataCodewordsPerBlock:19}]},{ecCodewordsPerBlock:26,ecBlocks:[{numBlocks:4,dataCodewordsPerBlock:14},{numBlocks:2,dataCodewordsPerBlock:15}]}]},{infoBits:39577,versionNumber:9,alignmentPatternCenters:[6,26,46],errorCorrectionLevels:[{ecCodewordsPerBlock:30,ecBlocks:[{numBlocks:2,dataCodewordsPerBlock:116}]},{ecCodewordsPerBlock:22,ecBlocks:[{numBlocks:3,dataCodewordsPerBlock:36},
7293
+ {numBlocks:2,dataCodewordsPerBlock:37}]},{ecCodewordsPerBlock:20,ecBlocks:[{numBlocks:4,dataCodewordsPerBlock:16},{numBlocks:4,dataCodewordsPerBlock:17}]},{ecCodewordsPerBlock:24,ecBlocks:[{numBlocks:4,dataCodewordsPerBlock:12},{numBlocks:4,dataCodewordsPerBlock:13}]}]},{infoBits:42195,versionNumber:10,alignmentPatternCenters:[6,28,50],errorCorrectionLevels:[{ecCodewordsPerBlock:18,ecBlocks:[{numBlocks:2,dataCodewordsPerBlock:68},{numBlocks:2,dataCodewordsPerBlock:69}]},{ecCodewordsPerBlock:26,ecBlocks:[{numBlocks:4,
7294
+ dataCodewordsPerBlock:43},{numBlocks:1,dataCodewordsPerBlock:44}]},{ecCodewordsPerBlock:24,ecBlocks:[{numBlocks:6,dataCodewordsPerBlock:19},{numBlocks:2,dataCodewordsPerBlock:20}]},{ecCodewordsPerBlock:28,ecBlocks:[{numBlocks:6,dataCodewordsPerBlock:15},{numBlocks:2,dataCodewordsPerBlock:16}]}]},{infoBits:48118,versionNumber:11,alignmentPatternCenters:[6,30,54],errorCorrectionLevels:[{ecCodewordsPerBlock:20,ecBlocks:[{numBlocks:4,dataCodewordsPerBlock:81}]},{ecCodewordsPerBlock:30,ecBlocks:[{numBlocks:1,
7295
+ dataCodewordsPerBlock:50},{numBlocks:4,dataCodewordsPerBlock:51}]},{ecCodewordsPerBlock:28,ecBlocks:[{numBlocks:4,dataCodewordsPerBlock:22},{numBlocks:4,dataCodewordsPerBlock:23}]},{ecCodewordsPerBlock:24,ecBlocks:[{numBlocks:3,dataCodewordsPerBlock:12},{numBlocks:8,dataCodewordsPerBlock:13}]}]},{infoBits:51042,versionNumber:12,alignmentPatternCenters:[6,32,58],errorCorrectionLevels:[{ecCodewordsPerBlock:24,ecBlocks:[{numBlocks:2,dataCodewordsPerBlock:92},{numBlocks:2,dataCodewordsPerBlock:93}]},
7296
+ {ecCodewordsPerBlock:22,ecBlocks:[{numBlocks:6,dataCodewordsPerBlock:36},{numBlocks:2,dataCodewordsPerBlock:37}]},{ecCodewordsPerBlock:26,ecBlocks:[{numBlocks:4,dataCodewordsPerBlock:20},{numBlocks:6,dataCodewordsPerBlock:21}]},{ecCodewordsPerBlock:28,ecBlocks:[{numBlocks:7,dataCodewordsPerBlock:14},{numBlocks:4,dataCodewordsPerBlock:15}]}]},{infoBits:55367,versionNumber:13,alignmentPatternCenters:[6,34,62],errorCorrectionLevels:[{ecCodewordsPerBlock:26,ecBlocks:[{numBlocks:4,dataCodewordsPerBlock:107}]},
7297
+ {ecCodewordsPerBlock:22,ecBlocks:[{numBlocks:8,dataCodewordsPerBlock:37},{numBlocks:1,dataCodewordsPerBlock:38}]},{ecCodewordsPerBlock:24,ecBlocks:[{numBlocks:8,dataCodewordsPerBlock:20},{numBlocks:4,dataCodewordsPerBlock:21}]},{ecCodewordsPerBlock:22,ecBlocks:[{numBlocks:12,dataCodewordsPerBlock:11},{numBlocks:4,dataCodewordsPerBlock:12}]}]},{infoBits:58893,versionNumber:14,alignmentPatternCenters:[6,26,46,66],errorCorrectionLevels:[{ecCodewordsPerBlock:30,ecBlocks:[{numBlocks:3,dataCodewordsPerBlock:115},
7298
+ {numBlocks:1,dataCodewordsPerBlock:116}]},{ecCodewordsPerBlock:24,ecBlocks:[{numBlocks:4,dataCodewordsPerBlock:40},{numBlocks:5,dataCodewordsPerBlock:41}]},{ecCodewordsPerBlock:20,ecBlocks:[{numBlocks:11,dataCodewordsPerBlock:16},{numBlocks:5,dataCodewordsPerBlock:17}]},{ecCodewordsPerBlock:24,ecBlocks:[{numBlocks:11,dataCodewordsPerBlock:12},{numBlocks:5,dataCodewordsPerBlock:13}]}]},{infoBits:63784,versionNumber:15,alignmentPatternCenters:[6,26,48,70],errorCorrectionLevels:[{ecCodewordsPerBlock:22,
7299
+ ecBlocks:[{numBlocks:5,dataCodewordsPerBlock:87},{numBlocks:1,dataCodewordsPerBlock:88}]},{ecCodewordsPerBlock:24,ecBlocks:[{numBlocks:5,dataCodewordsPerBlock:41},{numBlocks:5,dataCodewordsPerBlock:42}]},{ecCodewordsPerBlock:30,ecBlocks:[{numBlocks:5,dataCodewordsPerBlock:24},{numBlocks:7,dataCodewordsPerBlock:25}]},{ecCodewordsPerBlock:24,ecBlocks:[{numBlocks:11,dataCodewordsPerBlock:12},{numBlocks:7,dataCodewordsPerBlock:13}]}]},{infoBits:68472,versionNumber:16,alignmentPatternCenters:[6,26,50,
7300
+ 74],errorCorrectionLevels:[{ecCodewordsPerBlock:24,ecBlocks:[{numBlocks:5,dataCodewordsPerBlock:98},{numBlocks:1,dataCodewordsPerBlock:99}]},{ecCodewordsPerBlock:28,ecBlocks:[{numBlocks:7,dataCodewordsPerBlock:45},{numBlocks:3,dataCodewordsPerBlock:46}]},{ecCodewordsPerBlock:24,ecBlocks:[{numBlocks:15,dataCodewordsPerBlock:19},{numBlocks:2,dataCodewordsPerBlock:20}]},{ecCodewordsPerBlock:30,ecBlocks:[{numBlocks:3,dataCodewordsPerBlock:15},{numBlocks:13,dataCodewordsPerBlock:16}]}]},{infoBits:70749,
7301
+ versionNumber:17,alignmentPatternCenters:[6,30,54,78],errorCorrectionLevels:[{ecCodewordsPerBlock:28,ecBlocks:[{numBlocks:1,dataCodewordsPerBlock:107},{numBlocks:5,dataCodewordsPerBlock:108}]},{ecCodewordsPerBlock:28,ecBlocks:[{numBlocks:10,dataCodewordsPerBlock:46},{numBlocks:1,dataCodewordsPerBlock:47}]},{ecCodewordsPerBlock:28,ecBlocks:[{numBlocks:1,dataCodewordsPerBlock:22},{numBlocks:15,dataCodewordsPerBlock:23}]},{ecCodewordsPerBlock:28,ecBlocks:[{numBlocks:2,dataCodewordsPerBlock:14},{numBlocks:17,
7302
+ dataCodewordsPerBlock:15}]}]},{infoBits:76311,versionNumber:18,alignmentPatternCenters:[6,30,56,82],errorCorrectionLevels:[{ecCodewordsPerBlock:30,ecBlocks:[{numBlocks:5,dataCodewordsPerBlock:120},{numBlocks:1,dataCodewordsPerBlock:121}]},{ecCodewordsPerBlock:26,ecBlocks:[{numBlocks:9,dataCodewordsPerBlock:43},{numBlocks:4,dataCodewordsPerBlock:44}]},{ecCodewordsPerBlock:28,ecBlocks:[{numBlocks:17,dataCodewordsPerBlock:22},{numBlocks:1,dataCodewordsPerBlock:23}]},{ecCodewordsPerBlock:28,ecBlocks:[{numBlocks:2,
7303
+ dataCodewordsPerBlock:14},{numBlocks:19,dataCodewordsPerBlock:15}]}]},{infoBits:79154,versionNumber:19,alignmentPatternCenters:[6,30,58,86],errorCorrectionLevels:[{ecCodewordsPerBlock:28,ecBlocks:[{numBlocks:3,dataCodewordsPerBlock:113},{numBlocks:4,dataCodewordsPerBlock:114}]},{ecCodewordsPerBlock:26,ecBlocks:[{numBlocks:3,dataCodewordsPerBlock:44},{numBlocks:11,dataCodewordsPerBlock:45}]},{ecCodewordsPerBlock:26,ecBlocks:[{numBlocks:17,dataCodewordsPerBlock:21},{numBlocks:4,dataCodewordsPerBlock:22}]},
7304
+ {ecCodewordsPerBlock:26,ecBlocks:[{numBlocks:9,dataCodewordsPerBlock:13},{numBlocks:16,dataCodewordsPerBlock:14}]}]},{infoBits:84390,versionNumber:20,alignmentPatternCenters:[6,34,62,90],errorCorrectionLevels:[{ecCodewordsPerBlock:28,ecBlocks:[{numBlocks:3,dataCodewordsPerBlock:107},{numBlocks:5,dataCodewordsPerBlock:108}]},{ecCodewordsPerBlock:26,ecBlocks:[{numBlocks:3,dataCodewordsPerBlock:41},{numBlocks:13,dataCodewordsPerBlock:42}]},{ecCodewordsPerBlock:30,ecBlocks:[{numBlocks:15,dataCodewordsPerBlock:24},
7305
+ {numBlocks:5,dataCodewordsPerBlock:25}]},{ecCodewordsPerBlock:28,ecBlocks:[{numBlocks:15,dataCodewordsPerBlock:15},{numBlocks:10,dataCodewordsPerBlock:16}]}]},{infoBits:87683,versionNumber:21,alignmentPatternCenters:[6,28,50,72,94],errorCorrectionLevels:[{ecCodewordsPerBlock:28,ecBlocks:[{numBlocks:4,dataCodewordsPerBlock:116},{numBlocks:4,dataCodewordsPerBlock:117}]},{ecCodewordsPerBlock:26,ecBlocks:[{numBlocks:17,dataCodewordsPerBlock:42}]},{ecCodewordsPerBlock:28,ecBlocks:[{numBlocks:17,dataCodewordsPerBlock:22},
7306
+ {numBlocks:6,dataCodewordsPerBlock:23}]},{ecCodewordsPerBlock:30,ecBlocks:[{numBlocks:19,dataCodewordsPerBlock:16},{numBlocks:6,dataCodewordsPerBlock:17}]}]},{infoBits:92361,versionNumber:22,alignmentPatternCenters:[6,26,50,74,98],errorCorrectionLevels:[{ecCodewordsPerBlock:28,ecBlocks:[{numBlocks:2,dataCodewordsPerBlock:111},{numBlocks:7,dataCodewordsPerBlock:112}]},{ecCodewordsPerBlock:28,ecBlocks:[{numBlocks:17,dataCodewordsPerBlock:46}]},{ecCodewordsPerBlock:30,ecBlocks:[{numBlocks:7,dataCodewordsPerBlock:24},
7307
+ {numBlocks:16,dataCodewordsPerBlock:25}]},{ecCodewordsPerBlock:24,ecBlocks:[{numBlocks:34,dataCodewordsPerBlock:13}]}]},{infoBits:96236,versionNumber:23,alignmentPatternCenters:[6,30,54,74,102],errorCorrectionLevels:[{ecCodewordsPerBlock:30,ecBlocks:[{numBlocks:4,dataCodewordsPerBlock:121},{numBlocks:5,dataCodewordsPerBlock:122}]},{ecCodewordsPerBlock:28,ecBlocks:[{numBlocks:4,dataCodewordsPerBlock:47},{numBlocks:14,dataCodewordsPerBlock:48}]},{ecCodewordsPerBlock:30,ecBlocks:[{numBlocks:11,dataCodewordsPerBlock:24},
7308
+ {numBlocks:14,dataCodewordsPerBlock:25}]},{ecCodewordsPerBlock:30,ecBlocks:[{numBlocks:16,dataCodewordsPerBlock:15},{numBlocks:14,dataCodewordsPerBlock:16}]}]},{infoBits:102084,versionNumber:24,alignmentPatternCenters:[6,28,54,80,106],errorCorrectionLevels:[{ecCodewordsPerBlock:30,ecBlocks:[{numBlocks:6,dataCodewordsPerBlock:117},{numBlocks:4,dataCodewordsPerBlock:118}]},{ecCodewordsPerBlock:28,ecBlocks:[{numBlocks:6,dataCodewordsPerBlock:45},{numBlocks:14,dataCodewordsPerBlock:46}]},{ecCodewordsPerBlock:30,
7309
+ ecBlocks:[{numBlocks:11,dataCodewordsPerBlock:24},{numBlocks:16,dataCodewordsPerBlock:25}]},{ecCodewordsPerBlock:30,ecBlocks:[{numBlocks:30,dataCodewordsPerBlock:16},{numBlocks:2,dataCodewordsPerBlock:17}]}]},{infoBits:102881,versionNumber:25,alignmentPatternCenters:[6,32,58,84,110],errorCorrectionLevels:[{ecCodewordsPerBlock:26,ecBlocks:[{numBlocks:8,dataCodewordsPerBlock:106},{numBlocks:4,dataCodewordsPerBlock:107}]},{ecCodewordsPerBlock:28,ecBlocks:[{numBlocks:8,dataCodewordsPerBlock:47},{numBlocks:13,
7310
+ dataCodewordsPerBlock:48}]},{ecCodewordsPerBlock:30,ecBlocks:[{numBlocks:7,dataCodewordsPerBlock:24},{numBlocks:22,dataCodewordsPerBlock:25}]},{ecCodewordsPerBlock:30,ecBlocks:[{numBlocks:22,dataCodewordsPerBlock:15},{numBlocks:13,dataCodewordsPerBlock:16}]}]},{infoBits:110507,versionNumber:26,alignmentPatternCenters:[6,30,58,86,114],errorCorrectionLevels:[{ecCodewordsPerBlock:28,ecBlocks:[{numBlocks:10,dataCodewordsPerBlock:114},{numBlocks:2,dataCodewordsPerBlock:115}]},{ecCodewordsPerBlock:28,ecBlocks:[{numBlocks:19,
7311
+ dataCodewordsPerBlock:46},{numBlocks:4,dataCodewordsPerBlock:47}]},{ecCodewordsPerBlock:28,ecBlocks:[{numBlocks:28,dataCodewordsPerBlock:22},{numBlocks:6,dataCodewordsPerBlock:23}]},{ecCodewordsPerBlock:30,ecBlocks:[{numBlocks:33,dataCodewordsPerBlock:16},{numBlocks:4,dataCodewordsPerBlock:17}]}]},{infoBits:110734,versionNumber:27,alignmentPatternCenters:[6,34,62,90,118],errorCorrectionLevels:[{ecCodewordsPerBlock:30,ecBlocks:[{numBlocks:8,dataCodewordsPerBlock:122},{numBlocks:4,dataCodewordsPerBlock:123}]},
7312
+ {ecCodewordsPerBlock:28,ecBlocks:[{numBlocks:22,dataCodewordsPerBlock:45},{numBlocks:3,dataCodewordsPerBlock:46}]},{ecCodewordsPerBlock:30,ecBlocks:[{numBlocks:8,dataCodewordsPerBlock:23},{numBlocks:26,dataCodewordsPerBlock:24}]},{ecCodewordsPerBlock:30,ecBlocks:[{numBlocks:12,dataCodewordsPerBlock:15},{numBlocks:28,dataCodewordsPerBlock:16}]}]},{infoBits:117786,versionNumber:28,alignmentPatternCenters:[6,26,50,74,98,122],errorCorrectionLevels:[{ecCodewordsPerBlock:30,ecBlocks:[{numBlocks:3,dataCodewordsPerBlock:117},
7313
+ {numBlocks:10,dataCodewordsPerBlock:118}]},{ecCodewordsPerBlock:28,ecBlocks:[{numBlocks:3,dataCodewordsPerBlock:45},{numBlocks:23,dataCodewordsPerBlock:46}]},{ecCodewordsPerBlock:30,ecBlocks:[{numBlocks:4,dataCodewordsPerBlock:24},{numBlocks:31,dataCodewordsPerBlock:25}]},{ecCodewordsPerBlock:30,ecBlocks:[{numBlocks:11,dataCodewordsPerBlock:15},{numBlocks:31,dataCodewordsPerBlock:16}]}]},{infoBits:119615,versionNumber:29,alignmentPatternCenters:[6,30,54,78,102,126],errorCorrectionLevels:[{ecCodewordsPerBlock:30,
7314
+ ecBlocks:[{numBlocks:7,dataCodewordsPerBlock:116},{numBlocks:7,dataCodewordsPerBlock:117}]},{ecCodewordsPerBlock:28,ecBlocks:[{numBlocks:21,dataCodewordsPerBlock:45},{numBlocks:7,dataCodewordsPerBlock:46}]},{ecCodewordsPerBlock:30,ecBlocks:[{numBlocks:1,dataCodewordsPerBlock:23},{numBlocks:37,dataCodewordsPerBlock:24}]},{ecCodewordsPerBlock:30,ecBlocks:[{numBlocks:19,dataCodewordsPerBlock:15},{numBlocks:26,dataCodewordsPerBlock:16}]}]},{infoBits:126325,versionNumber:30,alignmentPatternCenters:[6,
7315
+ 26,52,78,104,130],errorCorrectionLevels:[{ecCodewordsPerBlock:30,ecBlocks:[{numBlocks:5,dataCodewordsPerBlock:115},{numBlocks:10,dataCodewordsPerBlock:116}]},{ecCodewordsPerBlock:28,ecBlocks:[{numBlocks:19,dataCodewordsPerBlock:47},{numBlocks:10,dataCodewordsPerBlock:48}]},{ecCodewordsPerBlock:30,ecBlocks:[{numBlocks:15,dataCodewordsPerBlock:24},{numBlocks:25,dataCodewordsPerBlock:25}]},{ecCodewordsPerBlock:30,ecBlocks:[{numBlocks:23,dataCodewordsPerBlock:15},{numBlocks:25,dataCodewordsPerBlock:16}]}]},
7316
+ {infoBits:127568,versionNumber:31,alignmentPatternCenters:[6,30,56,82,108,134],errorCorrectionLevels:[{ecCodewordsPerBlock:30,ecBlocks:[{numBlocks:13,dataCodewordsPerBlock:115},{numBlocks:3,dataCodewordsPerBlock:116}]},{ecCodewordsPerBlock:28,ecBlocks:[{numBlocks:2,dataCodewordsPerBlock:46},{numBlocks:29,dataCodewordsPerBlock:47}]},{ecCodewordsPerBlock:30,ecBlocks:[{numBlocks:42,dataCodewordsPerBlock:24},{numBlocks:1,dataCodewordsPerBlock:25}]},{ecCodewordsPerBlock:30,ecBlocks:[{numBlocks:23,dataCodewordsPerBlock:15},
7317
+ {numBlocks:28,dataCodewordsPerBlock:16}]}]},{infoBits:133589,versionNumber:32,alignmentPatternCenters:[6,34,60,86,112,138],errorCorrectionLevels:[{ecCodewordsPerBlock:30,ecBlocks:[{numBlocks:17,dataCodewordsPerBlock:115}]},{ecCodewordsPerBlock:28,ecBlocks:[{numBlocks:10,dataCodewordsPerBlock:46},{numBlocks:23,dataCodewordsPerBlock:47}]},{ecCodewordsPerBlock:30,ecBlocks:[{numBlocks:10,dataCodewordsPerBlock:24},{numBlocks:35,dataCodewordsPerBlock:25}]},{ecCodewordsPerBlock:30,ecBlocks:[{numBlocks:19,
7318
+ dataCodewordsPerBlock:15},{numBlocks:35,dataCodewordsPerBlock:16}]}]},{infoBits:136944,versionNumber:33,alignmentPatternCenters:[6,30,58,86,114,142],errorCorrectionLevels:[{ecCodewordsPerBlock:30,ecBlocks:[{numBlocks:17,dataCodewordsPerBlock:115},{numBlocks:1,dataCodewordsPerBlock:116}]},{ecCodewordsPerBlock:28,ecBlocks:[{numBlocks:14,dataCodewordsPerBlock:46},{numBlocks:21,dataCodewordsPerBlock:47}]},{ecCodewordsPerBlock:30,ecBlocks:[{numBlocks:29,dataCodewordsPerBlock:24},{numBlocks:19,dataCodewordsPerBlock:25}]},
7319
+ {ecCodewordsPerBlock:30,ecBlocks:[{numBlocks:11,dataCodewordsPerBlock:15},{numBlocks:46,dataCodewordsPerBlock:16}]}]},{infoBits:141498,versionNumber:34,alignmentPatternCenters:[6,34,62,90,118,146],errorCorrectionLevels:[{ecCodewordsPerBlock:30,ecBlocks:[{numBlocks:13,dataCodewordsPerBlock:115},{numBlocks:6,dataCodewordsPerBlock:116}]},{ecCodewordsPerBlock:28,ecBlocks:[{numBlocks:14,dataCodewordsPerBlock:46},{numBlocks:23,dataCodewordsPerBlock:47}]},{ecCodewordsPerBlock:30,ecBlocks:[{numBlocks:44,
7320
+ dataCodewordsPerBlock:24},{numBlocks:7,dataCodewordsPerBlock:25}]},{ecCodewordsPerBlock:30,ecBlocks:[{numBlocks:59,dataCodewordsPerBlock:16},{numBlocks:1,dataCodewordsPerBlock:17}]}]},{infoBits:145311,versionNumber:35,alignmentPatternCenters:[6,30,54,78,102,126,150],errorCorrectionLevels:[{ecCodewordsPerBlock:30,ecBlocks:[{numBlocks:12,dataCodewordsPerBlock:121},{numBlocks:7,dataCodewordsPerBlock:122}]},{ecCodewordsPerBlock:28,ecBlocks:[{numBlocks:12,dataCodewordsPerBlock:47},{numBlocks:26,dataCodewordsPerBlock:48}]},
7321
+ {ecCodewordsPerBlock:30,ecBlocks:[{numBlocks:39,dataCodewordsPerBlock:24},{numBlocks:14,dataCodewordsPerBlock:25}]},{ecCodewordsPerBlock:30,ecBlocks:[{numBlocks:22,dataCodewordsPerBlock:15},{numBlocks:41,dataCodewordsPerBlock:16}]}]},{infoBits:150283,versionNumber:36,alignmentPatternCenters:[6,24,50,76,102,128,154],errorCorrectionLevels:[{ecCodewordsPerBlock:30,ecBlocks:[{numBlocks:6,dataCodewordsPerBlock:121},{numBlocks:14,dataCodewordsPerBlock:122}]},{ecCodewordsPerBlock:28,ecBlocks:[{numBlocks:6,
7322
+ dataCodewordsPerBlock:47},{numBlocks:34,dataCodewordsPerBlock:48}]},{ecCodewordsPerBlock:30,ecBlocks:[{numBlocks:46,dataCodewordsPerBlock:24},{numBlocks:10,dataCodewordsPerBlock:25}]},{ecCodewordsPerBlock:30,ecBlocks:[{numBlocks:2,dataCodewordsPerBlock:15},{numBlocks:64,dataCodewordsPerBlock:16}]}]},{infoBits:152622,versionNumber:37,alignmentPatternCenters:[6,28,54,80,106,132,158],errorCorrectionLevels:[{ecCodewordsPerBlock:30,ecBlocks:[{numBlocks:17,dataCodewordsPerBlock:122},{numBlocks:4,dataCodewordsPerBlock:123}]},
7323
+ {ecCodewordsPerBlock:28,ecBlocks:[{numBlocks:29,dataCodewordsPerBlock:46},{numBlocks:14,dataCodewordsPerBlock:47}]},{ecCodewordsPerBlock:30,ecBlocks:[{numBlocks:49,dataCodewordsPerBlock:24},{numBlocks:10,dataCodewordsPerBlock:25}]},{ecCodewordsPerBlock:30,ecBlocks:[{numBlocks:24,dataCodewordsPerBlock:15},{numBlocks:46,dataCodewordsPerBlock:16}]}]},{infoBits:158308,versionNumber:38,alignmentPatternCenters:[6,32,58,84,110,136,162],errorCorrectionLevels:[{ecCodewordsPerBlock:30,ecBlocks:[{numBlocks:4,
7324
+ dataCodewordsPerBlock:122},{numBlocks:18,dataCodewordsPerBlock:123}]},{ecCodewordsPerBlock:28,ecBlocks:[{numBlocks:13,dataCodewordsPerBlock:46},{numBlocks:32,dataCodewordsPerBlock:47}]},{ecCodewordsPerBlock:30,ecBlocks:[{numBlocks:48,dataCodewordsPerBlock:24},{numBlocks:14,dataCodewordsPerBlock:25}]},{ecCodewordsPerBlock:30,ecBlocks:[{numBlocks:42,dataCodewordsPerBlock:15},{numBlocks:32,dataCodewordsPerBlock:16}]}]},{infoBits:161089,versionNumber:39,alignmentPatternCenters:[6,26,54,82,110,138,166],
7325
+ errorCorrectionLevels:[{ecCodewordsPerBlock:30,ecBlocks:[{numBlocks:20,dataCodewordsPerBlock:117},{numBlocks:4,dataCodewordsPerBlock:118}]},{ecCodewordsPerBlock:28,ecBlocks:[{numBlocks:40,dataCodewordsPerBlock:47},{numBlocks:7,dataCodewordsPerBlock:48}]},{ecCodewordsPerBlock:30,ecBlocks:[{numBlocks:43,dataCodewordsPerBlock:24},{numBlocks:22,dataCodewordsPerBlock:25}]},{ecCodewordsPerBlock:30,ecBlocks:[{numBlocks:10,dataCodewordsPerBlock:15},{numBlocks:67,dataCodewordsPerBlock:16}]}]},{infoBits:167017,
7326
+ versionNumber:40,alignmentPatternCenters:[6,30,58,86,114,142,170],errorCorrectionLevels:[{ecCodewordsPerBlock:30,ecBlocks:[{numBlocks:19,dataCodewordsPerBlock:118},{numBlocks:6,dataCodewordsPerBlock:119}]},{ecCodewordsPerBlock:28,ecBlocks:[{numBlocks:18,dataCodewordsPerBlock:47},{numBlocks:31,dataCodewordsPerBlock:48}]},{ecCodewordsPerBlock:30,ecBlocks:[{numBlocks:34,dataCodewordsPerBlock:24},{numBlocks:34,dataCodewordsPerBlock:25}]},{ecCodewordsPerBlock:30,ecBlocks:[{numBlocks:20,dataCodewordsPerBlock:15},
7327
+ {numBlocks:61,dataCodewordsPerBlock:16}]}]}];function J(a,b){a^=b;for(b=0;a;)b++,a&=a-1;return b}function K(a,b){return b<<1|a}
7328
+ let ia=[{bits:21522,formatInfo:{errorCorrectionLevel:1,dataMask:0}},{bits:20773,formatInfo:{errorCorrectionLevel:1,dataMask:1}},{bits:24188,formatInfo:{errorCorrectionLevel:1,dataMask:2}},{bits:23371,formatInfo:{errorCorrectionLevel:1,dataMask:3}},{bits:17913,formatInfo:{errorCorrectionLevel:1,dataMask:4}},{bits:16590,formatInfo:{errorCorrectionLevel:1,dataMask:5}},{bits:20375,formatInfo:{errorCorrectionLevel:1,dataMask:6}},{bits:19104,formatInfo:{errorCorrectionLevel:1,dataMask:7}},{bits:30660,formatInfo:{errorCorrectionLevel:0,
7329
+ dataMask:0}},{bits:29427,formatInfo:{errorCorrectionLevel:0,dataMask:1}},{bits:32170,formatInfo:{errorCorrectionLevel:0,dataMask:2}},{bits:30877,formatInfo:{errorCorrectionLevel:0,dataMask:3}},{bits:26159,formatInfo:{errorCorrectionLevel:0,dataMask:4}},{bits:25368,formatInfo:{errorCorrectionLevel:0,dataMask:5}},{bits:27713,formatInfo:{errorCorrectionLevel:0,dataMask:6}},{bits:26998,formatInfo:{errorCorrectionLevel:0,dataMask:7}},{bits:5769,formatInfo:{errorCorrectionLevel:3,dataMask:0}},{bits:5054,
7330
+ formatInfo:{errorCorrectionLevel:3,dataMask:1}},{bits:7399,formatInfo:{errorCorrectionLevel:3,dataMask:2}},{bits:6608,formatInfo:{errorCorrectionLevel:3,dataMask:3}},{bits:1890,formatInfo:{errorCorrectionLevel:3,dataMask:4}},{bits:597,formatInfo:{errorCorrectionLevel:3,dataMask:5}},{bits:3340,formatInfo:{errorCorrectionLevel:3,dataMask:6}},{bits:2107,formatInfo:{errorCorrectionLevel:3,dataMask:7}},{bits:13663,formatInfo:{errorCorrectionLevel:2,dataMask:0}},{bits:12392,formatInfo:{errorCorrectionLevel:2,
7331
+ dataMask:1}},{bits:16177,formatInfo:{errorCorrectionLevel:2,dataMask:2}},{bits:14854,formatInfo:{errorCorrectionLevel:2,dataMask:3}},{bits:9396,formatInfo:{errorCorrectionLevel:2,dataMask:4}},{bits:8579,formatInfo:{errorCorrectionLevel:2,dataMask:5}},{bits:11994,formatInfo:{errorCorrectionLevel:2,dataMask:6}},{bits:11245,formatInfo:{errorCorrectionLevel:2,dataMask:7}}],ja=[a=>0===(a.y+a.x)%2,a=>0===a.y%2,a=>0===a.x%3,a=>0===(a.y+a.x)%3,a=>0===(Math.floor(a.y/2)+Math.floor(a.x/3))%2,a=>0===a.x*a.y%
7332
+ 2+a.x*a.y%3,a=>0===(a.y*a.x%2+a.y*a.x%3)%2,a=>0===((a.y+a.x)%2+a.y*a.x%3)%2];
7333
+ function ka(a,b,c){c=ja[c.dataMask];let d=a.height;var e=17+4*b.versionNumber;let f=x.createEmpty(e,e);f.setRegion(0,0,9,9,!0);f.setRegion(e-8,0,8,9,!0);f.setRegion(0,e-8,9,8,!0);for(var g of b.alignmentPatternCenters)for(var h of b.alignmentPatternCenters)6===g&&6===h||6===g&&h===e-7||g===e-7&&6===h||f.setRegion(g-2,h-2,5,5,!0);f.setRegion(6,9,1,e-17,!0);f.setRegion(9,6,e-17,1,!0);6<b.versionNumber&&(f.setRegion(e-11,0,3,6,!0),f.setRegion(0,e-11,6,3,!0));b=[];h=g=0;e=!0;for(let k=d-1;0<k;k-=2){6===
7334
+ k&&k--;for(let m=0;m<d;m++){let l=e?d-1-m:m;for(let n=0;2>n;n++){let q=k-n;if(!f.get(q,l)){h++;let r=a.get(q,l);c({y:l,x:q})&&(r=!r);g=g<<1|r;8===h&&(b.push(g),g=h=0)}}}e=!e}return b}
7335
+ function la(a){var b=a.height,c=Math.floor((b-17)/4);if(6>=c)return I[c-1];c=0;for(var d=5;0<=d;d--)for(var e=b-9;e>=b-11;e--)c=K(a.get(e,d),c);d=0;for(e=5;0<=e;e--)for(let g=b-9;g>=b-11;g--)d=K(a.get(e,g),d);a=Infinity;let f;for(let g of I){if(g.infoBits===c||g.infoBits===d)return g;b=J(c,g.infoBits);b<a&&(f=g,a=b);b=J(d,g.infoBits);b<a&&(f=g,a=b)}if(3>=a)return f}
7336
+ function ma(a){let b=0;for(var c=0;8>=c;c++)6!==c&&(b=K(a.get(c,8),b));for(c=7;0<=c;c--)6!==c&&(b=K(a.get(8,c),b));var d=a.height;c=0;for(var e=d-1;e>=d-7;e--)c=K(a.get(8,e),c);for(e=d-8;e<d;e++)c=K(a.get(e,8),c);a=Infinity;d=null;for(let {bits:f,formatInfo:g}of ia){if(f===b||f===c)return g;e=J(b,f);e<a&&(d=g,a=e);b!==c&&(e=J(c,f),e<a&&(d=g,a=e))}return 3>=a?d:null}
7337
+ function na(a,b,c){let d=b.errorCorrectionLevels[c],e=[],f=0;d.ecBlocks.forEach(h=>{for(let k=0;k<h.numBlocks;k++)e.push({numDataCodewords:h.dataCodewordsPerBlock,codewords:[]}),f+=h.dataCodewordsPerBlock+d.ecCodewordsPerBlock});if(a.length<f)return null;a=a.slice(0,f);b=d.ecBlocks[0].dataCodewordsPerBlock;for(c=0;c<b;c++)for(var g of e)g.codewords.push(a.shift());if(1<d.ecBlocks.length)for(g=d.ecBlocks[0].numBlocks,b=d.ecBlocks[1].numBlocks,c=0;c<b;c++)e[g+c].codewords.push(a.shift());for(;0<a.length;)for(let h of e)h.codewords.push(a.shift());
7338
+ return e}function L(a){let b=la(a);if(!b)return null;var c=ma(a);if(!c)return null;a=ka(a,b,c);var d=na(a,b,c.errorCorrectionLevel);if(!d)return null;c=d.reduce((e,f)=>e+f.numDataCodewords,0);c=new Uint8ClampedArray(c);a=0;for(let e of d){d=ha(e.codewords,e.codewords.length-e.numDataCodewords);if(!d)return null;for(let f=0;f<e.numDataCodewords;f++)c[a++]=d[f]}try{return da(c,b.versionNumber)}catch(e){return null}}
7339
+ function M(a,b,c,d){var e=a.x-b.x+c.x-d.x;let f=a.y-b.y+c.y-d.y;if(0===e&&0===f)return{a11:b.x-a.x,a12:b.y-a.y,a13:0,a21:c.x-b.x,a22:c.y-b.y,a23:0,a31:a.x,a32:a.y,a33:1};let g=b.x-c.x;var h=d.x-c.x;let k=b.y-c.y,m=d.y-c.y;c=g*m-h*k;h=(e*m-h*f)/c;e=(g*f-e*k)/c;return{a11:b.x-a.x+h*b.x,a12:b.y-a.y+h*b.y,a13:h,a21:d.x-a.x+e*d.x,a22:d.y-a.y+e*d.y,a23:e,a31:a.x,a32:a.y,a33:1}}
7340
+ function oa(a,b,c,d){a=M(a,b,c,d);return{a11:a.a22*a.a33-a.a23*a.a32,a12:a.a13*a.a32-a.a12*a.a33,a13:a.a12*a.a23-a.a13*a.a22,a21:a.a23*a.a31-a.a21*a.a33,a22:a.a11*a.a33-a.a13*a.a31,a23:a.a13*a.a21-a.a11*a.a23,a31:a.a21*a.a32-a.a22*a.a31,a32:a.a12*a.a31-a.a11*a.a32,a33:a.a11*a.a22-a.a12*a.a21}}
7341
+ function pa(a,b){var c=oa({x:3.5,y:3.5},{x:b.dimension-3.5,y:3.5},{x:b.dimension-6.5,y:b.dimension-6.5},{x:3.5,y:b.dimension-3.5}),d=M(b.topLeft,b.topRight,b.alignmentPattern,b.bottomLeft),e=d.a11*c.a11+d.a21*c.a12+d.a31*c.a13,f=d.a12*c.a11+d.a22*c.a12+d.a32*c.a13,g=d.a13*c.a11+d.a23*c.a12+d.a33*c.a13,h=d.a11*c.a21+d.a21*c.a22+d.a31*c.a23,k=d.a12*c.a21+d.a22*c.a22+d.a32*c.a23,m=d.a13*c.a21+d.a23*c.a22+d.a33*c.a23,l=d.a11*c.a31+d.a21*c.a32+d.a31*c.a33,n=d.a12*c.a31+d.a22*c.a32+d.a32*c.a33,q=d.a13*
7342
+ c.a31+d.a23*c.a32+d.a33*c.a33;c=x.createEmpty(b.dimension,b.dimension);d=(r,u)=>{const p=g*r+m*u+q;return{x:(e*r+h*u+l)/p,y:(f*r+k*u+n)/p}};for(let r=0;r<b.dimension;r++)for(let u=0;u<b.dimension;u++){let p=d(u+.5,r+.5);c.set(u,r,a.get(Math.floor(p.x),Math.floor(p.y)))}return{matrix:c,mappingFunction:d}}let N=(a,b)=>Math.sqrt(Math.pow(b.x-a.x,2)+Math.pow(b.y-a.y,2));function O(a){return a.reduce((b,c)=>b+c)}
7343
+ function qa(a,b,c){let d=N(a,b),e=N(b,c),f=N(a,c),g,h,k;e>=d&&e>=f?[g,h,k]=[b,a,c]:f>=e&&f>=d?[g,h,k]=[a,b,c]:[g,h,k]=[a,c,b];0>(k.x-h.x)*(g.y-h.y)-(k.y-h.y)*(g.x-h.x)&&([g,k]=[k,g]);return{bottomLeft:g,topLeft:h,topRight:k}}
7344
+ function ra(a,b,c,d){d=(O(P(a,c,d,5))/7+O(P(a,b,d,5))/7+O(P(c,a,d,5))/7+O(P(b,a,d,5))/7)/4;if(1>d)throw Error("Invalid module size");b=Math.round(N(a,b)/d);a=Math.round(N(a,c)/d);a=Math.floor((b+a)/2)+7;switch(a%4){case 0:a++;break;case 2:a--}return{dimension:a,moduleSize:d}}
7345
+ function Q(a,b,c,d){let e=[{x:Math.floor(a.x),y:Math.floor(a.y)}];var f=Math.abs(b.y-a.y)>Math.abs(b.x-a.x);if(f){var g=Math.floor(a.y);var h=Math.floor(a.x);a=Math.floor(b.y);b=Math.floor(b.x)}else g=Math.floor(a.x),h=Math.floor(a.y),a=Math.floor(b.x),b=Math.floor(b.y);let k=Math.abs(a-g),m=Math.abs(b-h),l=Math.floor(-k/2),n=g<a?1:-1,q=h<b?1:-1,r=!0;for(let u=g,p=h;u!==a+n;u+=n){g=f?p:u;h=f?u:p;if(c.get(g,h)!==r&&(r=!r,e.push({x:g,y:h}),e.length===d+1))break;l+=m;if(0<l){if(p===b)break;p+=q;l-=k}}c=
7346
+ [];for(f=0;f<d;f++)e[f]&&e[f+1]?c.push(N(e[f],e[f+1])):c.push(0);return c}function P(a,b,c,d){let e=b.y-a.y,f=b.x-a.x;b=Q(a,b,c,Math.ceil(d/2));a=Q(a,{x:a.x-f,y:a.y-e},c,Math.ceil(d/2));c=b.shift()+a.shift()-1;return a.concat(c).concat(...b)}function R(a,b){let c=O(a)/O(b),d=0;b.forEach((e,f)=>{d+=Math.pow(a[f]-e*c,2)});return{averageSize:c,error:d}}
7347
+ function S(a,b,c){try{let d=P(a,{x:-1,y:a.y},c,b.length),e=P(a,{x:a.x,y:-1},c,b.length),f=P(a,{x:Math.max(0,a.x-a.y)-1,y:Math.max(0,a.y-a.x)-1},c,b.length),g=P(a,{x:Math.min(c.width,a.x+a.y)+1,y:Math.min(c.height,a.y+a.x)+1},c,b.length),h=R(d,b),k=R(e,b),m=R(f,b),l=R(g,b),n=(h.averageSize+k.averageSize+m.averageSize+l.averageSize)/4;return Math.sqrt(h.error*h.error+k.error*k.error+m.error*m.error+l.error*l.error)+(Math.pow(h.averageSize-n,2)+Math.pow(k.averageSize-n,2)+Math.pow(m.averageSize-n,2)+
7348
+ Math.pow(l.averageSize-n,2))/n}catch(d){return Infinity}}function T(a,b){for(var c=Math.round(b.x);a.get(c,Math.round(b.y));)c--;for(var d=Math.round(b.x);a.get(d,Math.round(b.y));)d++;c=(c+d)/2;for(d=Math.round(b.y);a.get(Math.round(c),d);)d--;for(b=Math.round(b.y);a.get(Math.round(c),b);)b++;return{x:c,y:(d+b)/2}}
7349
+ function sa(a){var b=[],c=[];let d=[];var e=[];for(let p=0;p<=a.height;p++){var f=0,g=!1;let t=[0,0,0,0,0];for(let v=-1;v<=a.width;v++){var h=a.get(v,p);if(h===g)f++;else{t=[t[1],t[2],t[3],t[4],f];f=1;g=h;var k=O(t)/7;k=Math.abs(t[0]-k)<k&&Math.abs(t[1]-k)<k&&Math.abs(t[2]-3*k)<3*k&&Math.abs(t[3]-k)<k&&Math.abs(t[4]-k)<k&&!h;var m=O(t.slice(-3))/3;h=Math.abs(t[2]-m)<m&&Math.abs(t[3]-m)<m&&Math.abs(t[4]-m)<m&&h;if(k){let z=v-t[3]-t[4],y=z-t[2];k={startX:y,endX:z,y:p};m=c.filter(w=>y>=w.bottom.startX&&
7350
+ y<=w.bottom.endX||z>=w.bottom.startX&&y<=w.bottom.endX||y<=w.bottom.startX&&z>=w.bottom.endX&&1.5>t[2]/(w.bottom.endX-w.bottom.startX)&&.5<t[2]/(w.bottom.endX-w.bottom.startX));0<m.length?m[0].bottom=k:c.push({top:k,bottom:k})}if(h){let z=v-t[4],y=z-t[3];h={startX:y,y:p,endX:z};k=e.filter(w=>y>=w.bottom.startX&&y<=w.bottom.endX||z>=w.bottom.startX&&y<=w.bottom.endX||y<=w.bottom.startX&&z>=w.bottom.endX&&1.5>t[2]/(w.bottom.endX-w.bottom.startX)&&.5<t[2]/(w.bottom.endX-w.bottom.startX));0<k.length?
7351
+ k[0].bottom=h:e.push({top:h,bottom:h})}}}b.push(...c.filter(v=>v.bottom.y!==p&&2<=v.bottom.y-v.top.y));c=c.filter(v=>v.bottom.y===p);d.push(...e.filter(v=>v.bottom.y!==p));e=e.filter(v=>v.bottom.y===p)}b.push(...c.filter(p=>2<=p.bottom.y-p.top.y));d.push(...e);c=[];for(var l of b)2>l.bottom.y-l.top.y||(b=(l.top.startX+l.top.endX+l.bottom.startX+l.bottom.endX)/4,e=(l.top.y+l.bottom.y+1)/2,a.get(Math.round(b),Math.round(e))&&(f=[l.top.endX-l.top.startX,l.bottom.endX-l.bottom.startX,l.bottom.y-l.top.y+
7352
+ 1],f=O(f)/f.length,g=S({x:Math.round(b),y:Math.round(e)},[1,1,3,1,1],a),c.push({score:g,x:b,y:e,size:f})));if(3>c.length)return null;c.sort((p,t)=>p.score-t.score);l=[];for(b=0;b<Math.min(c.length,5);++b){e=c[b];f=[];for(var n of c)n!==e&&f.push(Object.assign(Object.assign({},n),{score:n.score+Math.pow(n.size-e.size,2)/e.size}));f.sort((p,t)=>p.score-t.score);l.push({points:[e,f[0],f[1]],score:e.score+f[0].score+f[1].score})}l.sort((p,t)=>p.score-t.score);let {topRight:q,topLeft:r,bottomLeft:u}=qa(...l[0].points);
7353
+ l=U(a,d,q,r,u);n=[];l&&n.push({alignmentPattern:{x:l.alignmentPattern.x,y:l.alignmentPattern.y},bottomLeft:{x:u.x,y:u.y},dimension:l.dimension,topLeft:{x:r.x,y:r.y},topRight:{x:q.x,y:q.y}});l=T(a,q);b=T(a,r);c=T(a,u);(a=U(a,d,l,b,c))&&n.push({alignmentPattern:{x:a.alignmentPattern.x,y:a.alignmentPattern.y},bottomLeft:{x:c.x,y:c.y},topLeft:{x:b.x,y:b.y},topRight:{x:l.x,y:l.y},dimension:a.dimension});return 0===n.length?null:n}
7354
+ function U(a,b,c,d,e){let f,g;try{({dimension:f,moduleSize:g}=ra(d,c,e,a))}catch(l){return null}var h=c.x-d.x+e.x,k=c.y-d.y+e.y;c=(N(d,e)+N(d,c))/2/g;e=1-3/c;let m={x:d.x+e*(h-d.x),y:d.y+e*(k-d.y)};b=b.map(l=>{const n=(l.top.startX+l.top.endX+l.bottom.startX+l.bottom.endX)/4;l=(l.top.y+l.bottom.y+1)/2;if(a.get(Math.floor(n),Math.floor(l))){var q=S({x:Math.floor(n),y:Math.floor(l)},[1,1,1],a)+N({x:n,y:l},m);return{x:n,y:l,score:q}}}).filter(l=>!!l).sort((l,n)=>l.score-n.score);return{alignmentPattern:15<=
7355
+ c&&b.length?b[0]:m,dimension:f}}
7356
+ function V(a){var b=sa(a);if(!b)return null;for(let e of b){b=pa(a,e);var c=b.matrix;if(null==c)c=null;else{var d=L(c);if(d)c=d;else{for(d=0;d<c.width;d++)for(let f=d+1;f<c.height;f++)c.get(d,f)!==c.get(f,d)&&(c.set(d,f,!c.get(d,f)),c.set(f,d,!c.get(f,d)));c=L(c)}}if(c)return{binaryData:c.bytes,data:c.text,chunks:c.chunks,version:c.version,location:{topRightCorner:b.mappingFunction(e.dimension,0),topLeftCorner:b.mappingFunction(0,0),bottomRightCorner:b.mappingFunction(e.dimension,e.dimension),bottomLeftCorner:b.mappingFunction(0,
7357
+ e.dimension),topRightFinderPattern:e.topRight,topLeftFinderPattern:e.topLeft,bottomLeftFinderPattern:e.bottomLeft,bottomRightAlignmentPattern:e.alignmentPattern},matrix:b.matrix}}return null}let ta={inversionAttempts:"attemptBoth",greyScaleWeights:{red:.2126,green:.7152,blue:.0722,useIntegerApproximation:!1},canOverwriteImage:!0};function W(a,b){Object.keys(b).forEach(c=>{a[c]=b[c]})}
7358
+ function X(a,b,c,d={}){let e=Object.create(null);W(e,ta);W(e,d);d="onlyInvert"===e.inversionAttempts||"invertFirst"===e.inversionAttempts;var f="attemptBoth"===e.inversionAttempts||d;var g=e.greyScaleWeights,h=e.canOverwriteImage,k=b*c;if(a.length!==4*k)throw Error("Malformed data passed to binarizer.");var m=0;if(h){var l=new Uint8ClampedArray(a.buffer,m,k);m+=k}l=new A(b,c,l);if(g.useIntegerApproximation)for(var n=0;n<c;n++)for(var q=0;q<b;q++){var r=4*(n*b+q);l.set(q,n,g.red*a[r]+g.green*a[r+1]+
7359
+ g.blue*a[r+2]+128>>8)}else for(n=0;n<c;n++)for(q=0;q<b;q++)r=4*(n*b+q),l.set(q,n,g.red*a[r]+g.green*a[r+1]+g.blue*a[r+2]);g=Math.ceil(b/8);n=Math.ceil(c/8);q=g*n;if(h){var u=new Uint8ClampedArray(a.buffer,m,q);m+=q}u=new A(g,n,u);for(q=0;q<n;q++)for(r=0;r<g;r++){var p=Infinity,t=0;for(var v=0;8>v;v++)for(let w=0;8>w;w++){let aa=l.get(8*r+w,8*q+v);p=Math.min(p,aa);t=Math.max(t,aa)}v=(p+t)/2;v=Math.min(255,1.11*v);24>=t-p&&(v=p/2,0<q&&0<r&&(t=(u.get(r,q-1)+2*u.get(r-1,q)+u.get(r-1,q-1))/4,p<t&&(v=t)));
7360
+ u.set(r,q,v)}h?(q=new Uint8ClampedArray(a.buffer,m,k),m+=k,q=new x(q,b)):q=x.createEmpty(b,c);r=null;f&&(h?(a=new Uint8ClampedArray(a.buffer,m,k),r=new x(a,b)):r=x.createEmpty(b,c));for(b=0;b<n;b++)for(a=0;a<g;a++){c=g-3;c=2>a?2:a>c?c:a;h=n-3;h=2>b?2:b>h?h:b;k=0;for(m=-2;2>=m;m++)for(p=-2;2>=p;p++)k+=u.get(c+m,h+p);c=k/25;for(h=0;8>h;h++)for(k=0;8>k;k++)m=8*a+h,p=8*b+k,t=l.get(m,p),q.set(m,p,t<=c),f&&r.set(m,p,!(t<=c))}f=f?{binarized:q,inverted:r}:{binarized:q};let {binarized:z,inverted:y}=f;(f=V(d?
7361
+ y:z))||"attemptBoth"!==e.inversionAttempts&&"invertFirst"!==e.inversionAttempts||(f=V(d?z:y));return f}X.default=X;let Y="dontInvert",Z={red:77,green:150,blue:29,useIntegerApproximation:!0};
7362
+ self.onmessage=a=>{let b=a.data.id,c=a.data.data;switch(a.data.type){case "decode":(a=X(c.data,c.width,c.height,{inversionAttempts:Y,greyScaleWeights:Z}))?self.postMessage({id:b,type:"qrResult",data:a.data,cornerPoints:[a.location.topLeftCorner,a.location.topRightCorner,a.location.bottomRightCorner,a.location.bottomLeftCorner]}):self.postMessage({id:b,type:"qrResult",data:null});break;case "grayscaleWeights":Z.red=c.red;Z.green=c.green;Z.blue=c.blue;Z.useIntegerApproximation=c.useIntegerApproximation;
7363
+ break;case "inversionMode":switch(c){case "original":Y="dontInvert";break;case "invert":Y="onlyInvert";break;case "both":Y="attemptBoth";break;default:throw Error("Invalid inversion mode");}break;case "close":self.close()}}
7364
+ `]), { type: "application/javascript" }));
7365
+ const qrScannerWorker_min = /* @__PURE__ */ Object.freeze(/* @__PURE__ */ Object.defineProperty({
7366
+ __proto__: null,
7367
+ createWorker
7368
+ }, Symbol.toStringTag, { value: "Module" }));
7369
+ exports.CheckInAccess = CheckInAccess;
7370
+ exports.CheckInCollection = _sfc_main$c;
7371
+ exports.CheckInModel = CheckInModel;
7372
+ exports.CheckInPresenceCollection = CheckInPresenceCollection;
7373
+ exports.CheckInScanError = _sfc_main$f;
7374
+ exports.CheckInScanSuccess = _sfc_main$d;
7375
+ exports.CheckInScanner = CheckInScanner;
7376
+ exports.CheckInSingle = CheckInSingle;
7377
+ exports.NOperasional = operasional_types;
4327
7378
  exports.OperasionalInterfacesPlugin = OperasionalInterfacesPlugin;
4328
7379
  exports.Schema = graphql;
7380
+ exports.SituationCollection = _sfc_main$9;
7381
+ exports.SituationModel = SituationModel;
7382
+ exports.SituationSingle = _sfc_main$8;
7383
+ exports.SituationSupportive = _sfc_main$6;
4329
7384
  exports.SituationTypeCollection = _sfc_main$5;
4330
7385
  exports.SituationTypeModel = SituationTypeModel;
4331
7386
  exports.SituationTypeSingle = _sfc_main$4;
4332
- exports.StaffCollection = _sfc_main$7;
7387
+ exports.SituationWork = _sfc_main$7;
7388
+ exports.StaffCollection = _sfc_main$b;
4333
7389
  exports.StaffModel = StaffModel;
4334
7390
  exports.StaffSingle = StaffSingle;
4335
7391
  exports.TaskCollection = _sfc_main$2;
@@ -4337,4 +7393,9 @@ exports.TaskModel = TaskModel;
4337
7393
  exports.TaskSingle = _sfc_main$1;
4338
7394
  exports.TaskWork = _sfc_main;
4339
7395
  exports.TaskWorkButton = _sfc_main$3;
4340
- exports.XxxButton = _sfc_main$8;
7396
+ exports.XxxButton = _sfc_main$j;
7397
+ exports.bus = bus;
7398
+ exports.useAttendanceStore = useAttendanceStore;
7399
+ exports.useOperasional = useOperasional;
7400
+ exports.useOperasionalStore = useOperasionalStore;
7401
+ exports.withOperasional = withOperasional;