@agrotools1/at-components 0.5.5 → 0.5.7

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 (32) hide show
  1. package/dist/DataTable/Column/Column.vue.js +5 -5
  2. package/dist/DataTable/Column/Column.vue2.js +57 -36
  3. package/dist/DatePicker/DatePicker.d.ts +31 -0
  4. package/dist/DatePicker/DatePicker.helper.d.ts +6 -0
  5. package/dist/DatePicker/DatePicker.vue.js +111 -100
  6. package/dist/DatePicker/DatePicker.vue2.js +82 -64
  7. package/dist/Dropdown/Dropdown.core.vue.js +28 -22
  8. package/dist/Dropdown/Dropdown.core.vue2.js +48 -42
  9. package/dist/Dropdown/DropdownContent/DropdownContent.d.ts +2 -0
  10. package/dist/Dropdown/DropdownContent/DropdownContent.vue.js +12 -0
  11. package/dist/Dropdown/DropdownContent/DropdownContent.vue2.js +9 -0
  12. package/dist/Search/Search.d.ts +16 -0
  13. package/dist/Search/Search.vue.js +4 -3
  14. package/dist/Search/Search.vue2.js +24 -19
  15. package/dist/Select/Multiple/Select.multiple.d.ts +9 -0
  16. package/dist/Select/Multiple/Select.multiple.vue.js +4 -4
  17. package/dist/Select/Multiple/Select.multiple.vue2.js +19 -12
  18. package/dist/Select/Select.core.d.ts +4 -0
  19. package/dist/Select/Select.core.vue.js +5 -4
  20. package/dist/Select/Select.core.vue2.js +13 -10
  21. package/dist/Select/Single/Select.single.d.ts +9 -0
  22. package/dist/Select/Single/Select.single.vue.js +7 -7
  23. package/dist/Select/Single/Select.single.vue2.js +33 -26
  24. package/dist/Select/index.d.ts +18 -0
  25. package/dist/Tabs/Tabs.vue.js +5 -5
  26. package/dist/Upload/MultipleUpload/MultipleUpload.vue.js +2 -2
  27. package/dist/Upload/SingleUpload/SingleUpload.vue.js +1 -1
  28. package/dist/Upload/UploaderInput/UploaderInput.d.ts +4 -1
  29. package/dist/Upload/UploaderInput/UploaderInput.vue.js +24 -25
  30. package/dist/Upload/UploaderInput/UploaderInput.vue2.js +11 -8
  31. package/dist/style.css +1 -1
  32. package/package.json +1 -1
@@ -2,7 +2,7 @@ import n from "./Column.vue2.js";
2
2
  import { openBlock as a, createElementBlock as l, createElementVNode as e, toDisplayString as r, createCommentVNode as s, renderSlot as d } from "vue";
3
3
  import "./Column.vue3.js";
4
4
  import m from "../../_virtual/_plugin-vue_export-helper.js";
5
- const u = ["data-align-columns", "data-filterable"], f = { class: "slot" }, p = ["data-orientation", "data-filterable"], c = ["src"];
5
+ const u = ["data-align-columns", "data-filterable"], c = { class: "slot" }, f = ["data-orientation", "data-filterable"], p = ["src"];
6
6
  function g(t, o, h, b, M, _) {
7
7
  return a(), l("th", {
8
8
  role: "columnheader",
@@ -10,7 +10,7 @@ function g(t, o, h, b, M, _) {
10
10
  "data-align-columns": t.alignColumns,
11
11
  "data-filterable": t.withMaxMinFilter
12
12
  }, [
13
- e("div", f, [
13
+ e("div", c, [
14
14
  e("span", null, r(t.label), 1),
15
15
  t.withMaxMinFilter ? (a(), l("button", {
16
16
  key: 0,
@@ -23,13 +23,13 @@ function g(t, o, h, b, M, _) {
23
23
  e("img", {
24
24
  src: t.filterSvg,
25
25
  alt: "Botão para filtrar valor"
26
- }, null, 8, c)
27
- ], 8, p)) : s("", !0),
26
+ }, null, 8, p)
27
+ ], 8, f)) : s("", !0),
28
28
  d(t.$slots, "default", {}, void 0, !0)
29
29
  ])
30
30
  ], 8, u);
31
31
  }
