@aplus-frontend/ui 7.0.0-beta.2 → 7.0.0-beta.3

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 (143) hide show
  1. package/es/index.mjs +216 -218
  2. package/es/src/ag-grid/editable/form-item.vue.mjs +68 -63
  3. package/es/src/ag-grid/editable/index.vue.mjs +66 -61
  4. package/es/src/ag-grid/editable/interface.d.ts +3 -1
  5. package/es/src/ag-grid/hooks/use-editable-form-item-api.mjs +65 -63
  6. package/es/src/ag-grid/style/index.d.ts +28 -1
  7. package/es/src/ag-grid/style/index.mjs +56 -43
  8. package/es/src/ag-grid/theme.mjs +12 -11
  9. package/es/src/ap-action/item/index.vue2.mjs +14 -12
  10. package/es/src/ap-action/style/dropdown-item.mjs +4 -4
  11. package/es/src/ap-action/style/index.d.ts +5 -2
  12. package/es/src/ap-action/style/index.mjs +29 -23
  13. package/es/src/ap-button/ap-button.vue.mjs +45 -49
  14. package/es/src/ap-button/style/index.mjs +5 -4
  15. package/es/src/ap-download/hooks/useStyle.mjs +9 -9
  16. package/es/src/ap-form/style/item.d.ts +1 -2
  17. package/es/src/ap-form/style/item.mjs +12 -16
  18. package/es/src/ap-form/style/modal-form.d.ts +2 -1
  19. package/es/src/ap-form/style/modal-form.mjs +26 -13
  20. package/es/src/ap-form/style/search-form-sorter.d.ts +2 -1
  21. package/es/src/ap-form/style/search-form-sorter.mjs +20 -13
  22. package/es/src/ap-form/style/token.d.ts +25 -1
  23. package/es/src/ap-grid/hooks/use-table-style.mjs +1 -1
  24. package/es/src/ap-grid/index.vue.mjs +2 -2
  25. package/es/src/ap-grid/style/index.d.ts +4 -1
  26. package/es/src/ap-grid/style/index.mjs +10 -7
  27. package/es/src/ap-table/ap-table.vue2.mjs +2 -2
  28. package/es/src/ap-table/utils.mjs +14 -11
  29. package/es/src/ap-tag/ap-tag.vue.mjs +7 -6
  30. package/es/src/business/ap-appendix/style/index.d.ts +3 -2
  31. package/es/src/business/ap-appendix/style/index.mjs +19 -16
  32. package/es/src/business/ap-appendix/style/token.d.ts +4 -0
  33. package/es/src/business/ap-appendix/style/token.mjs +6 -0
  34. package/es/src/business/ap-attachment/ApAttachment.mjs +73 -73
  35. package/es/src/business/ap-attachment/style/index.mjs +1 -0
  36. package/es/src/business/ap-batch-action/style/index.mjs +3 -3
  37. package/es/src/business/ap-radio-group/style/index.mjs +3 -3
  38. package/es/src/business/ap-view/style/index.mjs +18 -21
  39. package/es/src/business/batch-input-group/style/index.d.ts +3 -0
  40. package/es/src/business/batch-input-group/style/index.mjs +9 -5
  41. package/es/src/check-card/style/index.mjs +37 -31
  42. package/es/src/config-provider/config-provider.d.ts +1 -2
  43. package/es/src/config-provider/hooks/use-global-config.d.ts +1 -2
  44. package/es/src/config-provider/hooks/use-global-config.mjs +42 -33
  45. package/es/src/config-provider/hooks/use-token.d.ts +7 -2
  46. package/es/src/config-provider/hooks/use-token.mjs +6 -3
  47. package/es/src/config-provider/index.d.ts +1 -2
  48. package/es/src/design-token/constants.d.ts +1 -6
  49. package/es/src/design-token/constants.mjs +2 -100
  50. package/es/src/design-token/index.d.ts +1 -1
  51. package/es/src/design-token/index.mjs +5 -6
  52. package/es/src/design-token/interface.d.ts +9 -1
  53. package/es/src/design-token/interface.mjs +1 -0
  54. package/es/src/full-screen/index.vue.mjs +31 -30
  55. package/es/src/index.mjs +196 -198
  56. package/es/src/mask/style/index.mjs +2 -2
  57. package/es/src/scroll-bar/style/index.mjs +17 -17
  58. package/es/src/splitter/style/index.d.ts +9 -1
  59. package/es/src/splitter/style/index.mjs +1 -2
  60. package/es/src/text/style/index.d.ts +4 -1
  61. package/es/src/text/style/index.mjs +22 -18
  62. package/es/src/utils/cssinjs/index.d.ts +1 -5
  63. package/es/src/utils/cssinjs/index.mjs +49 -39
  64. package/es/src/utils/cssinjs/instance.mjs +7 -7
  65. package/es/src/utils/cssinjs/plugin-append-cssvar.d.ts +6 -0
  66. package/es/src/utils/cssinjs/plugin-append-cssvar.mjs +6 -0
  67. package/es/src/utils/cssinjs/utils.d.ts +6 -0
  68. package/es/src/utils/cssinjs/utils.mjs +15 -0
  69. package/es/src/version.d.ts +1 -1
  70. package/es/src/version.mjs +1 -1
  71. package/lib/index.js +1 -1
  72. package/lib/src/ag-grid/editable/form-item.vue.js +1 -1
  73. package/lib/src/ag-grid/editable/index.vue.js +1 -1
  74. package/lib/src/ag-grid/editable/interface.d.ts +3 -1
  75. package/lib/src/ag-grid/hooks/use-editable-form-item-api.js +1 -1
  76. package/lib/src/ag-grid/style/index.d.ts +28 -1
  77. package/lib/src/ag-grid/style/index.js +1 -1
  78. package/lib/src/ag-grid/theme.js +1 -1
  79. package/lib/src/ap-action/item/index.vue2.js +1 -1
  80. package/lib/src/ap-action/style/dropdown-item.js +1 -1
  81. package/lib/src/ap-action/style/index.d.ts +5 -2
  82. package/lib/src/ap-action/style/index.js +1 -1
  83. package/lib/src/ap-button/ap-button.vue.js +1 -1
  84. package/lib/src/ap-button/style/index.js +1 -1
  85. package/lib/src/ap-download/hooks/useStyle.js +1 -1
  86. package/lib/src/ap-form/style/item.d.ts +1 -2
  87. package/lib/src/ap-form/style/item.js +1 -1
  88. package/lib/src/ap-form/style/modal-form.d.ts +2 -1
  89. package/lib/src/ap-form/style/modal-form.js +1 -1
  90. package/lib/src/ap-form/style/search-form-sorter.d.ts +2 -1
  91. package/lib/src/ap-form/style/search-form-sorter.js +1 -1
  92. package/lib/src/ap-form/style/token.d.ts +25 -1
  93. package/lib/src/ap-grid/hooks/use-table-style.js +1 -1
  94. package/lib/src/ap-grid/index.vue.js +1 -1
  95. package/lib/src/ap-grid/style/index.d.ts +4 -1
  96. package/lib/src/ap-grid/style/index.js +1 -1
  97. package/lib/src/ap-table/ap-table.vue2.js +1 -1
  98. package/lib/src/ap-table/utils.js +1 -1
  99. package/lib/src/ap-tag/ap-tag.vue.js +1 -1
  100. package/lib/src/business/ap-appendix/style/index.d.ts +3 -2
  101. package/lib/src/business/ap-appendix/style/index.js +1 -1
  102. package/lib/src/business/ap-appendix/style/token.d.ts +4 -0
  103. package/lib/src/business/ap-appendix/style/token.js +1 -0
  104. package/lib/src/business/ap-attachment/ApAttachment.js +1 -1
  105. package/lib/src/business/ap-attachment/style/index.js +1 -1
  106. package/lib/src/business/ap-batch-action/style/index.js +1 -1
  107. package/lib/src/business/ap-radio-group/style/index.js +1 -1
  108. package/lib/src/business/ap-view/style/index.js +1 -1
  109. package/lib/src/business/batch-input-group/style/index.d.ts +3 -0
  110. package/lib/src/business/batch-input-group/style/index.js +1 -1
  111. package/lib/src/check-card/style/index.js +1 -1
  112. package/lib/src/config-provider/config-provider.d.ts +1 -2
  113. package/lib/src/config-provider/hooks/use-global-config.d.ts +1 -2
  114. package/lib/src/config-provider/hooks/use-global-config.js +1 -1
  115. package/lib/src/config-provider/hooks/use-token.d.ts +7 -2
  116. package/lib/src/config-provider/hooks/use-token.js +1 -1
  117. package/lib/src/config-provider/index.d.ts +1 -2
  118. package/lib/src/design-token/constants.d.ts +1 -6
  119. package/lib/src/design-token/constants.js +1 -1
  120. package/lib/src/design-token/index.d.ts +1 -1
  121. package/lib/src/design-token/index.js +1 -1
  122. package/lib/src/design-token/interface.d.ts +9 -1
  123. package/lib/src/design-token/interface.js +1 -0
  124. package/lib/src/full-screen/index.vue.js +1 -1
  125. package/lib/src/index.js +1 -1
  126. package/lib/src/mask/style/index.js +2 -2
  127. package/lib/src/scroll-bar/style/index.js +1 -1
  128. package/lib/src/splitter/style/index.d.ts +9 -1
  129. package/lib/src/splitter/style/index.js +1 -1
  130. package/lib/src/text/style/index.d.ts +4 -1
  131. package/lib/src/text/style/index.js +1 -1
  132. package/lib/src/utils/cssinjs/index.d.ts +1 -5
  133. package/lib/src/utils/cssinjs/index.js +1 -1
  134. package/lib/src/utils/cssinjs/instance.js +1 -1
  135. package/lib/src/utils/cssinjs/plugin-append-cssvar.d.ts +6 -0
  136. package/lib/src/utils/cssinjs/plugin-append-cssvar.js +1 -0
  137. package/lib/src/utils/cssinjs/utils.d.ts +6 -0
  138. package/lib/src/utils/cssinjs/utils.js +1 -0
  139. package/lib/src/version.d.ts +1 -1
  140. package/lib/src/version.js +1 -1
  141. package/package.json +1 -1
  142. package/es/src/utils/cssinjs/plugin-specificity.mjs +0 -13
  143. package/lib/src/utils/cssinjs/plugin-specificity.js +0 -1
