@ironsource/shared-ui 2.1.11-test.99 → 2.1.12-rc.0

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 (89) hide show
  1. package/Chart.vue_vue_type_style_index_0_scoped_026d82c5_lang.css +1 -0
  2. package/ChartLegend.vue_vue_type_style_index_0_scoped_4fe1c7d1_lang.css +1 -0
  3. package/ChartLoader.vue_vue_type_style_index_0_scoped_ffa4cc66_lang.css +1 -0
  4. package/ConditionalDropdown.vue_vue_type_style_index_0_scoped_8e026669_lang.css +1 -0
  5. package/DateRangeV4.vue_vue_type_style_index_0_scoped_8a2714eb_lang.css +1 -0
  6. package/DefaultDropdownTrigger.vue_vue_type_style_index_0_scoped_73bf9b5b_lang.css +1 -0
  7. package/EditableV4.vue_vue_type_style_index_0_scoped_1bbe222a_lang.css +1 -0
  8. package/IconFlag.vue_vue_type_style_index_0_scoped_6526c390_lang.css +1 -0
  9. package/OptionV4.vue_vue_type_style_index_0_scoped_1e8837dc_lang.css +1 -0
  10. package/SnackbarV4.vue_vue_type_style_index_0_scoped_1b650c39_lang.css +1 -0
  11. package/SortableItem.vue_vue_type_style_index_0_scoped_48542664_lang.css +1 -0
  12. package/SortableList.vue_vue_type_style_index_0_scoped_8f267f88_lang.css +1 -0
  13. package/TextField.vue_vue_type_style_index_0_scoped_fce3948c_lang.css +1 -0
  14. package/TooltipV4.vue_vue_type_style_index_0_scoped_66eab856_lang.css +1 -0
  15. package/TooltipV4.vue_vue_type_style_index_1_lang.css +1 -1
  16. package/TreeDropdown.vue_vue_type_style_index_0_scoped_b883d1fa_lang.css +1 -0
  17. package/Typography.vue_vue_type_style_index_0_scoped_07b259bf_lang.css +1 -0
  18. package/components/chart/Chart.vue.d.ts +5 -0
  19. package/components/chart/Chart.vue.js +3 -3
  20. package/components/chart/Chart.vue2.js +116 -108
  21. package/components/chart/ChartLegend.vue.js +3 -3
  22. package/components/chart/ChartLegend.vue2.js +64 -54
  23. package/components/chart/ChartLoader.vue.js +5 -23
  24. package/components/chart/ChartLoader.vue2.js +15 -0
  25. package/components/chart/index.d.ts +20 -1
  26. package/components/chart/mockData.d.ts +8 -0
  27. package/components/dateRange/v4/DateRangeV4.vue.js +3 -3
  28. package/components/dateRange/v4/DateRangeV4.vue2.js +86 -81
  29. package/components/dropdown/common/Dropdown.common.js +65 -65
  30. package/components/dropdown/v4/ConditionalDropdown.vue.d.ts +5 -3
  31. package/components/dropdown/v4/ConditionalDropdown.vue.js +3 -3
  32. package/components/dropdown/v4/ConditionalDropdown.vue2.js +106 -100
  33. package/components/dropdown/v4/DefaultDropdownTrigger.vue.js +2 -2
  34. package/components/dropdown/v4/DefaultDropdownTrigger.vue2.js +45 -46
  35. package/components/dropdown/v4/OptionV4.vue.js +3 -3
  36. package/components/dropdown/v4/OptionV4.vue2.js +97 -98
  37. package/components/dropdown/v4/TreeDropdown.vue.js +2 -2
  38. package/components/dropdown/v4/TreeDropdown.vue2.js +86 -86
  39. package/components/dropdown/v4/index.d.ts +5 -3
  40. package/components/icon/v4/IconFlag.vue.js +3 -3
  41. package/components/icon/v4/IconFlag.vue2.js +1 -1
  42. package/components/input/v4/TextField.vue.js +3 -3
  43. package/components/input/v4/TextField.vue2.js +184 -164
  44. package/components/snackbar/v4/SnackbarV4.vue.js +3 -3
  45. package/components/snackbar/v4/SnackbarV4.vue2.js +1 -1
  46. package/components/sortableList/SortableItem.vue.d.ts +5 -0
  47. package/components/sortableList/SortableItem.vue.js +3 -3
  48. package/components/sortableList/SortableItem.vue2.js +76 -61
  49. package/components/sortableList/SortableList.vue.d.ts +16 -0
  50. package/components/sortableList/SortableList.vue.js +3 -3
  51. package/components/sortableList/SortableList.vue2.js +100 -87
  52. package/components/sortableList/index.d.ts +59 -1
  53. package/components/table/v4/DataGrid.vue.d.ts +1 -1
  54. package/components/table/v4/MultipleDataGrid.vue.d.ts +1 -1
  55. package/components/table/v4/index.d.ts +40 -40
  56. package/components/table-cells/common/Editable.common.js +8 -7
  57. package/components/table-cells/common/EditableContext.d.ts +1 -0
  58. package/components/table-cells/v4/EditableV4.vue.d.ts +5 -0
  59. package/components/table-cells/v4/EditableV4.vue.js +3 -3
  60. package/components/table-cells/v4/EditableV4.vue2.js +11 -10
  61. package/components/table-cells/v4/index.d.ts +20 -1
  62. package/components/tooltip/v4/TooltipV4.vue.js +3 -3
  63. package/components/tooltip/v4/TooltipV4.vue2.js +1 -1
  64. package/components/typography/v4/Typography.vue.js +3 -3
  65. package/components/typography/v4/Typography.vue2.js +1 -1
  66. package/index.d.ts +248 -90
  67. package/index.js +1 -1
  68. package/mocks/apps.d.ts +1 -0
  69. package/mocks/randomValue.d.ts +1 -0
  70. package/package.json +3 -3
  71. package/testids/index.d.ts +1 -0
  72. package/testids/index.js +13 -13
  73. package/Chart.vue_vue_type_style_index_0_scoped_04b9d6b3_lang.css +0 -1
  74. package/ChartLegend.vue_vue_type_style_index_0_scoped_a1c626cd_lang.css +0 -1
  75. package/ChartLoader.vue_vue_type_style_index_0_scoped_142c444a_lang.css +0 -1
  76. package/ConditionalDropdown.vue_vue_type_style_index_0_scoped_b2684c5f_lang.css +0 -1
  77. package/DateRangeV4.vue_vue_type_style_index_0_scoped_309e5351_lang.css +0 -1
  78. package/DefaultDropdownTrigger.vue_vue_type_style_index_0_scoped_9fa84b26_lang.css +0 -1
  79. package/EditableV4.vue_vue_type_style_index_0_scoped_e0c047b4_lang.css +0 -1
  80. package/IconFlag.vue_vue_type_style_index_0_scoped_7b09cc85_lang.css +0 -1
  81. package/OptionV4.vue_vue_type_style_index_0_scoped_2c2947b3_lang.css +0 -1
  82. package/SnackbarV4.vue_vue_type_style_index_0_scoped_89fe8aa1_lang.css +0 -1
  83. package/SortableItem.vue_vue_type_style_index_0_scoped_7cb676f1_lang.css +0 -1
  84. package/SortableList.vue_vue_type_style_index_0_scoped_156c01ca_lang.css +0 -1
  85. package/TextField.vue_vue_type_style_index_0_scoped_2e327aa1_lang.css +0 -1
  86. package/TooltipV4.vue_vue_type_style_index_0_scoped_82b46d6d_lang.css +0 -1
  87. package/TreeDropdown.vue_vue_type_style_index_0_scoped_bdfb0aef_lang.css +0 -1
  88. package/Typography.vue_vue_type_style_index_0_scoped_a14013a5_lang.css +0 -1
  89. package/consts/configs.js +0 -4
