fansunited-frontend-components 0.0.48 → 0.0.49
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/ChanceGame.js +45 -45
- package/ClassicQuizPlay.js +184 -183
- package/CollectLead.js +16 -15
- package/Discussion.js +1 -1
- package/EitherOrPlay.js +66 -65
- package/EventGamePlay.js +68 -67
- package/Leaderboard.js +22 -22
- package/MatchQuizPlay.js +82 -81
- package/PersonalityQuizPlay.js +77 -76
- package/PickThePair.js +42 -42
- package/PollVote.js +53 -52
- package/Predictor.js +75 -75
- package/README.md +272 -0
- package/chunks/{AlertMessage-D4Uc6n5U.js → AlertMessage-Ds45MBHB.js} +3 -3
- package/chunks/{ArrowRightAlt-wEs8SY1V.js → ArrowRightAlt-DKADQN2o.js} +1 -1
- package/chunks/{Avatar-BXHdXHLA.js → Avatar-K1EWhhkA.js} +2 -2
- package/chunks/{ChanceGameEmbedVariant-DfS5LPpp.js → ChanceGameEmbedVariant-DqFg4YKU.js} +31 -29
- package/chunks/{CheckCircle-CU2itira.js → CheckCircle-CV9iMpkZ.js} +1 -1
- package/chunks/{Close-DBt1nfGo.js → Close-BHp4N1-6.js} +1 -1
- package/chunks/{Close-C5SGTkPr.js → Close-C6Cw96SJ.js} +1 -1
- package/chunks/{CollectLeadForm-BqjgPYKX.js → CollectLeadForm-DnLKA8qz.js} +13 -13
- package/chunks/{Divider-Cbns9B3Y.js → Divider-BvUimRFw.js} +2 -2
- package/chunks/{Edit-BVP8fCB4.js → Edit-CZ3ni-Ur.js} +4 -4
- package/chunks/{EmojiEvents-D_ObJxNy.js → EmojiEvents-DpmLq98V.js} +1 -1
- package/chunks/{FavoriteBorder-_mUf1vas.js → FavoriteBorder-DUK_DrY4.js} +1 -1
- package/chunks/{FormControl-DLBvX-Sn.js → FormControl-BUItlVIg.js} +3 -3
- package/chunks/{FormLabel-jXtScWTI.js → FormLabel-CeTNPUn7.js} +2 -2
- package/chunks/{Input-Cha_dm3J.js → Input-MJCQcYzo.js} +2 -2
- package/chunks/{KeyboardArrowDown-C_8g8wLS.js → KeyboardArrowDown-SZpn2GhJ.js} +1 -1
- package/chunks/{ModalDialog-Co3jck0z.js → ModalDialog-Cfgv9UAA.js} +2 -2
- package/chunks/{NotFoundSkeleton-D5Jh3lnu.js → NotFoundSkeleton-Cs6DtD9u.js} +13 -12
- package/chunks/{Notification-r1Fm0If2.js → Notification-pcKtlRms.js} +4 -4
- package/chunks/{OverlayApiErrorSkeleton-BUuD0zL8.js → OverlayApiErrorSkeleton-Dl3s5Oaf.js} +20 -19
- package/chunks/{OverlayLeadAfterCollection-B-N1OjPu.js → OverlayLeadAfterCollection-F2TAV9wK.js} +14 -12
- package/chunks/{OverlayScoreStateSkeleton-Bd3-ZNlU.js → OverlayScoreStateSkeleton-LQ0svzeX.js} +3 -3
- package/chunks/{Person-K8GGMiAW.js → Person-BGdniS_p.js} +1 -1
- package/chunks/{PickOneOfX-CvIn7QOd.js → PickOneOfX-Ci4ZJf7G.js} +8 -7
- package/chunks/{Popper-Bti_HOMS.js → Popper-DOVSI4rJ.js} +1 -1
- package/chunks/{Portal-B-nN3a_R.js → Portal-Cs0dgwmH.js} +1 -1
- package/chunks/{index-Btf_jw7-.js → PrizeCard-DF3QxwQJ.js} +0 -1
- package/chunks/{Select-C2QtqgA7.js → Select-BHeTdOYr.js} +3 -3
- package/chunks/{Spinner-D7-MZe2m.js → Spinner-DbUB64Gj.js} +1 -1
- package/chunks/{SplitLeadAfterCollection-CyXBWAIK.js → SplitLeadAfterCollection-DSw6X5fx.js} +36 -34
- package/chunks/{Stack-CU36SsgA.js → Stack-BpHk5eb0.js} +1 -1
- package/chunks/{StandardContentSkeleton-CYduGHsc.js → StandardContentSkeleton-Bae1LLQ_.js} +1 -1
- package/chunks/{Tabs-CA-FqQfT.js → Tabs-hwJ7jsUl.js} +3 -3
- package/chunks/{Textarea-Cn4VvCBl.js → Textarea-zOtMdgc5.js} +3 -3
- package/chunks/{TimerOutlined-DOpryr42.js → TimerOutlined-DWE7f0YX.js} +1 -1
- package/chunks/{helpers-1jFObSvc.js → helpers-NuC1SzL3.js} +1 -1
- package/chunks/index-BaypiKlO.js +4 -0
- package/chunks/{main-Chqd9Wwn.js → main-hB01WcoP.js} +88 -88
- package/chunks/{useEventCallback-CkO2rd5W.js → useEventCallback-CizlfWBo.js} +1 -1
- package/chunks/{useForwardedInput-C3SP2QmS.js → useForwardedInput-RWDntqBU.js} +2 -2
- package/chunks/{useImageVariant-BJ722AFw.js → useImageVariant-Cex1eIqq.js} +1 -1
- package/index.js +1 -1
- package/package.json +1 -1
- package/chunks/index-CyODGG_P.js +0 -4
package/README.md
CHANGED
|
@@ -3059,6 +3059,277 @@ import { Leaderboard } from "fansunited-frontend-components";
|
|
|
3059
3059
|
/>
|
|
3060
3060
|
```
|
|
3061
3061
|
|
|
3062
|
+
### Predictor
|
|
3063
|
+
|
|
3064
|
+
Full-featured football score predictor component with a multi-tab interface for match predictions, global leaderboard, private leagues, game rules, and prizes. Designed as a season-long engagement tool for sports platforms.
|
|
3065
|
+
|
|
3066
|
+
**Key Features:**
|
|
3067
|
+
|
|
3068
|
+
- Multi-tab navigation: Play, Leaderboard, Private Leagues, Rules, and Prizes
|
|
3069
|
+
- Match score prediction interface with grouped matchweeks
|
|
3070
|
+
- Global leaderboard with paginated standings and user rank highlighting
|
|
3071
|
+
- Private leagues — create and join custom competitive groups
|
|
3072
|
+
- Consent management with required/optional consent gates before predicting
|
|
3073
|
+
- Customisable banners in 6 positions within the Play tab
|
|
3074
|
+
- Authentication-aware UI with configurable sign-in CTA
|
|
3075
|
+
- Custom theming and multi-language support
|
|
3076
|
+
|
|
3077
|
+
#### Required Props
|
|
3078
|
+
|
|
3079
|
+
| Prop | Type | Description |
|
|
3080
|
+
| ---------- | -------------------- | -------------------------------- |
|
|
3081
|
+
| `entityId` | `string` | Predictor template identifier |
|
|
3082
|
+
| `sdk` | `FansUnitedSDKModel` | SDK instance |
|
|
3083
|
+
| `language` | `LanguageType` | Display language |
|
|
3084
|
+
|
|
3085
|
+
#### Optional Props
|
|
3086
|
+
|
|
3087
|
+
| Prop | Type | Description |
|
|
3088
|
+
| ---------------------------- | -------------------- | --------------------------------------------------- |
|
|
3089
|
+
| `themeOptions` | `CustomThemeOptions` | Theme configuration |
|
|
3090
|
+
| `userIsLoggedIn` | `boolean` | Determine if the user is logged in (default: false) |
|
|
3091
|
+
| `signInCTA` | `SignInCTADetails` | Sign in call to action button configuration |
|
|
3092
|
+
| `tabs` | `PredictorTab[]` | Tabs to enable (default: all tabs) |
|
|
3093
|
+
| `defaultImagePlaceholderUrl` | `string` | Fallback image URL for the hero header |
|
|
3094
|
+
| `playTabBanners` | `PlayTabBanner[]` | Custom banners rendered in the Play tab |
|
|
3095
|
+
| `consents` | `ConsentDef[]` | Consent definitions required before predicting |
|
|
3096
|
+
| `matchCardBgImageUrl` | `string` | Background image URL for match prediction cards |
|
|
3097
|
+
|
|
3098
|
+
#### Tabs
|
|
3099
|
+
|
|
3100
|
+
Configure which tabs are visible using the `tabs` prop. All tabs are enabled by default.
|
|
3101
|
+
|
|
3102
|
+
```tsx
|
|
3103
|
+
import { PredictorTab } from "fansunited-frontend-core";
|
|
3104
|
+
|
|
3105
|
+
type PredictorTab = "play" | "leaderboard" | "private-leagues" | "rules" | "prizes";
|
|
3106
|
+
|
|
3107
|
+
// Show only the Play and Leaderboard tabs
|
|
3108
|
+
<Predictor
|
|
3109
|
+
{...otherProps}
|
|
3110
|
+
tabs={["play", "leaderboard"]}
|
|
3111
|
+
/>
|
|
3112
|
+
```
|
|
3113
|
+
|
|
3114
|
+
| Tab | Description |
|
|
3115
|
+
| ------------------ | --------------------------------------------------------- |
|
|
3116
|
+
| `"play"` | Main prediction interface — submit match score forecasts |
|
|
3117
|
+
| `"leaderboard"` | Global rankings and user standings with pagination |
|
|
3118
|
+
| `"private-leagues"` | Create and join private leagues to compete with friends |
|
|
3119
|
+
| `"rules"` | Searchable game rules and scoring system |
|
|
3120
|
+
| `"prizes"` | Prize distribution and rewards information |
|
|
3121
|
+
|
|
3122
|
+
#### Sign in Configuration
|
|
3123
|
+
|
|
3124
|
+
Control user authentication using the `userIsLoggedIn` and `signInCTA` props.
|
|
3125
|
+
|
|
3126
|
+
```tsx
|
|
3127
|
+
import { SignInCTADetails } from "fansunited-frontend-core";
|
|
3128
|
+
|
|
3129
|
+
// Basic sign-in with onClick handler
|
|
3130
|
+
const signInCTA: SignInCTADetails = {
|
|
3131
|
+
defaultLabel: "Sign In to Predict",
|
|
3132
|
+
onClick: () => {
|
|
3133
|
+
// Handle sign-in logic
|
|
3134
|
+
console.log("Sign in clicked");
|
|
3135
|
+
},
|
|
3136
|
+
};
|
|
3137
|
+
|
|
3138
|
+
// Sign-in with URL navigation
|
|
3139
|
+
const signInCTA: SignInCTADetails = {
|
|
3140
|
+
defaultLabel: "Login to Compete",
|
|
3141
|
+
url: "https://your-auth-provider.com/login",
|
|
3142
|
+
target: "_blank", // or "_self"
|
|
3143
|
+
};
|
|
3144
|
+
|
|
3145
|
+
// Custom sign-in component
|
|
3146
|
+
const signInCTA: SignInCTADetails = {
|
|
3147
|
+
component: <CustomSignInButton />,
|
|
3148
|
+
};
|
|
3149
|
+
|
|
3150
|
+
<Predictor {...otherProps} userIsLoggedIn={false} signInCTA={signInCTA} />;
|
|
3151
|
+
```
|
|
3152
|
+
|
|
3153
|
+
**Sign-in Priority Order:**
|
|
3154
|
+
|
|
3155
|
+
1. **Custom Component** - If `signInCTA.component` is provided, it will be rendered
|
|
3156
|
+
2. **Click Handler** - If `signInCTA.onClick` is provided, a button with the handler will be rendered
|
|
3157
|
+
3. **URL Navigation** - If `signInCTA.url` is provided, a button will be rendered and clicking will navigate to the URL
|
|
3158
|
+
4. **Disabled** - If no `signInCTA` is provided, a disabled button will be shown
|
|
3159
|
+
|
|
3160
|
+
#### Play Tab Banners
|
|
3161
|
+
|
|
3162
|
+
Inject custom banner content into specific positions inside the Play tab using the `playTabBanners` prop.
|
|
3163
|
+
|
|
3164
|
+
```tsx
|
|
3165
|
+
import { PlayTabBanner, PlayTabBannerPosition } from "fansunited-frontend-core";
|
|
3166
|
+
|
|
3167
|
+
const playTabBanners: PlayTabBanner[] = [
|
|
3168
|
+
{
|
|
3169
|
+
position: "above-group-nav",
|
|
3170
|
+
render: () => <PromoBanner campaign="matchday-sponsor" />,
|
|
3171
|
+
},
|
|
3172
|
+
{
|
|
3173
|
+
position: "below-matches",
|
|
3174
|
+
render: () => <AdSlot id="predictor-bottom" />,
|
|
3175
|
+
},
|
|
3176
|
+
];
|
|
3177
|
+
|
|
3178
|
+
<Predictor {...otherProps} playTabBanners={playTabBanners} />;
|
|
3179
|
+
```
|
|
3180
|
+
|
|
3181
|
+
**Available Positions:**
|
|
3182
|
+
|
|
3183
|
+
| Position | Description |
|
|
3184
|
+
| -------------------- | ---------------------------------------------------- |
|
|
3185
|
+
| `"above-group-nav"` | Above the matchweek group navigation |
|
|
3186
|
+
| `"below-group-nav"` | Below the matchweek group navigation |
|
|
3187
|
+
| `"below-matches"` | Below the list of match prediction cards |
|
|
3188
|
+
| `"bottom"` | At the very bottom of the Play tab |
|
|
3189
|
+
| `"left"` | Left sidebar (desktop layouts) |
|
|
3190
|
+
| `"right"` | Right sidebar (desktop layouts) |
|
|
3191
|
+
|
|
3192
|
+
#### Consent Configuration
|
|
3193
|
+
|
|
3194
|
+
Require users to accept consent agreements before submitting predictions using the `consents` prop.
|
|
3195
|
+
|
|
3196
|
+
```tsx
|
|
3197
|
+
import { ConsentDef } from "fansunited-frontend-core";
|
|
3198
|
+
|
|
3199
|
+
const consents: ConsentDef[] = [
|
|
3200
|
+
{
|
|
3201
|
+
consentId: "terms_of_service",
|
|
3202
|
+
body: 'I agree to the <a href="https://example.com/tos" target="_blank">Terms of Service</a>.',
|
|
3203
|
+
required: true,
|
|
3204
|
+
defaultChecked: false,
|
|
3205
|
+
},
|
|
3206
|
+
{
|
|
3207
|
+
consentId: "marketing",
|
|
3208
|
+
body: "I'd like to receive promotional emails and offers.",
|
|
3209
|
+
required: false,
|
|
3210
|
+
defaultChecked: false,
|
|
3211
|
+
},
|
|
3212
|
+
];
|
|
3213
|
+
|
|
3214
|
+
<Predictor {...otherProps} consents={consents} />;
|
|
3215
|
+
```
|
|
3216
|
+
|
|
3217
|
+
**Consent Fields:**
|
|
3218
|
+
|
|
3219
|
+
| Field | Type | Description |
|
|
3220
|
+
| ---------------- | --------- | ----------------------------------------------------------------- |
|
|
3221
|
+
| `consentId` | `string` | Unique identifier for the consent (e.g. `"tos"`, `"marketing"`) |
|
|
3222
|
+
| `body` | `string` | HTML content of the consent label (supports links and formatting) |
|
|
3223
|
+
| `required` | `boolean` | When `true`, the user must accept before they can predict |
|
|
3224
|
+
| `defaultChecked` | `boolean` | Pre-check the consent checkbox on load |
|
|
3225
|
+
|
|
3226
|
+
**Behavior:**
|
|
3227
|
+
|
|
3228
|
+
- Required consents are gated behind a modal that appears before the first prediction submission
|
|
3229
|
+
- Optional consents are shown in the same modal but do not block progression
|
|
3230
|
+
- Once accepted, consents are stored and the modal does not reappear
|
|
3231
|
+
|
|
3232
|
+
#### TypeScript Support
|
|
3233
|
+
|
|
3234
|
+
Import types from `fansunited-frontend-core`:
|
|
3235
|
+
|
|
3236
|
+
```tsx
|
|
3237
|
+
import {
|
|
3238
|
+
PredictorProps,
|
|
3239
|
+
PredictorTab,
|
|
3240
|
+
PlayTabBanner,
|
|
3241
|
+
PlayTabBannerPosition,
|
|
3242
|
+
ConsentDef,
|
|
3243
|
+
SignInCTADetails,
|
|
3244
|
+
CustomThemeOptions,
|
|
3245
|
+
LanguageType,
|
|
3246
|
+
} from "fansunited-frontend-core";
|
|
3247
|
+
```
|
|
3248
|
+
|
|
3249
|
+
#### Examples
|
|
3250
|
+
|
|
3251
|
+
##### Basic Predictor
|
|
3252
|
+
|
|
3253
|
+
```tsx
|
|
3254
|
+
import { Predictor } from "fansunited-frontend-components";
|
|
3255
|
+
|
|
3256
|
+
<Predictor
|
|
3257
|
+
entityId="predictor-template-123"
|
|
3258
|
+
sdk={sdkInstance}
|
|
3259
|
+
language="en"
|
|
3260
|
+
/>;
|
|
3261
|
+
```
|
|
3262
|
+
|
|
3263
|
+
##### Authenticated with Selected Tabs
|
|
3264
|
+
|
|
3265
|
+
```tsx
|
|
3266
|
+
<Predictor
|
|
3267
|
+
entityId="predictor-template-123"
|
|
3268
|
+
sdk={sdkInstance}
|
|
3269
|
+
language="en"
|
|
3270
|
+
userIsLoggedIn={true}
|
|
3271
|
+
tabs={["play", "leaderboard", "private-leagues"]}
|
|
3272
|
+
matchCardBgImageUrl="https://your-cdn.com/stadium-bg.jpg"
|
|
3273
|
+
themeOptions={{
|
|
3274
|
+
mode: "dark",
|
|
3275
|
+
}}
|
|
3276
|
+
/>
|
|
3277
|
+
```
|
|
3278
|
+
|
|
3279
|
+
##### Full Setup with Banners and Consents
|
|
3280
|
+
|
|
3281
|
+
```tsx
|
|
3282
|
+
<Predictor
|
|
3283
|
+
entityId="predictor-template-123"
|
|
3284
|
+
sdk={sdkInstance}
|
|
3285
|
+
language="en"
|
|
3286
|
+
userIsLoggedIn={false}
|
|
3287
|
+
signInCTA={{
|
|
3288
|
+
defaultLabel: "Sign in to Predict",
|
|
3289
|
+
onClick: () => handleSignIn(),
|
|
3290
|
+
}}
|
|
3291
|
+
tabs={["play", "leaderboard", "private-leagues", "rules", "prizes"]}
|
|
3292
|
+
matchCardBgImageUrl="https://your-cdn.com/matchcard-bg.jpg"
|
|
3293
|
+
defaultImagePlaceholderUrl="https://your-cdn.com/placeholder.png"
|
|
3294
|
+
playTabBanners={[
|
|
3295
|
+
{
|
|
3296
|
+
position: "above-group-nav",
|
|
3297
|
+
render: () => <SponsorBanner />,
|
|
3298
|
+
},
|
|
3299
|
+
{
|
|
3300
|
+
position: "right",
|
|
3301
|
+
render: () => <AdSlot id="predictor-sidebar" />,
|
|
3302
|
+
},
|
|
3303
|
+
]}
|
|
3304
|
+
consents={[
|
|
3305
|
+
{
|
|
3306
|
+
consentId: "tos",
|
|
3307
|
+
body: 'I accept the <a href="https://example.com/tos" target="_blank">Terms of Service</a>.',
|
|
3308
|
+
required: true,
|
|
3309
|
+
defaultChecked: false,
|
|
3310
|
+
},
|
|
3311
|
+
]}
|
|
3312
|
+
themeOptions={{
|
|
3313
|
+
mode: "light",
|
|
3314
|
+
colorSchemes: {
|
|
3315
|
+
light: {
|
|
3316
|
+
palette: {
|
|
3317
|
+
primary: {
|
|
3318
|
+
plainColor: "#1A77D2",
|
|
3319
|
+
primaryContainer: "#2397F3",
|
|
3320
|
+
onPrimary: "#FAFAFA",
|
|
3321
|
+
},
|
|
3322
|
+
},
|
|
3323
|
+
surface: "#FFFFFF",
|
|
3324
|
+
textPrimary: "#212121",
|
|
3325
|
+
},
|
|
3326
|
+
},
|
|
3327
|
+
}}
|
|
3328
|
+
/>
|
|
3329
|
+
```
|
|
3330
|
+
|
|
3331
|
+
---
|
|
3332
|
+
|
|
3062
3333
|
## Available Components
|
|
3063
3334
|
|
|
3064
3335
|
This package exports the following components:
|
|
@@ -3073,6 +3344,7 @@ This package exports the following components:
|
|
|
3073
3344
|
- **`EitherOrPlay`** - Binary choice game with standings panel and customizable templates
|
|
3074
3345
|
- **`Discussion`** - Threaded comments with reactions, replies, reporting, and authentication support
|
|
3075
3346
|
- **`Leaderboard`** - Ranked standings for Classic Quiz, Match Quiz, Top X, and Template entities with multi-entity support
|
|
3347
|
+
- **`Predictor`** - Multi-tab football score predictor with leaderboard, private leagues, rules, and prizes
|
|
3076
3348
|
|
|
3077
3349
|
## Related Packages
|
|
3078
3350
|
|
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
import { jsxs as D, jsx as s } from "react/jsx-runtime";
|
|
2
|
-
import { C as H } from "./CheckCircle-
|
|
3
|
-
import { t as M, s as _, v as y, Y as $, _ as i, ab as k, ac as B, y as J, z as L, A as f, D as U, P as r, X as v, E as V, m as z, u as X, b as Y, c as q, T as g } from "./
|
|
2
|
+
import { C as H } from "./CheckCircle-CV9iMpkZ.js";
|
|
3
|
+
import { t as M, s as _, v as y, Y as $, _ as i, ab as k, ac as B, y as J, z as L, A as f, D as U, P as r, X as v, E as V, m as z, u as X, b as Y, c as q, T as g } from "./PrizeCard-DF3QxwQJ.js";
|
|
4
4
|
import * as G from "react";
|
|
5
|
-
import { S as K } from "./Stack-
|
|
5
|
+
import { S as K } from "./Stack-BpHk5eb0.js";
|
|
6
6
|
function Q(e) {
|
|
7
7
|
return M("MuiAlert", e);
|
|
8
8
|
}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { jsx as a } from "react/jsx-runtime";
|
|
2
|
-
import { u, e as h, B as S, m as k } from "./
|
|
2
|
+
import { u, e as h, B as S, m as k } from "./PrizeCard-DF3QxwQJ.js";
|
|
3
3
|
const x = (e) => ({
|
|
4
4
|
// Main container with background overlay (with ScoreStateWrapper)
|
|
5
5
|
mainContainerWithWrapper: {
|
|
@@ -1,6 +1,6 @@
|
|
|
1
|
-
import { t as I, s as k, v as z, _ as c, P as e, y as R, z as j, A as h, D as L, E as _, X as N } from "./
|
|
1
|
+
import { t as I, s as k, v as z, _ as c, P as e, y as R, z as j, A as h, D as L, E as _, X as N } from "./PrizeCard-DF3QxwQJ.js";
|
|
2
2
|
import * as p from "react";
|
|
3
|
-
import { c as V } from "./CheckCircle-
|
|
3
|
+
import { c as V } from "./CheckCircle-CV9iMpkZ.js";
|
|
4
4
|
import { jsx as v } from "react/jsx-runtime";
|
|
5
5
|
const W = V(/* @__PURE__ */ v("path", {
|
|
6
6
|
d: "M12 12c2.21 0 4-1.79 4-4s-1.79-4-4-4-4 1.79-4 4 1.79 4 4 4zm0 2c-2.67 0-8 1.34-8 4v2h16v-2c0-2.66-5.33-4-8-4z"
|
|
@@ -1,12 +1,14 @@
|
|
|
1
1
|
import { jsxs as l, Fragment as H, jsx as t } from "react/jsx-runtime";
|
|
2
|
-
import { i as E, h as U, u as G, e as q, c as I, b as A, a as b, n as O, W as D, B as i, T as s, f as J, j as Q, F as N } from "./
|
|
3
|
-
import {
|
|
4
|
-
import
|
|
5
|
-
import {
|
|
6
|
-
import
|
|
7
|
-
import {
|
|
2
|
+
import { i as E, h as U, u as G, e as q, c as I, b as A, a as b, n as O, W as D, B as i, T as s, f as J, j as Q, F as N } from "./PrizeCard-DF3QxwQJ.js";
|
|
3
|
+
import { h as X, g as p, s as L } from "./helpers-NuC1SzL3.js";
|
|
4
|
+
import "react";
|
|
5
|
+
import { R as F, A as ee } from "./NotFoundSkeleton-Cs6DtD9u.js";
|
|
6
|
+
import "react-dom";
|
|
7
|
+
import { a as te } from "./AlertMessage-Ds45MBHB.js";
|
|
8
|
+
import { R as ie } from "./OverlayApiErrorSkeleton-Dl3s5Oaf.js";
|
|
9
|
+
import { d as ne, a as ae, b as le } from "./useImageVariant-Cex1eIqq.js";
|
|
8
10
|
import { u as oe } from "./useInfoPage-BHdgKdme.js";
|
|
9
|
-
import { P as re, a as ce, b as de } from "./PickOneOfX-
|
|
11
|
+
import { P as re, a as ce, b as de } from "./PickOneOfX-Ci4ZJf7G.js";
|
|
10
12
|
const se = (e) => {
|
|
11
13
|
var r, o, n, x;
|
|
12
14
|
return {
|
|
@@ -184,7 +186,7 @@ const se = (e) => {
|
|
|
184
186
|
justifyContent: "center"
|
|
185
187
|
}
|
|
186
188
|
};
|
|
187
|
-
},
|
|
189
|
+
}, Me = ({
|
|
188
190
|
entity: e,
|
|
189
191
|
headline: r,
|
|
190
192
|
finalImage: o,
|
|
@@ -212,7 +214,7 @@ const se = (e) => {
|
|
|
212
214
|
darkTextColor: V,
|
|
213
215
|
imageBackgroundGradient: K,
|
|
214
216
|
isMobile: m
|
|
215
|
-
}), W =
|
|
217
|
+
}), W = p(
|
|
216
218
|
g == null ? void 0 : g.primaryUrl,
|
|
217
219
|
g == null ? void 0 : g.secondaryUrl,
|
|
218
220
|
"image"
|
|
@@ -245,7 +247,7 @@ const se = (e) => {
|
|
|
245
247
|
) : /* @__PURE__ */ t(i, { sx: j, children: z });
|
|
246
248
|
return /* @__PURE__ */ l(H, { children: [
|
|
247
249
|
C && x ? /* @__PURE__ */ t(i, { sx: c.embedCodeHeadlineSection, children: /* @__PURE__ */ t(
|
|
248
|
-
|
|
250
|
+
ee,
|
|
249
251
|
{
|
|
250
252
|
ratio: "16/9",
|
|
251
253
|
sx: c.aspectRatioContainer,
|
|
@@ -266,13 +268,13 @@ const se = (e) => {
|
|
|
266
268
|
},
|
|
267
269
|
children: [
|
|
268
270
|
/* @__PURE__ */ t(s, { sx: c.headlineText, children: r }),
|
|
269
|
-
/* @__PURE__ */ t(
|
|
271
|
+
/* @__PURE__ */ t(F, { rulesDisplay: S, rules: e.rules || "" })
|
|
270
272
|
]
|
|
271
273
|
}
|
|
272
274
|
),
|
|
273
275
|
/* @__PURE__ */ l(i, { sx: c.contentContainer, children: [
|
|
274
276
|
/* @__PURE__ */ t(s, { sx: c.titleText, children: e.title }),
|
|
275
|
-
/* @__PURE__ */ t(s, { sx: c.descriptionText, children:
|
|
277
|
+
/* @__PURE__ */ t(s, { sx: c.descriptionText, children: L(e.description) })
|
|
276
278
|
] })
|
|
277
279
|
] }),
|
|
278
280
|
h && !m && f && /* @__PURE__ */ t(i, { children: f((a == null ? void 0 : a.contentColor) || V) })
|
|
@@ -291,13 +293,13 @@ const se = (e) => {
|
|
|
291
293
|
},
|
|
292
294
|
children: [
|
|
293
295
|
/* @__PURE__ */ t(s, { sx: c.headlineTextNoImage, children: r }),
|
|
294
|
-
/* @__PURE__ */ t(
|
|
296
|
+
/* @__PURE__ */ t(F, { rulesDisplay: S, rules: e.rules || "" })
|
|
295
297
|
]
|
|
296
298
|
}
|
|
297
299
|
),
|
|
298
300
|
/* @__PURE__ */ l(i, { sx: c.contentContainer, children: [
|
|
299
301
|
/* @__PURE__ */ t(s, { sx: c.titleTextNoImage, children: e.title }),
|
|
300
|
-
/* @__PURE__ */ t(s, { sx: c.descriptionTextNoImage, children:
|
|
302
|
+
/* @__PURE__ */ t(s, { sx: c.descriptionTextNoImage, children: L(e.description) })
|
|
301
303
|
] })
|
|
302
304
|
] }),
|
|
303
305
|
h && !m && f && /* @__PURE__ */ t(i, { children: f(P) })
|
|
@@ -324,7 +326,7 @@ const se = (e) => {
|
|
|
324
326
|
children: r
|
|
325
327
|
}
|
|
326
328
|
),
|
|
327
|
-
/* @__PURE__ */ t(
|
|
329
|
+
/* @__PURE__ */ t(F, { rulesDisplay: S, rules: e.rules || "" })
|
|
328
330
|
]
|
|
329
331
|
}
|
|
330
332
|
),
|
|
@@ -346,7 +348,7 @@ const se = (e) => {
|
|
|
346
348
|
...c.descriptionTextNoImage,
|
|
347
349
|
textAlign: "center"
|
|
348
350
|
},
|
|
349
|
-
children:
|
|
351
|
+
children: L(e.description)
|
|
350
352
|
}
|
|
351
353
|
)
|
|
352
354
|
] })
|
|
@@ -457,7 +459,7 @@ const se = (e) => {
|
|
|
457
459
|
flexDirection: "column"
|
|
458
460
|
}
|
|
459
461
|
};
|
|
460
|
-
},
|
|
462
|
+
}, ke = ({
|
|
461
463
|
entity: e,
|
|
462
464
|
headline: r,
|
|
463
465
|
finalImage: o,
|
|
@@ -497,13 +499,13 @@ const se = (e) => {
|
|
|
497
499
|
},
|
|
498
500
|
children: [
|
|
499
501
|
/* @__PURE__ */ t(s, { level: "body-sm", sx: a.headlineText, children: r }),
|
|
500
|
-
/* @__PURE__ */ t(
|
|
502
|
+
/* @__PURE__ */ t(F, { rulesDisplay: f, rules: e.rules || "" })
|
|
501
503
|
]
|
|
502
504
|
}
|
|
503
505
|
),
|
|
504
506
|
/* @__PURE__ */ l(i, { sx: a.contentContainer, children: [
|
|
505
507
|
/* @__PURE__ */ t(s, { level: "body-lg", sx: a.titleText, children: e.title }),
|
|
506
|
-
/* @__PURE__ */ t(s, { level: "body-md", sx: a.descriptionText, children:
|
|
508
|
+
/* @__PURE__ */ t(s, { level: "body-md", sx: a.descriptionText, children: L(e.description) })
|
|
507
509
|
] })
|
|
508
510
|
] }),
|
|
509
511
|
/* @__PURE__ */ t(i, { sx: a.presentedByDesktop, children: n })
|
|
@@ -673,7 +675,7 @@ const se = (e) => {
|
|
|
673
675
|
textTransform: "uppercase"
|
|
674
676
|
}
|
|
675
677
|
};
|
|
676
|
-
},
|
|
678
|
+
}, Ae = (e) => {
|
|
677
679
|
var B;
|
|
678
680
|
const r = G(), o = E(), n = ((B = e.entity.branding) == null ? void 0 : B.colors) || null, x = e.defaultImagePlaceholderUrl ? e.defaultImagePlaceholderUrl : o ? ne : ae, C = le(
|
|
679
681
|
{
|
|
@@ -731,7 +733,7 @@ const se = (e) => {
|
|
|
731
733
|
children: [
|
|
732
734
|
/* @__PURE__ */ t(s, { level: "body-sm", sx: d.headlineText, children: e.headline }),
|
|
733
735
|
/* @__PURE__ */ t(
|
|
734
|
-
|
|
736
|
+
F,
|
|
735
737
|
{
|
|
736
738
|
rulesDisplay: e.rulesDisplay,
|
|
737
739
|
rules: e.entity.rules || ""
|
|
@@ -742,7 +744,7 @@ const se = (e) => {
|
|
|
742
744
|
),
|
|
743
745
|
/* @__PURE__ */ l(i, { sx: d.contentContainer, children: [
|
|
744
746
|
/* @__PURE__ */ t(s, { level: "body-lg", sx: d.titleText, children: e.entity.title }),
|
|
745
|
-
/* @__PURE__ */ t(s, { level: "body-md", sx: d.descriptionText, children:
|
|
747
|
+
/* @__PURE__ */ t(s, { level: "body-md", sx: d.descriptionText, children: L(e.entity.description) })
|
|
746
748
|
] })
|
|
747
749
|
] }),
|
|
748
750
|
/* @__PURE__ */ t(i, { sx: d.presentedByDesktop, children: e.renderPresentedBy(
|
|
@@ -762,14 +764,14 @@ const se = (e) => {
|
|
|
762
764
|
/* @__PURE__ */ t(i, { sx: d.presentedByMobile, children: e.renderPresentedBy((n == null ? void 0 : n.contentColor) || w) })
|
|
763
765
|
] })
|
|
764
766
|
] });
|
|
765
|
-
},
|
|
767
|
+
}, Le = ({
|
|
766
768
|
entityId: e,
|
|
767
769
|
sdk: r,
|
|
768
770
|
children: o
|
|
769
771
|
}) => {
|
|
770
772
|
const { infoPage: n } = oe(e, "chance-game", r);
|
|
771
773
|
return !n || n.id === "not-found" ? null : /* @__PURE__ */ t(H, { children: o(n) });
|
|
772
|
-
},
|
|
774
|
+
}, Fe = ({
|
|
773
775
|
infoPage: e,
|
|
774
776
|
variant: r,
|
|
775
777
|
forceMobile: o
|
|
@@ -785,9 +787,9 @@ const se = (e) => {
|
|
|
785
787
|
}
|
|
786
788
|
};
|
|
787
789
|
export {
|
|
788
|
-
|
|
789
|
-
|
|
790
|
-
|
|
791
|
-
|
|
792
|
-
|
|
790
|
+
Le as C,
|
|
791
|
+
Me as S,
|
|
792
|
+
ke as a,
|
|
793
|
+
Ae as b,
|
|
794
|
+
Fe as c
|
|
793
795
|
};
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { t as E, s as F, v as R, _ as r, y as _, z as V, A as j, D as A, P as o, X as f, E as B, m as M } from "./
|
|
1
|
+
import { t as E, s as F, v as R, _ as r, y as _, z as V, A as j, D as A, P as o, X as f, E as B, m as M } from "./PrizeCard-DF3QxwQJ.js";
|
|
2
2
|
import * as c from "react";
|
|
3
3
|
import { jsxs as X, jsx as m } from "react/jsx-runtime";
|
|
4
4
|
function D(n) {
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { jsx as o } from "react/jsx-runtime";
|
|
2
|
-
import { m as r } from "./
|
|
2
|
+
import { m as r } from "./PrizeCard-DF3QxwQJ.js";
|
|
3
3
|
const e = r(/* @__PURE__ */ o("path", {
|
|
4
4
|
d: "M19 6.41 17.59 5 12 10.59 6.41 5 5 6.41 10.59 12 5 17.59 6.41 19 12 13.41 17.59 19 19 17.59 13.41 12z"
|
|
5
5
|
}), "Close");
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import "react";
|
|
2
|
-
import { c as o } from "./CheckCircle-
|
|
2
|
+
import { c as o } from "./CheckCircle-CV9iMpkZ.js";
|
|
3
3
|
import { jsx as r } from "react/jsx-runtime";
|
|
4
4
|
const e = o(/* @__PURE__ */ r("path", {
|
|
5
5
|
d: "M19 6.41 17.59 5 12 10.59 6.41 5 5 6.41 10.59 12 5 17.59 6.41 19 12 13.41 17.59 19 19 17.59 13.41 12z"
|
|
@@ -1,19 +1,19 @@
|
|
|
1
1
|
import { jsx as s, jsxs as q, Fragment as Xe } from "react/jsx-runtime";
|
|
2
|
-
import { R as Uo, $ as _t, _ as d, v as M, y as _e, z as he, A as W, D as Qe, a0 as ht, P as e, X as re, E as ze, s as Ve, t as Me, Y as zt, U as gt, a1 as Wo, S as Jo, a2 as Et, a3 as tt, a4 as nt, a5 as wt, a6 as Bt, a7 as Ft, g as vt, C as yt, r as qo, f as Ko, B as fo, T as Re, a as bt, b as Ht, c as Ct, j as zo } from "./
|
|
2
|
+
import { R as Uo, $ as _t, _ as d, v as M, y as _e, z as he, A as W, D as Qe, a0 as ht, P as e, X as re, E as ze, s as Ve, t as Me, Y as zt, U as gt, a1 as Wo, S as Jo, a2 as Et, a3 as tt, a4 as nt, a5 as wt, a6 as Bt, a7 as Ft, g as vt, C as yt, r as qo, f as Ko, B as fo, T as Re, a as bt, b as Ht, c as Ct, j as zo } from "./PrizeCard-DF3QxwQJ.js";
|
|
3
3
|
import * as y from "react";
|
|
4
4
|
import { useState as oo, useEffect as Vt, createElement as rt } from "react";
|
|
5
|
-
import { d as it, f as lt, j as Mt, k as jt, m as Ut } from "./helpers-
|
|
6
|
-
import { F as Ae, C as xt } from "./FormControl-
|
|
7
|
-
import { S as Go } from "./Stack-
|
|
8
|
-
import { a as at } from "./AlertMessage-
|
|
9
|
-
import { F as Ge } from "./FormLabel-
|
|
10
|
-
import { S as Wt, a as Jt, b as qt, c as Kt, I as ao } from "./Input-
|
|
11
|
-
import { k as wo, G as Gt, n as Yt, R as Xt, W as Qt, N as st, o as Zt, V as Yo, p as It, i as en, s as on, q as tn, g as nn, r as so, j as rn, t as ln, h as an, S as sn, a as cn } from "./Select-
|
|
12
|
-
import { C as dn } from "./Close-
|
|
13
|
-
import { c as Ot, F as un } from "./CheckCircle-
|
|
14
|
-
import { u as Eo, a as xo } from "./useEventCallback-
|
|
15
|
-
import { P as pn } from "./Popper-
|
|
16
|
-
import { T as mn } from "./Textarea-
|
|
5
|
+
import { d as it, f as lt, j as Mt, k as jt, m as Ut } from "./helpers-NuC1SzL3.js";
|
|
6
|
+
import { F as Ae, C as xt } from "./FormControl-BUItlVIg.js";
|
|
7
|
+
import { S as Go } from "./Stack-BpHk5eb0.js";
|
|
8
|
+
import { a as at } from "./AlertMessage-Ds45MBHB.js";
|
|
9
|
+
import { F as Ge } from "./FormLabel-CeTNPUn7.js";
|
|
10
|
+
import { S as Wt, a as Jt, b as qt, c as Kt, I as ao } from "./Input-MJCQcYzo.js";
|
|
11
|
+
import { k as wo, G as Gt, n as Yt, R as Xt, W as Qt, N as st, o as Zt, V as Yo, p as It, i as en, s as on, q as tn, g as nn, r as so, j as rn, t as ln, h as an, S as sn, a as cn } from "./Select-BHeTdOYr.js";
|
|
12
|
+
import { C as dn } from "./Close-C6Cw96SJ.js";
|
|
13
|
+
import { c as Ot, F as un } from "./CheckCircle-CV9iMpkZ.js";
|
|
14
|
+
import { u as Eo, a as xo } from "./useEventCallback-CizlfWBo.js";
|
|
15
|
+
import { P as pn } from "./Popper-DOVSI4rJ.js";
|
|
16
|
+
import { T as mn } from "./Textarea-zOtMdgc5.js";
|
|
17
17
|
const fn = (o) => {
|
|
18
18
|
const t = y.useRef({});
|
|
19
19
|
return y.useEffect(() => {
|
|
@@ -1,6 +1,6 @@
|
|
|
1
|
-
import { v as P, _ as r, y as b, z as k, A as T, D as _, P as i, X as z, E as C } from "./
|
|
1
|
+
import { v as P, _ as r, y as b, z as k, A as T, D as _, P as i, X as z, E as C } from "./PrizeCard-DF3QxwQJ.js";
|
|
2
2
|
import * as O from "react";
|
|
3
|
-
import { g as N } from "./Notification-
|
|
3
|
+
import { g as N } from "./Notification-pcKtlRms.js";
|
|
4
4
|
import { jsx as R } from "react/jsx-runtime";
|
|
5
5
|
const j = ["className", "children", "component", "inset", "orientation", "role", "slots", "slotProps"], B = (o) => {
|
|
6
6
|
const {
|
|
@@ -1,8 +1,8 @@
|
|
|
1
|
-
import { s as A, t as T, v as C, _ as n, w as F, x, P as o, y as R, z, A as O, D as M, E as D, m as l } from "./
|
|
1
|
+
import { s as A, t as T, v as C, _ as n, w as F, x, P as o, y as R, z, A as O, D as M, E as D, m as l } from "./PrizeCard-DF3QxwQJ.js";
|
|
2
2
|
import * as P from "react";
|
|
3
|
-
import { c as N } from "./ModalDialog-
|
|
4
|
-
import { a as $ } from "./NotFoundSkeleton-
|
|
5
|
-
import { d as j } from "./Notification-
|
|
3
|
+
import { c as N } from "./ModalDialog-Cfgv9UAA.js";
|
|
4
|
+
import { a as $ } from "./NotFoundSkeleton-Cs6DtD9u.js";
|
|
5
|
+
import { d as j } from "./Notification-pcKtlRms.js";
|
|
6
6
|
import { jsx as r } from "react/jsx-runtime";
|
|
7
7
|
function E(t) {
|
|
8
8
|
return T("MuiCardActions", t);
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { jsx as o } from "react/jsx-runtime";
|
|
2
|
-
import { m as c } from "./
|
|
2
|
+
import { m as c } from "./PrizeCard-DF3QxwQJ.js";
|
|
3
3
|
const t = c(/* @__PURE__ */ o("path", {
|
|
4
4
|
d: "M19 5h-2V3H7v2H5c-1.1 0-2 .9-2 2v1c0 2.55 1.92 4.63 4.39 4.94.63 1.5 1.98 2.63 3.61 2.96V19H7v2h10v-2h-4v-3.1c1.63-.33 2.98-1.46 3.61-2.96C19.08 12.63 21 10.55 21 8V7c0-1.1-.9-2-2-2M5 8V7h2v3.82C5.84 10.4 5 9.3 5 8m14 0c0 1.3-.84 2.4-2 2.82V7h2z"
|
|
5
5
|
}), "EmojiEvents");
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { jsx as o } from "react/jsx-runtime";
|
|
2
|
-
import { m as r } from "./
|
|
2
|
+
import { m as r } from "./PrizeCard-DF3QxwQJ.js";
|
|
3
3
|
const a = r(/* @__PURE__ */ o("path", {
|
|
4
4
|
d: "m12 21.35-1.45-1.32C5.4 15.36 2 12.28 2 8.5 2 5.42 4.42 3 7.5 3c1.74 0 3.41.81 4.5 2.09C13.09 3.81 14.76 3 16.5 3 19.58 3 22 5.42 22 8.5c0 3.78-3.4 6.86-8.55 11.54z"
|
|
5
5
|
}), "Favorite"), e = r(/* @__PURE__ */ o("path", {
|
|
@@ -1,8 +1,8 @@
|
|
|
1
|
-
import { s as J, t as Y, v as g, _ as t, y as K, z as Q, R as Z, A as h, a4 as Io, P as o, X as O, E as w, D as Oo } from "./
|
|
1
|
+
import { s as J, t as Y, v as g, _ as t, y as K, z as Q, R as Z, A as h, a4 as Io, P as o, X as O, E as w, D as Oo } from "./PrizeCard-DF3QxwQJ.js";
|
|
2
2
|
import * as m from "react";
|
|
3
|
-
import { c as oo, F as eo } from "./CheckCircle-
|
|
3
|
+
import { c as oo, F as eo } from "./CheckCircle-CV9iMpkZ.js";
|
|
4
4
|
import { jsx as u, jsxs as G } from "react/jsx-runtime";
|
|
5
|
-
import { u as Po } from "./Textarea-
|
|
5
|
+
import { u as Po } from "./Textarea-zOtMdgc5.js";
|
|
6
6
|
function _o(r) {
|
|
7
7
|
return Y("MuiCheckbox", r);
|
|
8
8
|
}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
|
-
import { s as R, t as _, v as y, y as j, z as O, _ as t, A as f, P as o, E as q } from "./
|
|
1
|
+
import { s as R, t as _, v as y, y as j, z as O, _ as t, A as f, P as o, E as q } from "./PrizeCard-DF3QxwQJ.js";
|
|
2
2
|
import * as b from "react";
|
|
3
|
-
import { F as z } from "./CheckCircle-
|
|
3
|
+
import { F as z } from "./CheckCircle-CV9iMpkZ.js";
|
|
4
4
|
import { jsxs as F } from "react/jsx-runtime";
|
|
5
5
|
function H(e) {
|
|
6
6
|
return _("MuiFormLabel", e);
|
|
@@ -1,6 +1,6 @@
|
|
|
1
|
-
import { s as Z, t as rr, v as s, _ as n, a2 as or, y as tr, z as nr, A as h, P as r, X as b, E as ar } from "./
|
|
1
|
+
import { s as Z, t as rr, v as s, _ as n, a2 as or, y as tr, z as nr, A as h, P as r, X as b, E as ar } from "./PrizeCard-DF3QxwQJ.js";
|
|
2
2
|
import * as O from "react";
|
|
3
|
-
import { u as er } from "./useForwardedInput-
|
|
3
|
+
import { u as er } from "./useForwardedInput-RWDntqBU.js";
|
|
4
4
|
import { jsxs as ir, jsx as y } from "react/jsx-runtime";
|
|
5
5
|
function lr(t) {
|
|
6
6
|
return rr("MuiInput", t);
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { jsx as o } from "react/jsx-runtime";
|
|
2
|
-
import { m as r } from "./
|
|
2
|
+
import { m as r } from "./PrizeCard-DF3QxwQJ.js";
|
|
3
3
|
const e = r(/* @__PURE__ */ o("path", {
|
|
4
4
|
d: "M7.41 15.41 12 10.83l4.59 4.58L18 14l-6-6-6 6z"
|
|
5
5
|
}), "KeyboardArrowUp"), n = r(/* @__PURE__ */ o("path", {
|
|
@@ -1,7 +1,7 @@
|
|
|
1
|
-
import { a3 as ae, P as t, S as ie, a9 as ge, ad as H, ae as be, V as ve, _ as y, t as K, s as q, v as L, Y as he, ab as ye, ac as Ce, y as J, z as Y, A as B, D as se, a0 as le, X as w, E as G, ah as xe, ai as Ee, R as Z } from "./
|
|
1
|
+
import { a3 as ae, P as t, S as ie, a9 as ge, ad as H, ae as be, V as ve, _ as y, t as K, s as q, v as L, Y as he, ab as ye, ac as Ce, y as J, z as Y, A as B, D as se, a0 as le, X as w, E as G, ah as xe, ai as Ee, R as Z } from "./PrizeCard-DF3QxwQJ.js";
|
|
2
2
|
import * as l from "react";
|
|
3
3
|
import { jsxs as de, jsx as F } from "react/jsx-runtime";
|
|
4
|
-
import { o as X, a as ee } from "./useEventCallback-
|
|
4
|
+
import { o as X, a as ee } from "./useEventCallback-CizlfWBo.js";
|
|
5
5
|
function Te(o) {
|
|
6
6
|
const {
|
|
7
7
|
prototype: e = {}
|