@solar-taro/ui-sun 1.1.0 → 1.1.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.
@@ -0,0 +1 @@
1
+ export { default as SunIcon } from './index.vue';
@@ -0,0 +1,9 @@
1
+ @use "./ionicon";
2
+
3
+ .sun-icon {
4
+ display: inline;
5
+ contain: strict;
6
+ color: currentColor;
7
+ font-size: 1em;
8
+ box-sizing: content-box;
9
+ }
@@ -0,0 +1,24 @@
1
+ declare function __VLS_template(): {
2
+ default?(_: {}): any;
3
+ };
4
+ declare const __VLS_component: import('vue').DefineComponent<import('vue').ExtractPropTypes<__VLS_TypePropsToRuntimeProps<{
5
+ name: string;
6
+ }>>, {}, {}, {}, {}, import('vue').ComponentOptionsMixin, import('vue').ComponentOptionsMixin, {}, string, import('vue').PublicProps, Readonly<import('vue').ExtractPropTypes<__VLS_TypePropsToRuntimeProps<{
7
+ name: string;
8
+ }>>> & Readonly<{}>, {}, {}, {}, {}, string, import('vue').ComponentProvideOptions, true, {}, any>;
9
+ declare const _default: __VLS_WithTemplateSlots<typeof __VLS_component, ReturnType<typeof __VLS_template>>;
10
+ export default _default;
11
+ type __VLS_NonUndefinedable<T> = T extends undefined ? never : T;
12
+ type __VLS_TypePropsToRuntimeProps<T> = {
13
+ [K in keyof T]-?: {} extends Pick<T, K> ? {
14
+ type: import('vue').PropType<__VLS_NonUndefinedable<T[K]>>;
15
+ } : {
16
+ type: import('vue').PropType<T[K]>;
17
+ required: true;
18
+ };
19
+ };
20
+ type __VLS_WithTemplateSlots<T, S> = T & {
21
+ new (): {
22
+ $slots: S;
23
+ };
24
+ };
package/index.d.ts CHANGED
@@ -1,8 +1,10 @@
1
1
  export * from './accordion';
2
2
  export * from './chip';
3
3
  export * from './fab';
4
+ export * from './icon';
4
5
  export * from './lazy-render';
5
6
  export * from './navbar';
7
+ export * from './plugin';
6
8
  export * from './popover';
7
9
  export * from './segment';
8
10
  export * from './spinner';
package/index.js CHANGED
@@ -1,34 +1,38 @@
1
- import { default as r } from "./index2.js";
1
+ import { SolarSun as r } from "./index2.js";
2
2
  import { default as u } from "./index3.js";
3
3
  import { default as f } from "./index4.js";
4
4
  import { default as S } from "./index5.js";
5
- import { default as d } from "./index6.js";
5
+ import { default as p } from "./index6.js";
6
6
  import { default as m } from "./index7.js";
7
- import { default as x } from "./index8.js";
8
- import { default as i } from "./index9.js";
7
+ import { default as s } from "./index8.js";
8
+ import { default as c } from "./index9.js";
9
9
  import { default as T } from "./index10.js";
10
10
  import { default as k } from "./index11.js";
11
11
  import { default as C } from "./index12.js";
12
- import { default as R } from "./index13.js";
13
- import { default as w } from "./index14.js";
14
- import { default as z } from "./index15.js";
15
- import { default as B } from "./index16.js";
16
- import { default as I } from "./index17.js";
12
+ import { default as I } from "./index13.js";
13
+ import { default as h } from "./index14.js";
14
+ import { default as y } from "./index15.js";
15
+ import { default as A } from "./index16.js";
16
+ import { default as G } from "./index17.js";
17
+ import { default as N } from "./index18.js";
18
+ import { default as V } from "./index19.js";
17
19
  export {
18
- r as SunAccordion,
19
- u as SunChip,
20
- B as SunFab,
21
- f as SunFabGroup,
22
- S as SunLazyRender,
23
- d as SunNavbar,
24
- m as SunPopover,
25
- i as SunSegment,
26
- x as SunSegmentBtn,
27
- T as SunSpinner,
28
- k as SunSudoku,
29
- I as SunSudokuItem,
30
- w as SunTb,
31
- C as SunTbCell,
32
- R as SunTbRow,
33
- z as SunVirtualScroll
20
+ r as SolarSun,
21
+ u as SunAccordion,
22
+ f as SunChip,
23
+ N as SunFab,
24
+ S as SunFabGroup,
25
+ p as SunIcon,
26
+ m as SunLazyRender,
27
+ s as SunNavbar,
28
+ c as SunPopover,
29
+ k as SunSegment,
30
+ T as SunSegmentBtn,
31
+ C as SunSpinner,
32
+ I as SunSudoku,
33
+ V as SunSudokuItem,
34
+ A as SunTb,
35
+ h as SunTbCell,
36
+ y as SunTbRow,
37
+ G as SunVirtualScroll
34
38
  };