32
- const w = /* @__PURE__ */ m(n, [["render", g], ["__scopeId", "data-v-a5842a93"]]);
32
+ const w = /* @__PURE__ */ m(n, [["render", g], ["__scopeId", "data-v-940047c8"]]);
33
33
  export {
34
34
  w as default
35
35
  };
@@ -1,6 +1,6 @@
1
- import { defineComponent as C, ref as u, inject as f, watch as y, onMounted as F } from "vue";
2
- import D from "./imgs/filter.svg.js";
3
- const S = C({
1
+ import { defineComponent as C, ref as l, inject as p, watch as x, onMounted as A } from "vue";
2
+ import h from "./imgs/filter.svg.js";
3
+ const N = C({
4
4
  name: "AtColumn",
5
5
  props: {
6
6
  field: {
@@ -16,58 +16,79 @@ const S = C({
16
16
  default: void 0
17
17
  }
18
18
  },
19
- setup(o) {
20
- const n = u("top"), { updateColumn: c } = f("columns", {
19
+ setup(a) {
20
+ const o = l("top"), { updateColumn: f } = p("columns", {
21
21
  updateColumn: () => {
22
22
  }
23
- }), d = u(
23
+ }), y = l(
24
24
  []
25
- ), i = f("tableData", d), b = f("alignColumns", "left"), p = u(b), g = () => {
26
- n.value = n.value === "bottom" ? "top" : "bottom";
25
+ ), s = p("tableData", y), g = p("alignColumns", "left"), b = l(g), d = () => {
26
+ o.value = o.value === "bottom" ? "top" : "bottom";
27
27
  };
28
- y(
29
- () => n.value,
28
+ x(
29
+ () => o.value,
30
30
  () => {
31
31
  v();
32
32
  }
33
33
  );
34
- /* istanbul ignore next -- @preserve */
35
- const v = () => {
36
- if (n.value === "bottom") {
37
- const l = [...i.value].sort((r, a) => {
38
- const t = r[o.field], e = a[o.field];
39
- if (typeof t == "string" && typeof e == "string")
40
- return t.localeCompare(e);
41
- const s = Number(t), m = Number(e);
42
- return s < m ? -1 : s > m ? 1 : 0;
34
+ const u = (t) => {
35
+ if (typeof t == "string" || typeof t == "number")
36
+ return t;
37
+ if (Array.isArray(t) && t.length > 0) {
38
+ const e = t[0];
39
+ if (typeof e == "string" || typeof e == "number")
40
+ return e;
41
+ if (e && e.children && Array.isArray(e.children))
42
+ return e.children.map((i) => typeof i == "string" ? i : "").join("");
43
+ if ("text" in e.props)
44
+ return e.props.text ? e.props.text : "";
45
+ } else {
46
+ if (t && t.children && Array.isArray(t.children))
47
+ return t.children.map((e) => typeof e == "string" ? e : "").join("");
48
+ if (t && t.props) {
49
+ if ("modelValue" in t.props)
50
+ return t.props.modelValue ? 1 : 0;
51
+ if ("text" in t.props)
52
+ return t.props.text ? t.props.text : "";
53
+ }
54
+ }
55
+ return "";
56
+ }, v = () => {
57
+ if (o.value === "bottom") {
58
+ const t = [...s.value].sort((e, i) => {
59
+ const r = u(e[a.field]), n = u(i[a.field]);
60
+ if (typeof r == "string" && typeof n == "string")
61
+ return r.localeCompare(n);
62
+ const m = Number(r), c = Number(n);
63
+ return m < c ? -1 : m > c ? 1 : 0;
43
64
  });
44
- i.value = l;
45
- } else if (n.value === "top") {
46
- const l = [...i.value].sort((r, a) => {
47
- const t = r[o.field], e = a[o.field];
48
- if (typeof t == "string" && typeof e == "string")
49
- return e.localeCompare(t);
50
- if (typeof t == "number" && typeof e == "number") {
51
- if (t > e)
65
+ s.value = t;
66
+ } else if (o.value === "top") {
67
+ const t = [...s.value].sort((e, i) => {
68
+ const r = u(e[a.field]), n = u(i[a.field]);
69
+ if (typeof r == "string" && typeof n == "string")
70
+ return n.localeCompare(r);
71
+ if (typeof r == "number" && typeof n == "number") {
72
+ if (r > n)
52
73
  return -1;
53
- if (t < e)
74
+ if (r < n)
54
75
  return 1;
55
76
  }
56
77
  return 0;
57
78
  });
58
- i.value = l;
79
+ s.value = t;
59
80
  }
60
81
  };
61
- return F(() => {
62
- c(o.field);
82
+ return A(() => {
83
+ f(a.field);
63
84
  }), {
64
- alignColumns: p,
65
- filterSvg: D,
66
- orientation: n,
67
- toggleOrientation: g
85
+ alignColumns: b,
86
+ filterSvg: h,
87
+ orientation: o,
88
+ toggleOrientation: d
68
89
  };
69
90
  }
70
91
  });
71
92
  export {
72
- S as default
93
+ N as default
73
94
  };
@@ -62,6 +62,18 @@ declare const _default: import("vue").DefineComponent<{
62
62
  default: boolean;
63
63
  validator: (value: boolean) => boolean;
64
64
  };
65
+ position: {
66
+ type: () => DatePickerProps["position"];
67
+ default: string;
68
+ };
69
+ id: {
70
+ type: () => DatePickerProps["id"];
71
+ default: string;
72
+ };
73
+ error: {
74
+ type: () => DatePickerProps["error"];
75
+ default: () => void;
76
+ };
65
77
  }, {
66
78
  displayModal: import("vue").Ref<boolean>;
67
79
  auxValue: import("vue").Ref<{
@@ -287,6 +299,7 @@ declare const _default: import("vue").DefineComponent<{
287
299
  checkUnFocus: () => void;
288
300
  keepFocus: () => void;
289
301
  clearValue: () => void;
302
+ onOpenedModal: (value: boolean) => void;
290
303
  isInputHovered: import("vue").Ref<boolean>;
291
304
  }, unknown, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, ("update:value" | "confirmBoxConfirmed")[], "update:value" | "confirmBoxConfirmed", import("vue").VNodeProps & import("vue").AllowedComponentProps & import("vue").ComponentCustomProps, Readonly<import("vue").ExtractPropTypes<{
292
305
  value: {
@@ -351,13 +364,31 @@ declare const _default: import("vue").DefineComponent<{
351
364
  default: boolean;
352
365
  validator: (value: boolean) => boolean;
353
366
  };
367
+ position: {
368
+ type: () => DatePickerProps["position"];
369
+ default: string;
370
+ };
371
+ id: {
372
+ type: () => DatePickerProps["id"];
373
+ default: string;
374
+ };
375
+ error: {
376
+ type: () => DatePickerProps["error"];
377
+ default: () => void;
378
+ };
354
379
  }>> & {
355
380
  "onUpdate:value"?: ((...args: any[]) => any) | undefined;
356
381
  onConfirmBoxConfirmed?: ((...args: any[]) => any) | undefined;
357
382
  }, {
358
383
  label: string;
384
+ error: {
385
+ value: boolean;
386
+ message: string;
387
+ };
359
388
  disabled: boolean;
389
+ id: string;
360
390
  value: DatePickerRange;
391
+ position: "left" | "right" | undefined;
361
392
  forceFocus: boolean;
362
393
  useRange: boolean;
363
394
  useTimeInput: boolean;
@@ -13,6 +13,12 @@ export interface DatePickerProps {
13
13
  setTimeInputFocus: "default" | "hours" | "minutes" | "none";
14
14
  force12HourTime: boolean;
15
15
  forceFocus: boolean;
16
+ position?: "left" | "right";
17
+ id: string;
18
+ error: {
19
+ value: boolean;
20
+ message: string;
21
+ };
16
22
  }
17
23
  export declare const monthTranslationObj: Record<string, string[]>;
18
24
  export declare const weekInitialsObject: Record<string, string[]>;
@@ -1,111 +1,122 @@
1
- import g from "./DatePicker.vue2.js";
2
- import { resolveComponent as a, openBlock as t, createElementBlock as d, createElementVNode as p, createVNode as l, createBlock as u, createCommentVNode as o, withCtx as m, createTextVNode as k, toDisplayString as P } from "vue";
1
+ import f from "./DatePicker.vue2.js";
2
+ import { resolveComponent as o, openBlock as t, createElementBlock as i, createElementVNode as m, createVNode as l, withCtx as d, createBlock as u, createCommentVNode as a, createTextVNode as k, toDisplayString as D } from "vue";
3
3
  import "./DatePicker.scss.js";
4
4
  import v from "../_virtual/_plugin-vue_export-helper.js";
5
- const A = { class: "AT-DATEPICKER_container no-select" }, M = { class: "AT-DATEPICKER_core" }, I = {
5
+ const M = { class: "AT-DATEPICKER_container no-select" }, I = { class: "AT-DATEPICKER_core" }, b = {
6
6
  key: 0,
7
7
  class: "AT-DATEPICKER-callToAction"
8
8
  };
9
- function b(e, r, V, T, E, S) {
10
- const y = a("AtCoreInput"), C = a("AtDatePickerHeader"), D = a("AtDatePickerCalendar"), f = a("AtDatePickerTime"), s = a("AtDatePickerListSelector"), i = a("AtButton");
11
- return t(), d("div", A, [
12
- p("div", {
13
- onClick: r[3] || (r[3] = (n) => e.updateFocus(!e.displayModal))
14
- }, [
15
- l(y, {
16
- modelValue: e.displayValue,
17
- "onUpdate:modelValue": r[0] || (r[0] = (n) => e.displayValue = n),
18
- label: e.label,
19
- disabled: e.disabled,
20
- readonly: !0,
21
- "force-focus": e.displayModal,
22
- cursor: "pointer",
23
- icon: { name: "AtCalendarRegularIcon" },
24
- "use-clear-button": e.value.startDate != null || e.value.endDate != null,
25
- "force-event-clear-button": !0,
26
- onClickOutside: e.checkUnFocus,
27
- onClearInput: r[1] || (r[1] = (n) => e.$emit("update:value", e.clearValue())),
28
- onMouseover: r[2] || (r[2] = (n) => e.isInputHovered = n)
29
- }, null, 8, ["modelValue", "label", "disabled", "force-focus", "use-clear-button", "onClickOutside"])
30
- ]),
31
- e.displayModal ? (t(), d("div", {
32
- key: 0,
33
- class: "AT-DATEPICKER_modal",
34
- onClick: r[14] || (r[14] = (...n) => e.keepFocus && e.keepFocus(...n))
35
- }, [
9
+ function V(e, r, T, E, c, S) {
10
+ const P = o("AtCoreInput"), g = o("AtDatePickerHeader"), y = o("AtDatePickerCalendar"), A = o("AtDatePickerTime"), s = o("AtDatePickerListSelector"), p = o("AtButton"), C = o("AtDropdown");
11
+ return t(), i("div", M, [
12
+ m("div", null, [
36
13
  l(C, {
37
- "date-picker-mode": e.datePickerMode,
38
- "current-month": e.getMonthName(e.currentMonth),
39
- "current-year": e.currentYear,
40
- "current-year-range": e.currentYearRange,
41
- "selected-year": e.selectedMonthYear,
42
- style: { marginBottom: "16px" },
43
- onSimpleArrows: r[4] || (r[4] = (n) => e.updateDatePeriod(n, !0)),
44
- "onUpdate:datePickerMode": r[5] || (r[5] = (n) => e.datePickerMode = n)
45
- }, null, 8, ["date-picker-mode", "current-month", "current-year", "current-year-range", "selected-year"]),
46
- p("div", M, [
47
- e.datePickerMode === "calendar" ? (t(), u(D, {
48
- key: 0,
49
- year: e.currentYear,
50
- month: e.currentMonth,
51
- "selected-range": e.useConfirmBox ? e.auxValue : e.value,
52
- "use-range": e.useRange,
53
- "week-initials": e.weekInitials,
54
- onIncrementMonth: r[6] || (r[6] = (n) => e.updateDatePeriod(n, !0)),
55
- onSelected: r[7] || (r[7] = (n) => e.updateValue(n))
56
- }, null, 8, ["year", "month", "selected-range", "use-range", "week-initials"])) : o("", !0),
57
- e.useTimeInput && !e.useRange && e.datePickerMode === "calendar" ? (t(), u(f, {
58
- key: 1,
59
- date: e.useConfirmBox ? e.auxValue.startDate : e.value.startDate,
60
- "period12-hour": e.display12HourFormat,
61
- disabled: e.disabled || !e.value.startDate,
62
- "set-focus-element": e.setTimeInputFocus,
63
- "onUpdate:date": r[8] || (r[8] = (n) => e.updateValue({ startDate: n, endDate: n }))
64
- }, null, 8, ["date", "period12-hour", "disabled", "set-focus-element"])) : o("", !0),
65
- e.datePickerMode === "monthSelector" ? (t(), u(s, {
66
- key: 2,
67
- elements: e.monthList,
68
- "current-page-value": `${e.currentYear}-${e.currentMonth}`,
69
- onElementSelected: r[9] || (r[9] = (n) => {
70
- e.updateMonthYear(n), e.datePickerMode = "calendar";
71
- })
72
- }, null, 8, ["elements", "current-page-value"])) : o("", !0),
73
- e.datePickerMode === "yearSelector" ? (t(), u(s, {
74
- key: 3,
75
- elements: e.yearList,
76
- "current-page-value": String(e.currentYear),
77
- "current-page-index": e.currentYearPageIndex,
78
- onUpdateCurrentPageIndex: r[10] || (r[10] = (n) => e.currentYearPageIndex = n),
79
- onUpdateCurrentSelector: r[11] || (r[11] = (n) => e.currentYearRange = n),
80
- onElementSelected: r[12] || (r[12] = (n) => {
81
- e.updateMonthYear(n), e.datePickerMode = "calendar";
82
- })
83
- }, null, 8, ["elements", "current-page-value", "current-page-index"])) : o("", !0)
84
- ]),
85
- e.useConfirmBox ? (t(), d("div", I, [
86
- l(i, {
87
- variant: "secondary",
88
- onClick: r[13] || (r[13] = (n) => e.updateFocus(!1))
89
- }, {
90
- default: m(() => [
91
- k(P(e.buttonNames.cancel), 1)
92
- ]),
93
- _: 1
94
- }),
95
- l(i, {
96
- disabled: !(e.auxValue.startDate && e.auxValue.endDate),
97
- onClick: e.confirmInput
98
- }, {
99
- default: m(() => [
100
- k(P(e.buttonNames.save), 1)
101
- ]),
102
- _: 1
103
- }, 8, ["disabled", "onClick"])
104
- ])) : o("", !0)
105
- ])) : o("", !0)
14
+ id: e.id,
15
+ "is-open": e.displayModal,
16
+ position: e.position,
17
+ "onUpdate:isOpen": e.onOpenedModal
18
+ }, {
19
+ trigger: d(() => [
20
+ l(P, {
21
+ modelValue: e.displayValue,
22
+ "onUpdate:modelValue": r[0] || (r[0] = (n) => e.displayValue = n),
23
+ label: e.label,
24
+ disabled: e.disabled,
25
+ readonly: !0,
26
+ "force-focus": e.displayModal,
27
+ cursor: "pointer",
28
+ icon: { name: "AtCalendarRegularIcon" },
29
+ "use-clear-button": e.value.startDate != null || e.value.endDate != null,
30
+ "force-event-clear-button": !0,
31
+ error: e.error,
32
+ onClickOutside: e.checkUnFocus,
33
+ onClearInput: r[1] || (r[1] = (n) => e.$emit("update:value", e.clearValue())),
34
+ onMouseover: r[2] || (r[2] = (n) => e.isInputHovered = n)
35
+ }, null, 8, ["modelValue", "label", "disabled", "force-focus", "use-clear-button", "error", "onClickOutside"])
36
+ ]),
37
+ default: d(() => [
38
+ e.displayModal ? (t(), i("div", {
39
+ key: 0,
40
+ class: "AT-DATEPICKER_modal",
41
+ onClick: r[13] || (r[13] = (...n) => e.keepFocus && e.keepFocus(...n))
42
+ }, [
43
+ l(g, {
44
+ "date-picker-mode": e.datePickerMode,
45
+ "current-month": e.getMonthName(e.currentMonth),
46
+ "current-year": e.currentYear,
47
+ "current-year-range": e.currentYearRange,
48
+ "selected-year": e.selectedMonthYear,
49
+ style: { marginBottom: "16px" },
50
+ onSimpleArrows: r[3] || (r[3] = (n) => e.updateDatePeriod(n, !0)),
51
+ "onUpdate:datePickerMode": r[4] || (r[4] = (n) => e.datePickerMode = n)
52
+ }, null, 8, ["date-picker-mode", "current-month", "current-year", "current-year-range", "selected-year"]),
53
+ m("div", I, [
54
+ e.datePickerMode === "calendar" ? (t(), u(y, {
55
+ key: 0,
56
+ year: e.currentYear,
57
+ month: e.currentMonth,
58
+ "selected-range": e.useConfirmBox ? e.auxValue : e.value,
59
+ "use-range": e.useRange,
60
+ "week-initials": e.weekInitials,
61
+ onIncrementMonth: r[5] || (r[5] = (n) => e.updateDatePeriod(n, !0)),
62
+ onSelected: r[6] || (r[6] = (n) => e.updateValue(n))
63
+ }, null, 8, ["year", "month", "selected-range", "use-range", "week-initials"])) : a("", !0),
64
+ e.useTimeInput && !e.useRange && e.datePickerMode === "calendar" ? (t(), u(A, {
65
+ key: 1,
66
+ date: e.useConfirmBox ? e.auxValue.startDate : e.value.startDate,
67
+ "period12-hour": e.display12HourFormat,
68
+ disabled: e.disabled || !e.value.startDate,
69
+ "set-focus-element": e.setTimeInputFocus,
70
+ "onUpdate:date": r[7] || (r[7] = (n) => e.updateValue({ startDate: n, endDate: n }))
71
+ }, null, 8, ["date", "period12-hour", "disabled", "set-focus-element"])) : a("", !0),
72
+ e.datePickerMode === "monthSelector" ? (t(), u(s, {
73
+ key: 2,
74
+ elements: e.monthList,
75
+ "current-page-value": `${e.currentYear}-${e.currentMonth}`,
76
+ onElementSelected: r[8] || (r[8] = (n) => {
77
+ e.updateMonthYear(n), e.datePickerMode = "calendar";
78
+ })
79
+ }, null, 8, ["elements", "current-page-value"])) : a("", !0),
80
+ e.datePickerMode === "yearSelector" ? (t(), u(s, {
81
+ key: 3,
82
+ elements: e.yearList,
83
+ "current-page-value": String(e.currentYear),
84
+ "current-page-index": e.currentYearPageIndex,
85
+ onUpdateCurrentPageIndex: r[9] || (r[9] = (n) => e.currentYearPageIndex = n),
86
+ onUpdateCurrentSelector: r[10] || (r[10] = (n) => e.currentYearRange = n),
87
+ onElementSelected: r[11] || (r[11] = (n) => {
88
+ e.updateMonthYear(n), e.datePickerMode = "calendar";
89
+ })
90
+ }, null, 8, ["elements", "current-page-value", "current-page-index"])) : a("", !0)
91
+ ]),
92
+ e.useConfirmBox ? (t(), i("div", b, [
93
+ l(p, {
94
+ variant: "secondary",
95
+ onClick: r[12] || (r[12] = (n) => e.updateFocus(!1))
96
+ }, {
97
+ default: d(() => [
98
+ k(D(e.buttonNames.cancel), 1)
99
+ ]),
100
+ _: 1
101
+ }),
102
+ l(p, {
103
+ disabled: !(e.auxValue.startDate && e.auxValue.endDate),
104
+ onClick: e.confirmInput
105
+ }, {
106
+ default: d(() => [
107
+ k(D(e.buttonNames.save), 1)
108
+ ]),
109
+ _: 1
110
+ }, 8, ["disabled", "onClick"])
111
+ ])) : a("", !0)
112
+ ])) : a("", !0)
113
+ ]),
114
+ _: 1
115
+ }, 8, ["id", "is-open", "position", "onUpdate:isOpen"])
116
+ ])
106
117
  ]);
107
118
  }
108
- const $ = /* @__PURE__ */ v(g, [["render", b], ["__scopeId", "data-v-6eff5439"]]);
119
+ const $ = /* @__PURE__ */ v(f, [["render", V], ["__scopeId", "data-v-e5010289"]]);
109
120
  export {
110
121
  $ as default
111
122
  };