@@ -1,13 +1,16 @@
1
- import "../../ChartLegend.vue_vue_type_style_index_0_scoped_a1c626cd_lang.css"; import { defineComponent as M, ref as N, computed as p, openBlock as r, createElementBlock as u, createElementVNode as a, createVNode as n, unref as i, mergeProps as x, Fragment as S, renderList as P, normalizeClass as A, withCtx as m, withModifiers as F, createBlock as H, createCommentVNode as U, createTextVNode as h, toDisplayString as I } from "vue";
1
+ import "../../ChartLegend.vue_vue_type_style_index_0_scoped_4fe1c7d1_lang.css"; import { defineComponent as D, ref as M, computed as m, openBlock as r, createElementBlock as c, createElementVNode as d, createVNode as s, unref as o, mergeProps as I, withCtx as p, createTextVNode as b, Fragment as S, renderList as P, normalizeClass as A, withModifiers as F, createBlock as H, createCommentVNode as U, toDisplayString as L } from "vue";
2
2
  import { useVirtualList as z } from "@vueuse/core";
3
- import _ from "../typography/v4/Typography.vue.js";
3
+ import f from "../typography/v4/Typography.vue.js";
4
4
  import R from "../checkbox/v4/CheckboxV4.vue.js";
5
5
  import q from "../search/v4/SearchV4.vue.js";
