{"version":3,"file":"js/2841.6d93b9d2dcf6ca1c.js","mappings":"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","sources":["webpack://@sazka/web/./js/app/lotteries/composables/syndicates/use-syndicate-details.ts","webpack://@sazka/web/../../libs/utils/composables/use-breakpoints.ts","webpack://@sazka/web/./js/app/lotteries/components/my-tickets/state-banner.vue?7e39","webpack://@sazka/web/./js/app/lotteries/components/my-tickets/state-banner.vue","webpack://@sazka/web/./js/app/lotteries/components/my-tickets/state-banner.vue?3d34","webpack://@sazka/web/./js/app/lotteries/model/syndicates/wagers/syndicate-status.ts","webpack://@sazka/web/./js/app/lotteries/components/syndicates/syndicate-share.vue?28d7","webpack://@sazka/web/./js/app/lotteries/components/syndicates/syndicate-share.vue","webpack://@sazka/web/./js/app/lotteries/components/syndicates/syndicate-share.vue?2cdd","webpack://@sazka/web/./js/app/lotteries/components/syndicates/_syndicate-detail.vue?cadf","webpack://@sazka/web/./js/app/lotteries/components/syndicates/_syndicate-detail.vue","webpack://@sazka/web/./js/app/lotteries/components/syndicates/_syndicate-detail.vue?2f81","webpack://@sazka/web/./js/app/lotteries/components/syndicates/fill-track-detail.vue?c810","webpack://@sazka/web/./js/app/lotteries/components/syndicates/fill-track-detail.vue","webpack://@sazka/web/./js/app/lotteries/components/syndicates/fill-track-detail.vue?3fb1","webpack://@sazka/web/../../libs/design-system/src/bottom-slot/ds-bottom-slot-action-bar.vue?8af1","webpack://@sazka/web/../../libs/design-system/src/bottom-slot/ds-bottom-slot-action-bar.vue","webpack://@sazka/web/../../libs/design-system/src/bottom-slot/ds-bottom-slot-action-bar.vue?95c7"],"sourcesContent":["import { MySyndicatePreview } from \"@/lotteries/model/syndicates/my-syndicate-preview\";\r\nimport { SyndicateDetail } from \"@/lotteries/model/syndicates/syndicate-detail\";\r\nimport { SyndicatePreview } from \"@/lotteries/model/syndicates/syndicate-preview\";\r\nimport { SyndicateUtils } from \"@sazka/lotteries/js/utils/syndicate-utils\";\r\nimport { DateTimeUtils } from \"@sazka/utils/date-time-utils\";\r\nimport { computed, Ref } from \"vue\";\r\n\r\nexport default function useSyndicateDetails(\r\n syndicate: Ref<SyndicatePreview> | Ref<SyndicateDetail> | Ref<MySyndicatePreview>\r\n) {\r\n const syndicateDefinition = computed(() =>\r\n SyndicateUtils.getSyndicateDefinition(syndicate.value?.lottery, syndicate.value?.size)\r\n );\r\n\r\n const syndicateImage = computed(() => {\r\n if (!syndicate.value) return \"\";\r\n\r\n return SyndicateUtils.syndicateLogo(syndicate.value.lottery, \"big\", syndicate.value.wagerId);\r\n });\r\n\r\n const syndicateTotalPartsLabel = computed(() => {\r\n if (!syndicate.value) return null;\r\n\r\n const definition = SyndicateUtils.getSyndicateDefinition(syndicate.value.lottery, syndicate.value.size);\r\n\r\n return SyndicateUtils.syndicateShareCountLabel2ndForm(definition.shareCount);\r\n });\r\n\r\n const syndicateUserOwnedShares = computed(() => (syndicate.value as SyndicateDetail)?.partsPerWager ?? 0);\r\n const syndicateUserOwnedSharesLabel = computed(() =>\r\n SyndicateUtils.syndicateShareCountLabel((syndicate.value as SyndicateDetail)?.partsPerWager ?? 0)\r\n );\r\n const syndicateUserOwnedSharesPercentage = computed(() =>\r\n SyndicateUtils.sharePercentage(\r\n (syndicate.value as SyndicateDetail)?.partsPerWager ?? 0,\r\n syndicate.value?.lottery,\r\n syndicate.value?.size\r\n )\r\n );\r\n\r\n const syndicateDeadlineFormatted = computed(() => {\r\n if (!syndicate.value?.deadlineToJoin) return \"\";\r\n\r\n const date = new Date(syndicate.value?.deadlineToJoin);\r\n return DateTimeUtils.formatDateTimeShort(date);\r\n });\r\n\r\n const syndicateDrawDateFormatted = computed(() => {\r\n if (!syndicate.value?.deadlineToJoin) return \"\";\r\n\r\n const date = new Date(syndicate.value?.deadlineToJoin);\r\n return DateTimeUtils.formatDateWithWeekday(date);\r\n });\r\n\r\n const syndicateShareUrl = computed(() => {\r\n return `${window.location.protocol}//${window.location.hostname}/s/${syndicate.value?.wagerId}`;\r\n });\r\n\r\n return {\r\n syndicateDefinition,\r\n syndicateImage,\r\n syndicateTotalPartsLabel,\r\n syndicateUserOwnedShares,\r\n syndicateUserOwnedSharesLabel,\r\n syndicateUserOwnedSharesPercentage,\r\n syndicateDeadlineFormatted,\r\n syndicateDrawDateFormatted,\r\n syndicateShareUrl,\r\n };\r\n}\r\n","import { Ref, ref } from \"vue\";\r\nimport { ResponsiveUtils } from \"../responsive-utils\";\r\n\r\ntype BreakpointType = keyof Omit<typeof ResponsiveUtils.breakpoints, \"xs\">;\r\ntype ReactiveBreakpoint = {\r\n key: BreakpointType;\r\n minSize: (typeof ResponsiveUtils.breakpoints)[BreakpointType];\r\n isInUse: boolean;\r\n value: Ref<boolean>;\r\n};\r\n\r\nlet initialized = false;\r\nlet reactiveBreakpoints: ReactiveBreakpoint[] = null;\r\n\r\n/**\r\n * Returns ref with boolean value, which means, current breakpoint is same or bigger\r\n * eg. media min-width: x\r\n * since its breakpoint up, it doesnt make sense for 'xs' which would be always true, so its omited\r\n * @param breakpoints breakpoint name eg. 'xs2' or 'xl'\r\n * @returns boolean\r\n */\r\nexport function useBreakpoints(breakpoints: BreakpointType): Ref<boolean>;\r\n\r\n/**\r\n * Returns object, with keys same as parameter value, their value is ref with boolean value, which means, current breakpoint is same or bigger\r\n * eg. media min-width: x\r\n * Example of return value: { sm: ref(true), md: ref(false) }\r\n * Returns only value passed in parametrs,\r\n * since its breakpoint up, it doesnt make sense for 'xs' which would be always true, so its omited\r\n * @param breakpoints all breakpoint names eg. 'xs2' or 'xl'\r\n */\r\nexport function useBreakpoints(...breakpoints: BreakpointType[]): { [key in BreakpointType]: Ref<boolean> };\r\n\r\nexport function useBreakpoints(...breakpoints: BreakpointType[]) {\r\n if (breakpoints?.length == 0) return;\r\n\r\n initialize();\r\n\r\n if (breakpoints.length > 1) {\r\n return breakpoints.reduce((acc, x) => {\r\n acc[x] = reactiveBreakpoint(x);\r\n return acc;\r\n }, {});\r\n } else {\r\n return reactiveBreakpoint(breakpoints[0]);\r\n }\r\n}\r\n\r\nfunction initialize() {\r\n if (initialized) return;\r\n reactiveBreakpoints = Object.keys(ResponsiveUtils.breakpoints)\r\n .filter((x) => x !== \"xs\")\r\n .map((x) => ({\r\n isInUse: false,\r\n key: x as BreakpointType,\r\n minSize: ResponsiveUtils.breakpoints[x] as (typeof ResponsiveUtils.breakpoints)[BreakpointType],\r\n value: ref(false),\r\n }));\r\n\r\n initialized = true;\r\n}\r\n\r\nfunction reactiveBreakpoint(breakpoint: BreakpointType) {\r\n const brkpnt = reactiveBreakpoints.find((x) => x.key === breakpoint);\r\n if (!brkpnt.isInUse) {\r\n brkpnt.isInUse = true;\r\n const media = window.matchMedia(`(min-width: ${brkpnt.minSize}px)`);\r\n brkpnt.value.value = media.matches;\r\n media.onchange = (e) => {\r\n brkpnt.value.value = e.matches;\r\n };\r\n }\r\n return brkpnt.value;\r\n}\r\n","import { defineComponent as _defineComponent } from 'vue'\nimport { createElementVNode as _createElementVNode, openBlock as _openBlock, createBlock as _createBlock, createCommentVNode as _createCommentVNode, normalizeClass as _normalizeClass, createElementBlock as _createElementBlock } from \"vue\"\n\nconst _hoisted_1 = { class: \"state-banner__inner\" }\nconst _hoisted_2 = [\"innerHTML\"]\nconst _hoisted_3 = [\"innerHTML\"]\n\nimport { computed } from \"vue\";\r\nimport DsSmileStatic from \"@sazka/design-system/src/smiles//ds-smile-static.vue\";\r\nimport {\r\n DsSmileStaticFaceType as FaceType,\r\n DsSmileStaticFacePosition as FacePosition,\r\n} from \"@sazka/design-system/src/smiles//ds-smile-static-types\";\r\n\r\n\nexport default /*@__PURE__*/_defineComponent({\n __name: 'state-banner',\n props: {\n headlineText: {},\n subText: {},\n state: {},\n showImg: { type: Boolean, default: true },\n useCustomFaceType: { type: Boolean, default: false },\n customFaceType: { default: FaceType.Stars }\n },\n setup(__props: any) {\n\r\nconst props = __props;\r\n\r\nconst iconType = computed(() => {\r\n let state = {\r\n pos: FacePosition.Center,\r\n type: \"\" as FaceType,\r\n };\r\n if (props.state === \"error\") {\r\n state = {\r\n pos: FacePosition.CenterDown,\r\n type: FaceType.SadClosedEyes,\r\n };\r\n } else if (props.state === \"cancel\") {\r\n state = {\r\n ...state,\r\n type: FaceType.AmazedEyebrow,\r\n };\r\n } else if (props.state === \"confirm\") {\r\n state = {\r\n ...state,\r\n type: FaceType.SmileClosedEyes,\r\n };\r\n }\r\n\r\n return state;\r\n});\r\n\nreturn (_ctx: any,_cache: any) => {\n return (_openBlock(), _createElementBlock(\"div\", {\n class: _normalizeClass([\"state-banner\", {\r\n 'state-banner--error': props.state === 'error',\r\n 'state-banner--cancel': props.state === 'cancel',\r\n 'state-banner--confirm': props.state === 'confirm',\r\n }])\n }, [\n _createElementVNode(\"div\", _hoisted_1, [\n _createElementVNode(\"h3\", {\n class: \"state-banner__headline\",\n innerHTML: props.headlineText\n }, null, 8, _hoisted_2),\n _createElementVNode(\"p\", {\n class: \"state-banner__sub-text\",\n innerHTML: props.subText\n }, null, 8, _hoisted_3)\n ]),\n (props.showImg)\n ? (_openBlock(), _createBlock(DsSmileStatic, {\n key: 0,\n \"face-type\": !_ctx.useCustomFaceType ? iconType.value.type : _ctx.customFaceType,\n \"face-position\": iconType.value.pos,\n responsive: false,\n \"shadow-color\": \"black\"\n }, null, 8, [\"face-type\", \"face-position\"]))\n : _createCommentVNode(\"\", true)\n ], 2))\n}\n}\n\n})","<template>\r\n <div\r\n class=\"state-banner\"\r\n :class=\"{\r\n 'state-banner--error': props.state === 'error',\r\n 'state-banner--cancel': props.state === 'cancel',\r\n 'state-banner--confirm': props.state === 'confirm',\r\n }\"\r\n >\r\n <div class=\"state-banner__inner\">\r\n <h3 class=\"state-banner__headline\" v-html=\"props.headlineText\"></h3>\r\n <p class=\"state-banner__sub-text\" v-html=\"props.subText\"></p>\r\n </div>\r\n <DsSmileStatic\r\n v-if=\"props.showImg\"\r\n :face-type=\"!useCustomFaceType ? iconType.type : customFaceType\"\r\n :face-position=\"iconType.pos\"\r\n :responsive=\"false\"\r\n shadow-color=\"black\"\r\n />\r\n </div>\r\n</template>\r\n\r\n<script lang=\"ts\" setup>\r\nimport { computed } from \"vue\";\r\nimport DsSmileStatic from \"@sazka/design-system/src/smiles//ds-smile-static.vue\";\r\nimport {\r\n DsSmileStaticFaceType as FaceType,\r\n DsSmileStaticFacePosition as FacePosition,\r\n} from \"@sazka/design-system/src/smiles//ds-smile-static-types\";\r\n\r\nconst props = withDefaults(\r\n defineProps<{\r\n headlineText: string;\r\n subText: string;\r\n state: \"error\" | \"cancel\" | \"confirm\";\r\n showImg?: boolean;\r\n useCustomFaceType?: boolean;\r\n customFaceType?: FaceType;\r\n }>(),\r\n {\r\n showImg: true,\r\n useCustomFaceType: false,\r\n customFaceType: FaceType.Stars,\r\n }\r\n);\r\n\r\nconst iconType = computed(() => {\r\n let state = {\r\n pos: FacePosition.Center,\r\n type: \"\" as FaceType,\r\n };\r\n if (props.state === \"error\") {\r\n state = {\r\n pos: FacePosition.CenterDown,\r\n type: FaceType.SadClosedEyes,\r\n };\r\n } else if (props.state === \"cancel\") {\r\n state = {\r\n ...state,\r\n type: FaceType.AmazedEyebrow,\r\n };\r\n } else if (props.state === \"confirm\") {\r\n state = {\r\n ...state,\r\n type: FaceType.SmileClosedEyes,\r\n };\r\n }\r\n\r\n return state;\r\n});\r\n</script>\r\n","import script from \"./state-banner.vue?vue&type=script&lang=ts&setup=true\"\nexport * from \"./state-banner.vue?vue&type=script&lang=ts&setup=true\"\n\nconst __exports__ = script;\n\nexport default __exports__","export enum SyndicateStatus {\r\n ACTIVE = \"ACTIVE\",\r\n COMPLETED = \"COMPLETED\",\r\n CANCELLED = \"CANCELLED\",\r\n}\r\n","import { defineComponent as _defineComponent } from 'vue'\nimport { createTextVNode as _createTextVNode, withCtx as _withCtx, createVNode as _createVNode, toDisplayString as _toDisplayString, createElementVNode as _createElementVNode, unref as _unref, normalizeClass as _normalizeClass, openBlock as _openBlock, createBlock as _createBlock } from \"vue\"\n\nconst _hoisted_1 = { class: \"syndicate-share__subtitle\" }\nconst _hoisted_2 = { class: \"syndicate-share__link\" }\nconst _hoisted_3 = [\"value\"]\nconst _hoisted_4 = { class: \"syndicate-share__buttons\" }\n\nimport \"@/../../css/lotteries/syndicates/syndicates-partials/syndicate-share.scss\";\r\n\r\nimport { Lottery } from \"@/lotteries/model/lottery\";\r\nimport { SyndicateSize } from \"@/lotteries/model/syndicates/syndicate-size\";\r\nimport { LotteryUtils } from \"@sazka/lotteries/js/utils/lottery-utils\";\r\nimport { sazkaAlert } from \"@sazka/utils/sazka-alert\";\r\nimport { computed, nextTick, ref } from \"vue\";\r\nimport { SyndicatesAnalytics } from \"@/lotteries/services/syndicates/analytics-syndicates\";\r\nimport DsModalDialog from \"@sazka/design-system/src/modal-dialog/ds-modal-dialog.vue\";\r\nimport DsButton from \"@sazka/design-system/src/button/ds-button.vue\";\r\nimport TypographyHeadline from \"@sazka/design-system/src/typography/typography-headline.vue\";\r\nimport { useBreakpoints } from \"@sazka/utils/composables/use-breakpoints\";\r\n\r\n\nexport default /*@__PURE__*/_defineComponent({\n __name: 'syndicate-share',\n props: {\n modelValue: { type: Boolean, default: false },\n syndicateName: {},\n syndicateShareUrl: {},\n syndicateSize: {},\n syndicateLottery: {}\n },\n emits: [\"update:modelValue\"],\n setup(__props: any, { emit: __emit }) {\n\r\nconst props = __props;\r\n\r\nconst emit = __emit;\r\n\r\nconst model = computed({\r\n get: () => props.modelValue,\r\n set: (value: boolean) => {\r\n emit(\"update:modelValue\", value);\r\n },\r\n});\r\n\r\nconst sm = useBreakpoints(\"sm\");\r\nconst sm2 = useBreakpoints(\"sm2\");\r\n\r\nconst sizeLabel = computed(() => {\r\n if (LotteryUtils.isSportka(props.syndicateLottery)) {\r\n return `(skupinová Sportka ${props.syndicateSize.toUpperCase()})`;\r\n }\r\n if (props.syndicateLottery === Lottery.eurojackpot) {\r\n return `(skupinovĂ˝ Eurojackpot ${props.syndicateSize.toUpperCase()})`;\r\n }\r\n return \"\";\r\n});\r\n\r\nconst inputRef = ref<HTMLInputElement | null>(null);\r\nconst copySuccess = ref(false);\r\nconst copySuccessTimeout = ref(0);\r\n\r\nconst handleCopySuccess = () => {\r\n copySuccess.value = true;\r\n copySuccessTimeout.value = window.setTimeout(() => (copySuccess.value = false), 5000);\r\n SyndicatesAnalytics.pushShareAction(props.syndicateLottery, \"copy\");\r\n};\r\n\r\nconst copyToClipboardFallback = () => {\r\n inputRef.value?.focus();\r\n inputRef.value?.select();\r\n inputRef.value?.setSelectionRange(0, 99999); // For mobile devices\r\n nextTick(() => {\r\n if (document.execCommand(\"copy\")) {\r\n handleCopySuccess();\r\n } else {\r\n sazkaAlert(\"Omlouváme se, váš prohlĂĹľeÄŤ nepodporuje funkci kopĂrovánĂ\");\r\n }\r\n });\r\n};\r\n\r\nconst copyToClipboard = async () => {\r\n if (copySuccessTimeout.value) {\r\n clearTimeout(copySuccessTimeout.value);\r\n }\r\n try {\r\n const result = await navigator.permissions.query({ name: \"clipboard-write\" as PermissionName });\r\n if (result.state == \"granted\" || result.state == \"prompt\") {\r\n await navigator.clipboard.writeText(props.syndicateShareUrl);\r\n handleCopySuccess();\r\n // select text in input -> has no important functionality, just request from business\r\n inputRef.value?.focus();\r\n inputRef.value?.select();\r\n }\r\n } catch {\r\n copyToClipboardFallback();\r\n }\r\n};\r\n\r\n// https://stackoverflow.com/a/32261263\r\nfunction popupWindow(url, windowName, win, w, h) {\r\n const y = win.top.outerHeight / 2 + win.top.screenY - h / 2;\r\n const x = win.top.outerWidth / 2 + win.top.screenX - w / 2;\r\n return win.open(\r\n url,\r\n windowName,\r\n `toolbar=no, location=no, directories=no, status=no, menubar=no, scrollbars=no, resizable=no, copyhistory=no, width=${w}, height=${h}, top=${y}, left=${x}`\r\n );\r\n}\r\n\r\nconst fbShare = () => {\r\n SyndicatesAnalytics.pushShareAction(props.syndicateLottery, \"facebook\");\r\n popupWindow(\r\n `https://www.facebook.com/sharer/sharer.php?u=${props.syndicateShareUrl}`,\r\n \"facebook share\",\r\n window,\r\n 558,\r\n 453\r\n );\r\n};\r\n\r\nconst twitterShare = () => {\r\n SyndicatesAnalytics.pushShareAction(props.syndicateLottery, \"twitter\");\r\n popupWindow(`https://twitter.com/intent/tweet?url=${props.syndicateShareUrl}`, \"twitter share\", window, 600, 400);\r\n};\r\n\r\nconst mailShare = () => {\r\n SyndicatesAnalytics.pushShareAction(props.syndicateLottery, \"email\");\r\n};\r\n\nreturn (_ctx: any,_cache: any) => {\n return (_openBlock(), _createBlock(DsModalDialog, {\n modelValue: model.value,\n \"onUpdate:modelValue\": _cache[0] || (_cache[0] = ($event: any) => ((model).value = $event)),\n class: \"syndicate-share__dialog\"\n }, {\n top: _withCtx(() => [\n _createVNode(TypographyHeadline, {\n class: \"syndicate-share__title\",\n \"tag-name\": \"h2\",\n \"text-position\": \"left\"\n }, {\n default: _withCtx(() => _cache[1] || (_cache[1] = [\n _createTextVNode(\"SdĂlet sázenku\")\n ])),\n _: 1\n }),\n _createElementVNode(\"div\", _hoisted_1, _toDisplayString(_ctx.syndicateName + \" \" + sizeLabel.value), 1)\n ]),\n content: _withCtx(() => [\n _createElementVNode(\"div\", _hoisted_2, [\n _createElementVNode(\"input\", {\n class: \"ds-input-old__input syndicate-share__input\",\n type: \"text\",\n readonly: true,\n value: _ctx.syndicateShareUrl,\n ref_key: \"inputRef\",\n ref: inputRef\n }, null, 8, _hoisted_3),\n _createVNode(DsButton, {\n class: \"syndicate-share__copy-button\",\n type: `${copySuccess.value ? 'success' : 'primary'}`,\n onClick: copyToClipboard,\n \"is-block-size\": !_unref(sm2)\n }, {\n default: _withCtx(() => [\n _createTextVNode(_toDisplayString(copySuccess.value ? \"ZkopĂrováno\" : \"KopĂrovat\"), 1)\n ]),\n _: 1\n }, 8, [\"type\", \"is-block-size\"])\n ])\n ]),\n bottom: _withCtx(() => [\n _createElementVNode(\"div\", _hoisted_4, [\n _createVNode(DsButton, {\n class: \"syndicate-share__button\",\n \"is-block-size\": !_unref(sm),\n href: `mailto:?body=${_ctx.syndicateShareUrl}`,\n type: \"secondary\",\n tag: \"a\",\n \"icon-left\": \"email\",\n onClick: mailShare\n }, {\n default: _withCtx(() => _cache[2] || (_cache[2] = [\n _createTextVNode(\"Poslat sázenku na e-mail\")\n ])),\n _: 1\n }, 8, [\"is-block-size\", \"href\"]),\n _createVNode(DsButton, {\n class: _normalizeClass({ 'syndicate-share__button--no-inner': _unref(sm) }),\n \"is-block-size\": !_unref(sm),\n type: \"secondary\",\n title: \"share twitter\",\n \"icon-left\": \"twitter\",\n onClick: twitterShare\n }, {\n default: _withCtx(() => [\n _createTextVNode(_toDisplayString(!_unref(sm) ? \"SdĂlet na Twitteru\" : \"\"), 1)\n ]),\n _: 1\n }, 8, [\"class\", \"is-block-size\"]),\n _createVNode(DsButton, {\n class: _normalizeClass({ 'syndicate-share__button--no-inner': _unref(sm) }),\n \"is-block-size\": !_unref(sm),\n type: \"secondary\",\n title: \"share facebook\",\n onClick: fbShare,\n \"icon-left\": \"facebook\"\n }, {\n default: _withCtx(() => [\n _createTextVNode(_toDisplayString(!_unref(sm) ? \"SdĂlet na Facebooku\" : \"\"), 1)\n ]),\n _: 1\n }, 8, [\"class\", \"is-block-size\"])\n ])\n ]),\n _: 1\n }, 8, [\"modelValue\"]))\n}\n}\n\n})","<template>\r\n <DsModalDialog v-model=\"model\" class=\"syndicate-share__dialog\">\r\n <template #top>\r\n <TypographyHeadline class=\"syndicate-share__title\" tag-name=\"h2\" text-position=\"left\"\r\n >SdĂlet sázenku</TypographyHeadline\r\n >\r\n <div class=\"syndicate-share__subtitle\">{{ syndicateName + \" \" + sizeLabel }}</div>\r\n </template>\r\n\r\n <template #content>\r\n <div class=\"syndicate-share__link\">\r\n <input\r\n class=\"ds-input-old__input syndicate-share__input\"\r\n type=\"text\"\r\n :readonly=\"true\"\r\n :value=\"syndicateShareUrl\"\r\n ref=\"inputRef\"\r\n />\r\n <DsButton\r\n class=\"syndicate-share__copy-button\"\r\n :type=\"`${copySuccess ? 'success' : 'primary'}`\"\r\n @click=\"copyToClipboard\"\r\n :is-block-size=\"!sm2\"\r\n >\r\n {{ copySuccess ? \"ZkopĂrováno\" : \"KopĂrovat\" }}\r\n </DsButton>\r\n </div>\r\n </template>\r\n\r\n <template #bottom>\r\n <div class=\"syndicate-share__buttons\">\r\n <DsButton\r\n class=\"syndicate-share__button\"\r\n :is-block-size=\"!sm\"\r\n :href=\"`mailto:?body=${syndicateShareUrl}`\"\r\n type=\"secondary\"\r\n tag=\"a\"\r\n icon-left=\"email\"\r\n @click=\"mailShare\"\r\n >Poslat sázenku na e-mail</DsButton\r\n >\r\n <DsButton\r\n :class=\"{ 'syndicate-share__button--no-inner': sm }\"\r\n :is-block-size=\"!sm\"\r\n type=\"secondary\"\r\n title=\"share twitter\"\r\n icon-left=\"twitter\"\r\n @click=\"twitterShare\"\r\n >{{ !sm ? \"SdĂlet na Twitteru\" : \"\" }}</DsButton\r\n >\r\n <DsButton\r\n :class=\"{ 'syndicate-share__button--no-inner': sm }\"\r\n :is-block-size=\"!sm\"\r\n type=\"secondary\"\r\n title=\"share facebook\"\r\n @click=\"fbShare\"\r\n icon-left=\"facebook\"\r\n >{{ !sm ? \"SdĂlet na Facebooku\" : \"\" }}</DsButton\r\n >\r\n </div>\r\n </template>\r\n </DsModalDialog>\r\n</template>\r\n\r\n<script setup lang=\"ts\">\r\nimport \"@/../../css/lotteries/syndicates/syndicates-partials/syndicate-share.scss\";\r\n\r\nimport { Lottery } from \"@/lotteries/model/lottery\";\r\nimport { SyndicateSize } from \"@/lotteries/model/syndicates/syndicate-size\";\r\nimport { LotteryUtils } from \"@sazka/lotteries/js/utils/lottery-utils\";\r\nimport { sazkaAlert } from \"@sazka/utils/sazka-alert\";\r\nimport { computed, nextTick, ref } from \"vue\";\r\nimport { SyndicatesAnalytics } from \"@/lotteries/services/syndicates/analytics-syndicates\";\r\nimport DsModalDialog from \"@sazka/design-system/src/modal-dialog/ds-modal-dialog.vue\";\r\nimport DsButton from \"@sazka/design-system/src/button/ds-button.vue\";\r\nimport TypographyHeadline from \"@sazka/design-system/src/typography/typography-headline.vue\";\r\nimport { useBreakpoints } from \"@sazka/utils/composables/use-breakpoints\";\r\n\r\nconst props = withDefaults(\r\n defineProps<{\r\n modelValue: boolean;\r\n syndicateName: string;\r\n syndicateShareUrl: string;\r\n syndicateSize: SyndicateSize;\r\n syndicateLottery: Lottery;\r\n }>(),\r\n {\r\n modelValue: false,\r\n }\r\n);\r\n\r\nconst emit = defineEmits([\"update:modelValue\"]);\r\n\r\nconst model = computed({\r\n get: () => props.modelValue,\r\n set: (value: boolean) => {\r\n emit(\"update:modelValue\", value);\r\n },\r\n});\r\n\r\nconst sm = useBreakpoints(\"sm\");\r\nconst sm2 = useBreakpoints(\"sm2\");\r\n\r\nconst sizeLabel = computed(() => {\r\n if (LotteryUtils.isSportka(props.syndicateLottery)) {\r\n return `(skupinová Sportka ${props.syndicateSize.toUpperCase()})`;\r\n }\r\n if (props.syndicateLottery === Lottery.eurojackpot) {\r\n return `(skupinovĂ˝ Eurojackpot ${props.syndicateSize.toUpperCase()})`;\r\n }\r\n return \"\";\r\n});\r\n\r\nconst inputRef = ref<HTMLInputElement | null>(null);\r\nconst copySuccess = ref(false);\r\nconst copySuccessTimeout = ref(0);\r\n\r\nconst handleCopySuccess = () => {\r\n copySuccess.value = true;\r\n copySuccessTimeout.value = window.setTimeout(() => (copySuccess.value = false), 5000);\r\n SyndicatesAnalytics.pushShareAction(props.syndicateLottery, \"copy\");\r\n};\r\n\r\nconst copyToClipboardFallback = () => {\r\n inputRef.value?.focus();\r\n inputRef.value?.select();\r\n inputRef.value?.setSelectionRange(0, 99999); // For mobile devices\r\n nextTick(() => {\r\n if (document.execCommand(\"copy\")) {\r\n handleCopySuccess();\r\n } else {\r\n sazkaAlert(\"Omlouváme se, váš prohlĂĹľeÄŤ nepodporuje funkci kopĂrovánĂ\");\r\n }\r\n });\r\n};\r\n\r\nconst copyToClipboard = async () => {\r\n if (copySuccessTimeout.value) {\r\n clearTimeout(copySuccessTimeout.value);\r\n }\r\n try {\r\n const result = await navigator.permissions.query({ name: \"clipboard-write\" as PermissionName });\r\n if (result.state == \"granted\" || result.state == \"prompt\") {\r\n await navigator.clipboard.writeText(props.syndicateShareUrl);\r\n handleCopySuccess();\r\n // select text in input -> has no important functionality, just request from business\r\n inputRef.value?.focus();\r\n inputRef.value?.select();\r\n }\r\n } catch {\r\n copyToClipboardFallback();\r\n }\r\n};\r\n\r\n// https://stackoverflow.com/a/32261263\r\nfunction popupWindow(url, windowName, win, w, h) {\r\n const y = win.top.outerHeight / 2 + win.top.screenY - h / 2;\r\n const x = win.top.outerWidth / 2 + win.top.screenX - w / 2;\r\n return win.open(\r\n url,\r\n windowName,\r\n `toolbar=no, location=no, directories=no, status=no, menubar=no, scrollbars=no, resizable=no, copyhistory=no, width=${w}, height=${h}, top=${y}, left=${x}`\r\n );\r\n}\r\n\r\nconst fbShare = () => {\r\n SyndicatesAnalytics.pushShareAction(props.syndicateLottery, \"facebook\");\r\n popupWindow(\r\n `https://www.facebook.com/sharer/sharer.php?u=${props.syndicateShareUrl}`,\r\n \"facebook share\",\r\n window,\r\n 558,\r\n 453\r\n );\r\n};\r\n\r\nconst twitterShare = () => {\r\n SyndicatesAnalytics.pushShareAction(props.syndicateLottery, \"twitter\");\r\n popupWindow(`https://twitter.com/intent/tweet?url=${props.syndicateShareUrl}`, \"twitter share\", window, 600, 400);\r\n};\r\n\r\nconst mailShare = () => {\r\n SyndicatesAnalytics.pushShareAction(props.syndicateLottery, \"email\");\r\n};\r\n</script>\r\n","import script from \"./syndicate-share.vue?vue&type=script&setup=true&lang=ts\"\nexport * from \"./syndicate-share.vue?vue&type=script&setup=true&lang=ts\"\n\nconst __exports__ = script;\n\nexport default __exports__","import { defineComponent as _defineComponent } from 'vue'\nimport { createVNode as _createVNode, createElementVNode as _createElementVNode, unref as _unref, toDisplayString as _toDisplayString, createTextVNode as _createTextVNode, openBlock as _openBlock, createElementBlock as _createElementBlock, createCommentVNode as _createCommentVNode, createBlock as _createBlock, normalizeClass as _normalizeClass, Fragment as _Fragment, withCtx as _withCtx } from \"vue\"\n\nconst _hoisted_1 = { class: \"mt-detail\" }\nconst _hoisted_2 = { class: \"mt-detail__content-wrapper mt-detail__content-wrapper--syndicate\" }\nconst _hoisted_3 = { class: \"mt-detail__numbers mt-detail__numbers--syndicate\" }\nconst _hoisted_4 = {\n key: 0,\n class: \"mt-syndicate-detail__system-box\"\n}\nconst _hoisted_5 = [\"innerHTML\"]\nconst _hoisted_6 = { class: \"mt-syndicate-detail__stats-wrapper\" }\nconst _hoisted_7 = { class: \"mt-detail__stats mt-detail__stats--syndicate\" }\nconst _hoisted_8 = { class: \"mt-detail__stat-list\" }\nconst _hoisted_9 = { class: \"mt-detail__stat\" }\nconst _hoisted_10 = {\n class: \"mt-detail__stat-value\",\n \"data-test\": \"number\"\n}\nconst _hoisted_11 = { class: \"mt-detail__stat\" }\nconst _hoisted_12 = {\n class: \"mt-detail__stat-value vertical-center\",\n \"data-test\": \"size-info\"\n}\nconst _hoisted_13 = { class: \"mt-detail__stat\" }\nconst _hoisted_14 = {\n class: \"mt-detail__stat-value capitalize\",\n \"data-test\": \"date\"\n}\nconst _hoisted_15 = { class: \"mt-detail__shares\" }\nconst _hoisted_16 = { class: \"mt-syndicate-detail__shares-overview\" }\nconst _hoisted_17 = {\n class: \"mt-syndicate-detail__shares-title\",\n \"data-test\": \"remaining-shares\"\n}\nconst _hoisted_18 = {\n key: 0,\n class: \"mt-syndicate-detail__user-shares\",\n \"data-test\": \"user-shares\"\n}\nconst _hoisted_19 = { class: \"mt-syndicate-detail__shares-controls\" }\nconst _hoisted_20 = {\n class: \"mt-syndicate-detail__deadline\",\n \"data-test\": \"deadline\"\n}\nconst _hoisted_21 = {\n key: 1,\n class: \"mt-syndicate-detail__buttons\"\n}\n\nimport \"@/../../css/lotteries/syndicates/syndicates-partials/syndicate-detail.scss\";\r\n\r\nimport { computed, onBeforeUnmount, ref, watch } from \"vue\";\r\nimport { SyndicateDetail } from \"@/lotteries/model/syndicates/syndicate-detail\";\r\nimport { fetchSyndicateDetail, postJoinSyndicate } from \"../../services/syndicates/syndicates-api\";\r\nimport { SyndicateUtils } from \"@sazka/lotteries/js/utils/syndicate-utils\";\r\nimport { sazkaAlert } from \"@sazka/utils/sazka-alert\";\r\nimport { Loader } from \"@sazka/design-system/src/loader/loader\";\r\nimport FillTrack from \"./fill-track-detail.vue\";\r\nimport SyndicateSharesSwitch from \"./syndicate-shares-switch.vue\";\r\nimport useSyndicateDetails from \"@/lotteries/composables/syndicates/use-syndicate-details\";\r\nimport { LotteryUtils } from \"@sazka/lotteries/js/utils/lottery-utils\";\r\nimport { eventBus, GlobalEvents } from \"@sazka/utils/global-events\";\r\nimport { SyndicateStatus } from \"@/lotteries/model/syndicates/wagers/syndicate-status\";\r\nimport { SyndicatesAnalytics } from \"@/lotteries/services/syndicates/analytics-syndicates\";\r\nimport DsModalDialog from \"@sazka/design-system/src/modal-dialog/ds-modal-dialog.vue\";\r\nimport BetDetailHero from \"../my-tickets/bet-detail-hero.vue\";\r\nimport MyTicketsGrid from \"@sazka/lotteries/js/my-tickets/components/my-tickets-grid.vue\";\r\nimport DsButton from \"@sazka/design-system/src/button/ds-button.vue\";\r\nimport DsDivider from \"@sazka/design-system/src/divider/ds-divider.vue\";\r\nimport SyndicateShare from \"./syndicate-share.vue\";\r\nimport SyndicateConfirmationPopup from \"./bet-online/syndicate-confirmation-popup.vue\";\r\nimport StateBanner from \"../my-tickets/state-banner.vue\";\r\nimport DsBottomSlotActionBar from \"@sazka/design-system/src/bottom-slot/ds-bottom-slot-action-bar.vue\";\r\nimport { DsSmileStaticFaceType as FaceType } from \"@sazka/design-system/src/smiles//ds-smile-static-types\";\r\n\r\nconst successBoxSubTitle = \"SdĂlejte ji s přáteli a hrajte spoleÄŤnÄ›!\";\r\n\r\n\nexport default /*@__PURE__*/_defineComponent({\n __name: '_syndicate-detail',\n props: {\n wagerId: {},\n wagerIndex: {},\n created: { type: Boolean, default: false }\n },\n emits: [\"update:modelValue\", \"error\", \"closed\"],\n setup(__props: any, { emit: __emit }) {\n\r\nconst props = __props;\r\n\r\nconst wagerIdWhenCreated = props.wagerId;\r\n\r\nconst emit = __emit;\r\nconst isNew = ref(props.created);\r\n\r\nif (isNew.value) {\r\n window.history.replaceState(null, document.title, document.location.href.replace(\"?created=true\", \"\"));\r\n}\r\n\r\nconst syndicate = ref<SyndicateDetail | null>(null);\r\n\r\nconst closeModal = () => {\r\n if (window.location.href.includes(\"/loterie/skupinove-sazeni/detail/\" + wagerIdWhenCreated)) {\r\n window.history.pushState(\r\n { referrer: \"/loterie/skupinove-sazeni/detail/\" + wagerIdWhenCreated },\r\n document.title,\r\n \"/loterie/skupinove-sazeni/skupinove-sazky\"\r\n );\r\n }\r\n syndicate.value = null;\r\n emit(\"closed\");\r\n eventBus.emit(GlobalEvents.SyndicateDetailClosed);\r\n};\r\n\r\nonBeforeUnmount(() => {\r\n closeModal();\r\n});\r\n\r\nconst sendNotification = ref(true);\r\nconst showNotificationCheckbox = ref(true);\r\nconst drawDate = computed(() => syndicate.value?.deadlineToJoin);\r\nwatch(drawDate, () => {\r\n if (!drawDate.value) return;\r\n\r\n const selectedDrawDate = new Date(drawDate.value);\r\n const threshold = new Date(Date.now() + 2 * 60 * 60 * 1000); // now + 2 hours\r\n const result = selectedDrawDate.getTime() > threshold.getTime();\r\n showNotificationCheckbox.value = result;\r\n sendNotification.value = result;\r\n});\r\n\r\nconst fetchSyndicate = () => {\r\n let showedLoader = false;\r\n if (!Loader.isShown) {\r\n Loader.show();\r\n showedLoader = true;\r\n }\r\n fetchSyndicateDetail(props.wagerId)\r\n .then((data) => {\r\n syndicate.value = data;\r\n if (data.status !== SyndicateStatus.ACTIVE) {\r\n sazkaAlert(\r\n \"Tato skupinová sázka jiĹľ nenĂ k dispozici. MĹŻĹľete si vybrat jinou na TrĹľišti sázenek.\",\r\n null,\r\n null,\r\n null,\r\n \"PĹ™ejĂt na trĹľištÄ›\"\r\n ).then(() => {\r\n window.location.href = \"/loterie/skupinove-sazeni/trziste-sazenek\";\r\n });\r\n return;\r\n }\r\n\r\n if (isNew.value) {\r\n SyndicatesAnalytics.pushCreateAction(\r\n syndicate.value.lottery,\r\n syndicate.value.size,\r\n syndicate.value.partsPerWager,\r\n syndicate.value.type\r\n );\r\n } else {\r\n SyndicatesAnalytics.pushDetailPage(syndicate.value.lottery);\r\n }\r\n })\r\n .catch((ex) => {\r\n if (ex.code !== \"ECONNABORTED\") {\r\n sazkaAlert(\"Omlouváme se, sázenku se nepodaĹ™ilo naÄŤĂst\");\r\n }\r\n emit(\"error\", ex);\r\n })\r\n .finally(() => {\r\n if (showedLoader) Loader.hide();\r\n });\r\n};\r\n\r\nconst lotteryDisplayName = computed(() => {\r\n if (!syndicate.value?.lottery) return \"\";\r\n return LotteryUtils.lotteryDisplayName(syndicate.value?.lottery);\r\n});\r\n\r\nconst joinedSyndicate = ref(false);\r\nconst increasedSyndicateShares = ref(false);\r\nconst increasedSyndicateSharesBy = ref(0);\r\n\r\nconst {\r\n syndicateDefinition,\r\n syndicateTotalPartsLabel,\r\n syndicateUserOwnedShares,\r\n syndicateUserOwnedSharesLabel,\r\n syndicateUserOwnedSharesPercentage,\r\n syndicateDeadlineFormatted,\r\n syndicateDrawDateFormatted,\r\n syndicateShareUrl,\r\n} = useSyndicateDetails(syndicate);\r\n\r\nconst isSuccessBoxVisible = computed(() => isNew.value || joinedSyndicate.value || increasedSyndicateShares.value);\r\nconst successBoxTitle = computed(() => {\r\n if (isNew.value) return \"Sázenka byla vytvoĹ™ena!\";\r\n if (joinedSyndicate.value)\r\n return `ĂšspěšnÄ› jste se pĹ™ipojili k sázence (${SyndicateUtils.syndicateShareCountLabel(\r\n increasedSyndicateSharesBy.value\r\n ).replace(/\\s/g, \" \")})`;\r\n return `ĂšspěšnÄ› jste navýšili podĂl (o ${SyndicateUtils.syndicateShareCountLabel(\r\n increasedSyndicateSharesBy.value\r\n ).replace(/\\s/g, \" \")})`;\r\n});\r\nconst syndicateSharesCount = ref(0);\r\nconst syndicateSharesPrice = computed(() => syndicateSharesCount.value * (syndicateDefinition.value?.sharePrice ?? 0));\r\nconst isLastShare = computed(() => syndicateSharesCount.value === syndicate.value?.unsoldParts);\r\n\r\nconst isSystem = computed(() => {\r\n return syndicate.value?.boards.some((x) => x.betType == \"SYSTEM\");\r\n});\r\n\r\nconst showShareModal = ref(false);\r\nconst share = () => {\r\n const textarea = document.createElement(\"textarea\");\r\n textarea.innerHTML = syndicate.value?.name;\r\n const decodedName = textarea.value;\r\n // we want to always show popup on desktop\r\n if (navigator.share && window.innerWidth < 1221) {\r\n navigator.share({\r\n url: syndicateShareUrl.value,\r\n title: decodedName,\r\n });\r\n SyndicatesAnalytics.pushShareAction(syndicate.value.lottery, \"mobileNative\");\r\n } else {\r\n showShareModal.value = true;\r\n }\r\n};\r\n\r\nconst confirmationPopupVisible = ref(false);\r\nconst showConfirmation = () => {\r\n confirmationPopupVisible.value = true;\r\n};\r\n\r\nconst joinSyndicate = async () => {\r\n await postJoinSyndicate(\r\n syndicate.value.id,\r\n syndicate.value.lottery,\r\n syndicate.value.size,\r\n syndicate.value.name,\r\n syndicateSharesCount.value,\r\n syndicate.value.type,\r\n syndicate.value.wagerId,\r\n sendNotification.value,\r\n syndicate.value.drawNames\r\n );\r\n};\r\n\r\nconst updateSyndicateParts = (response: SyndicateDetail) => {\r\n syndicate.value.partsPerWager = response.partsPerWager;\r\n syndicate.value.unsoldParts = response.unsoldParts;\r\n};\r\n\r\nconst onSyndicateUpdated = (syndicateResponse) => {\r\n const data = syndicateResponse as { response: SyndicateDetail; partsPerWager: number };\r\n const response = data.response;\r\n isNew.value = false;\r\n increasedSyndicateShares.value = response.partsPerWager > data.partsPerWager;\r\n joinedSyndicate.value = !increasedSyndicateShares.value;\r\n increasedSyndicateSharesBy.value = data.partsPerWager;\r\n\r\n syndicateSharesCount.value = 0;\r\n sendNotification.value = false;\r\n\r\n syndicate.value = response;\r\n\r\n if (joinedSyndicate.value) {\r\n SyndicatesAnalytics.pushJoinAction(\r\n syndicate.value.lottery,\r\n syndicate.value.size,\r\n syndicate.value.partsPerWager,\r\n syndicate.value.type,\r\n props.wagerIndex === undefined ? \"NULL\" : (props.wagerIndex + 1).toString()\r\n );\r\n } else {\r\n SyndicatesAnalytics.pushIncreaseSharesAction(\r\n syndicate.value.lottery,\r\n syndicate.value.size,\r\n syndicate.value.partsPerWager,\r\n syndicate.value.type\r\n );\r\n }\r\n\r\n if (syndicate.value.unsoldParts === 0) {\r\n SyndicatesAnalytics.pushCompletion(\r\n syndicate.value.lottery,\r\n syndicate.value.size,\r\n syndicate.value.type,\r\n syndicate.value.wagerId.toString(),\r\n response.members\r\n );\r\n SyndicatesAnalytics.pushCompletionAction(\r\n syndicate.value.lottery,\r\n syndicate.value.size,\r\n syndicate.value.type,\r\n response.members,\r\n syndicate.value.partsPerWager,\r\n props.wagerIndex === undefined ? \"NULL\" : (props.wagerIndex + 1).toString()\r\n );\r\n }\r\n\r\n updateSyndicateParts(response);\r\n};\r\n\r\neventBus.on(GlobalEvents.SyndicateUpdated, onSyndicateUpdated);\r\n\r\nonBeforeUnmount(() => {\r\n eventBus.off(GlobalEvents.SyndicateUpdated, onSyndicateUpdated);\r\n});\r\n\r\nconst resetComponent = () => {\r\n // reset all const to default values\r\n syndicate.value = null;\r\n syndicateSharesCount.value = 0;\r\n sendNotification.value = false;\r\n showNotificationCheckbox.value = true;\r\n joinedSyndicate.value = false;\r\n increasedSyndicateShares.value = false;\r\n increasedSyndicateSharesBy.value = 0;\r\n showShareModal.value = false;\r\n confirmationPopupVisible.value = false;\r\n isNew.value = false;\r\n};\r\n\r\nwatch(\r\n () => props.wagerId,\r\n () => {\r\n if (props.wagerId) fetchSyndicate();\r\n else resetComponent();\r\n },\r\n { immediate: true }\r\n);\r\n\nreturn (_ctx: any,_cache: any) => {\n return (_openBlock(), _createElementBlock(\"section\", _hoisted_1, [\n _createVNode(DsModalDialog, {\n \"top-divider-visible\": false,\n \"model-value\": !!syndicate.value,\n \"onUpdate:modelValue\": closeModal,\n class: \"ds-modal-dialog--syndicate\"\n }, {\n top: _withCtx(() => [\n _createVNode(BetDetailHero, {\n \"is-syndicate\": true,\n \"syndicate-name\": syndicate.value.name,\n lottery: syndicate.value.lottery,\n \"lottery-name\": lotteryDisplayName.value,\n \"syndicate-size\": syndicate.value.size\n }, null, 8, [\"syndicate-name\", \"lottery\", \"lottery-name\", \"syndicate-size\"])\n ]),\n content: _withCtx(() => [\n _createElementVNode(\"div\", _hoisted_2, [\n _createElementVNode(\"div\", _hoisted_3, [\n _cache[5] || (_cache[5] = _createElementVNode(\"div\", { class: \"mt-detail__title\" }, \"Vsazená ÄŤĂsla sázenky\", -1)),\n (isSystem.value)\n ? (_openBlock(), _createElementBlock(\"div\", _hoisted_4, [\n _cache[4] || (_cache[4] = _createTextVNode(\" Tato sázenka má ve skuteÄŤnosti \")),\n _createElementVNode(\"strong\", {\n innerHTML: _unref(syndicateDefinition).columnsLabel\n }, null, 8, _hoisted_5),\n _createTextVNode(\", kterĂ© byly vygenerovány z následujĂcĂch \" + _toDisplayString(_unref(syndicateDefinition).numbers) + \" ÄŤĂsel \", 1)\n ]))\n : _createCommentVNode(\"\", true),\n (syndicate.value)\n ? (_openBlock(), _createBlock(MyTicketsGrid, {\n key: 1,\n lottery: syndicate.value.lottery,\n boards: syndicate.value.boards,\n \"addon-numbers\": syndicate.value.addonNumbers,\n \"syndicate-id\": syndicate.value.id,\n \"syndicate-size\": syndicate.value.size\n }, null, 8, [\"lottery\", \"boards\", \"addon-numbers\", \"syndicate-id\", \"syndicate-size\"]))\n : _createCommentVNode(\"\", true)\n ]),\n _createElementVNode(\"div\", _hoisted_6, [\n _createElementVNode(\"div\", _hoisted_7, [\n _cache[9] || (_cache[9] = _createElementVNode(\"div\", { class: \"mt-detail__title\" }, \"Detail sázenky\", -1)),\n _createElementVNode(\"ul\", _hoisted_8, [\n _createElementVNode(\"li\", _hoisted_9, [\n _cache[6] || (_cache[6] = _createElementVNode(\"span\", { class: \"mt-detail__stat-name\" }, \"Sázenka ÄŤ.\", -1)),\n _createElementVNode(\"span\", _hoisted_10, _toDisplayString(syndicate.value.wagerId), 1)\n ]),\n _createElementVNode(\"li\", _hoisted_11, [\n _cache[7] || (_cache[7] = _createElementVNode(\"span\", { class: \"mt-detail__stat-name\" }, \"Typ sázky\", -1)),\n _createElementVNode(\"span\", _hoisted_12, [\n _createElementVNode(\"span\", {\n class: _normalizeClass([\"mt-detail__stat-value--badge\", {\r\n 'mt-detail__stat-value--badge-large':\r\n syndicate.value.size === 'XL' || syndicate.value.size === 'XXL',\r\n }])\n }, _toDisplayString(syndicate.value.size), 3),\n _createTextVNode(\" \" + _toDisplayString(_unref(syndicateDefinition).name), 1)\n ])\n ]),\n _createElementVNode(\"li\", _hoisted_13, [\n _cache[8] || (_cache[8] = _createElementVNode(\"span\", { class: \"mt-detail__stat-name\" }, \"Datum slosovánĂ\", -1)),\n _createElementVNode(\"span\", _hoisted_14, _toDisplayString(_unref(syndicateDrawDateFormatted)), 1)\n ])\n ])\n ]),\n _createElementVNode(\"div\", _hoisted_15, [\n _createElementVNode(\"div\", _hoisted_16, [\n _createElementVNode(\"div\", _hoisted_17, [\n _createTextVNode(\" ZbĂ˝vá \" + _toDisplayString(syndicate.value.unsoldParts) + \" \", 1),\n (\r\n syndicate.value.size === 'XL' ||\r\n syndicate.value.size === 'XXL' ||\r\n (syndicate.value.lottery === 'eurojackpot' &&\r\n ['L', 'XL', 'XXL'].includes(syndicate.value.size))\r\n )\n ? (_openBlock(), _createElementBlock(_Fragment, { key: 0 }, [\n _createTextVNode(\" ze \")\n ], 64))\n : (_openBlock(), _createElementBlock(_Fragment, { key: 1 }, [\n _createTextVNode(\"z\")\n ], 64)),\n _createTextVNode(\" \" + _toDisplayString(_unref(syndicateTotalPartsLabel)), 1)\n ]),\n _createVNode(FillTrack, {\n lottery: syndicate.value.lottery,\n totalParts: _unref(syndicateDefinition).shareCount,\n unsoldParts: syndicate.value.unsoldParts,\n class: _normalizeClass({ 'track--no-user-shares': !_unref(syndicateUserOwnedShares) })\n }, null, 8, [\"lottery\", \"totalParts\", \"unsoldParts\", \"class\"]),\n (_unref(syndicateUserOwnedShares))\n ? (_openBlock(), _createElementBlock(\"div\", _hoisted_18, \" UĹľ vlastnĂte \" + _toDisplayString(_unref(syndicateUserOwnedSharesLabel)) + \" (\" + _toDisplayString(_unref(syndicateUserOwnedSharesPercentage)) + \" %) tĂ©to sázenky. \", 1))\n : _createCommentVNode(\"\", true)\n ]),\n _createVNode(DsDivider),\n _createElementVNode(\"div\", _hoisted_19, [\n _createVNode(SyndicateSharesSwitch, {\n modelValue: syndicateSharesCount.value,\n \"onUpdate:modelValue\": _cache[0] || (_cache[0] = ($event: any) => ((syndicateSharesCount).value = $event)),\n lottery: _unref(syndicateDefinition).lottery,\n size: _unref(syndicateDefinition).size,\n sharePrice: _unref(syndicateDefinition).sharePrice,\n unsoldParts: syndicate.value.unsoldParts,\n ownedShares: _unref(syndicateUserOwnedShares),\n totalParts: _unref(syndicateDefinition).shareCount,\n isDetail: true,\n priceLabel: \"Celková cena\",\n title: \"Zvolte poÄŤet podĂlĹŻ\"\n }, {\n default: _withCtx(() => [\n _createElementVNode(\"div\", _hoisted_20, \" PĹ™ipojit se lze do \" + _toDisplayString(_unref(syndicateDeadlineFormatted)), 1)\n ]),\n _: 1\n }, 8, [\"modelValue\", \"lottery\", \"size\", \"sharePrice\", \"unsoldParts\", \"ownedShares\", \"totalParts\"])\n ])\n ]),\n (isSuccessBoxVisible.value)\n ? (_openBlock(), _createBlock(StateBanner, {\n key: 0,\n class: \"mt-syndicate-detail__state-banner\",\n state: \"confirm\",\n \"headline-text\": successBoxTitle.value,\n \"sub-text\": successBoxSubTitle,\n \"use-custom-face-type\": true,\n customFaceType: isNew.value ? _unref(FaceType).DefaultSmile : _unref(FaceType).Stars\n }, null, 8, [\"headline-text\", \"customFaceType\"]))\n : _createCommentVNode(\"\", true)\n ])\n ])\n ]),\n bottom: _withCtx(() => [\n (!_unref(syndicateUserOwnedShares))\n ? (_openBlock(), _createBlock(DsBottomSlotActionBar, {\n key: 0,\n \"has-btn-close\": false,\n \"btn-submit-text\": \"PĹ™ipojit k sázence\",\n onSubmitDialog: showConfirmation,\n \"is-column\": false,\n \"buttons-disabled\": syndicateSharesCount.value === 0\n }, null, 8, [\"buttons-disabled\"]))\n : (_openBlock(), _createElementBlock(\"div\", _hoisted_21, [\n _createVNode(DsButton, {\n type: \"secondary\",\n \"data-test\": \"button-share\",\n onClick: share,\n \"icon-left\": \"share-thin\"\n }, {\n default: _withCtx(() => _cache[10] || (_cache[10] = [\n _createTextVNode(\" SdĂlet sázenku \")\n ])),\n _: 1\n }),\n _createVNode(DsButton, {\n type: \"primary\",\n \"data-test\": \"button-join\",\n disabled: syndicateSharesCount.value === 0,\n onClick: showConfirmation\n }, {\n default: _withCtx(() => [\n _createTextVNode(_toDisplayString(_unref(syndicateUserOwnedShares) > 0 ? \"Navýšit podĂl\" : \"PĹ™ipojit se k sázence\"), 1)\n ]),\n _: 1\n }, 8, [\"disabled\"])\n ]))\n ]),\n _: 1\n }, 8, [\"model-value\"]),\n (showShareModal.value)\n ? (_openBlock(), _createBlock(SyndicateShare, {\n key: 0,\n modelValue: showShareModal.value,\n \"onUpdate:modelValue\": _cache[1] || (_cache[1] = ($event: any) => ((showShareModal).value = $event)),\n syndicateName: syndicate.value.name,\n syndicateSize: syndicate.value.size,\n syndicateLottery: syndicate.value.lottery,\n syndicateShareUrl: _unref(syndicateShareUrl)\n }, null, 8, [\"modelValue\", \"syndicateName\", \"syndicateSize\", \"syndicateLottery\", \"syndicateShareUrl\"]))\n : _createCommentVNode(\"\", true),\n (confirmationPopupVisible.value)\n ? (_openBlock(), _createBlock(SyndicateConfirmationPopup, {\n key: 1,\n \"show-confirmation\": confirmationPopupVisible.value,\n \"onUpdate:showConfirmation\": _cache[2] || (_cache[2] = ($event: any) => ((confirmationPopupVisible).value = $event)),\n type: syndicate.value.partsPerWager > 0 ? 'increase' : 'join',\n price: syndicateSharesPrice.value,\n showNotificationCheckbox: showNotificationCheckbox.value && !isLastShare.value,\n modelValue: sendNotification.value,\n \"onUpdate:modelValue\": _cache[3] || (_cache[3] = ($event: any) => ((sendNotification).value = $event)),\n onConfirm: joinSyndicate\n }, null, 8, [\"show-confirmation\", \"type\", \"price\", \"showNotificationCheckbox\", \"modelValue\"]))\n : _createCommentVNode(\"\", true)\n ]))\n}\n}\n\n})","<template>\r\n <section class=\"mt-detail\">\r\n <DsModalDialog\r\n :top-divider-visible=\"false\"\r\n :model-value=\"!!syndicate\"\r\n @update:model-value=\"closeModal\"\r\n class=\"ds-modal-dialog--syndicate\"\r\n >\r\n <template #top>\r\n <BetDetailHero\r\n :is-syndicate=\"true\"\r\n :syndicate-name=\"syndicate.name\"\r\n :lottery=\"syndicate.lottery\"\r\n :lottery-name=\"lotteryDisplayName\"\r\n :syndicate-size=\"syndicate.size\"\r\n />\r\n </template>\r\n <template #content>\r\n <div class=\"mt-detail__content-wrapper mt-detail__content-wrapper--syndicate\">\r\n <div class=\"mt-detail__numbers mt-detail__numbers--syndicate\">\r\n <div class=\"mt-detail__title\">Vsazená ÄŤĂsla sázenky</div>\r\n <div class=\"mt-syndicate-detail__system-box\" v-if=\"isSystem\">\r\n Tato sázenka má ve skuteÄŤnosti\r\n <strong v-html=\"syndicateDefinition.columnsLabel\"></strong>, kterĂ© byly vygenerovány z\r\n následujĂcĂch {{ syndicateDefinition.numbers }} ÄŤĂsel\r\n </div>\r\n <MyTicketsGrid\r\n v-if=\"syndicate\"\r\n :lottery=\"syndicate.lottery\"\r\n :boards=\"syndicate.boards\"\r\n :addon-numbers=\"syndicate.addonNumbers\"\r\n :syndicate-id=\"syndicate.id\"\r\n :syndicate-size=\"syndicate.size\"\r\n ></MyTicketsGrid>\r\n </div>\r\n <div class=\"mt-syndicate-detail__stats-wrapper\">\r\n <div class=\"mt-detail__stats mt-detail__stats--syndicate\">\r\n <div class=\"mt-detail__title\">Detail sázenky</div>\r\n <ul class=\"mt-detail__stat-list\">\r\n <li class=\"mt-detail__stat\">\r\n <span class=\"mt-detail__stat-name\">Sázenka ÄŤ.</span>\r\n <span class=\"mt-detail__stat-value\" data-test=\"number\">\r\n {{ syndicate.wagerId }}\r\n </span>\r\n </li>\r\n <li class=\"mt-detail__stat\">\r\n <span class=\"mt-detail__stat-name\">Typ sázky</span>\r\n <span class=\"mt-detail__stat-value vertical-center\" data-test=\"size-info\">\r\n <span\r\n class=\"mt-detail__stat-value--badge\"\r\n :class=\"{\r\n 'mt-detail__stat-value--badge-large':\r\n syndicate.size === 'XL' || syndicate.size === 'XXL',\r\n }\"\r\n >{{ syndicate.size }}</span\r\n >\r\n {{ syndicateDefinition.name }}\r\n </span>\r\n </li>\r\n <li class=\"mt-detail__stat\">\r\n <span class=\"mt-detail__stat-name\">Datum slosovánĂ</span>\r\n <span class=\"mt-detail__stat-value capitalize\" data-test=\"date\">\r\n {{ syndicateDrawDateFormatted }}\r\n </span>\r\n </li>\r\n </ul>\r\n </div>\r\n <div class=\"mt-detail__shares\">\r\n <div class=\"mt-syndicate-detail__shares-overview\">\r\n <div class=\"mt-syndicate-detail__shares-title\" data-test=\"remaining-shares\">\r\n ZbĂ˝vá {{ syndicate.unsoldParts }}\r\n <template\r\n v-if=\"\r\n syndicate.size === 'XL' ||\r\n syndicate.size === 'XXL' ||\r\n (syndicate.lottery === 'eurojackpot' &&\r\n ['L', 'XL', 'XXL'].includes(syndicate.size))\r\n \"\r\n >\r\n ze\r\n </template>\r\n <template v-else>z</template>\r\n {{ syndicateTotalPartsLabel }}\r\n </div>\r\n <FillTrack\r\n :lottery=\"syndicate.lottery\"\r\n :totalParts=\"syndicateDefinition.shareCount\"\r\n :unsoldParts=\"syndicate.unsoldParts\"\r\n :class=\"{ 'track--no-user-shares': !syndicateUserOwnedShares }\"\r\n />\r\n <div\r\n class=\"mt-syndicate-detail__user-shares\"\r\n data-test=\"user-shares\"\r\n v-if=\"syndicateUserOwnedShares\"\r\n >\r\n UĹľ vlastnĂte {{ syndicateUserOwnedSharesLabel }} ({{\r\n syndicateUserOwnedSharesPercentage\r\n }}\r\n %) tĂ©to sázenky.\r\n </div>\r\n </div>\r\n <DsDivider />\r\n <div class=\"mt-syndicate-detail__shares-controls\">\r\n <SyndicateSharesSwitch\r\n v-model=\"syndicateSharesCount\"\r\n :lottery=\"syndicateDefinition.lottery\"\r\n :size=\"syndicateDefinition.size\"\r\n :sharePrice=\"syndicateDefinition.sharePrice\"\r\n :unsoldParts=\"syndicate.unsoldParts\"\r\n :ownedShares=\"syndicateUserOwnedShares\"\r\n :totalParts=\"syndicateDefinition.shareCount\"\r\n :isDetail=\"true\"\r\n priceLabel=\"Celková cena\"\r\n title=\"Zvolte poÄŤet podĂlĹŻ\"\r\n >\r\n <div class=\"mt-syndicate-detail__deadline\" data-test=\"deadline\">\r\n PĹ™ipojit se lze do {{ syndicateDeadlineFormatted }}\r\n </div>\r\n </SyndicateSharesSwitch>\r\n </div>\r\n </div>\r\n <StateBanner\r\n v-if=\"isSuccessBoxVisible\"\r\n class=\"mt-syndicate-detail__state-banner\"\r\n state=\"confirm\"\r\n :headline-text=\"successBoxTitle\"\r\n :sub-text=\"successBoxSubTitle\"\r\n :use-custom-face-type=\"true\"\r\n :customFaceType=\"isNew ? FaceType.DefaultSmile : FaceType.Stars\"\r\n />\r\n </div>\r\n </div>\r\n </template>\r\n <template #bottom>\r\n <DsBottomSlotActionBar\r\n v-if=\"!syndicateUserOwnedShares\"\r\n :has-btn-close=\"false\"\r\n btn-submit-text=\"PĹ™ipojit k sázence\"\r\n @submit-dialog=\"showConfirmation\"\r\n :is-column=\"false\"\r\n :buttons-disabled=\"syndicateSharesCount === 0\"\r\n />\r\n <div class=\"mt-syndicate-detail__buttons\" v-else>\r\n <DsButton type=\"secondary\" data-test=\"button-share\" @click=\"share\" icon-left=\"share-thin\">\r\n SdĂlet sázenku\r\n </DsButton>\r\n <DsButton\r\n type=\"primary\"\r\n data-test=\"button-join\"\r\n :disabled=\"syndicateSharesCount === 0\"\r\n @click=\"showConfirmation\"\r\n >\r\n {{ syndicateUserOwnedShares > 0 ? \"Navýšit podĂl\" : \"PĹ™ipojit se k sázence\" }}\r\n </DsButton>\r\n </div>\r\n </template>\r\n </DsModalDialog>\r\n <SyndicateShare\r\n v-if=\"showShareModal\"\r\n v-model=\"showShareModal\"\r\n :syndicateName=\"syndicate.name\"\r\n :syndicateSize=\"syndicate.size\"\r\n :syndicateLottery=\"syndicate.lottery\"\r\n :syndicateShareUrl=\"syndicateShareUrl\"\r\n />\r\n <SyndicateConfirmationPopup\r\n v-if=\"confirmationPopupVisible\"\r\n v-model:show-confirmation=\"confirmationPopupVisible\"\r\n :type=\"syndicate.partsPerWager > 0 ? 'increase' : 'join'\"\r\n :price=\"syndicateSharesPrice\"\r\n :showNotificationCheckbox=\"showNotificationCheckbox && !isLastShare\"\r\n v-model=\"sendNotification\"\r\n @confirm=\"joinSyndicate\"\r\n />\r\n </section>\r\n</template>\r\n\r\n<script setup lang=\"ts\">\r\nimport \"@/../../css/lotteries/syndicates/syndicates-partials/syndicate-detail.scss\";\r\n\r\nimport { computed, onBeforeUnmount, ref, watch } from \"vue\";\r\nimport { SyndicateDetail } from \"@/lotteries/model/syndicates/syndicate-detail\";\r\nimport { fetchSyndicateDetail, postJoinSyndicate } from \"../../services/syndicates/syndicates-api\";\r\nimport { SyndicateUtils } from \"@sazka/lotteries/js/utils/syndicate-utils\";\r\nimport { sazkaAlert } from \"@sazka/utils/sazka-alert\";\r\nimport { Loader } from \"@sazka/design-system/src/loader/loader\";\r\nimport FillTrack from \"./fill-track-detail.vue\";\r\nimport SyndicateSharesSwitch from \"./syndicate-shares-switch.vue\";\r\nimport useSyndicateDetails from \"@/lotteries/composables/syndicates/use-syndicate-details\";\r\nimport { LotteryUtils } from \"@sazka/lotteries/js/utils/lottery-utils\";\r\nimport { eventBus, GlobalEvents } from \"@sazka/utils/global-events\";\r\nimport { SyndicateStatus } from \"@/lotteries/model/syndicates/wagers/syndicate-status\";\r\nimport { SyndicatesAnalytics } from \"@/lotteries/services/syndicates/analytics-syndicates\";\r\nimport DsModalDialog from \"@sazka/design-system/src/modal-dialog/ds-modal-dialog.vue\";\r\nimport BetDetailHero from \"../my-tickets/bet-detail-hero.vue\";\r\nimport MyTicketsGrid from \"@sazka/lotteries/js/my-tickets/components/my-tickets-grid.vue\";\r\nimport DsButton from \"@sazka/design-system/src/button/ds-button.vue\";\r\nimport DsDivider from \"@sazka/design-system/src/divider/ds-divider.vue\";\r\nimport SyndicateShare from \"./syndicate-share.vue\";\r\nimport SyndicateConfirmationPopup from \"./bet-online/syndicate-confirmation-popup.vue\";\r\nimport StateBanner from \"../my-tickets/state-banner.vue\";\r\nimport DsBottomSlotActionBar from \"@sazka/design-system/src/bottom-slot/ds-bottom-slot-action-bar.vue\";\r\nimport { DsSmileStaticFaceType as FaceType } from \"@sazka/design-system/src/smiles//ds-smile-static-types\";\r\n\r\nconst props = withDefaults(\r\n defineProps<{\r\n wagerId: number;\r\n wagerIndex?: number;\r\n created?: boolean;\r\n }>(),\r\n {\r\n created: false,\r\n }\r\n);\r\n\r\nconst wagerIdWhenCreated = props.wagerId;\r\n\r\nconst emit = defineEmits([\"update:modelValue\", \"error\", \"closed\"]);\r\nconst isNew = ref(props.created);\r\n\r\nif (isNew.value) {\r\n window.history.replaceState(null, document.title, document.location.href.replace(\"?created=true\", \"\"));\r\n}\r\n\r\nconst syndicate = ref<SyndicateDetail | null>(null);\r\n\r\nconst closeModal = () => {\r\n if (window.location.href.includes(\"/loterie/skupinove-sazeni/detail/\" + wagerIdWhenCreated)) {\r\n window.history.pushState(\r\n { referrer: \"/loterie/skupinove-sazeni/detail/\" + wagerIdWhenCreated },\r\n document.title,\r\n \"/loterie/skupinove-sazeni/skupinove-sazky\"\r\n );\r\n }\r\n syndicate.value = null;\r\n emit(\"closed\");\r\n eventBus.emit(GlobalEvents.SyndicateDetailClosed);\r\n};\r\n\r\nonBeforeUnmount(() => {\r\n closeModal();\r\n});\r\n\r\nconst sendNotification = ref(true);\r\nconst showNotificationCheckbox = ref(true);\r\nconst drawDate = computed(() => syndicate.value?.deadlineToJoin);\r\nwatch(drawDate, () => {\r\n if (!drawDate.value) return;\r\n\r\n const selectedDrawDate = new Date(drawDate.value);\r\n const threshold = new Date(Date.now() + 2 * 60 * 60 * 1000); // now + 2 hours\r\n const result = selectedDrawDate.getTime() > threshold.getTime();\r\n showNotificationCheckbox.value = result;\r\n sendNotification.value = result;\r\n});\r\n\r\nconst fetchSyndicate = () => {\r\n let showedLoader = false;\r\n if (!Loader.isShown) {\r\n Loader.show();\r\n showedLoader = true;\r\n }\r\n fetchSyndicateDetail(props.wagerId)\r\n .then((data) => {\r\n syndicate.value = data;\r\n if (data.status !== SyndicateStatus.ACTIVE) {\r\n sazkaAlert(\r\n \"Tato skupinová sázka jiĹľ nenĂ k dispozici. MĹŻĹľete si vybrat jinou na TrĹľišti sázenek.\",\r\n null,\r\n null,\r\n null,\r\n \"PĹ™ejĂt na trĹľištÄ›\"\r\n ).then(() => {\r\n window.location.href = \"/loterie/skupinove-sazeni/trziste-sazenek\";\r\n });\r\n return;\r\n }\r\n\r\n if (isNew.value) {\r\n SyndicatesAnalytics.pushCreateAction(\r\n syndicate.value.lottery,\r\n syndicate.value.size,\r\n syndicate.value.partsPerWager,\r\n syndicate.value.type\r\n );\r\n } else {\r\n SyndicatesAnalytics.pushDetailPage(syndicate.value.lottery);\r\n }\r\n })\r\n .catch((ex) => {\r\n if (ex.code !== \"ECONNABORTED\") {\r\n sazkaAlert(\"Omlouváme se, sázenku se nepodaĹ™ilo naÄŤĂst\");\r\n }\r\n emit(\"error\", ex);\r\n })\r\n .finally(() => {\r\n if (showedLoader) Loader.hide();\r\n });\r\n};\r\n\r\nconst lotteryDisplayName = computed(() => {\r\n if (!syndicate.value?.lottery) return \"\";\r\n return LotteryUtils.lotteryDisplayName(syndicate.value?.lottery);\r\n});\r\n\r\nconst joinedSyndicate = ref(false);\r\nconst increasedSyndicateShares = ref(false);\r\nconst increasedSyndicateSharesBy = ref(0);\r\n\r\nconst {\r\n syndicateDefinition,\r\n syndicateTotalPartsLabel,\r\n syndicateUserOwnedShares,\r\n syndicateUserOwnedSharesLabel,\r\n syndicateUserOwnedSharesPercentage,\r\n syndicateDeadlineFormatted,\r\n syndicateDrawDateFormatted,\r\n syndicateShareUrl,\r\n} = useSyndicateDetails(syndicate);\r\n\r\nconst isSuccessBoxVisible = computed(() => isNew.value || joinedSyndicate.value || increasedSyndicateShares.value);\r\nconst successBoxTitle = computed(() => {\r\n if (isNew.value) return \"Sázenka byla vytvoĹ™ena!\";\r\n if (joinedSyndicate.value)\r\n return `ĂšspěšnÄ› jste se pĹ™ipojili k sázence (${SyndicateUtils.syndicateShareCountLabel(\r\n increasedSyndicateSharesBy.value\r\n ).replace(/\\s/g, \" \")})`;\r\n return `ĂšspěšnÄ› jste navýšili podĂl (o ${SyndicateUtils.syndicateShareCountLabel(\r\n increasedSyndicateSharesBy.value\r\n ).replace(/\\s/g, \" \")})`;\r\n});\r\nconst successBoxSubTitle = \"SdĂlejte ji s přáteli a hrajte spoleÄŤnÄ›!\";\r\n\r\nconst syndicateSharesCount = ref(0);\r\nconst syndicateSharesPrice = computed(() => syndicateSharesCount.value * (syndicateDefinition.value?.sharePrice ?? 0));\r\nconst isLastShare = computed(() => syndicateSharesCount.value === syndicate.value?.unsoldParts);\r\n\r\nconst isSystem = computed(() => {\r\n return syndicate.value?.boards.some((x) => x.betType == \"SYSTEM\");\r\n});\r\n\r\nconst showShareModal = ref(false);\r\nconst share = () => {\r\n const textarea = document.createElement(\"textarea\");\r\n textarea.innerHTML = syndicate.value?.name;\r\n const decodedName = textarea.value;\r\n // we want to always show popup on desktop\r\n if (navigator.share && window.innerWidth < 1221) {\r\n navigator.share({\r\n url: syndicateShareUrl.value,\r\n title: decodedName,\r\n });\r\n SyndicatesAnalytics.pushShareAction(syndicate.value.lottery, \"mobileNative\");\r\n } else {\r\n showShareModal.value = true;\r\n }\r\n};\r\n\r\nconst confirmationPopupVisible = ref(false);\r\nconst showConfirmation = () => {\r\n confirmationPopupVisible.value = true;\r\n};\r\n\r\nconst joinSyndicate = async () => {\r\n await postJoinSyndicate(\r\n syndicate.value.id,\r\n syndicate.value.lottery,\r\n syndicate.value.size,\r\n syndicate.value.name,\r\n syndicateSharesCount.value,\r\n syndicate.value.type,\r\n syndicate.value.wagerId,\r\n sendNotification.value,\r\n syndicate.value.drawNames\r\n );\r\n};\r\n\r\nconst updateSyndicateParts = (response: SyndicateDetail) => {\r\n syndicate.value.partsPerWager = response.partsPerWager;\r\n syndicate.value.unsoldParts = response.unsoldParts;\r\n};\r\n\r\nconst onSyndicateUpdated = (syndicateResponse) => {\r\n const data = syndicateResponse as { response: SyndicateDetail; partsPerWager: number };\r\n const response = data.response;\r\n isNew.value = false;\r\n increasedSyndicateShares.value = response.partsPerWager > data.partsPerWager;\r\n joinedSyndicate.value = !increasedSyndicateShares.value;\r\n increasedSyndicateSharesBy.value = data.partsPerWager;\r\n\r\n syndicateSharesCount.value = 0;\r\n sendNotification.value = false;\r\n\r\n syndicate.value = response;\r\n\r\n if (joinedSyndicate.value) {\r\n SyndicatesAnalytics.pushJoinAction(\r\n syndicate.value.lottery,\r\n syndicate.value.size,\r\n syndicate.value.partsPerWager,\r\n syndicate.value.type,\r\n props.wagerIndex === undefined ? \"NULL\" : (props.wagerIndex + 1).toString()\r\n );\r\n } else {\r\n SyndicatesAnalytics.pushIncreaseSharesAction(\r\n syndicate.value.lottery,\r\n syndicate.value.size,\r\n syndicate.value.partsPerWager,\r\n syndicate.value.type\r\n );\r\n }\r\n\r\n if (syndicate.value.unsoldParts === 0) {\r\n SyndicatesAnalytics.pushCompletion(\r\n syndicate.value.lottery,\r\n syndicate.value.size,\r\n syndicate.value.type,\r\n syndicate.value.wagerId.toString(),\r\n response.members\r\n );\r\n SyndicatesAnalytics.pushCompletionAction(\r\n syndicate.value.lottery,\r\n syndicate.value.size,\r\n syndicate.value.type,\r\n response.members,\r\n syndicate.value.partsPerWager,\r\n props.wagerIndex === undefined ? \"NULL\" : (props.wagerIndex + 1).toString()\r\n );\r\n }\r\n\r\n updateSyndicateParts(response);\r\n};\r\n\r\neventBus.on(GlobalEvents.SyndicateUpdated, onSyndicateUpdated);\r\n\r\nonBeforeUnmount(() => {\r\n eventBus.off(GlobalEvents.SyndicateUpdated, onSyndicateUpdated);\r\n});\r\n\r\nconst resetComponent = () => {\r\n // reset all const to default values\r\n syndicate.value = null;\r\n syndicateSharesCount.value = 0;\r\n sendNotification.value = false;\r\n showNotificationCheckbox.value = true;\r\n joinedSyndicate.value = false;\r\n increasedSyndicateShares.value = false;\r\n increasedSyndicateSharesBy.value = 0;\r\n showShareModal.value = false;\r\n confirmationPopupVisible.value = false;\r\n isNew.value = false;\r\n};\r\n\r\nwatch(\r\n () => props.wagerId,\r\n () => {\r\n if (props.wagerId) fetchSyndicate();\r\n else resetComponent();\r\n },\r\n { immediate: true }\r\n);\r\n</script>\r\n","import script from \"./_syndicate-detail.vue?vue&type=script&setup=true&lang=ts\"\nexport * from \"./_syndicate-detail.vue?vue&type=script&setup=true&lang=ts\"\n\nconst __exports__ = script;\n\nexport default __exports__","import { createElementVNode as _createElementVNode, normalizeClass as _normalizeClass, normalizeStyle as _normalizeStyle, openBlock as _openBlock, createElementBlock as _createElementBlock } from \"vue\"\n\nconst _hoisted_1 = { class: \"track\" }\n\nexport function render(_ctx: any,_cache: any,$props: any,$setup: any,$data: any,$options: any) {\n return (_openBlock(), _createElementBlock(\"div\", _hoisted_1, [\n _cache[0] || (_cache[0] = _createElementVNode(\"span\", { class: \"track__bg\" }, null, -1)),\n _createElementVNode(\"span\", {\n class: _normalizeClass([\"track__value\", _ctx.lotteryComp]),\n style: _normalizeStyle(`width: ${_ctx.sharesScale * 100}%;`)\n }, null, 6)\n ]))\n}","<template>\r\n <div class=\"track\">\r\n <span class=\"track__bg\"></span>\r\n <span class=\"track__value\" :class=\"lotteryComp\" :style=\"`width: ${sharesScale * 100}%;`\"></span>\r\n </div>\r\n</template>\r\n\r\n<script lang=\"ts\">\r\nimport { Lottery } from \"@/lotteries/model/lottery\";\r\nimport { LotteryUtils } from \"@sazka/lotteries/js/utils/lottery-utils\";\r\nimport { computed, defineComponent } from \"vue\";\r\n\r\nexport default defineComponent({\r\n name: \"FillTrack\",\r\n props: {\r\n lottery: {\r\n type: String as () => Lottery,\r\n default: Lottery.sportka,\r\n },\r\n totalParts: Number,\r\n unsoldParts: Number,\r\n },\r\n setup(props) {\r\n const sharesScale = computed(() => {\r\n return (props.totalParts - props.unsoldParts) / props.totalParts;\r\n });\r\n // we need to unite sportka and sportkaMH for css class\r\n const lotteryComp = computed(() => (LotteryUtils.isSportka(props.lottery) ? Lottery.sportka : props.lottery));\r\n return {\r\n sharesScale,\r\n lotteryComp,\r\n };\r\n },\r\n});\r\n</script>\r\n","import { render } from \"./fill-track-detail.vue?vue&type=template&id=b6ef5f32&ts=true\"\nimport script from \"./fill-track-detail.vue?vue&type=script&lang=ts\"\nexport * from \"./fill-track-detail.vue?vue&type=script&lang=ts\"\n\nimport exportComponent from \"../../../../../../../node_modules/.pnpm/vue-loader@17.4.2_@vue+compiler-sfc@3.5.13_vue@3.5.13_typescript@5.7.3__webpack@5.95.0_@swc+c_34j4td3qllqrpsyknfjyyfkdq4/node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render]])\n\nexport default __exports__","import { defineComponent as _defineComponent } from 'vue'\nimport { renderSlot as _renderSlot, toDisplayString as _toDisplayString, createTextVNode as _createTextVNode, withCtx as _withCtx, openBlock as _openBlock, createBlock as _createBlock, createCommentVNode as _createCommentVNode, normalizeClass as _normalizeClass, createElementVNode as _createElementVNode, createElementBlock as _createElementBlock } from \"vue\"\n\nconst _hoisted_1 = { class: \"bottom-slot-action-bar\" }\n\nimport { inject } from \"vue\";\r\nimport { isModalVisibleInjectionKey } from \"../modal-dialog/ds-modal-dialog-injection-key\";\r\nimport DsButton from \"../button/ds-button.vue\";\r\nimport type { SvgIcons } from \"../icon/types\";\r\nimport { Theme } from \"../types/theme\";\r\nimport { Size } from \"../types/size\";\r\nimport { ButtonType } from \"../types/button\";\r\n\r\ntype IconType = {\r\n iconLeft?: SvgIcons;\r\n iconRight?: SvgIcons;\r\n};\r\n\r\n\nexport default /*@__PURE__*/_defineComponent({\n __name: 'ds-bottom-slot-action-bar',\n props: {\n hasBtnSubmit: { type: Boolean, default: true },\n btnSubmitText: { default: \"POTVRDIT\" },\n btnSubmitDataTest: {},\n btnCloseText: { default: \"ZAVĹĂŤT\" },\n btnCloseDataTest: {},\n hasBtnClose: { type: Boolean, default: true },\n isColumn: { type: Boolean, default: false },\n buttonsDisabled: { type: Boolean, default: false },\n buttonCloseIcon: {},\n buttonSubmitIcon: {},\n isInStorybook: { type: Boolean },\n theme: {},\n size: {},\n btnSubmitType: { default: \"primary\" },\n btnCloseType: { default: \"secondary\" }\n },\n emits: [\"submitDialog\", \"closeDialog\"],\n setup(__props: any, { emit: __emit }) {\n\r\nconst props = __props;\r\n\r\nconst isModalVisible = inject(isModalVisibleInjectionKey);\r\n\r\nconst emit = __emit;\r\n\r\nconst submitDialog = () => {\r\n emit(\"submitDialog\", null);\r\n};\r\n\r\nconst modalClose = () => {\r\n emit(\"closeDialog\", null);\r\n isModalVisible.value = false;\r\n};\r\n\nreturn (_ctx: any,_cache: any) => {\n return (_openBlock(), _createElementBlock(\"div\", _hoisted_1, [\n _createElementVNode(\"div\", {\n class: _normalizeClass([\"bottom-slot-action-bar__wrap\", { 'bottom-slot-action-bar__wrap--column': _ctx.isColumn }])\n }, [\n _renderSlot(_ctx.$slots, \"additional\"),\n (props.hasBtnClose)\n ? (_openBlock(), _createBlock(DsButton, {\n key: 0,\n \"icon-left\": props.buttonCloseIcon ? props.buttonCloseIcon.iconLeft : undefined,\n \"icon-right\": props.buttonCloseIcon ? props.buttonCloseIcon.iconRight : undefined,\n \"is-in-story-book\": props.isInStorybook,\n \"is-disabled\": props.buttonsDisabled,\n type: _ctx.btnCloseType,\n onClick: modalClose,\n \"data-test\": _ctx.btnCloseDataTest,\n theme: _ctx.theme,\n size: _ctx.size\n }, {\n default: _withCtx(() => [\n _createTextVNode(_toDisplayString(_ctx.btnCloseText), 1)\n ]),\n _: 1\n }, 8, [\"icon-left\", \"icon-right\", \"is-in-story-book\", \"is-disabled\", \"type\", \"data-test\", \"theme\", \"size\"]))\n : _createCommentVNode(\"\", true),\n (props.hasBtnSubmit)\n ? (_openBlock(), _createBlock(DsButton, {\n key: 1,\n \"is-disabled\": props.buttonsDisabled,\n type: _ctx.btnSubmitType,\n onClick: submitDialog,\n \"icon-left\": props.buttonSubmitIcon ? props.buttonSubmitIcon.iconLeft : undefined,\n \"icon-right\": props.buttonSubmitIcon ? props.buttonSubmitIcon.iconRight : undefined,\n \"is-in-story-book\": props.isInStorybook,\n \"data-test\": _ctx.btnSubmitDataTest,\n theme: _ctx.theme,\n size: _ctx.size\n }, {\n default: _withCtx(() => [\n _createTextVNode(_toDisplayString(_ctx.btnSubmitText), 1)\n ]),\n _: 1\n }, 8, [\"is-disabled\", \"type\", \"icon-left\", \"icon-right\", \"is-in-story-book\", \"data-test\", \"theme\", \"size\"]))\n : _createCommentVNode(\"\", true)\n ], 2)\n ]))\n}\n}\n\n})","<template>\r\n <div class=\"bottom-slot-action-bar\">\r\n <div class=\"bottom-slot-action-bar__wrap\" :class=\"{ 'bottom-slot-action-bar__wrap--column': isColumn }\">\r\n <slot name=\"additional\"></slot>\r\n <DsButton\r\n v-if=\"props.hasBtnClose\"\r\n :icon-left=\"props.buttonCloseIcon ? props.buttonCloseIcon.iconLeft : undefined\"\r\n :icon-right=\"props.buttonCloseIcon ? props.buttonCloseIcon.iconRight : undefined\"\r\n :is-in-story-book=\"props.isInStorybook\"\r\n :is-disabled=\"props.buttonsDisabled\"\r\n :type=\"btnCloseType\"\r\n @click=\"modalClose\"\r\n :data-test=\"btnCloseDataTest\"\r\n :theme=\"theme\"\r\n :size=\"size\"\r\n >\r\n {{ btnCloseText }}\r\n </DsButton>\r\n <DsButton\r\n v-if=\"props.hasBtnSubmit\"\r\n :is-disabled=\"props.buttonsDisabled\"\r\n :type=\"btnSubmitType\"\r\n @click=\"submitDialog\"\r\n :icon-left=\"props.buttonSubmitIcon ? props.buttonSubmitIcon.iconLeft : undefined\"\r\n :icon-right=\"props.buttonSubmitIcon ? props.buttonSubmitIcon.iconRight : undefined\"\r\n :is-in-story-book=\"props.isInStorybook\"\r\n :data-test=\"btnSubmitDataTest\"\r\n :theme=\"theme\"\r\n :size=\"size\"\r\n >\r\n {{ btnSubmitText }}\r\n </DsButton>\r\n </div>\r\n </div>\r\n</template>\r\n\r\n<script lang=\"ts\" setup>\r\nimport { inject } from \"vue\";\r\nimport { isModalVisibleInjectionKey } from \"../modal-dialog/ds-modal-dialog-injection-key\";\r\nimport DsButton from \"../button/ds-button.vue\";\r\nimport type { SvgIcons } from \"../icon/types\";\r\nimport { Theme } from \"../types/theme\";\r\nimport { Size } from \"../types/size\";\r\nimport { ButtonType } from \"../types/button\";\r\n\r\ntype IconType = {\r\n iconLeft?: SvgIcons;\r\n iconRight?: SvgIcons;\r\n};\r\n\r\nconst props = withDefaults(\r\n defineProps<{\r\n /**\r\n * Show / Hide submit btn\r\n */\r\n hasBtnSubmit?: boolean;\r\n /**\r\n * Submit text\r\n */\r\n btnSubmitText?: string;\r\n /**\r\n * Submit data test\r\n */\r\n btnSubmitDataTest?: string;\r\n /**\r\n * Close text\r\n */\r\n btnCloseText?: string;\r\n /**\r\n * Close data test\r\n */\r\n btnCloseDataTest?: string;\r\n /**\r\n * Show / Hide close button\r\n */\r\n hasBtnClose?: boolean;\r\n /**\r\n * Set column variant\r\n */\r\n isColumn?: boolean;\r\n /**\r\n * Disable buttons\r\n */\r\n buttonsDisabled?: boolean;\r\n /**\r\n * Set icon for close button\r\n */\r\n buttonCloseIcon?: IconType;\r\n /**\r\n * Set icon from submit button\r\n */\r\n buttonSubmitIcon?: IconType;\r\n /**\r\n * Storybook icon path\r\n */\r\n isInStorybook?: boolean;\r\n /**\r\n * Set theme\r\n */\r\n theme?: Theme;\r\n /**\r\n * Set size\r\n */\r\n size?: Size;\r\n /**\r\n * Set type for submit button\r\n */\r\n btnSubmitType?: ButtonType;\r\n /**\r\n * Set type for close button\r\n */\r\n btnCloseType?: ButtonType;\r\n }>(),\r\n {\r\n hasBtnSubmit: true,\r\n btnSubmitText: \"POTVRDIT\",\r\n btnCloseText: \"ZAVĹĂŤT\",\r\n hasBtnClose: true,\r\n isColumn: false,\r\n buttonsDisabled: false,\r\n btnSubmitType: \"primary\",\r\n btnCloseType: \"secondary\",\r\n }\r\n);\r\n\r\nconst isModalVisible = inject(isModalVisibleInjectionKey);\r\n\r\nconst emit = defineEmits([\"submitDialog\", \"closeDialog\"]);\r\n\r\nconst submitDialog = () => {\r\n emit(\"submitDialog\", null);\r\n};\r\n\r\nconst modalClose = () => {\r\n emit(\"closeDialog\", null);\r\n isModalVisible.value = false;\r\n};\r\n</script>\r\n","import script from \"./ds-bottom-slot-action-bar.vue?vue&type=script&lang=ts&setup=true\"\nexport * from \"./ds-bottom-slot-action-bar.vue?vue&type=script&lang=ts&setup=true\"\n\nconst __exports__ = script;\n\nexport default __exports__"],"names":["useSyndicateDetails","syndicate","syndicateDefinition","computed","_syndicate$value","_syndicate$value2","SyndicateUtils","getSyndicateDefinition","value","lottery","size","syndicateImage","syndicateLogo","wagerId","syndicateTotalPartsLabel","definition","syndicateShareCountLabel2ndForm","shareCount","syndicateUserOwnedShares","_syndicate$value$part","_syndicate$value3","partsPerWager","syndicateUserOwnedSharesLabel","_syndicate$value$part2","_syndicate$value4","syndicateShareCountLabel","syndicateUserOwnedSharesPercentage","_syndicate$value$part3","_syndicate$value5","_syndicate$value6","_syndicate$value7","sharePercentage","syndicateDeadlineFormatted","_syndicate$value8","_syndicate$value9","deadlineToJoin","date","Date","DateTimeUtils","formatDateTimeShort","syndicateDrawDateFormatted","_syndicate$value10","_syndicate$value11","formatDateWithWeekday","syndicateShareUrl","_syndicate$value12","window","location","protocol","hostname","initialized","reactiveBreakpoints","useBreakpoints","breakpoints","length","initialize","reduce","acc","x","reactiveBreakpoint","Object","keys","ResponsiveUtils","filter","map","isInUse","key","minSize","ref","breakpoint","brkpnt","find","media","matchMedia","matches","onchange","e","_hoisted_1","class","_hoisted_2","_hoisted_3","_defineComponent","__name","props","headlineText","subText","state","showImg","type","Boolean","default","useCustomFaceType","customFaceType","FaceType","Stars","setup","__props","iconType","pos","FacePosition","Center","CenterDown","SadClosedEyes","AmazedEyebrow","SmileClosedEyes","_ctx","_cache","_openBlock","_createElementBlock","_normalizeClass","_createElementVNode","innerHTML","_createBlock","DsSmileStatic","responsive","_createCommentVNode","__exports__","SyndicateStatus","_hoisted_4","modelValue","syndicateName","syndicateSize","syndicateLottery","emits","emit","__emit","model","get","set","sm","sm2","sizeLabel","LotteryUtils","isSportka","toUpperCase","Lottery","eurojackpot","inputRef","copySuccess","copySuccessTimeout","handleCopySuccess","setTimeout","SyndicatesAnalytics","pushShareAction","copyToClipboardFallback","_inputRef$value","_inputRef$value2","_inputRef$value3","focus","select","setSelectionRange","nextTick","document","execCommand","sazkaAlert","copyToClipboard","async","clearTimeout","result","navigator","permissions","query","name","_inputRef$value4","_inputRef$value5","clipboard","writeText","popupWindow","url","windowName","win","w","h","y","top","outerHeight","screenY","outerWidth","screenX","open","fbShare","twitterShare","mailShare","DsModalDialog","$event","_withCtx","_createVNode","TypographyHeadline","_createTextVNode","_","_toDisplayString","content","readonly","ref_key","DsButton","onClick","_unref","bottom","href","tag","title","_hoisted_5","_hoisted_6","_hoisted_7","_hoisted_8","_hoisted_9","_hoisted_10","_hoisted_11","_hoisted_12","_hoisted_13","_hoisted_14","_hoisted_15","_hoisted_16","_hoisted_17","_hoisted_18","_hoisted_19","_hoisted_20","_hoisted_21","successBoxSubTitle","wagerIndex","created","wagerIdWhenCreated","isNew","history","replaceState","replace","closeModal","includes","pushState","referrer","eventBus","GlobalEvents","SyndicateDetailClosed","onBeforeUnmount","sendNotification","showNotificationCheckbox","drawDate","watch","selectedDrawDate","threshold","now","getTime","fetchSyndicate","showedLoader","Loader","isShown","show","fetchSyndicateDetail","then","data","status","ACTIVE","pushCreateAction","pushDetailPage","catch","ex","code","finally","hide","lotteryDisplayName","joinedSyndicate","increasedSyndicateShares","increasedSyndicateSharesBy","isSuccessBoxVisible","successBoxTitle","syndicateSharesCount","syndicateSharesPrice","_syndicateDefinition$","_syndicateDefinition$2","sharePrice","isLastShare","unsoldParts","isSystem","boards","some","betType","showShareModal","share","textarea","createElement","decodedName","innerWidth","confirmationPopupVisible","showConfirmation","joinSyndicate","postJoinSyndicate","id","drawNames","updateSyndicateParts","response","onSyndicateUpdated","syndicateResponse","pushJoinAction","undefined","toString","pushIncreaseSharesAction","pushCompletion","members","pushCompletionAction","on","SyndicateUpdated","off","resetComponent","immediate","BetDetailHero","columnsLabel","numbers","MyTicketsGrid","addonNumbers","_Fragment","FillTrack","totalParts","DsDivider","SyndicateSharesSwitch","ownedShares","isDetail","priceLabel","StateBanner","DefaultSmile","disabled","DsBottomSlotActionBar","onSubmitDialog","SyndicateShare","SyndicateConfirmationPopup","price","onConfirm","render","$props","$setup","$data","$options","lotteryComp","style","_normalizeStyle","sharesScale","defineComponent","String","sportka","Number","hasBtnSubmit","btnSubmitText","btnSubmitDataTest","btnCloseText","btnCloseDataTest","hasBtnClose","isColumn","buttonsDisabled","buttonCloseIcon","buttonSubmitIcon","isInStorybook","theme","btnSubmitType","btnCloseType","isModalVisible","inject","isModalVisibleInjectionKey","submitDialog","modalClose","_renderSlot","$slots","iconLeft","iconRight"],"sourceRoot":""}