@saasquatch/mint-components 1.5.0-65 → 1.5.0-69
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/dist/cjs/{GenericTableView-c8f8f3fe.js → GenericTableView-65598160.js} +7 -3
- package/dist/cjs/{AutoColor-86984176.js → ShadowViewAddon-25f524e4.js} +182 -48
- package/dist/cjs/loader.cjs.js +1 -1
- package/dist/cjs/mint-components.cjs.js +1 -1
- package/dist/cjs/{sqm-brand_27.cjs.entry.js → sqm-brand_28.cjs.entry.js} +205 -19
- package/dist/cjs/sqm-image_4.cjs.entry.js +3 -3
- package/dist/cjs/{sqm-portal-container-view-185b4bd0.js → sqm-portal-container-view-3bc23603.js} +2 -0
- package/dist/cjs/{sqm-portal-profile-view-04eaaac9.js → sqm-portal-profile-view-25537e0b.js} +1 -1
- package/dist/cjs/sqm-portal-profile.cjs.entry.js +2 -2
- package/dist/cjs/{sqm-portal-section-view-7ce92f61.js → sqm-portal-section-view-186a5f7e.js} +1 -1
- package/dist/cjs/sqm-referral-table_11.cjs.entry.js +1 -1
- package/dist/cjs/sqm-rewards-table_9.cjs.entry.js +9 -4
- package/dist/cjs/sqm-stencilbook.cjs.entry.js +242 -175
- package/dist/collection/components/sqm-hero-image/sqm-hero-image.js +10 -4
- package/dist/collection/components/sqm-leaderboard/Leaderboard.stories.js +12 -1
- package/dist/collection/components/sqm-leaderboard/UseLeaderboard.stories.js +62 -8
- package/dist/collection/components/sqm-leaderboard/sqm-leaderboard-view.js +3 -2
- package/dist/collection/components/sqm-leaderboard/sqm-leaderboard.js +11 -9
- package/dist/collection/components/sqm-portal-container/sqm-portal-container-view.js +2 -0
- package/dist/collection/components/sqm-referral-card/sqm-referral-card-view.js +1 -0
- package/dist/collection/components/sqm-rewards-table/columns/sqm-rewards-table-reward-column.js +4 -4
- package/dist/collection/components/sqm-rewards-table/sqm-rewards-table.js +6 -1
- package/dist/collection/components/sqm-task-card/sqm-task-card.js +0 -1
- package/dist/collection/components/sqm-titled-section/TitledSection.stories.js +3 -3
- package/dist/collection/components/sqm-titled-section/sqm-portal-section-view.js +1 -1
- package/dist/collection/components/sqm-titled-section/sqm-titled-section.js +3 -3
- package/dist/collection/tables/GenericTableView.js +7 -3
- package/dist/esm/{GenericTableView-24f2dcb2.js → GenericTableView-2b700cd4.js} +7 -3
- package/dist/esm/{AutoColor-8f7bfd93.js → ShadowViewAddon-919cf983.js} +181 -50
- package/dist/esm/loader.js +1 -1
- package/dist/esm/mint-components.js +1 -1
- package/dist/esm/{sqm-brand_27.entry.js → sqm-brand_28.entry.js} +191 -6
- package/dist/esm/sqm-image_4.entry.js +3 -3
- package/dist/esm/{sqm-portal-container-view-cf79ed90.js → sqm-portal-container-view-624563e6.js} +2 -0
- package/dist/esm/{sqm-portal-profile-view-827776f5.js → sqm-portal-profile-view-c0f86818.js} +1 -1
- package/dist/esm/sqm-portal-profile.entry.js +2 -2
- package/dist/esm/{sqm-portal-section-view-6649c4c6.js → sqm-portal-section-view-88a80af9.js} +1 -1
- package/dist/esm/sqm-referral-table_11.entry.js +1 -1
- package/dist/esm/sqm-rewards-table_9.entry.js +9 -4
- package/dist/esm/sqm-stencilbook.entry.js +86 -19
- package/dist/esm-es5/{GenericTableView-24f2dcb2.js → GenericTableView-2b700cd4.js} +1 -1
- package/dist/esm-es5/ShadowViewAddon-919cf983.js +1 -0
- package/dist/esm-es5/loader.js +1 -1
- package/dist/esm-es5/mint-components.js +1 -1
- package/dist/esm-es5/sqm-brand_28.entry.js +1 -0
- package/dist/esm-es5/sqm-image_4.entry.js +1 -1
- package/dist/esm-es5/sqm-portal-container-view-624563e6.js +1 -0
- package/dist/esm-es5/{sqm-portal-profile-view-827776f5.js → sqm-portal-profile-view-c0f86818.js} +1 -1
- package/dist/esm-es5/sqm-portal-profile.entry.js +1 -1
- package/dist/esm-es5/sqm-portal-section-view-88a80af9.js +1 -0
- package/dist/esm-es5/sqm-referral-table_11.entry.js +1 -1
- package/dist/esm-es5/sqm-rewards-table_9.entry.js +1 -1
- package/dist/esm-es5/sqm-stencilbook.entry.js +1 -1
- package/dist/mint-components/mint-components.esm.js +1 -1
- package/dist/mint-components/{p-153aab3c.js → p-0505f964.js} +1 -1
- package/dist/mint-components/p-0a1d7ec0.js +1 -0
- package/dist/mint-components/p-187f520b.entry.js +86 -0
- package/dist/mint-components/p-1bc35369.system.js +1 -0
- package/dist/mint-components/{p-590f844d.system.entry.js → p-1d7902ec.system.entry.js} +1 -1
- package/dist/mint-components/p-25ca6445.entry.js +150 -0
- package/dist/mint-components/{p-b9da6be4.entry.js → p-31df3a21.entry.js} +1 -1
- package/dist/mint-components/{p-6f70d120.entry.js → p-3ea21dc2.entry.js} +1 -1
- package/dist/mint-components/p-4c8273dc.system.entry.js +1 -0
- package/dist/mint-components/p-53af4433.system.js +1 -0
- package/dist/mint-components/{p-dd3a8996.system.js → p-5619a993.system.js} +1 -1
- package/dist/mint-components/{p-26cb65ba.entry.js → p-5aa86d66.entry.js} +3 -3
- package/dist/mint-components/p-8d74871c.system.js +1 -1
- package/dist/mint-components/p-9a18d853.system.js +1 -0
- package/dist/mint-components/{p-a6e79fbb.system.js → p-9da7df73.system.js} +1 -1
- package/dist/mint-components/{p-b1c0403a.system.entry.js → p-b8f8422d.system.entry.js} +1 -1
- package/dist/mint-components/{p-0f064d3d.system.entry.js → p-ba7c209d.system.entry.js} +1 -1
- package/dist/mint-components/p-bad9dd35.entry.js +9 -0
- package/dist/mint-components/p-e08f5f8e.js +1 -0
- package/dist/mint-components/p-f5c176e4.js +30 -0
- package/dist/mint-components/{p-13cc779c.js → p-f890c414.js} +1 -1
- package/dist/mint-components/{p-c82e3063.system.entry.js → p-f9194201.system.entry.js} +1 -1
- package/dist/mint-components/p-f92a265b.system.entry.js +1 -0
- package/dist/types/components/sqm-hero-image/sqm-hero-image.d.ts +2 -2
- package/dist/types/components/sqm-leaderboard/Leaderboard.stories.d.ts +1 -0
- package/dist/types/components/sqm-leaderboard/UseLeaderboard.stories.d.ts +6 -0
- package/dist/types/components/sqm-rewards-table/columns/sqm-rewards-table-reward-column.d.ts +1 -1
- package/dist/types/components/sqm-titled-section/sqm-portal-section-view.d.ts +1 -1
- package/dist/types/components/sqm-titled-section/sqm-titled-section.d.ts +1 -1
- package/dist/types/components.d.ts +17 -17
- package/grapesjs/grapesjs.js +1 -1
- package/package.json +2 -2
- package/dist/cjs/sqm-leaderboard.cjs.entry.js +0 -102
- package/dist/cjs/useLeaderboard-9e950912.js +0 -230
- package/dist/esm/sqm-leaderboard.entry.js +0 -98
- package/dist/esm/useLeaderboard-b670847e.js +0 -225
- package/dist/esm-es5/AutoColor-8f7bfd93.js +0 -1
- package/dist/esm-es5/sqm-brand_27.entry.js +0 -1
- package/dist/esm-es5/sqm-leaderboard.entry.js +0 -1
- package/dist/esm-es5/sqm-portal-container-view-cf79ed90.js +0 -1
- package/dist/esm-es5/sqm-portal-section-view-6649c4c6.js +0 -1
- package/dist/esm-es5/useLeaderboard-b670847e.js +0 -1
- package/dist/mint-components/p-01edde1a.js +0 -32
- package/dist/mint-components/p-192f8fc8.system.js +0 -1
- package/dist/mint-components/p-30772880.system.entry.js +0 -1
- package/dist/mint-components/p-500c1068.system.entry.js +0 -1
- package/dist/mint-components/p-5cff9730.entry.js +0 -119
- package/dist/mint-components/p-73d800ed.js +0 -30
- package/dist/mint-components/p-8cafe119.entry.js +0 -1
- package/dist/mint-components/p-9051c043.system.js +0 -1
- package/dist/mint-components/p-b3c4a2aa.entry.js +0 -9
- package/dist/mint-components/p-b70c5c92.js +0 -1
- package/dist/mint-components/p-b7aad7fb.entry.js +0 -86
- package/dist/mint-components/p-c015e112.system.js +0 -1
- package/dist/mint-components/p-c2e84199.js +0 -1
- package/dist/mint-components/p-d4c74ebe.system.entry.js +0 -1
- package/dist/mint-components/p-e0be39d0.system.js +0 -1
|
@@ -1,102 +0,0 @@
|
|
|
1
|
-
'use strict';
|
|
2
|
-
|
|
3
|
-
Object.defineProperty(exports, '__esModule', { value: true });
|
|
4
|
-
|
|
5
|
-
const index = require('./index-b0129cd6.js');
|
|
6
|
-
const stencilHooks_module = require('./stencil-hooks.module-87a1f4f7.js');
|
|
7
|
-
require('./use-callback-e754042f.js');
|
|
8
|
-
const index_module = require('./index.module-54724339.js');
|
|
9
|
-
require('./extends-08099afd.js');
|
|
10
|
-
const cjs = require('./cjs-1066ec21.js');
|
|
11
|
-
require('./JSS-c65a40f1.js');
|
|
12
|
-
const useLeaderboard = require('./useLeaderboard-9e950912.js');
|
|
13
|
-
|
|
14
|
-
const sqmLeaderboardCss = ":host{display:block}:host([hidden]){display:none}table{width:100%;border-collapse:collapse}th{font-size:var(--sl-font-size-small);font-weight:var(--sl-font-weight-semibold);text-align:left}tr:not(:first-child){border-top:1px solid var(--sl-color-neutral-200)}td{font-size:var(--sl-font-size-medium);font-weight:var(--sl-font-weight-normal)}.ellipses{text-align:center;padding:0;color:var(--sl-color-neutral-500)}.highlight{background:var(--sl-color-primary-50)}td,th{color:var(--sl-color-gray-800);padding:var(--sl-spacing-medium)}th{padding:var(--sl-spacing-medium);padding-top:0}.User{width:100%}.Score{width:auto;white-space:nowrap}";
|
|
15
|
-
|
|
16
|
-
const Leaderboard = class {
|
|
17
|
-
constructor(hostRef) {
|
|
18
|
-
index.registerInstance(this, hostRef);
|
|
19
|
-
/**
|
|
20
|
-
* @uiName Show viewing user's rank
|
|
21
|
-
*/
|
|
22
|
-
this.showUser = true;
|
|
23
|
-
/**
|
|
24
|
-
* @uiName Title displayed for users without names
|
|
25
|
-
*/
|
|
26
|
-
this.anonymousUser = "Anonymous User";
|
|
27
|
-
/**
|
|
28
|
-
* @uiName Empty State Image
|
|
29
|
-
*/
|
|
30
|
-
this.emptyStateImage = "https://i.imgur.com/KPGnPF8.png";
|
|
31
|
-
/**
|
|
32
|
-
* @uiName Empty State Header
|
|
33
|
-
*/
|
|
34
|
-
this.emptyStateHeader = "View your rank in the leaderboard";
|
|
35
|
-
/**
|
|
36
|
-
* @uiName Empty State Description
|
|
37
|
-
*/
|
|
38
|
-
this.emptyStateText = "Be the first to refer a friend and reach the top of the leaderboard";
|
|
39
|
-
this.ignored = true;
|
|
40
|
-
stencilHooks_module.h$1(this);
|
|
41
|
-
useLeaderboard.withShadowView(this);
|
|
42
|
-
}
|
|
43
|
-
disconnectedCallback() { }
|
|
44
|
-
render() {
|
|
45
|
-
const props = {
|
|
46
|
-
empty: index.h(EmptySlot, null),
|
|
47
|
-
loadingstate: index.h(LoadingSlot, null),
|
|
48
|
-
usersheading: this.usersheading,
|
|
49
|
-
statsheading: this.statsheading,
|
|
50
|
-
rankType: this.rankType,
|
|
51
|
-
leaderboardType: this.leaderboardType,
|
|
52
|
-
anonymousUser: this.anonymousUser,
|
|
53
|
-
interval: this.interval,
|
|
54
|
-
showUser: this.showUser,
|
|
55
|
-
showRank: this.showRank,
|
|
56
|
-
};
|
|
57
|
-
const demoProps = { ...props, demoData: this.demoData };
|
|
58
|
-
const viewprops = index_module.k()
|
|
59
|
-
? useLeaderboardDemo(demoProps)
|
|
60
|
-
: useLeaderboard.useLeaderboard(props);
|
|
61
|
-
return (index.h(useLeaderboard.LeaderboardView, Object.assign({}, viewprops), index.h("slot", null)));
|
|
62
|
-
}
|
|
63
|
-
};
|
|
64
|
-
function EmptySlot() {
|
|
65
|
-
return (index.h("slot", { name: "empty" }, index.h("sqm-portal-container", { padding: "xxxx-large", gap: "medium" }, index.h("sqm-image", { "image-url": this.emptyStateImage, "max-width": "100px" }), index.h("sqm-titled-section", { "label-margin": "xxx-small", align: "center" }, index.h("sqm-text", { slot: "label" }, index.h("h3", null, this.emptyStateHeader)), index.h("sqm-text", { slot: "content" }, this.emptyStateText)))));
|
|
66
|
-
}
|
|
67
|
-
function LoadingSlot() {
|
|
68
|
-
return (index.h("slot", { name: "loadingstate" }, index.h("table", null, [...Array(10)].map(() => {
|
|
69
|
-
return (index.h("tr", null, index.h("td", null, index.h("sl-skeleton", null))));
|
|
70
|
-
}))));
|
|
71
|
-
}
|
|
72
|
-
function useLeaderboardDemo(props) {
|
|
73
|
-
return cjs.cjs({
|
|
74
|
-
states: {
|
|
75
|
-
loading: false,
|
|
76
|
-
hasLeaders: true,
|
|
77
|
-
styles: {
|
|
78
|
-
usersheading: props.usersheading
|
|
79
|
-
? props.usersheading
|
|
80
|
-
: "TOP REFERRERS",
|
|
81
|
-
statsheading: props.statsheading ? props.statsheading : "NEW CUSTOMERS",
|
|
82
|
-
},
|
|
83
|
-
},
|
|
84
|
-
data: {
|
|
85
|
-
rankType: "rowNumber",
|
|
86
|
-
leaderboard: [
|
|
87
|
-
{ firstName: "Viktor", lastInitial: "V", value: 82, rank: 1 },
|
|
88
|
-
{ firstName: "MF", lastInitial: "D", value: 73, rank: 2 },
|
|
89
|
-
{ firstName: "Freddie", lastInitial: "G", value: 64, rank: 3 },
|
|
90
|
-
{ firstName: "Benny", lastInitial: "B", value: 55, rank: 4 },
|
|
91
|
-
{ firstName: "Mos", lastInitial: "D", value: 46, rank: 5 },
|
|
92
|
-
],
|
|
93
|
-
},
|
|
94
|
-
elements: {
|
|
95
|
-
empty: index.h(EmptySlot, null),
|
|
96
|
-
loadingstate: index.h(LoadingSlot, null),
|
|
97
|
-
},
|
|
98
|
-
}, props.demoProps || {}, { arrayMerge: (_, a) => a });
|
|
99
|
-
}
|
|
100
|
-
Leaderboard.style = sqmLeaderboardCss;
|
|
101
|
-
|
|
102
|
-
exports.sqm_leaderboard = Leaderboard;
|
|
@@ -1,230 +0,0 @@
|
|
|
1
|
-
'use strict';
|
|
2
|
-
|
|
3
|
-
const index = require('./index-b0129cd6.js');
|
|
4
|
-
const index_module = require('./index.module-54724339.js');
|
|
5
|
-
const JSS = require('./JSS-c65a40f1.js');
|
|
6
|
-
|
|
7
|
-
const map = new Map();
|
|
8
|
-
function withShadowView(component) {
|
|
9
|
-
// TODO: Could only do this if rendered in a Stencilbook environment to prevent unintended side-effects
|
|
10
|
-
const element = index.getElement(component);
|
|
11
|
-
let renderFn = component["render"].bind(component);
|
|
12
|
-
const newRenderFn = () => {
|
|
13
|
-
const key = element.getAttribute("stencilbook-shadow-view");
|
|
14
|
-
if (key) {
|
|
15
|
-
const value = map.get(key);
|
|
16
|
-
if (value) {
|
|
17
|
-
return value;
|
|
18
|
-
}
|
|
19
|
-
}
|
|
20
|
-
return renderFn();
|
|
21
|
-
};
|
|
22
|
-
component["render"] = newRenderFn;
|
|
23
|
-
}
|
|
24
|
-
/**
|
|
25
|
-
* Any story that defines `parameters.tagname` will be used as a wrapper component around the view
|
|
26
|
-
*/
|
|
27
|
-
const ShadowViewAddon = ({ story }, children) => {
|
|
28
|
-
var _a;
|
|
29
|
-
let TagName = (_a = story.parent.parameters) === null || _a === void 0 ? void 0 : _a.tagname;
|
|
30
|
-
if (!TagName)
|
|
31
|
-
return children;
|
|
32
|
-
const randomInt = Math.round(Math.random() * 100000);
|
|
33
|
-
map.set(randomInt + "", children);
|
|
34
|
-
const RandomTagName = "stencilbook-shawdow-view-" + randomInt;
|
|
35
|
-
// This will only re-render when the tag name changes, so we use a random tag name every time.
|
|
36
|
-
// Altneratively we could try to trick Stencil to call `forceUpdate` every time.
|
|
37
|
-
return (index.h(RandomTagName, null,
|
|
38
|
-
index.h(TagName, { "stencilbook-shadow-view": randomInt })));
|
|
39
|
-
};
|
|
40
|
-
|
|
41
|
-
const style = {
|
|
42
|
-
Leaderboard: {
|
|
43
|
-
"& table": {
|
|
44
|
-
width: "100%",
|
|
45
|
-
borderCollapse: "collapse",
|
|
46
|
-
},
|
|
47
|
-
"& th": {
|
|
48
|
-
textAlign: "left",
|
|
49
|
-
padding: "var(--sl-spacing-medium)",
|
|
50
|
-
paddingTop: "0",
|
|
51
|
-
fontSize: "var(--sl-font-size-medium)",
|
|
52
|
-
fontWeight: "var(--sl-font-weight-semibold)",
|
|
53
|
-
},
|
|
54
|
-
"& tr:not(:first-child)": {
|
|
55
|
-
borderTop: "1px solid var(--sl-color-neutral-200)",
|
|
56
|
-
},
|
|
57
|
-
"& td": {
|
|
58
|
-
fontSize: "var(--sl-font-size-medium)",
|
|
59
|
-
fontWeight: "var(--sl-font-weight-normal)",
|
|
60
|
-
},
|
|
61
|
-
"& .ellipses": {
|
|
62
|
-
textAlign: "center",
|
|
63
|
-
padding: "0",
|
|
64
|
-
color: "var(--sl-color-neutral-500)",
|
|
65
|
-
},
|
|
66
|
-
"& .highlight": {
|
|
67
|
-
background: "var(--sl-color-primary-50)",
|
|
68
|
-
},
|
|
69
|
-
"& td, th": {
|
|
70
|
-
color: "var(--sl-color-gray-800)",
|
|
71
|
-
padding: "var(--sl-spacing-medium)",
|
|
72
|
-
},
|
|
73
|
-
"& .User": {
|
|
74
|
-
width: "100%",
|
|
75
|
-
},
|
|
76
|
-
"& .Score": {
|
|
77
|
-
width: "auto",
|
|
78
|
-
whiteSpace: "nowrap",
|
|
79
|
-
},
|
|
80
|
-
},
|
|
81
|
-
};
|
|
82
|
-
const sheet = JSS.createStyleSheet(style);
|
|
83
|
-
const styleString = sheet.toString();
|
|
84
|
-
const vanillaStyle = `
|
|
85
|
-
:host{
|
|
86
|
-
display: block;
|
|
87
|
-
}
|
|
88
|
-
`;
|
|
89
|
-
function LeaderboardView(props) {
|
|
90
|
-
var _a, _b, _c, _d, _e, _f, _g, _h, _j, _k, _l;
|
|
91
|
-
const { states, data, elements } = props;
|
|
92
|
-
const { styles } = states;
|
|
93
|
-
if (states.loading)
|
|
94
|
-
return (index.h("div", { class: sheet.classes.Leaderboard },
|
|
95
|
-
index.h("style", { type: "text/css" },
|
|
96
|
-
styleString,
|
|
97
|
-
vanillaStyle),
|
|
98
|
-
elements.loadingstate));
|
|
99
|
-
let userSeenFlag = false;
|
|
100
|
-
return (index.h("div", { class: sheet.classes.Leaderboard },
|
|
101
|
-
index.h("style", { type: "text/css" },
|
|
102
|
-
styleString,
|
|
103
|
-
vanillaStyle),
|
|
104
|
-
index.h("table", null,
|
|
105
|
-
index.h("tr", null,
|
|
106
|
-
styles.showRank && index.h("th", { class: "Rank" }, styles.rankheading),
|
|
107
|
-
index.h("th", { class: "User" }, styles.usersheading),
|
|
108
|
-
index.h("th", { class: "Score" }, styles.statsheading)),
|
|
109
|
-
!states.hasLeaders && (index.h("tr", null,
|
|
110
|
-
index.h("td", { colSpan: 100 }, elements.empty))), (_a = data.leaderboard) === null || _a === void 0 ? void 0 :
|
|
111
|
-
_a.map((user) => {
|
|
112
|
-
var _a, _b;
|
|
113
|
-
if (user.rowNumber === ((_a = data.userRank) === null || _a === void 0 ? void 0 : _a.rowNumber))
|
|
114
|
-
userSeenFlag = true;
|
|
115
|
-
return (index.h("tr", { class: user.rowNumber === ((_b = data.userRank) === null || _b === void 0 ? void 0 : _b.rowNumber) ? "highlight" : "" },
|
|
116
|
-
styles.showRank && index.h("td", { class: "Rank" }, user.rank),
|
|
117
|
-
index.h("td", { class: "User" }, user.firstName && user.lastInitial
|
|
118
|
-
? user.firstName + " " + user.lastInitial
|
|
119
|
-
: user.firstName || user.lastInitial
|
|
120
|
-
? user.firstName || user.lastInitial
|
|
121
|
-
: styles.anonymousUser || "Anonymous User"),
|
|
122
|
-
index.h("td", { class: "Score" }, user.value)));
|
|
123
|
-
}),
|
|
124
|
-
!userSeenFlag && data.showUser && (index.h("tr", null,
|
|
125
|
-
index.h("td", { colSpan: 100, class: "ellipses" },
|
|
126
|
-
index.h("sl-icon", { name: "three-dots", style: { verticalAlign: "middle" } })))),
|
|
127
|
-
!userSeenFlag && data.showUser && (index.h("tr", { class: "highlight" },
|
|
128
|
-
styles.showRank && (index.h("td", { class: "Rank" }, ((_b = data.userRank) === null || _b === void 0 ? void 0 : _b.rank) || "-")),
|
|
129
|
-
index.h("td", { class: "User" }, ((_c = data.userRank) === null || _c === void 0 ? void 0 : _c.firstName) && ((_d = data.userRank) === null || _d === void 0 ? void 0 : _d.lastInitial)
|
|
130
|
-
? ((_e = data.userRank) === null || _e === void 0 ? void 0 : _e.firstName) + " " + ((_f = data.userRank) === null || _f === void 0 ? void 0 : _f.lastInitial)
|
|
131
|
-
: ((_g = data.userRank) === null || _g === void 0 ? void 0 : _g.firstName) || ((_h = data.userRank) === null || _h === void 0 ? void 0 : _h.lastInitial)
|
|
132
|
-
? ((_j = data.userRank) === null || _j === void 0 ? void 0 : _j.firstName) || ((_k = data.userRank) === null || _k === void 0 ? void 0 : _k.lastInitial)
|
|
133
|
-
: styles.anonymousUser || "Anonymous User"),
|
|
134
|
-
index.h("td", { class: "Score" }, ((_l = data.userRank) === null || _l === void 0 ? void 0 : _l.value) || "0"))))));
|
|
135
|
-
}
|
|
136
|
-
|
|
137
|
-
const GET_LEADERBOARD = index_module.dist.gql `
|
|
138
|
-
query ($type: String!, $filter: UserLeaderboardFilterInput) {
|
|
139
|
-
userLeaderboard(type: $type, filter: $filter) {
|
|
140
|
-
dateModified
|
|
141
|
-
rows {
|
|
142
|
-
value
|
|
143
|
-
firstName
|
|
144
|
-
lastInitial
|
|
145
|
-
rank {
|
|
146
|
-
rank
|
|
147
|
-
denseRank
|
|
148
|
-
rowNumber
|
|
149
|
-
}
|
|
150
|
-
}
|
|
151
|
-
}
|
|
152
|
-
}
|
|
153
|
-
`;
|
|
154
|
-
const GET_RANK = index_module.dist.gql `
|
|
155
|
-
query ($type: String!, $filter: UserLeaderboardFilterInput) {
|
|
156
|
-
viewer {
|
|
157
|
-
... on User {
|
|
158
|
-
firstName
|
|
159
|
-
lastInitial
|
|
160
|
-
leaderboardRank(type: $type, filter: $filter) {
|
|
161
|
-
value
|
|
162
|
-
rank
|
|
163
|
-
denseRank
|
|
164
|
-
rowNumber
|
|
165
|
-
}
|
|
166
|
-
}
|
|
167
|
-
}
|
|
168
|
-
}
|
|
169
|
-
`;
|
|
170
|
-
function useLeaderboard(props) {
|
|
171
|
-
var _a, _b, _c, _d, _e, _f, _g, _h, _j;
|
|
172
|
-
const programId = index_module.M();
|
|
173
|
-
const user = index_module.ne();
|
|
174
|
-
const variables = {
|
|
175
|
-
type: props.leaderboardType,
|
|
176
|
-
filter: { programId_eq: programId },
|
|
177
|
-
};
|
|
178
|
-
if (props.interval) {
|
|
179
|
-
variables.filter["interval"] = props.interval;
|
|
180
|
-
}
|
|
181
|
-
const { data: leaderboardData, loading: loadingLeaderboard } = index_module.mn(GET_LEADERBOARD, variables, !(user === null || user === void 0 ? void 0 : user.jwt));
|
|
182
|
-
const { data: rankData } = index_module.mn(GET_RANK, variables, !(user === null || user === void 0 ? void 0 : user.jwt));
|
|
183
|
-
const leaderboardRows = (_a = leaderboardData === null || leaderboardData === void 0 ? void 0 : leaderboardData.userLeaderboard) === null || _a === void 0 ? void 0 : _a.rows;
|
|
184
|
-
const flattenedLeaderboard = getFlattenedLeaderboard(leaderboardRows);
|
|
185
|
-
const sortedLeaderboard = flattenedLeaderboard === null || flattenedLeaderboard === void 0 ? void 0 : flattenedLeaderboard.sort(function (a, b) {
|
|
186
|
-
return a.rank - b.rank;
|
|
187
|
-
});
|
|
188
|
-
function getFlattenedLeaderboard(leaderboardRows) {
|
|
189
|
-
return leaderboardRows === null || leaderboardRows === void 0 ? void 0 : leaderboardRows.flatMap((user) => {
|
|
190
|
-
var _a, _b;
|
|
191
|
-
return ({
|
|
192
|
-
value: user.value,
|
|
193
|
-
firstName: user.firstName,
|
|
194
|
-
lastInitial: user.lastInitial,
|
|
195
|
-
rank: (_a = user.rank) === null || _a === void 0 ? void 0 : _a[props.rankType],
|
|
196
|
-
rowNumber: (_b = user.rank) === null || _b === void 0 ? void 0 : _b.rowNumber,
|
|
197
|
-
});
|
|
198
|
-
});
|
|
199
|
-
}
|
|
200
|
-
console.log(rankData);
|
|
201
|
-
const viewingUser = {
|
|
202
|
-
value: (_c = (_b = rankData === null || rankData === void 0 ? void 0 : rankData.viewer) === null || _b === void 0 ? void 0 : _b.leaderboardRank) === null || _c === void 0 ? void 0 : _c.value,
|
|
203
|
-
firstName: (_d = rankData === null || rankData === void 0 ? void 0 : rankData.viewer) === null || _d === void 0 ? void 0 : _d.firstName,
|
|
204
|
-
lastInitial: (_e = rankData === null || rankData === void 0 ? void 0 : rankData.viewer) === null || _e === void 0 ? void 0 : _e.lastInitial,
|
|
205
|
-
rank: (_g = (_f = rankData === null || rankData === void 0 ? void 0 : rankData.viewer) === null || _f === void 0 ? void 0 : _f.leaderboardRank) === null || _g === void 0 ? void 0 : _g[props.rankType],
|
|
206
|
-
rowNumber: (_j = (_h = rankData === null || rankData === void 0 ? void 0 : rankData.viewer) === null || _h === void 0 ? void 0 : _h.leaderboardRank) === null || _j === void 0 ? void 0 : _j.rowNumber,
|
|
207
|
-
};
|
|
208
|
-
return {
|
|
209
|
-
states: {
|
|
210
|
-
loading: loadingLeaderboard,
|
|
211
|
-
hasLeaders: (sortedLeaderboard === null || sortedLeaderboard === void 0 ? void 0 : sortedLeaderboard.length) > 0,
|
|
212
|
-
styles: props,
|
|
213
|
-
},
|
|
214
|
-
data: {
|
|
215
|
-
leaderboard: sortedLeaderboard,
|
|
216
|
-
rankType: props.rankType,
|
|
217
|
-
userRank: viewingUser,
|
|
218
|
-
showUser: props.showUser,
|
|
219
|
-
},
|
|
220
|
-
elements: {
|
|
221
|
-
empty: props.empty,
|
|
222
|
-
loadingstate: props.loadingstate,
|
|
223
|
-
},
|
|
224
|
-
};
|
|
225
|
-
}
|
|
226
|
-
|
|
227
|
-
exports.LeaderboardView = LeaderboardView;
|
|
228
|
-
exports.ShadowViewAddon = ShadowViewAddon;
|
|
229
|
-
exports.useLeaderboard = useLeaderboard;
|
|
230
|
-
exports.withShadowView = withShadowView;
|
|
@@ -1,98 +0,0 @@
|
|
|
1
|
-
import { r as registerInstance, h as h$1 } from './index-17b4da69.js';
|
|
2
|
-
import { m as h } from './stencil-hooks.module-2f159754.js';
|
|
3
|
-
import './use-callback-d8ef4b5d.js';
|
|
4
|
-
import { k } from './index.module-ec3dcc82.js';
|
|
5
|
-
import './extends-c31f1eff.js';
|
|
6
|
-
import { c as cjs } from './cjs-bdfb4486.js';
|
|
7
|
-
import './JSS-96eeab98.js';
|
|
8
|
-
import { w as withShadowView, u as useLeaderboard, L as LeaderboardView } from './useLeaderboard-b670847e.js';
|
|
9
|
-
|
|
10
|
-
const sqmLeaderboardCss = ":host{display:block}:host([hidden]){display:none}table{width:100%;border-collapse:collapse}th{font-size:var(--sl-font-size-small);font-weight:var(--sl-font-weight-semibold);text-align:left}tr:not(:first-child){border-top:1px solid var(--sl-color-neutral-200)}td{font-size:var(--sl-font-size-medium);font-weight:var(--sl-font-weight-normal)}.ellipses{text-align:center;padding:0;color:var(--sl-color-neutral-500)}.highlight{background:var(--sl-color-primary-50)}td,th{color:var(--sl-color-gray-800);padding:var(--sl-spacing-medium)}th{padding:var(--sl-spacing-medium);padding-top:0}.User{width:100%}.Score{width:auto;white-space:nowrap}";
|
|
11
|
-
|
|
12
|
-
const Leaderboard = class {
|
|
13
|
-
constructor(hostRef) {
|
|
14
|
-
registerInstance(this, hostRef);
|
|
15
|
-
/**
|
|
16
|
-
* @uiName Show viewing user's rank
|
|
17
|
-
*/
|
|
18
|
-
this.showUser = true;
|
|
19
|
-
/**
|
|
20
|
-
* @uiName Title displayed for users without names
|
|
21
|
-
*/
|
|
22
|
-
this.anonymousUser = "Anonymous User";
|
|
23
|
-
/**
|
|
24
|
-
* @uiName Empty State Image
|
|
25
|
-
*/
|
|
26
|
-
this.emptyStateImage = "https://i.imgur.com/KPGnPF8.png";
|
|
27
|
-
/**
|
|
28
|
-
* @uiName Empty State Header
|
|
29
|
-
*/
|
|
30
|
-
this.emptyStateHeader = "View your rank in the leaderboard";
|
|
31
|
-
/**
|
|
32
|
-
* @uiName Empty State Description
|
|
33
|
-
*/
|
|
34
|
-
this.emptyStateText = "Be the first to refer a friend and reach the top of the leaderboard";
|
|
35
|
-
this.ignored = true;
|
|
36
|
-
h(this);
|
|
37
|
-
withShadowView(this);
|
|
38
|
-
}
|
|
39
|
-
disconnectedCallback() { }
|
|
40
|
-
render() {
|
|
41
|
-
const props = {
|
|
42
|
-
empty: h$1(EmptySlot, null),
|
|
43
|
-
loadingstate: h$1(LoadingSlot, null),
|
|
44
|
-
usersheading: this.usersheading,
|
|
45
|
-
statsheading: this.statsheading,
|
|
46
|
-
rankType: this.rankType,
|
|
47
|
-
leaderboardType: this.leaderboardType,
|
|
48
|
-
anonymousUser: this.anonymousUser,
|
|
49
|
-
interval: this.interval,
|
|
50
|
-
showUser: this.showUser,
|
|
51
|
-
showRank: this.showRank,
|
|
52
|
-
};
|
|
53
|
-
const demoProps = { ...props, demoData: this.demoData };
|
|
54
|
-
const viewprops = k()
|
|
55
|
-
? useLeaderboardDemo(demoProps)
|
|
56
|
-
: useLeaderboard(props);
|
|
57
|
-
return (h$1(LeaderboardView, Object.assign({}, viewprops), h$1("slot", null)));
|
|
58
|
-
}
|
|
59
|
-
};
|
|
60
|
-
function EmptySlot() {
|
|
61
|
-
return (h$1("slot", { name: "empty" }, h$1("sqm-portal-container", { padding: "xxxx-large", gap: "medium" }, h$1("sqm-image", { "image-url": this.emptyStateImage, "max-width": "100px" }), h$1("sqm-titled-section", { "label-margin": "xxx-small", align: "center" }, h$1("sqm-text", { slot: "label" }, h$1("h3", null, this.emptyStateHeader)), h$1("sqm-text", { slot: "content" }, this.emptyStateText)))));
|
|
62
|
-
}
|
|
63
|
-
function LoadingSlot() {
|
|
64
|
-
return (h$1("slot", { name: "loadingstate" }, h$1("table", null, [...Array(10)].map(() => {
|
|
65
|
-
return (h$1("tr", null, h$1("td", null, h$1("sl-skeleton", null))));
|
|
66
|
-
}))));
|
|
67
|
-
}
|
|
68
|
-
function useLeaderboardDemo(props) {
|
|
69
|
-
return cjs({
|
|
70
|
-
states: {
|
|
71
|
-
loading: false,
|
|
72
|
-
hasLeaders: true,
|
|
73
|
-
styles: {
|
|
74
|
-
usersheading: props.usersheading
|
|
75
|
-
? props.usersheading
|
|
76
|
-
: "TOP REFERRERS",
|
|
77
|
-
statsheading: props.statsheading ? props.statsheading : "NEW CUSTOMERS",
|
|
78
|
-
},
|
|
79
|
-
},
|
|
80
|
-
data: {
|
|
81
|
-
rankType: "rowNumber",
|
|
82
|
-
leaderboard: [
|
|
83
|
-
{ firstName: "Viktor", lastInitial: "V", value: 82, rank: 1 },
|
|
84
|
-
{ firstName: "MF", lastInitial: "D", value: 73, rank: 2 },
|
|
85
|
-
{ firstName: "Freddie", lastInitial: "G", value: 64, rank: 3 },
|
|
86
|
-
{ firstName: "Benny", lastInitial: "B", value: 55, rank: 4 },
|
|
87
|
-
{ firstName: "Mos", lastInitial: "D", value: 46, rank: 5 },
|
|
88
|
-
],
|
|
89
|
-
},
|
|
90
|
-
elements: {
|
|
91
|
-
empty: h$1(EmptySlot, null),
|
|
92
|
-
loadingstate: h$1(LoadingSlot, null),
|
|
93
|
-
},
|
|
94
|
-
}, props.demoProps || {}, { arrayMerge: (_, a) => a });
|
|
95
|
-
}
|
|
96
|
-
Leaderboard.style = sqmLeaderboardCss;
|
|
97
|
-
|
|
98
|
-
export { Leaderboard as sqm_leaderboard };
|
|
@@ -1,225 +0,0 @@
|
|
|
1
|
-
import { g as getElement, h } from './index-17b4da69.js';
|
|
2
|
-
import { d as dist, M, n as ne, b as mn } from './index.module-ec3dcc82.js';
|
|
3
|
-
import { c as createStyleSheet } from './JSS-96eeab98.js';
|
|
4
|
-
|
|
5
|
-
const map = new Map();
|
|
6
|
-
function withShadowView(component) {
|
|
7
|
-
// TODO: Could only do this if rendered in a Stencilbook environment to prevent unintended side-effects
|
|
8
|
-
const element = getElement(component);
|
|
9
|
-
let renderFn = component["render"].bind(component);
|
|
10
|
-
const newRenderFn = () => {
|
|
11
|
-
const key = element.getAttribute("stencilbook-shadow-view");
|
|
12
|
-
if (key) {
|
|
13
|
-
const value = map.get(key);
|
|
14
|
-
if (value) {
|
|
15
|
-
return value;
|
|
16
|
-
}
|
|
17
|
-
}
|
|
18
|
-
return renderFn();
|
|
19
|
-
};
|
|
20
|
-
component["render"] = newRenderFn;
|
|
21
|
-
}
|
|
22
|
-
/**
|
|
23
|
-
* Any story that defines `parameters.tagname` will be used as a wrapper component around the view
|
|
24
|
-
*/
|
|
25
|
-
const ShadowViewAddon = ({ story }, children) => {
|
|
26
|
-
var _a;
|
|
27
|
-
let TagName = (_a = story.parent.parameters) === null || _a === void 0 ? void 0 : _a.tagname;
|
|
28
|
-
if (!TagName)
|
|
29
|
-
return children;
|
|
30
|
-
const randomInt = Math.round(Math.random() * 100000);
|
|
31
|
-
map.set(randomInt + "", children);
|
|
32
|
-
const RandomTagName = "stencilbook-shawdow-view-" + randomInt;
|
|
33
|
-
// This will only re-render when the tag name changes, so we use a random tag name every time.
|
|
34
|
-
// Altneratively we could try to trick Stencil to call `forceUpdate` every time.
|
|
35
|
-
return (h(RandomTagName, null,
|
|
36
|
-
h(TagName, { "stencilbook-shadow-view": randomInt })));
|
|
37
|
-
};
|
|
38
|
-
|
|
39
|
-
const style = {
|
|
40
|
-
Leaderboard: {
|
|
41
|
-
"& table": {
|
|
42
|
-
width: "100%",
|
|
43
|
-
borderCollapse: "collapse",
|
|
44
|
-
},
|
|
45
|
-
"& th": {
|
|
46
|
-
textAlign: "left",
|
|
47
|
-
padding: "var(--sl-spacing-medium)",
|
|
48
|
-
paddingTop: "0",
|
|
49
|
-
fontSize: "var(--sl-font-size-medium)",
|
|
50
|
-
fontWeight: "var(--sl-font-weight-semibold)",
|
|
51
|
-
},
|
|
52
|
-
"& tr:not(:first-child)": {
|
|
53
|
-
borderTop: "1px solid var(--sl-color-neutral-200)",
|
|
54
|
-
},
|
|
55
|
-
"& td": {
|
|
56
|
-
fontSize: "var(--sl-font-size-medium)",
|
|
57
|
-
fontWeight: "var(--sl-font-weight-normal)",
|
|
58
|
-
},
|
|
59
|
-
"& .ellipses": {
|
|
60
|
-
textAlign: "center",
|
|
61
|
-
padding: "0",
|
|
62
|
-
color: "var(--sl-color-neutral-500)",
|
|
63
|
-
},
|
|
64
|
-
"& .highlight": {
|
|
65
|
-
background: "var(--sl-color-primary-50)",
|
|
66
|
-
},
|
|
67
|
-
"& td, th": {
|
|
68
|
-
color: "var(--sl-color-gray-800)",
|
|
69
|
-
padding: "var(--sl-spacing-medium)",
|
|
70
|
-
},
|
|
71
|
-
"& .User": {
|
|
72
|
-
width: "100%",
|
|
73
|
-
},
|
|
74
|
-
"& .Score": {
|
|
75
|
-
width: "auto",
|
|
76
|
-
whiteSpace: "nowrap",
|
|
77
|
-
},
|
|
78
|
-
},
|
|
79
|
-
};
|
|
80
|
-
const sheet = createStyleSheet(style);
|
|
81
|
-
const styleString = sheet.toString();
|
|
82
|
-
const vanillaStyle = `
|
|
83
|
-
:host{
|
|
84
|
-
display: block;
|
|
85
|
-
}
|
|
86
|
-
`;
|
|
87
|
-
function LeaderboardView(props) {
|
|
88
|
-
var _a, _b, _c, _d, _e, _f, _g, _h, _j, _k, _l;
|
|
89
|
-
const { states, data, elements } = props;
|
|
90
|
-
const { styles } = states;
|
|
91
|
-
if (states.loading)
|
|
92
|
-
return (h("div", { class: sheet.classes.Leaderboard },
|
|
93
|
-
h("style", { type: "text/css" },
|
|
94
|
-
styleString,
|
|
95
|
-
vanillaStyle),
|
|
96
|
-
elements.loadingstate));
|
|
97
|
-
let userSeenFlag = false;
|
|
98
|
-
return (h("div", { class: sheet.classes.Leaderboard },
|
|
99
|
-
h("style", { type: "text/css" },
|
|
100
|
-
styleString,
|
|
101
|
-
vanillaStyle),
|
|
102
|
-
h("table", null,
|
|
103
|
-
h("tr", null,
|
|
104
|
-
styles.showRank && h("th", { class: "Rank" }, styles.rankheading),
|
|
105
|
-
h("th", { class: "User" }, styles.usersheading),
|
|
106
|
-
h("th", { class: "Score" }, styles.statsheading)),
|
|
107
|
-
!states.hasLeaders && (h("tr", null,
|
|
108
|
-
h("td", { colSpan: 100 }, elements.empty))), (_a = data.leaderboard) === null || _a === void 0 ? void 0 :
|
|
109
|
-
_a.map((user) => {
|
|
110
|
-
var _a, _b;
|
|
111
|
-
if (user.rowNumber === ((_a = data.userRank) === null || _a === void 0 ? void 0 : _a.rowNumber))
|
|
112
|
-
userSeenFlag = true;
|
|
113
|
-
return (h("tr", { class: user.rowNumber === ((_b = data.userRank) === null || _b === void 0 ? void 0 : _b.rowNumber) ? "highlight" : "" },
|
|
114
|
-
styles.showRank && h("td", { class: "Rank" }, user.rank),
|
|
115
|
-
h("td", { class: "User" }, user.firstName && user.lastInitial
|
|
116
|
-
? user.firstName + " " + user.lastInitial
|
|
117
|
-
: user.firstName || user.lastInitial
|
|
118
|
-
? user.firstName || user.lastInitial
|
|
119
|
-
: styles.anonymousUser || "Anonymous User"),
|
|
120
|
-
h("td", { class: "Score" }, user.value)));
|
|
121
|
-
}),
|
|
122
|
-
!userSeenFlag && data.showUser && (h("tr", null,
|
|
123
|
-
h("td", { colSpan: 100, class: "ellipses" },
|
|
124
|
-
h("sl-icon", { name: "three-dots", style: { verticalAlign: "middle" } })))),
|
|
125
|
-
!userSeenFlag && data.showUser && (h("tr", { class: "highlight" },
|
|
126
|
-
styles.showRank && (h("td", { class: "Rank" }, ((_b = data.userRank) === null || _b === void 0 ? void 0 : _b.rank) || "-")),
|
|
127
|
-
h("td", { class: "User" }, ((_c = data.userRank) === null || _c === void 0 ? void 0 : _c.firstName) && ((_d = data.userRank) === null || _d === void 0 ? void 0 : _d.lastInitial)
|
|
128
|
-
? ((_e = data.userRank) === null || _e === void 0 ? void 0 : _e.firstName) + " " + ((_f = data.userRank) === null || _f === void 0 ? void 0 : _f.lastInitial)
|
|
129
|
-
: ((_g = data.userRank) === null || _g === void 0 ? void 0 : _g.firstName) || ((_h = data.userRank) === null || _h === void 0 ? void 0 : _h.lastInitial)
|
|
130
|
-
? ((_j = data.userRank) === null || _j === void 0 ? void 0 : _j.firstName) || ((_k = data.userRank) === null || _k === void 0 ? void 0 : _k.lastInitial)
|
|
131
|
-
: styles.anonymousUser || "Anonymous User"),
|
|
132
|
-
h("td", { class: "Score" }, ((_l = data.userRank) === null || _l === void 0 ? void 0 : _l.value) || "0"))))));
|
|
133
|
-
}
|
|
134
|
-
|
|
135
|
-
const GET_LEADERBOARD = dist.gql `
|
|
136
|
-
query ($type: String!, $filter: UserLeaderboardFilterInput) {
|
|
137
|
-
userLeaderboard(type: $type, filter: $filter) {
|
|
138
|
-
dateModified
|
|
139
|
-
rows {
|
|
140
|
-
value
|
|
141
|
-
firstName
|
|
142
|
-
lastInitial
|
|
143
|
-
rank {
|
|
144
|
-
rank
|
|
145
|
-
denseRank
|
|
146
|
-
rowNumber
|
|
147
|
-
}
|
|
148
|
-
}
|
|
149
|
-
}
|
|
150
|
-
}
|
|
151
|
-
`;
|
|
152
|
-
const GET_RANK = dist.gql `
|
|
153
|
-
query ($type: String!, $filter: UserLeaderboardFilterInput) {
|
|
154
|
-
viewer {
|
|
155
|
-
... on User {
|
|
156
|
-
firstName
|
|
157
|
-
lastInitial
|
|
158
|
-
leaderboardRank(type: $type, filter: $filter) {
|
|
159
|
-
value
|
|
160
|
-
rank
|
|
161
|
-
denseRank
|
|
162
|
-
rowNumber
|
|
163
|
-
}
|
|
164
|
-
}
|
|
165
|
-
}
|
|
166
|
-
}
|
|
167
|
-
`;
|
|
168
|
-
function useLeaderboard(props) {
|
|
169
|
-
var _a, _b, _c, _d, _e, _f, _g, _h, _j;
|
|
170
|
-
const programId = M();
|
|
171
|
-
const user = ne();
|
|
172
|
-
const variables = {
|
|
173
|
-
type: props.leaderboardType,
|
|
174
|
-
filter: { programId_eq: programId },
|
|
175
|
-
};
|
|
176
|
-
if (props.interval) {
|
|
177
|
-
variables.filter["interval"] = props.interval;
|
|
178
|
-
}
|
|
179
|
-
const { data: leaderboardData, loading: loadingLeaderboard } = mn(GET_LEADERBOARD, variables, !(user === null || user === void 0 ? void 0 : user.jwt));
|
|
180
|
-
const { data: rankData } = mn(GET_RANK, variables, !(user === null || user === void 0 ? void 0 : user.jwt));
|
|
181
|
-
const leaderboardRows = (_a = leaderboardData === null || leaderboardData === void 0 ? void 0 : leaderboardData.userLeaderboard) === null || _a === void 0 ? void 0 : _a.rows;
|
|
182
|
-
const flattenedLeaderboard = getFlattenedLeaderboard(leaderboardRows);
|
|
183
|
-
const sortedLeaderboard = flattenedLeaderboard === null || flattenedLeaderboard === void 0 ? void 0 : flattenedLeaderboard.sort(function (a, b) {
|
|
184
|
-
return a.rank - b.rank;
|
|
185
|
-
});
|
|
186
|
-
function getFlattenedLeaderboard(leaderboardRows) {
|
|
187
|
-
return leaderboardRows === null || leaderboardRows === void 0 ? void 0 : leaderboardRows.flatMap((user) => {
|
|
188
|
-
var _a, _b;
|
|
189
|
-
return ({
|
|
190
|
-
value: user.value,
|
|
191
|
-
firstName: user.firstName,
|
|
192
|
-
lastInitial: user.lastInitial,
|
|
193
|
-
rank: (_a = user.rank) === null || _a === void 0 ? void 0 : _a[props.rankType],
|
|
194
|
-
rowNumber: (_b = user.rank) === null || _b === void 0 ? void 0 : _b.rowNumber,
|
|
195
|
-
});
|
|
196
|
-
});
|
|
197
|
-
}
|
|
198
|
-
console.log(rankData);
|
|
199
|
-
const viewingUser = {
|
|
200
|
-
value: (_c = (_b = rankData === null || rankData === void 0 ? void 0 : rankData.viewer) === null || _b === void 0 ? void 0 : _b.leaderboardRank) === null || _c === void 0 ? void 0 : _c.value,
|
|
201
|
-
firstName: (_d = rankData === null || rankData === void 0 ? void 0 : rankData.viewer) === null || _d === void 0 ? void 0 : _d.firstName,
|
|
202
|
-
lastInitial: (_e = rankData === null || rankData === void 0 ? void 0 : rankData.viewer) === null || _e === void 0 ? void 0 : _e.lastInitial,
|
|
203
|
-
rank: (_g = (_f = rankData === null || rankData === void 0 ? void 0 : rankData.viewer) === null || _f === void 0 ? void 0 : _f.leaderboardRank) === null || _g === void 0 ? void 0 : _g[props.rankType],
|
|
204
|
-
rowNumber: (_j = (_h = rankData === null || rankData === void 0 ? void 0 : rankData.viewer) === null || _h === void 0 ? void 0 : _h.leaderboardRank) === null || _j === void 0 ? void 0 : _j.rowNumber,
|
|
205
|
-
};
|
|
206
|
-
return {
|
|
207
|
-
states: {
|
|
208
|
-
loading: loadingLeaderboard,
|
|
209
|
-
hasLeaders: (sortedLeaderboard === null || sortedLeaderboard === void 0 ? void 0 : sortedLeaderboard.length) > 0,
|
|
210
|
-
styles: props,
|
|
211
|
-
},
|
|
212
|
-
data: {
|
|
213
|
-
leaderboard: sortedLeaderboard,
|
|
214
|
-
rankType: props.rankType,
|
|
215
|
-
userRank: viewingUser,
|
|
216
|
-
showUser: props.showUser,
|
|
217
|
-
},
|
|
218
|
-
elements: {
|
|
219
|
-
empty: props.empty,
|
|
220
|
-
loadingstate: props.loadingstate,
|
|
221
|
-
},
|
|
222
|
-
};
|
|
223
|
-
}
|
|
224
|
-
|
|
225
|
-
export { LeaderboardView as L, ShadowViewAddon as S, useLeaderboard as u, withShadowView as w };
|