6
6
  import { DEFAULT_MIN_VISIBLE as G, DEFAULT_MAX_VISIBLE as X } from "./consts.js";
7
7
  import $ from "../icon/v4/IconV4.vue.js";
8
8
  import "../icon/v4/IconFlag.vue.js";
9
9
  import j from "../tooltip/v4/TooltipV4.vue.js";
10
- const J = { class: "chart-legend" }, K = { class: "search-box" }, O = ["onClick"], Q = { class: "label-container" }, ae = /* @__PURE__ */ M({
10
+ const J = { class: "chart-legend" }, K = { class: "search-box" }, O = {
11
+ key: 0,
12
+ class: "empty-list"
13
+ }, Q = ["onClick"], W = { class: "label-container" }, ne = /* @__PURE__ */ D({
11
14
  __name: "ChartLegend",
12
15
  props: {
13
16
  items: { default: () => [] },
@@ -17,97 +20,104 @@ const J = { class: "chart-legend" }, K = { class: "search-box" }, O = ["onClick"
17
20
  maxLimitTooltipText: { default: "" }
18
21
  },
19
22
  emits: ["update:visibleIds"],
20
- setup(b, { emit: L }) {
21
- const o = b, T = 32, d = N(""), g = p(() => {
22
- const t = d.value.toLowerCase();
23
- return o.items.filter(
24
- (l) => l.label.toLowerCase().includes(t)
23
+ setup(h, { emit: g }) {
24
+ const l = h, k = 32, u = M(""), T = m(() => {
25
+ const t = u.value.toLowerCase();
26
+ return l.items.filter(
27
+ (i) => i.label.toLowerCase().includes(t)
25
28
  );
26
- }), s = (t) => o.visibleIds.includes(t.id), f = p(
27
- () => o.visibleIds.length >= o.maxVisible
28
- ), k = p(
29
- () => o.visibleIds.length <= o.minVisible
30
- ), c = (t) => k.value && s(t) || f.value && !s(t), C = (t) => !o.maxLimitTooltipText || s(t) || !f.value, V = (t, l) => {
31
- L(
29
+ }), a = (t) => l.visibleIds.includes(t.id), v = m(
30
+ () => l.visibleIds.length >= l.maxVisible
31
+ ), y = m(
32
+ () => l.visibleIds.length <= l.minVisible
33
+ ), n = (t) => y.value && a(t) || v.value && !a(t), C = (t) => !l.maxLimitTooltipText || a(t) || !v.value, V = (t, i) => {
34
+ g(
32
35
  "update:visibleIds",
33
- t ? [...o.visibleIds, l.id] : o.visibleIds.filter((e) => e !== l.id)
36
+ t ? [...l.visibleIds, i.id] : l.visibleIds.filter((e) => e !== i.id)
34
37
  );
35
- }, { list: y, containerProps: w, wrapperProps: E } = z(g, {
36
- itemHeight: T,
38
+ }, { list: x, containerProps: w, wrapperProps: E } = z(T, {
39
+ itemHeight: k,
37
40
  overscan: 10
38
- }), B = (t) => {
39
- c(t) || V(!s(t), t);
41
+ }), N = (t) => {
42
+ n(t) || V(!a(t), t);
40
43
  };
41
- return (t, l) => (r(), u("div", J, [
42
- a("div", K, [
43
- n(i(q), {
44
- modelValue: d.value,
45
- "onUpdate:modelValue": l[0] || (l[0] = (e) => d.value = e)
44
+ return (t, i) => (r(), c("div", J, [
45
+ d("div", K, [
46
+ s(o(q), {
47
+ modelValue: u.value,
48
+ "onUpdate:modelValue": i[0] || (i[0] = (e) => u.value = e)
46
49
  }, null, 8, ["modelValue"])
47
50
  ]),
48
- a("div", x({ class: "legend" }, i(w)), [
49
- a("ul", x({ class: "legend__list" }, i(E)), [
50
- (r(!0), u(S, null, P(i(y), ({ data: e, index: D }) => (r(), u("li", {
51
- key: D,
52
- class: A({ "disabled-item": c(e) })
51
+ d("div", I({ class: "legend" }, o(w)), [
52
+ d("ul", I({ class: "legend__list" }, o(E)), [
53
+ o(x).length === 0 ? (r(), c("li", O, [
54
+ s(o(f), { variant: "body2" }, {
55
+ default: p(() => [
56
+ b("No results")
57
+ ]),
58
+ _: 1
59
+ })
60
+ ])) : (r(!0), c(S, { key: 1 }, P(o(x), ({ data: e, index: B }) => (r(), c("li", {
61
+ key: B,
62
+ class: A({ "disabled-item": n(e) })
53
63
  }, [
54
- n(i(j), {
55
- text: b.maxLimitTooltipText,
64
+ s(o(j), {
65
+ text: h.maxLimitTooltipText,
56
66
  disabled: C(e),
57
67
  class: "disabled-tooltip"
58
68
  }, {
59
- default: m(() => [
60
- a("div", {
69
+ default: p(() => [
70
+ d("div", {
61
71
  class: "item-wrapper",
62
- onClick: (v) => B(e)
72
+ onClick: (_) => N(e)
63
73
  }, [
64
- n(i(R), {
74
+ s(o(R), {
65
75
  color: e.color,
66
- "is-checked": s(e),
67
- disabled: c(e),
68
- onClick: l[1] || (l[1] = F(
69
- (v) => {
70
- v.stopPropagation();
76
+ "is-checked": a(e),
77
+ disabled: n(e),
78
+ onClick: i[1] || (i[1] = F(
79
+ (_) => {
80
+ _.stopPropagation();
71
81
  },
72
82
  ["stop"]
73
83
  ))
74
84
  }, null, 8, ["color", "is-checked", "disabled"]),
75
- e.icon ? (r(), H(i($), {
85
+ e.icon ? (r(), H(o($), {
76
86
  key: 0,
77
87
  class: "icon-color",
78
88
  type: e.iconType,
79
89
  name: e.icon,
80
90
  size: "16px"
81
91
  }, null, 8, ["type", "name"])) : U("", !0),
82
- a("div", Q, [
83
- n(i(_), {
92
+ d("div", W, [
93
+ s(o(f), {
84
94
  variant: "body2",
85
95
  class: "legend-label",
86
96
  "is-truncated": "",
87
- "with-tooltip": "",
97
+ "with-tooltip": !n(e),
88
98
  "tooltip-text": e.label,
89
99
  "tooltip-placement": "left"
90
100
  }, {
91
- default: m(() => [
92
- h(I(e.label), 1)
101
+ default: p(() => [
102
+ b(L(e.label), 1)
93
103
  ]),
94
104
  _: 2
95
- }, 1032, ["tooltip-text"]),
96
- n(i(_), {
105
+ }, 1032, ["with-tooltip", "tooltip-text"]),
106
+ s(o(f), {
97
107
  variant: "caption",
98
108
  class: "legend-caption legend-label",
99
109
  "is-truncated": "",
100
- "with-tooltip": "",
110
+ "with-tooltip": !n(e),
101
111
  "tooltip-text": e.caption,
102
112
  "tooltip-placement": "left"
103
113
  }, {
104
- default: m(() => [
105
- h(I(e.caption), 1)
114
+ default: p(() => [
115
+ b(L(e.caption), 1)
106
116
  ]),
107
117
  _: 2
108
- }, 1032, ["tooltip-text"])
118
+ }, 1032, ["with-tooltip", "tooltip-text"])
109
119
  ])
110
- ], 8, O)
120
+ ], 8, Q)
111
121
  ]),
112
122
  _: 2
113
123
  }, 1032, ["text", "disabled"])
@@ -118,5 +128,5 @@ const J = { class: "chart-legend" }, K = { class: "search-box" }, O = ["onClick"
118
128
  }
119
129
  });
120
130
  export {
121
- ae as default
131
+ ne as default
122
132
  };
@@ -1,25 +1,7 @@
1
- import { openBlock as o, createElementBlock as c, pushScopeId as r, popScopeId as s, createElementVNode as t } from "vue";
2
- /* empty css */import a from "../../_virtual/_plugin-vue_export-helper.js";
3
- const d = {}, i = (e) => (r("data-v-142c444a"), e = e(), s(), e), n = { class: "chart-loader" }, p = /* @__PURE__ */ i(() => /* @__PURE__ */ t("svg", {
4
- xmlns: "http://www.w3.org/2000/svg",
5
- viewBox: "0 0 1072 275",
6
- preserveAspectRatio: "none",
7
- width: "100%",
8
- height: "100%",
9
- fill: "none"
10
- }, [
11
- /* @__PURE__ */ t("path", {
12
- d: "M499.744 87.7024L499 87.4816C399.137 70.0475 293 138.418 218 173.72C120 219.848 87 235.892 0 275L1072 275C979 -57.3526 836.258 -31.5829 732 59.404C648.885 131.939 570.549 108.704 499.744 87.7024Z",
13
- fill: "black",
14
- "fill-opacity": "0.05"
15
- })
16
- ], -1)), _ = [
17
- p
18
- ];
19
- function l(e, h) {
20
- return o(), c("div", n, _);
21
- }
22
- const w = /* @__PURE__ */ a(d, [["render", l], ["__scopeId", "data-v-142c444a"]]);
1
+ import o from "./ChartLoader.vue2.js";
2
+ /* empty css */import e from "../../_virtual/_plugin-vue_export-helper.js";
3
+ // import "../../ChartLoader.vue_vue_type_style_index_0_scoped_ffa4cc66_lang.css"; //*');
4
+ const c = /* @__PURE__ */ e(o, [["__scopeId", "data-v-ffa4cc66"]]);
23
5
  export {
24
- w as default
6
+ c as default
25
7
  };
@@ -0,0 +1,15 @@
1
+ import "../../ChartLoader.vue_vue_type_style_index_0_scoped_ffa4cc66_lang.css"; import { defineComponent as e, openBlock as o, createElementBlock as r, createElementVNode as t, createVNode as a } from "vue";
2
+ import c from "../loader/v4/Loader.vue.js";
3
+ const n = { class: "chart-loader" }, s = { class: "chart-loader-wrapper" }, i = /* @__PURE__ */ e({
4
+ __name: "ChartLoader",
5
+ setup(d) {
6
+ return (_, p) => (o(), r("div", n, [
7
+ t("div", s, [
8
+ a(c)
9
+ ])
10
+ ]));
11
+ }
12
+ });
13
+ export {
14
+ i as default
15
+ };
@@ -23,6 +23,7 @@ declare const ChartTypes: () => ({
23
23
  noDataIcon: string;
24
24
  noDataTitle: string;
25
25
  noDataSubtitle: string;
26
+ withAnimation: boolean;
26
27
  }> & Omit<Readonly<import("vue").ExtractPropTypes<{
27
28
  header: {
28
29
  type: import("vue").PropType<string>;
@@ -102,10 +103,14 @@ declare const ChartTypes: () => ({
102
103
  type: import("vue").PropType<string>;
103
104
  default: string;
104
105
  };
106
+ withAnimation: {
107
+ type: import("vue").PropType<boolean>;
108
+ default: boolean;
109
+ };
105
110
  }>> & {
106
111
  "onUpdate:visibleIds"?: (visibleIds: unknown[]) => any;
107
112
  "onUpdate:chartType"?: (chartType: import("./types").ChartType) => any;
108
- } & import("vue").VNodeProps & import("vue").AllowedComponentProps & import("vue").ComponentCustomProps, "header" | "loading" | "xAxisFormat" | "yAxisFormat" | "parsing" | "visibleIds" | "minVisible" | "maxVisible" | "maxLimitTooltipText" | "chartType" | "withSettingsHeader" | "subheader" | "withSubheaderTooltip" | "dataSets" | "hideLegend" | "tickCount" | "noDataIcon" | "noDataTitle" | "noDataSubtitle">;
113
+ } & import("vue").VNodeProps & import("vue").AllowedComponentProps & import("vue").ComponentCustomProps, "header" | "loading" | "xAxisFormat" | "yAxisFormat" | "parsing" | "visibleIds" | "minVisible" | "maxVisible" | "maxLimitTooltipText" | "chartType" | "withSettingsHeader" | "subheader" | "withSubheaderTooltip" | "dataSets" | "hideLegend" | "tickCount" | "noDataIcon" | "noDataTitle" | "noDataSubtitle" | "withAnimation">;
109
114
  $attrs: {
110
115
  [x: string]: unknown;
111
116
  };
@@ -198,6 +203,10 @@ declare const ChartTypes: () => ({
198
203
  type: import("vue").PropType<string>;
199
204
  default: string;
200
205
  };
206
+ withAnimation: {
207
+ type: import("vue").PropType<boolean>;
208
+ default: boolean;
209
+ };
201
210
  }>> & {
202
211
  "onUpdate:visibleIds"?: (visibleIds: unknown[]) => any;
203
212
  "onUpdate:chartType"?: (chartType: import("./types").ChartType) => any;
@@ -224,6 +233,7 @@ declare const ChartTypes: () => ({
224
233
  noDataIcon: string;
225
234
  noDataTitle: string;
226
235
  noDataSubtitle: string;
236
+ withAnimation: boolean;
227
237
  }, {}, string> & {
228
238
  beforeCreate?: (() => void) | (() => void)[];
229
239
  created?: (() => void) | (() => void)[];
@@ -323,6 +333,10 @@ declare const ChartTypes: () => ({
323
333
  type: import("vue").PropType<string>;
324
334
  default: string;
325
335
  };
336
+ withAnimation: {
337
+ type: import("vue").PropType<boolean>;
338
+ default: boolean;
339
+ };
326
340
  }>> & {
327
341
  "onUpdate:visibleIds"?: (visibleIds: unknown[]) => any;
328
342
  "onUpdate:chartType"?: (chartType: import("./types").ChartType) => any;
@@ -409,6 +423,10 @@ declare const ChartTypes: () => ({
409
423
  type: import("vue").PropType<string>;
410
424
  default: string;
411
425
  };
426
+ withAnimation: {
427
+ type: import("vue").PropType<boolean>;
428
+ default: boolean;
429
+ };
412
430
  }>> & {
413
431
  "onUpdate:visibleIds"?: (visibleIds: unknown[]) => any;
414
432
  "onUpdate:chartType"?: (chartType: import("./types").ChartType) => any;
@@ -435,6 +453,7 @@ declare const ChartTypes: () => ({
435
453
  noDataIcon: string;
436
454
  noDataTitle: string;
437
455
  noDataSubtitle: string;
456
+ withAnimation: boolean;
438
457
  }, {}, string> & import("vue").VNodeProps & import("vue").AllowedComponentProps & import("vue").ComponentCustomProps & (new () => {
439
458
  $slots: {
440
459
  metric?(_: {}): any;
@@ -34,4 +34,12 @@ export declare const MULTIPLE_DATASETS_DATE: ({
34
34
  value: number;
35
35
  }[];
36
36
  })[];
37
+ export declare const MULTIPLE_DATASETS_SINGLE_DATE: {
38
+ id: string;
39
+ label: string;
40
+ data: {
41
+ date: string;
42
+ value: number;
43
+ }[];
44
+ }[];
37
45
  export declare const generateMockData: (numSeries?: number) => any[];
@@ -1,7 +1,7 @@
1
1
  import e from "./DateRangeV4.vue2.js";
2
2
  /* empty css */import o from "../../../_virtual/_plugin-vue_export-helper.js";
3
- // import "../../../DateRangeV4.vue_vue_type_style_index_0_scoped_309e5351_lang.css"; //*');
4
- const a = /* @__PURE__ */ o(e, [["__scopeId", "data-v-309e5351"]]);
3
+ // import "../../../DateRangeV4.vue_vue_type_style_index_0_scoped_8a2714eb_lang.css"; //*');
4
+ const s = /* @__PURE__ */ o(e, [["__scopeId", "data-v-8a2714eb"]]);
5
5
  export {
6
- a as default
6
+ s as default
7
7
  };