package/index10.js CHANGED
@@ -1,35 +1,25 @@
1
- import { defineComponent as a, computed as c, renderList as p, Fragment as m, openBlock as d, createElementBlock as u, createElementVNode as _, renderSlot as f, createCommentVNode as k, normalizeClass as g } from "vue";
2
- const v = p, B = m, e = d, n = u, o = _, C = f, N = k, w = g, z = { class: "sun-spinner-dot" }, E = {
3
- key: 0,
4
- class: "sun-spinner-desc"
5
- }, y = /* @__PURE__ */ a({
6
- __name: "index",
1
+ import { defineComponent as p, inject as a, getCurrentInstance as c, onUnmounted as m, unref as u, renderSlot as i, mergeProps as _, openBlock as f, createElementBlock as v } from "vue";
2
+ import { ACTIVE_CHILD as d, PARENT as g } from "./index36.js";
3
+ const o = u, k = i, C = _, B = f, E = v, $ = /* @__PURE__ */ p({
4
+ __name: "segment-btn",
7
5
  props: {
8
- size: {},
9
- spinning: { type: Boolean }
6
+ value: {}
10
7
  },
11
- setup(r) {
12
- const s = r, i = c(() => [
13
- {
14
- "sun-spinner-spinning": s.spinning
15
- },
16
- `sun-spinner-${s.size}`
17
- ]);
18
- return (t, V) => (e(), n("view", {
19
- class: w(["sun-spinner", i.value])
20
- }, [
21
- o("view", z, [
22
- (e(), n(B, null, v(4, (l) => o("view", {
23
- key: l,
24
- class: "sun-spinner-dot-item"
25
- })), 64))
26
- ]),
27
- t.$slots.default ? (e(), n("view", E, [
28
- C(t.$slots, "default")
29
- ])) : N("", !0)
30
- ], 2));
8
+ setup(b) {
9
+ const l = a(d), e = a(g), n = c();
10
+ return m(() => {
11
+ e.unlink(n);
12
+ }), e.link(n), (t, r) => {
13
+ var s;
14
+ return B(), E("view", C(t.$attrs, {
15
+ class: ["sun-segment-btn", { "sun-segment-btn-active": ((s = o(l)) == null ? void 0 : s.props.value) === t.value }],
16
+ onTap: r[0] || (r[0] = (I) => o(e).active(o(n)))
17
+ }), [
18
+ k(t.$slots, "default")
19
+ ], 16);
20
+ };
31
21
  }
32
22
  });
33
23
  export {
34
- y as default
24
+ $ as default
35
25
  };
package/index11.js CHANGED
@@ -1,27 +1,56 @@
1
- import { defineComponent as u, computed as n, renderSlot as c, mergeProps as r, openBlock as l, createElementBlock as d } from "vue";
2
- const a = c, m = r, p = l, k = d, _ = /* @__PURE__ */ u({
3
- __name: "sudoku",
1
+ import { defineComponent as x, getCurrentInstance as V, shallowRef as E, shallowReactive as k, computed as c, provide as m, watch as C, onMounted as w, renderSlot as y, createElementVNode as B, mergeProps as I, openBlock as O, createElementBlock as A } from "vue";
2
+ import { ACTIVE_CHILD as N, PARENT as P } from "./index36.js";
3
+ const R = y, T = B, b = I, L = O, S = A, $ = { class: "sun-segment-inner" }, M = /* @__PURE__ */ x({
4
+ __name: "segment",
4
5
  props: {
5
- size: String,
6
- count: {
7
- type: Number,
8
- default: 9
9
- }
6
+ modelValue: {}
10
7
  },
11
- setup(o) {
12
- const e = o, t = n(() => ({
13
- "sun-sudoku-sm": e.count === 1,
14
- "sun-sudoku-md": e.count === 2 || e.count === 4,
15
- "sun-sudoku-lg": e.count === 3 || e.count > 4
8
+ emits: ["update:modelValue", "change"],
9
+ setup(v, { emit: f }) {
10
+ const d = f, u = v, g = V(), o = E(null), t = k([]), i = c(() => t.indexOf(o.value)), h = c(() => t.length), _ = c(() => ({
11
+ "--segment-length": h.value,
12
+ "--segment-active-index": i.value
16
13
  }));
17
- return (s, i) => (p(), k("view", m(s.$attrs, {
18
- class: ["sun-sudoku", t.value],
19
- style: { "--sudoku-width": o.size }
14
+ m(N, o), m(P, {
15
+ link: (e) => {
16
+ const n = p();
17
+ t.push(e), t.sort((a, s) => {
18
+ const l = n.indexOf(a.vnode), r = n.indexOf(s.vnode);
19
+ return l - r;
20
+ });
21
+ },
22
+ unlink: (e) => {
23
+ t.slice(t.indexOf(e), 1);
24
+ },
25
+ active: (e) => {
26
+ d("change", {
27
+ value: e.props.value,
28
+ index: i.value
29
+ }), d("update:modelValue", e.props.value), o.value = e;
30
+ }
31
+ }), C(() => u.modelValue, (e) => {
32
+ o.value = t.find((n) => n.props.value === e);
33
+ });
34
+ function p() {
35
+ return g.subTree.children[0].children[0].children.filter((e) => typeof e.type != "symbol");
36
+ }
37
+ return w(() => {
38
+ const e = p();
39
+ t.forEach((n) => {
40
+ var s, l;
41
+ const a = e.findIndex((r) => r === n.vnode);
42
+ (l = (s = n.props).value) != null || (s.value = a), n.props.value === u.modelValue && (o.value = n);
43
+ });
44
+ }), (e, n) => (L(), S("view", b(e.$attrs, {
45
+ class: "sun-segment",
46
+ style: _.value
20
47
  }), [
21
- a(s.$slots, "default")
48
+ T("view", $, [
49
+ R(e.$slots, "default")
50
+ ])
22
51
  ], 16));
23
52
  }
24
53
  });
25
54
  export {
26
- _ as default
55
+ M as default
27
56
  };
package/index12.js CHANGED
@@ -1,28 +1,35 @@
1
- import { defineComponent as o, computed as r, renderSlot as i, mergeProps as n, openBlock as c, createElementBlock as a } from "vue";
2
- const p = i, d = n, m = c, k = a, b = /* @__PURE__ */ o({
3
- __name: "table-cell",
1
+ import { defineComponent as a, computed as c, renderList as p, Fragment as m, openBlock as d, createElementBlock as u, createElementVNode as _, renderSlot as f, createCommentVNode as k, normalizeClass as g } from "vue";
2
+ const v = p, B = m, e = d, n = u, o = _, C = f, N = k, w = g, z = { class: "sun-spinner-dot" }, E = {
3
+ key: 0,
4
+ class: "sun-spinner-desc"
5
+ }, y = /* @__PURE__ */ a({
6
+ __name: "index",
4
7
  props: {
5
- sticky: {},
6
- width: {},
7
- maxWidth: {},
8
- ellipsis: { type: Boolean },
9
- breakWord: { type: Boolean }
8
+ size: {},
9
+ spinning: { type: Boolean }
10
10
  },
11
- setup(l) {
12
- const t = l, s = r(() => ({
13
- "sun-tb-cell-sticky-left": t.sticky === "left",
14
- "sun-tb-cell-sticky-right": t.sticky === "right",
15
- "sun-tb-cell-ellipsis": t.ellipsis,
16
- "sun-tb-cell-break-word": t.breakWord
17
- }));
18
- return (e, u) => (m(), k("view", d(e.$attrs, {
19
- class: ["sun-tb-cell", s.value],
20
- style: { width: e.width, "min-width": e.width, "max-width": e.maxWidth }
21
- }), [
22
- p(e.$slots, "default")
23
- ], 16));
11
+ setup(r) {
12
+ const s = r, i = c(() => [
13
+ {
14
+ "sun-spinner-spinning": s.spinning
15
+ },
16
+ `sun-spinner-${s.size}`
17
+ ]);
18
+ return (t, V) => (e(), n("view", {
19
+ class: w(["sun-spinner", i.value])
20
+ }, [
21
+ o("view", z, [
22
+ (e(), n(B, null, v(4, (l) => o("view", {
23
+ key: l,
24
+ class: "sun-spinner-dot-item"
25
+ })), 64))
26
+ ]),
27
+ t.$slots.default ? (e(), n("view", E, [
28
+ C(t.$slots, "default")
29
+ ])) : N("", !0)
30
+ ], 2));
24
31
  }
25
32
  });
26
33
  export {
27
- b as default
34
+ y as default
28
35
  };
package/index13.js CHANGED
@@ -1,18 +1,27 @@
1
- import { defineComponent as o, renderSlot as t, mergeProps as r, openBlock as n, createElementBlock as s } from "vue";
2
- const a = t, l = r, p = n, c = s, u = /* @__PURE__ */ o({
3
- __name: "table-row",
1
+ import { defineComponent as u, computed as n, renderSlot as c, mergeProps as r, openBlock as l, createElementBlock as d } from "vue";
2
+ const a = c, m = r, p = l, k = d, _ = /* @__PURE__ */ u({
3
+ __name: "sudoku",
4
4
  props: {
5
- head: { type: Boolean },
6
- foot: { type: Boolean }
5
+ size: String,
6
+ count: {
7
+ type: Number,
8
+ default: 9
9
+ }
7
10
  },
8
- setup(m) {
9
- return (e, d) => (p(), c("view", l(e.$attrs, {
10
- class: ["sun-tb-row", { "sun-tb-head": e.head, "sun-tb-foot": e.foot }]
11
+ setup(o) {
12
+ const e = o, t = n(() => ({
13
+ "sun-sudoku-sm": e.count === 1,
14
+ "sun-sudoku-md": e.count === 2 || e.count === 4,
15
+ "sun-sudoku-lg": e.count === 3 || e.count > 4
16
+ }));
17
+ return (s, i) => (p(), k("view", m(s.$attrs, {
18
+ class: ["sun-sudoku", t.value],
19
+ style: { "--sudoku-width": o.size }
11
20
  }), [
12
- a(e.$slots, "default")
21
+ a(s.$slots, "default")
13
22
  ], 16));
14
23
  }
15
24
  });
16
25
  export {
17
- u as default
26
+ _ as default
18
27
  };
package/index14.js CHANGED
@@ -1,35 +1,28 @@
1
- import { defineComponent as a, computed as t, renderSlot as l, normalizeClass as u, createElementVNode as d, mergeProps as b, openBlock as c, createElementBlock as p } from "vue";
2
- const m = l, i = u, B = d, _ = b, z = c, y = p, k = /* @__PURE__ */ a({
3
- __name: "table",
1
+ import { defineComponent as o, computed as r, renderSlot as i, mergeProps as n, openBlock as c, createElementBlock as a } from "vue";
2
+ const p = i, d = n, m = c, k = a, b = /* @__PURE__ */ o({
3
+ __name: "table-cell",
4
4
  props: {
5
- rounded: { type: Boolean, default: !0 },
6
- bordered: { type: Boolean },
7
- outerBordered: { type: Boolean, default: !0 },
8
- zebra: { type: Boolean },
9
- size: {},
10
- layout: {}
5
+ sticky: {},
6
+ width: {},
7
+ maxWidth: {},
8
+ ellipsis: { type: Boolean },
9
+ breakWord: { type: Boolean }
11
10
  },
12
- setup(r) {
13
- const e = r, n = t(() => ({
14
- "sun-tb-rounded": e.rounded,
15
- "sun-tb-bordered": e.bordered,
16
- "sun-tb-outer-bordered": e.outerBordered,
17
- [`sun-tb-size-${e.size}`]: e.size
18
- })), s = t(() => ({
19
- "sun-tb-zebra": e.zebra,
20
- [`sun-tb-layout-${e.layout}`]: e.layout
11
+ setup(l) {
12
+ const t = l, s = r(() => ({
13
+ "sun-tb-cell-sticky-left": t.sticky === "left",
14
+ "sun-tb-cell-sticky-right": t.sticky === "right",
15
+ "sun-tb-cell-ellipsis": t.ellipsis,
16
+ "sun-tb-cell-break-word": t.breakWord
21
17
  }));
22
- return (o, f) => (z(), y("view", _(o.$attrs, {
23
- class: ["sun-tb", n.value]
18
+ return (e, u) => (m(), k("view", d(e.$attrs, {
19
+ class: ["sun-tb-cell", s.value],
20
+ style: { width: e.width, "min-width": e.width, "max-width": e.maxWidth }
24
21
  }), [
25
- B("view", {
26
- class: i(["sun-tb-inner", s.value])
27
- }, [
28
- m(o.$slots, "default")
29
- ], 2)
22
+ p(e.$slots, "default")
30
23
  ], 16));
31
24
  }
32
25
  });
33
26
  export {
34
- k as default
27
+ b as default
35
28
  };
package/index15.js CHANGED
@@ -1,101 +1,18 @@
1
- import { defineComponent as I, ref as m, computed as s, onMounted as C, renderList as E, Fragment as V, openBlock as _, createElementBlock as L, renderSlot as M, normalizeStyle as T, createElementVNode as A, unref as K, mergeProps as N } from "vue";
2
- import { withPixel as y } from "@solar-kit/core";
3
- import { rpxToPx as R, vibrator as q } from "@solar-taro/core";
4
- import { createSelectorQuery as D } from "@tarojs/taro";
5
- const O = E, Q = V, f = _, d = L, W = M, p = T, w = A, X = K, Y = N, j = ["id", "refresher-enabled", "refresher-triggered", "refresher-background", "scroll-x", "scroll-y"];
6
- let G = 1;
7
- const ee = /* @__PURE__ */ I({
8
- __name: "index",
1
+ import { defineComponent as o, renderSlot as t, mergeProps as r, openBlock as n, createElementBlock as s } from "vue";
2
+ const a = t, l = r, p = n, c = s, u = /* @__PURE__ */ o({
3
+ __name: "table-row",
9
4
  props: {
10
- refreshing: { type: Boolean },
11
- refresher: { type: Boolean },
12
- refresherBg: { default: "transparent" },
13
- direction: { default: "vertical" },
14
- items: {},
15
- itemSize: {},
16
- itemKey: {},
17
- id: { default: () => `sun-virtual-scroll-${G++}` },
18
- bottomSpace: { default: 0 }
5
+ head: { type: Boolean },
6
+ foot: { type: Boolean }
19
7
  },
20
- emits: ["refresh", "lower"],
21
- setup(b, { emit: z }) {
22
- const h = z, t = b;
23
- let a;
24
- const i = m(0), u = m(0), v = m(0), l = s(() => t.direction === "vertical"), k = s(() => ({
25
- right: l.value ? "0" : "auto",
26
- transform: `translate${l.value ? "Y" : "X"}(${v.value}px)`,
27
- "white-space": l.value ? "normal" : "nowrap"
28
- })), n = s(() => typeof t.itemSize == "number" ? t.itemSize : t.itemSize.endsWith("rpx") ? R(parseFloat(t.itemSize)) : parseFloat(t.itemSize)), B = s(() => n.value * t.items.length), $ = s(() => ({
29
- [l.value ? "height" : "width"]: y(B.value + t.bottomSpace)
30
- })), x = s(() => ({
31
- display: l.value ? "block" : "inline-block",
32
- [l.value ? "height" : "width"]: y(n.value)
33
- })), F = s(
34
- () => t.items.slice(
35
- Math.max(u.value - i.value, 0),
36
- u.value + i.value * 2
37
- )
38
- );
39
- function P({ detail: r }) {
40
- a && cancelAnimationFrame(a), a = requestAnimationFrame(() => {
41
- const e = l.value ? r.scrollTop : r.scrollLeft;
42
- u.value = ~~(e / n.value), u.value > i.value - 1 ? v.value = e - n.value * i.value - e % n.value : v.value = e - e % (n.value * i.value), a = 0;
43
- });
44
- }
45
- function S() {
46
- setTimeout(() => {
47
- D().select(`#${t.id}`).boundingClientRect((r) => {
48
- if (!r)
49
- return S();
50
- const { height: e, width: o } = r, c = l.value ? e : o;
51
- i.value = Math.ceil(c / n.value);
52
- }).exec();
53
- });
54
- }
55
- return C(() => {
56
- S();
57
- }), (r, e) => (f(), d("scroll-view", Y(r.$attrs, {
58
- id: r.id,
59
- class: "sun-virtual-scroll",
60
- "refresher-enabled": r.refresher,
61
- "refresher-triggered": r.refreshing,
62
- "refresher-background": r.refresherBg,
63
- "scroll-x": !l.value,
64
- "scroll-y": l.value,
65
- enhanced: !0,
66
- "enable-passive": !0,
67
- "lower-threshold": 300,
68
- onScrollPassive: e[0] || (e[0] = (o) => P(o)),
69
- onRefresherrefresh: e[1] || (e[1] = (o) => {
70
- X(q).short("light"), h("refresh");
71
- }),
72
- onScrolltolower: e[2] || (e[2] = (o) => h("lower"))
8
+ setup(m) {
9
+ return (e, d) => (p(), c("view", l(e.$attrs, {
10
+ class: ["sun-tb-row", { "sun-tb-head": e.head, "sun-tb-foot": e.foot }]
73
11
  }), [
74
- w("view", {
75
- class: "sun-virtual-scroll-content-container",
76
- style: p(k.value)
77
- }, [
78
- (f(!0), d(Q, null, O(F.value, (o, c) => {
79
- var g;
80
- return f(), d("view", {
81
- key: (g = o[r.itemKey]) != null ? g : c,
82
- class: "sun-virtual-scroll-item",
83
- style: p(x.value)
84
- }, [
85
- W(r.$slots, "default", {
86
- item: o,
87
- index: c
88
- })
89
- ], 4);
90
- }), 128))
91
- ], 4),
92
- w("view", {
93
- class: "sun-virtual-scroll-spacer",
94
- style: p($.value)
95
- }, null, 4)
96
- ], 16, j));
12
+ a(e.$slots, "default")
13
+ ], 16));
97
14
  }
98
15
  });
99
16
  export {
100
- ee as default
17
+ u as default
101
18
  };
package/index16.js CHANGED
@@ -1,12 +1,35 @@
1
- import { renderSlot as r, mergeProps as o, openBlock as t, createElementBlock as n } from "vue";
2
- import c from "./index19.js";
3
- const s = {}, l = r, a = o, f = t, _ = n;
4
- function m(e, p) {
5
- return f(), _("view", a(e.$attrs, { class: "sun-fab" }), [
6
- l(e.$slots, "default")
7
- ], 16);
8
- }
9
- const u = /* @__PURE__ */ c(s, [["render", m]]);
1
+ import { defineComponent as a, computed as t, renderSlot as l, normalizeClass as u, createElementVNode as d, mergeProps as b, openBlock as c, createElementBlock as p } from "vue";
2
+ const m = l, i = u, B = d, _ = b, z = c, y = p, k = /* @__PURE__ */ a({
3
+ __name: "table",
4
+ props: {
5
+ rounded: { type: Boolean, default: !0 },
6
+ bordered: { type: Boolean },
7
+ outerBordered: { type: Boolean, default: !0 },
8
+ zebra: { type: Boolean },
9
+ size: {},
10
+ layout: {}
11
+ },
12
+ setup(r) {
13
+ const e = r, n = t(() => ({
14
+ "sun-tb-rounded": e.rounded,
15
+ "sun-tb-bordered": e.bordered,
16
+ "sun-tb-outer-bordered": e.outerBordered,
17
+ [`sun-tb-size-${e.size}`]: e.size
18
+ })), s = t(() => ({
19
+ "sun-tb-zebra": e.zebra,
20
+ [`sun-tb-layout-${e.layout}`]: e.layout
21
+ }));
22
+ return (o, f) => (z(), y("view", _(o.$attrs, {
23
+ class: ["sun-tb", n.value]
24
+ }), [
25
+ B("view", {
26
+ class: i(["sun-tb-inner", s.value])
27
+ }, [
28
+ m(o.$slots, "default")
29
+ ], 2)
30
+ ], 16));
31
+ }
32
+ });
10
33
  export {
11
- u as default
34
+ k as default
12
35
  };