@@ -5,10 +5,9 @@ import { CSPConfig } from '@aplus-frontend/antdv/es/config-provider';
5
5
  import { Locale } from '@aplus-frontend/antdv/es/locale';
6
6
  import { ButtonSize } from '@aplus-frontend/antdv/es/button';
7
7
  import { ThemeConfig, InputConfig, PaginationConfig, FormConfig, SelectConfig, CascaderConfig, DatePickerConfig, RangePickerConfig, TreeSelectConfig, TextAreaConfig, InputNumberConfig, MentionsConfig, TimePickerConfig, CardConfig } from '@aplus-frontend/antdv/es/config-provider/context';
8
- import { ApGridRowSelection, AgGridRowSelection, ViewCacheOption } from '..';
8
+ import { ApGridRowSelection, AgGridRowSelection, FullToken, ViewCacheOption } from '..';
9
9
  import { LocaleType } from '../locale';
10
10
  import { RecursivePartial } from '../type';
11
- import { FullToken } from '../design-token/interface';
12
11
  import { ApiType, ApUploadConfig, ApDescriptionsConfig, ValueTypeRenderConfig, downloadCenterTriggerConfig, ExportField, SearchFormGlobalConfig } from './constants';
13
12
  export * from './config-provider-props';
14
13
  export * from './constants';
