magtool 1.3.7 → 1.3.8

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.
package/README.1.md CHANGED
@@ -1,5 +1,10 @@
1
1
  # magtool
2
2
 
3
+ 1.3.8
4
+
5
+ cps支持default和结构引入
6
+ initOptions改为同步,且挂载时检测是否存在globalThis.config,不存在则抛出错误
7
+
3
8
  1.3.5
4
9
  initLang({
5
10
  theme: 'light', // 选填
@@ -1,12 +1,12 @@
1
1
  const v = (e) => {
2
2
  const { age: t } = e || {};
3
- let n, r;
3
+ let n, a;
4
4
  if (t != null && t.included) {
5
- const { minAge: o, maxAge: a } = t.included[0] || {};
6
- o ? n = o : n = "all", a ? r = a : r = "all";
5
+ const { minAge: o, maxAge: r } = t.included[0] || {};
6
+ o ? n = o : n = "all", r ? a = r : a = "all";
7
7
  }
8
- return r === "all" ? n === "all" ? "All" : `${n}~65+` : `${n}~${r}`;
9
- }, C = (e, t) => e === "all" ? null : t === 65 ? {
8
+ return a === "all" ? n === "all" ? "All" : `${n}~65+` : `${n}~${a}`;
9
+ }, S = (e, t) => e === "all" ? null : t === 65 ? {
10
10
  included: [
11
11
  {
12
12
  minAge: e
@@ -19,90 +19,100 @@ const v = (e) => {
19
19
  maxAge: t
20
20
  }
21
21
  ]
22
- }, I = (e) => {
22
+ }, _ = (e) => {
23
23
  const { gender: t } = e || {};
24
24
  return t != null && t.included ? t.included[0] : null;
25
- }, S = { useAgeFormat: v, useAgeValue: C, useGenderFormat: I }, A = (e) => new Promise((t, n) => {
26
- const r = new Image();
27
- r.src = window.$getType(e) === "String" ? e : URL.createObjectURL(e), r.onload = () => t(r), r.onerror = () => n(new Error("Could not load image"));
28
- }), L = (e) => new Promise((t, n) => {
29
- const r = document.createElement("video");
30
- r.preload = "metadata", window.$getType(e) === "String" ? r.src = e : r.src = URL.createObjectURL(e), r.onloadedmetadata = () => {
31
- window.URL.revokeObjectURL(e), t(r);
25
+ }, M = /* @__PURE__ */ Object.freeze(/* @__PURE__ */ Object.defineProperty({
26
+ __proto__: null,
27
+ useAgeFormat: v,
28
+ useAgeValue: S,
29
+ useGenderFormat: _
30
+ }, Symbol.toStringTag, { value: "Module" })), C = (e) => new Promise((t, n) => {
31
+ const a = new Image();
32
+ a.src = window.$getType(e) === "String" ? e : URL.createObjectURL(e), a.onload = () => t(a), a.onerror = () => n(new Error("Could not load image"));
33
+ }), I = (e) => new Promise((t, n) => {
34
+ const a = document.createElement("video");
35
+ a.preload = "metadata", window.$getType(e) === "String" ? a.src = e : a.src = URL.createObjectURL(e), a.onloadedmetadata = () => {
36
+ window.URL.revokeObjectURL(e), t(a);
32
37
  };
33
- }), M = ({ type: e = "csv", data: t, name: n }) => {
34
- let r = document.createElement("a");
38
+ }), A = ({ type: e = "csv", data: t, name: n }) => {
39
+ let a = document.createElement("a");
35
40
  if (e === "csv") {
36
- const a = new Blob(["\uFEFF" + t], {
41
+ const r = new Blob(["\uFEFF" + t], {
37
42
  type: "text/csv,charset=UTF-8"
38
43
  });
39
- r.href = URL.createObjectURL(a);
44
+ a.href = URL.createObjectURL(r);
40
45
  }
41
46
  let o = new MouseEvent("click");
42
- r.download = n || "download", r.dispatchEvent(o), (e === "csv" || e === "video") && URL.revokeObjectURL(r.url), r = null, o = null;
43
- }, R = { loadImage: A, loadVideo: L, download: M }, E = ({ table: e, key: t, form: n, value: r, cb: o = () => {
47
+ a.download = n || "download", a.dispatchEvent(o), (e === "csv" || e === "video") && URL.revokeObjectURL(a.url), a = null, o = null;
48
+ }, L = /* @__PURE__ */ Object.freeze(/* @__PURE__ */ Object.defineProperty({
49
+ __proto__: null,
50
+ download: A,
51
+ loadImage: C,
52
+ loadVideo: I
53
+ }, Symbol.toStringTag, { value: "Module" })), O = ({ table: e, key: t, form: n, value: a, cb: o = () => {
44
54
  } }) => {
45
- const a = e.getSelectionRows();
46
- a.length > 1 ? (e.clearSelection(), e.toggleRowSelection(a[1], "selected"), n[r] = a[1][t]) : a.length === 1 && (n[r] = a[0][t]), o();
47
- }, O = (e = {}) => {
48
- let { sortable: t = !0, empty: n = !1, mmp: r = !1 } = e, o = window.$map.asa.asaMetric.all;
49
- r && (o = o.concat(window.$map.asa.mmpMetric.all));
50
- const a = o.map((s, i) => ({
51
- label: s.label,
52
- prop: s.value,
53
- width: s.width,
55
+ const r = e.getSelectionRows();
56
+ r.length > 1 ? (e.clearSelection(), e.toggleRowSelection(r[1], "selected"), n[a] = r[1][t]) : r.length === 1 && (n[a] = r[0][t]), o();
57
+ }, j = (e = {}) => {
58
+ let { sortable: t = !0, empty: n = !1, mmp: a = !1 } = e, o = window.$map.asa.asaMetric.all;
59
+ a && (o = o.concat(window.$map.asa.mmpMetric.all));
60
+ const r = o.map((l, i) => ({
61
+ label: l.label,
62
+ prop: l.value,
63
+ width: l.width,
54
64
  sortable: t,
55
- type: s.type,
56
- align: s.align,
57
- visible: s.visible,
58
- formatter: s.formatter
65
+ type: l.type,
66
+ align: l.align,
67
+ visible: l.visible,
68
+ formatter: l.formatter
59
69
  }));
60
- return a.unshift({
70
+ return r.unshift({
61
71
  label: "Currency",
62
72
  prop: "currency",
63
73
  width: 80,
64
74
  align: "right"
65
- }), a;
66
- }, j = () => ({
75
+ }), r;
76
+ }, R = () => ({
67
77
  label: "-"
68
- }), U = ({ columns: e, data: t, currency: n = "", channel: r = "" }) => {
78
+ }), E = ({ columns: e, data: t, currency: n = "", channel: a = "" }) => {
69
79
  if (!t.length || !e.length)
70
80
  return [];
71
81
  const o = {
72
82
  spend: {
73
83
  prop: "spend",
74
84
  prefix: n,
75
- format: (l) => window.$fa(l, 2)
85
+ format: (s) => window.$fa(s, 2)
76
86
  },
77
87
  taps: {
78
88
  prop: "taps",
79
- format: (l) => window.$fa(l, 0)
89
+ format: (s) => window.$fa(s, 0)
80
90
  },
81
91
  installs: {
82
92
  prop: "installs",
83
- format: (l) => window.$fa(l, 0)
93
+ format: (s) => window.$fa(s, 0)
84
94
  },
85
95
  impressions: {
86
96
  prop: "impressions",
87
- format: (l) => window.$fa(l, 0)
97
+ format: (s) => window.$fa(s, 0)
88
98
  },
89
99
  mmpInstalls: {
90
100
  prop: "mmpInstalls",
91
- format: (l) => window.$fa(l, 0)
101
+ format: (s) => window.$fa(s, 0)
92
102
  },
93
103
  mmpCPI: {
94
104
  prop: "mmpCPI",
95
- format: (l) => window.$fa(l, 2)
105
+ format: (s) => window.$fa(s, 2)
96
106
  },
97
107
  IPM: {
98
108
  prop: "IPM",
99
- format: (l) => window.$fa(l, 2)
109
+ format: (s) => window.$fa(s, 2)
100
110
  },
101
111
  revenue: {
102
112
  prop: "revenue",
103
- format: (l) => window.$fa(l, 2)
113
+ format: (s) => window.$fa(s, 2)
104
114
  }
105
- }, a = [], s = {
115
+ }, r = [], l = {
106
116
  avgCPT: {},
107
117
  avgCPA: {},
108
118
  avgCPM: {},
@@ -112,150 +122,183 @@ const v = (e) => {
112
122
  mmpInstalls: {},
113
123
  mmpCPI: {}
114
124
  };
115
- e.forEach((l, d) => {
116
- s[l.property] && (s[l.property].i = d);
117
- const m = o[l.property];
125
+ e.forEach((s, d) => {
126
+ l[s.property] && (l[s.property].i = d);
127
+ const m = o[s.property];
118
128
  if (m) {
119
129
  m.i = d;
120
130
  let g = window.$bigNumber(0);
121
131
  t.forEach((b) => {
122
- g = g.plus(b[l.property] || 0);
123
- }), g = g.toNumber(), m.total = g, a.push(g);
132
+ g = g.plus(b[s.property] || 0);
133
+ }), g = g.toNumber(), m.total = g, r.push(g);
124
134
  } else
125
- a.push("");
126
- }), Object.keys(o).forEach((l) => {
127
- const d = o[l];
128
- d.format && a[d.i] && (a[d.i] = d.format(a[d.i]));
135
+ r.push("");
136
+ }), Object.keys(o).forEach((s) => {
137
+ const d = o[s];
138
+ d.format && r[d.i] && (r[d.i] = d.format(r[d.i]));
129
139
  });
130
140
  const c = o.taps.total ? window.$fa(o.spend.total / o.taps.total) : "0.00";
131
- a[s.avgCPT.i] = c;
141
+ r[l.avgCPT.i] = c;
132
142
  const f = o.installs.total ? window.$fa(o.spend.total / o.installs.total) : "0.00";
133
- if (a[s.avgCPA.i] = f, s.avgCPM.i !== void 0) {
134
- const l = o.impressions.total ? window.$fa(o.spend.total / (o.impressions.total / 1e3)) : "0.00";
135
- a[s.avgCPM.i] = l;
143
+ if (r[l.avgCPA.i] = f, l.avgCPM.i !== void 0) {
144
+ const s = o.impressions.total ? window.$fa(o.spend.total / (o.impressions.total / 1e3)) : "0.00";
145
+ r[l.avgCPM.i] = s;
136
146
  }
137
147
  const p = o.taps.total ? window.$fa(o.installs.total / o.taps.total * 100) : "0.00";
138
- a[s.cr.i] = p;
148
+ r[l.cr.i] = p;
139
149
  const h = o.impressions.total ? window.$fa(o.taps.total / o.impressions.total * 100) : "0.00";
140
- a[s.ttr.i] = h;
150
+ r[l.ttr.i] = h;
141
151
  const w = o.impressions.total ? window.$fa(o.installs.total * 1e3 / o.impressions.total) : "0.00";
142
- return a[s.IPM.i] = w, a;
143
- }, F = (e) => {
152
+ return r[l.IPM.i] = w, r;
153
+ }, U = (e) => {
144
154
  const t = window.$map.asa.allMetric.obj;
145
155
  return Object.keys(e).forEach((n) => {
146
- const r = e[n];
147
- t[n] && (e[`${n}Format`] = window.$fu({ prop: n, value: r, currency: !1, obj: t }));
156
+ const a = e[n];
157
+ t[n] && (e[`${n}Format`] = window.$fu({ prop: n, value: a, currency: !1, obj: t }));
148
158
  }), e;
149
- }, H = ({ columns: e, data: t }, n) => e.length && t.length ? e.map((o) => {
150
- let a = n[o.property] === void 0 ? "" : n[o.property];
151
- if (a !== "")
159
+ }, F = ({ columns: e, data: t }, n) => e.length && t.length ? e.map((o) => {
160
+ let r = n[o.property] === void 0 ? "" : n[o.property];
161
+ if (r !== "")
152
162
  try {
153
- a = window.$fa(a, window.$map.asa.allMetric.obj[o.property].precision);
163
+ r = window.$fa(r, window.$map.asa.allMetric.obj[o.property].precision);
154
164
  } catch {
155
165
  }
156
- return a;
157
- }) : [], _ = { useSingleSelect: E, useColumn: O, useEmptyColumn: j, useRemoteSummary: H, useSummary: U, useFormat: F }, B = (e, t = 88) => {
158
- const n = document.querySelector("html"), { scrollTop: r } = n, o = e.getBoundingClientRect();
166
+ return r;
167
+ }) : [], H = /* @__PURE__ */ Object.freeze(/* @__PURE__ */ Object.defineProperty({
168
+ __proto__: null,
169
+ useColumn: j,
170
+ useEmptyColumn: R,
171
+ useFormat: U,
172
+ useRemoteSummary: F,
173
+ useSingleSelect: O,
174
+ useSummary: E
175
+ }, Symbol.toStringTag, { value: "Module" })), B = (e, t = 88) => {
176
+ const n = document.querySelector("html"), { scrollTop: a } = n, o = e.getBoundingClientRect();
159
177
  n.scrollTo({
160
- top: r + o.y - t,
178
+ top: a + o.y - t,
161
179
  behavior: "smooth"
162
180
  });
163
- }, T = async ({ app: e, langs: t, langObj: n }) => new Promise((r) => {
181
+ }, y = async ({ app: e, langs: t, langObj: n }) => new Promise((a) => {
164
182
  const o = [];
165
183
  t.forEach((i) => {
166
184
  i.use && o.push(i);
167
185
  }), globalThis.$langs = o;
168
- let a = {};
169
- globalThis.$getType(n) === "Object" ? a = n : globalThis.$getType(n) === "String" && (globalThis.$store.common()[n] ? a = globalThis.$store.common()[n] : console.warn(
186
+ let r = {};
187
+ globalThis.$getType(n) === "Object" ? r = n : globalThis.$getType(n) === "String" && (globalThis.$store.common()[n] ? r = globalThis.$store.common()[n] : console.warn(
170
188
  `Language object "${n}" not found in store.common()`
171
189
  ));
172
- const s = (i, c) => {
190
+ const l = (i, c) => {
173
191
  if (i)
174
192
  if (c && globalThis.$getType(c) === "Object") {
175
- let f = a[i] || i;
193
+ let f = r[i] || i;
176
194
  return Object.keys(c).forEach((p) => {
177
195
  f[`$${p}$`] = c[p];
178
196
  }), f;
179
197
  } else
180
- return a[i] || i;
198
+ return r[i] || i;
181
199
  else
182
200
  return i;
183
201
  };
184
202
  String.prototype.$l = function() {
185
- return s(this);
186
- }, globalThis.$l = s, e.config.globalProperties.$l = s, r();
203
+ return l(this);
204
+ }, globalThis.$l = l, e.config.globalProperties.$l = l, a();
187
205
  }), k = /* @__PURE__ */ Object.freeze(/* @__PURE__ */ Object.defineProperty({
188
206
  __proto__: null,
189
207
  pageScrollTo: B,
190
- useLang: T
208
+ useLang: y
191
209
  }, Symbol.toStringTag, { value: "Module" })), u = [];
192
- let $ = 0;
193
- const y = function(e) {
210
+ let T = 0;
211
+ const $ = function(e) {
194
212
  u.forEach((t) => {
195
213
  if (t.time === void 0 || t.lastTime === 0 || e - t.lastTime >= t.time) {
196
214
  t.cb(e), t.lastTime = e;
197
215
  return;
198
216
  }
199
- }), u.length && window.requestAnimationFrame(y);
217
+ }), u.length && window.requestAnimationFrame($);
200
218
  }, x = function(e, t = 1e3) {
201
- return $++, u.push({
219
+ return T++, u.push({
202
220
  cb: e,
203
221
  time: t,
204
222
  lastTime: 0,
205
- id: $
206
- }), u.length === 1 && window.requestAnimationFrame(y), $;
207
- }, W = function(e) {
223
+ id: T
224
+ }), u.length === 1 && window.requestAnimationFrame($), T;
225
+ }, z = function(e) {
208
226
  for (let t = 0; t < u.length; t++)
209
227
  if (u[t].id === e) {
210
228
  u.splice(t, 1);
211
229
  break;
212
230
  }
213
- }, q = { useRaf: x, clearRaf: W }, N = async (e) => new Promise((t) => {
231
+ }, W = /* @__PURE__ */ Object.freeze(/* @__PURE__ */ Object.defineProperty({
232
+ __proto__: null,
233
+ clearRaf: z,
234
+ useRaf: x
235
+ }, Symbol.toStringTag, { value: "Module" })), q = async (e) => new Promise((t) => {
214
236
  if (document.getElementById("colorfulIcon"))
215
237
  return;
216
238
  const n = document.createElement("script");
217
239
  n.id = "colorfulIcon", n.type = "text/javascript", n.src = e || globalThis.config.colorfulIcon, document.head.appendChild(n), t();
218
- }), z = async (e = {}) => new Promise(async (t) => {
219
- const { theme: n = "light", currentLang: r, app: o } = e, a = document.documentElement, s = r || localStorage.getItem("lang") || globalThis.config.lang || "en_us";
220
- a.classList.add(s);
221
- const i = s.split("_");
222
- a.setAttribute("lang", `${i[0]}-${i[1].toUpperCase()}`);
240
+ }), N = async (e = {}) => new Promise(async (t) => {
241
+ const { theme: n = "light", currentLang: a, app: o } = e, r = document.documentElement, l = a || localStorage.getItem("lang") || globalThis.config.lang || "en_us";
242
+ r.classList.add(l);
243
+ const i = l.split("_");
244
+ r.setAttribute("lang", `${i[0]}-${i[1].toUpperCase()}`);
223
245
  const c = i.includes("ar") ? "rtl" : "ltr";
224
- if (a.setAttribute("dir", c), a.classList.add(localStorage.getItem("theme") || n), o)
225
- await T({ app: o, langs: globalThis.config.langs || [] });
246
+ if (r.setAttribute("dir", c), r.classList.add(localStorage.getItem("theme") || n), o)
247
+ await y({ app: o, langs: globalThis.config.langs || [] });
226
248
  else
227
249
  throw new Error(
228
250
  "app is not defined, please check your vue app create from createApp() function"
229
251
  );
230
252
  t();
231
253
  }), G = () => {
232
- const { availWidth: e, availHeight: t } = globalThis.screen, { clientHeight: n } = globalThis.document.body, r = globalThis.config.page.paddingLeft || 32, o = globalThis.config.page.paddingRight || 32, a = e - r - o, s = globalThis.config.page.frameHeader || 82, i = globalThis.config.page.frameFooter || 36, c = n - s - i, f = globalThis.config.page.contentPaddingLeft || 16, p = globalThis.config.page.contentPaddingLeft || 16, h = a - f - p, w = globalThis.config.page.tableHeader || 56, l = globalThis.config.page.tableFooter || 56, d = n - s - w - l, m = globalThis.config.page.drawerHeader || 64, g = n - m, b = globalThis.navigator.userAgent.match(
254
+ if (!globalThis.config)
255
+ throw new Error("globalThis.config is not defined, please create globalThis.config frist");
256
+ const { availWidth: e, availHeight: t } = globalThis.screen, { clientHeight: n } = globalThis.document.body, a = globalThis.config.page.paddingLeft || 32, o = globalThis.config.page.paddingRight || 32, r = e - a - o, l = globalThis.config.page.frameHeader || 82, i = globalThis.config.page.frameFooter || 36, c = n - l - i, f = globalThis.config.page.contentPaddingLeft || 16, p = globalThis.config.page.contentPaddingLeft || 16, h = r - f - p, w = globalThis.config.page.tableHeader || 56, s = globalThis.config.page.tableFooter || 56, d = n - l - w - s, m = globalThis.config.page.drawerHeader || 64, g = n - m, b = globalThis.navigator.userAgent.match(
233
257
  /(phone|pad|pod|iPhone|iPod|iPad|Android|Mobile|BlackBerry|IEMobile|MQQBrowser|JUC|Fennec|wOSBrowser|BrowserNG|WebOS|Symbian|Windows Phone)/i
234
258
  ) ? "h5" : "pc", P = /iPhone|iPad|iPod/i.test(globalThis.navigator.userAgent);
235
- globalThis.config.options = {
259
+ return globalThis.config.options = {
236
260
  screenWidth: e,
237
261
  screenHeight: t,
238
- pageWidth: a,
262
+ pageWidth: r,
239
263
  pageHeight: c,
240
264
  contentWidth: h,
241
265
  tableHeight: d,
242
266
  drawerHeight: g,
243
267
  device: b,
244
268
  isIOS: P
245
- };
269
+ }, globalThis.config.options;
246
270
  }, Q = /* @__PURE__ */ Object.freeze(/* @__PURE__ */ Object.defineProperty({
247
271
  __proto__: null,
248
- initColorfulIcon: N,
249
- initLang: z,
272
+ initColorfulIcon: q,
273
+ initLang: N,
250
274
  initOptions: G
251
275
  }, Symbol.toStringTag, { value: "Module" })), V = {
252
- ...Q,
253
- ...S,
254
- ...R,
255
- ..._,
276
+ ...M,
277
+ ...L,
278
+ ...H,
256
279
  ...k,
257
- ...q
280
+ ...W,
281
+ ...Q
258
282
  };
259
283
  export {
260
- V as default
284
+ z as clearRaf,
285
+ V as default,
286
+ A as download,
287
+ q as initColorfulIcon,
288
+ N as initLang,
289
+ G as initOptions,
290
+ C as loadImage,
291
+ I as loadVideo,
292
+ B as pageScrollTo,
293
+ v as useAgeFormat,
294
+ S as useAgeValue,
295
+ j as useColumn,
296
+ R as useEmptyColumn,
297
+ U as useFormat,
298
+ _ as useGenderFormat,
299
+ y as useLang,
300
+ x as useRaf,
301
+ F as useRemoteSummary,
302
+ O as useSingleSelect,
303
+ E as useSummary
261
304
  };
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "magtool",
3
3
  "packageManager": "yarn@4.4.1",
4
- "version": "1.3.7",
4
+ "version": "1.3.8",
5
5
  "author": "matt avis",
6
6
  "main": "./dist/index.js",
7
7
  "module": "./dist/index.js",