@@ -1,7 +1,2 @@
1
- import { BaseToken, FullToken } from './interface';
1
+ import { BaseToken } from './interface';
2
2
  export declare const defaultToken: BaseToken;
3
- export declare const aplusUIAdminBaseToken: BaseToken;
4
- /**
5
- * 预设全量的APlus-UI admin端的token
6
- */
7
- export declare const aplusUITokenAdminPreset: FullToken;
@@ -1,4 +1,4 @@
1
- const e = {
1
+ const o = {
2
2
  borderColorBase: "#dee4ed",
3
3
  hoverColorBase: "#66a9ff",
4
4
  activeColorBase: "#66a9ff",
@@ -43,105 +43,7 @@ const e = {
43
43
  scrollbarTrackColorHover: "#f2f6f9",
44
44
  tableHeaderBg: "#f2f6f9",
45
45
  lineClamp: 2
46
- }, o = {
47
- borderColorBase: "#d9d9d9",
48
- hoverColorBase: "#85d4b0",
49
- activeColorBase: "#85d4b0",
50
- colorPrimary: "#34b77c",
51
- colorPrimaryDisabled: "#d6f1e5",
52
- colorLink: "#1890ff",
53
- colorLinkHover: "#5eb1ff",
54
- colorLinkDisabled: "#cce2ff",
55
- colorSuccess: "#34b77c",
56
- colorSuccessDisabled: "#d6f1e5",
57
- colorError: "#ff4d4f",
58
- colorErrorDisabled: "#ffdbdc",
59
- colorWarn: "#faad14",
60
- colorWarnDisabled: "#ffeed9",
61
- textColor1: "#666",
62
- textColor2: "#333",
63
- textColor3: "#999",
64
- textColor4: "#bfbfbf",
65
- colorBg1: "#e9e9e9",
66
- colorBg2: "#f6f9fa",
67
- colorBg3: "#f5f5f5",
68
- colorBgDisabled: "#f5f5f5",
69
- fontSizeSM: 10,
70
- fontSize: 12,
71
- fontSizeLG: 14,
72
- fontSizeXL: 16,
73
- lineHeightSM: 16,
74
- lineHeight: 18,
75
- lineHeightLG: 22,
76
- borderRadiusXS: 1,
77
- borderRadius: 4,
78
- spaceXXS: 2,
79
- spaceXS: 4,
80
- spaceSM: 6,
81
- space: 8,
82
- spaceMD: 10,
83
- spaceLG: 12,
84
- spaceXL: 16,
85
- spaceXXL: 24,
86
- scrollbarThumbColorBase: "#bfbfbf",
87
- scrollbarThumbColorHover: "#787878",
88
- scrollbarTrackColorHover: "#f7f7f7",
89
- tableHeaderBg: "#f7f7f7",
90
- lineClamp: 2
91
- }, r = {
92
- apProCardHeaderPadding: "8px 16px 0",
93
- apProCardHeaderPaddingBottom: "8px",
94
- apProCardBorderRadius: "4px",
95
- apProCardColorBgContainer: "transparent",
96
- apProCardBodyPadding: "8px 16px",
97
- apProCardActionsPadding: "12px 16px",
98
- apProCardBorderLineWidth: "1px",
99
- apProCardBorderLineType: "solid",
100
- apProCardBorderColorSplit: "#e9e9e9",
101
- apProCardBoxShadow: "3px 10px 30px -2px rgba(123, 121, 140, 0.15)",
102
- apProCardTooltipColor: "#999",
103
- apProCardHeaderTitleFontSize: "12px",
104
- apProCardHeaderTitleFontColor: "#333",
105
- apProCardAreaColor: "#eff9f5",
106
- apProCardSplitLineHeight: "100%",
107
- apProCardDividerLineHeight: "60%"
108
- }, a = {
109
- ...o,
110
- components: {
111
- ApAction: {
112
- loadingOpacity: 0.35
113
- },
114
- CheckCard: {
115
- checkCardDisabledBg: "#F9F9FA",
116
- checkCardDisabledOutlineColor: "#E9EDF3",
117
- checkCardIndicatorSize: 14,
118
- checkCardOutlineWidth: 2,
119
- checkCardIndicatorOffset: -2
120
- },
121
- ApForm: { apFormBorderedShadowColor: "rgba(5, 155, 255, 0.1)" },
122
- ApList: {
123
- apListSpinnigOpacity: 0.5
124
- },
125
- Scrollbar: {
126
- scrollBarBarColor: "#c7c8cc",
127
- scrollBarTrackColor: "#F2F2F2",
128
- scrollBarTrackDisabledColor: "#FAFAFA",
129
- scrollBarBarWidth: 8,
130
- scrollBarTrackWidth: 10
131
- },
132
- Mask: { maskAnimationDuration: "0.25s", maskOpacity: 0.45 },
133
- Splitter: {
134
- splitterBarSize: 2,
135
- splitterTriggerSize: 6,
136
- splitterResizeSpinnerSize: 20,
137
- splitterSplitBarDraggableSize: 20
138
- },
139
- ProCard: r,
140
- StatisticsCard: r
141
- }
142
46
  };
143
47
  export {
144
- o as aplusUIAdminBaseToken,
145
- a as aplusUITokenAdminPreset,
146
- e as defaultToken
48
+ o as defaultToken
147
49
  };
@@ -1,4 +1,4 @@
1
1
  import { ThemeConfig } from '@aplus-frontend/antdv/es/config-provider/context';
2
- export { aplusUITokenAdminPreset } from './constants';
2
+ export * from './interface';
3
3
  export declare const aplusToken: ThemeConfig['token'];
4
4
  export declare const adminToken: ThemeConfig['token'];
@@ -1,4 +1,4 @@
1
- import { aplusUITokenAdminPreset as t } from "./constants.mjs";
1
+ import "./interface.mjs";
2
2
  const o = {
3
3
  borderRadius: 4,
4
4
  fontSize: 12,
@@ -7,7 +7,7 @@ const o = {
7
7
  lineHeightSM: 1.6,
8
8
  wireframe: !1,
9
9
  sizeUnit: 3
10
- }, r = {
10
+ }, e = {
11
11
  ...o,
12
12
  // 主色
13
13
  colorPrimary: "#0070FF",
@@ -40,7 +40,7 @@ const o = {
40
40
  controlItemBgActive: "#F5F9FF",
41
41
  controlItemBgActiveHover: "#EAF2FF",
42
42
  colorBorderSecondary: "#E9EDF3"
43
- }, e = {
43
+ }, c = {
44
44
  ...o,
45
45
  // 主色
46
46
  colorPrimary: "#34B77C",
@@ -76,7 +76,6 @@ const o = {
76
76
  colorBorderSecondary: "#E9E9E9"
77
77
  };
78
78
  export {
79
- e as adminToken,
80
- r as aplusToken,
81
- t as aplusUITokenAdminPreset
79
+ c as adminToken,
80
+ e as aplusToken
82
81
  };
@@ -8,6 +8,10 @@ import { ScrollbarToken } from '../scroll-bar/style';
8
8
  import { MaskToken } from '../mask/style';
9
9
  import { SplitterToken } from '../splitter/style';
10
10
  import { ProCardToken } from '../ap-pro-card/style/token';
11
+ import { AgGridToken } from '../ag-grid/style';
12
+ import { BatchInputGroupToken } from '../business/batch-input-group/style';
13
+ import { ApRadioGroupToken } from '../business/ap-radio-group/style';
14
+ import { ApGridToken } from '../ap-grid/style';
11
15
  export type BaseToken = {
12
16
  /**
13
17
  * 基础边框色
@@ -134,6 +138,10 @@ export type FullToken = BaseToken & {
134
138
  Splitter: SplitterToken;
135
139
  ProCard: ProCardToken;
136
140
  StatisticsCard: ProCardToken;
141
+ AgGrid: AgGridToken;
142
+ BatchInputGroup: BatchInputGroupToken;
143
+ ApRadioGroup: ApRadioGroupToken;
144
+ ApGrid: ApGridToken;
137
145
  };
138
146
  };
139
147
  export type TokenWithComponentCls<Token> = Token & {
@@ -145,4 +153,4 @@ export type CssVarToken<Token = Recordable> = {
145
153
  };
146
154
  export type GenStyleFunc<Token = object> = (token: TokenWithComponentCls<Token & BaseToken>) => CSSInterpolation;
147
155
  export type StyleMixin<Token = object> = (token: TokenWithComponentCls<Token & BaseToken>) => CSSObject;
148
- export type GenStyleCallback<Token> = (token: TokenWithComponentCls<Token>) => CSSInterpolation[];
156
+ export type GenStyleCallback<Token> = (token: TokenWithComponentCls<Token>, rawToken: TokenWithComponentCls<Token>) => CSSInterpolation[];
@@ -0,0 +1 @@
1
+
@@ -1,4 +1,4 @@
1
- import { defineComponent as h, ref as f, watch as E, unref as a, computed as n, createBlock as m, openBlock as d, withCtx as v, resolveDynamicComponent as S, mergeProps as z, renderSlot as C, createElementVNode as F, normalizeClass as I } from "vue";
1
+ import { defineComponent as h, ref as f, watch as E, unref as l, computed as n, createBlock as d, openBlock as v, withCtx as w, resolveDynamicComponent as S, mergeProps as z, renderSlot as C, createElementVNode as F, normalizeClass as I } from "vue";
2
2
  import "../hooks/index.mjs";
3
3
  import "../portal/index.mjs";
4
4
  import "../config-provider/index.mjs";
@@ -15,65 +15,66 @@ const O = /* @__PURE__ */ h({
15
15
  zIndex: { default: 2147483647 },
16
16
  to: { default: "body" }
17
17
  },
18
- setup(M, { expose: w }) {
18
+ setup(M, { expose: b }) {
19
19
  const {
20
20
  target: i,
21
- full: b,
22
- enter: y,
23
- exit: _
24
- } = B(), { b: g, bm: k, be: x } = L("full-screen"), R = $("full-screen"), t = f(!1), l = f(), p = N(document.body), u = f();
21
+ full: y,
22
+ enter: _,
23
+ exit: g
24
+ } = B(), { b: p, bm: k, be: x } = L("full-screen"), R = $("full-screen"), t = f(!1), a = f(), c = N(document.body), u = f();
25
25
  E(
26
- () => a(b),
26
+ () => l(y),
27
27
  (e) => {
28
- e || (t.value = !1, l.value = void 0);
28
+ e || (t.value = !1, a.value = void 0);
29
29
  }
30
30
  );
31
31
  async function r(e, o = !1) {
32
- await s(), t.value = !0, l.value = e, e === "browser" ? y(o) : p.value = !0;
32
+ await s(), t.value = !0, a.value = e, e === "browser" ? _(o) : c.value = !0;
33
33
  }
34
34
  async function s(e = !1) {
35
- t.value = !1, l.value === "browser" ? await _(e) : p.value = !1, l.value = void 0;
35
+ t.value = !1, a.value === "browser" ? await g(e) : c.value = !1, a.value = void 0;
36
36
  }
37
- async function c(e, o = !1) {
38
- t.value ? l.value !== e ? await r(e, o) : await s(o) : await r(e, o);
37
+ async function m(e, o = !1) {
38
+ t.value ? a.value !== e ? await r(e, o) : await s(o) : await r(e, o);
39
39
  }
40
- return w({
41
- target: n(() => a(i)),
42
- portalRoot: n(() => a(u)),
43
- full: n(() => a(t)),
44
- mode: n(() => a(l)),
40
+ return b({
41
+ target: n(() => l(i)),
42
+ portalRoot: n(() => l(u)),
43
+ full: n(() => l(t)),
44
+ mode: n(() => l(a)),
45
45
  enter: r,
46
46
  exit: s,
47
- toggle: c
48
- }), (e, o) => (d(), m(a(D), {
47
+ toggle: m
48
+ }), (e, o) => (v(), d(l(D), {
49
49
  to: e.to,
50
- disabled: l.value !== "window"
50
+ disabled: a.value !== "window"
51
51
  }, {
52
- default: v(() => [
53
- (d(), m(S(e.wrapperElementName), z({
52
+ default: w(() => [
53
+ (v(), d(S(e.wrapperElementName), z({
54
54
  ref_key: "target",
55
55
  ref: i
56
56
  }, e.$attrs, {
57
57
  class: [
58
- a(g)("wrapper"),
59
- t.value && l.value === "window" ? a(k)("wrapper", "full") : null,
60
- a(R)
58
+ l(p)(),
59
+ l(p)("wrapper"),
60
+ t.value && a.value === "window" ? l(k)("wrapper", "full") : null,
61
+ l(R)
61
62
  ],
62
- style: { zIndex: t.value && l.value === "window" ? e.zIndex : "unset" }
63
+ style: { zIndex: t.value && a.value === "window" ? e.zIndex : "unset" }
63
64
  }), {
64
- default: v(() => [
65
+ default: w(() => [
65
66
  C(e.$slots, "default", {
66
67
  full: t.value,
67
68
  enter: r,
68
69
  exit: s,
69
- toggle: c,
70
- mode: l.value,
70
+ toggle: m,
71
+ mode: a.value,
71
72
  portalRoot: u.value
72
73
  }),
73
74
  F("div", {
74
75
  ref_key: "portalRootRef",
75
76
  ref: u,
76
- class: I(a(x)("wrapper", "portal-root"))
77
+ class: I(l(x)("wrapper", "portal-root"))
77
78
  }, null, 2)
78
79
  ]),
79
80
  _: 3