@everymatrix/casino-challenges-overlay-drawer 0.0.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (112) hide show
  1. package/dist/casino-challenges-overlay-drawer/app-globals-0f993ce5.js +1 -0
  2. package/dist/casino-challenges-overlay-drawer/casino-challenge-details-events_21.entry.js +1 -0
  3. package/dist/casino-challenges-overlay-drawer/casino-challenges-overlay-drawer-b6d3a238.js +1 -0
  4. package/dist/casino-challenges-overlay-drawer/casino-challenges-overlay-drawer.esm.js +1 -0
  5. package/dist/casino-challenges-overlay-drawer/index-25fd45d2.js +2 -0
  6. package/dist/casino-challenges-overlay-drawer/index.esm.js +1 -0
  7. package/dist/cjs/app-globals-3a1e7e63.js +5 -0
  8. package/dist/cjs/casino-challenge-details-events_21.cjs.entry.js +4459 -0
  9. package/dist/cjs/casino-challenges-overlay-drawer-ee68086b.js +1002 -0
  10. package/dist/cjs/casino-challenges-overlay-drawer.cjs.js +25 -0
  11. package/dist/cjs/index-d2288c94.js +1592 -0
  12. package/dist/cjs/index.cjs.js +10 -0
  13. package/dist/cjs/loader.cjs.js +15 -0
  14. package/dist/collection/assets/arrow-down.svg +3 -0
  15. package/dist/collection/assets/arrow-up.svg +3 -0
  16. package/dist/collection/assets/check.svg +3 -0
  17. package/dist/collection/assets/chevron-up.svg +3 -0
  18. package/dist/collection/assets/chevron.svg +4 -0
  19. package/dist/collection/assets/cross.svg +4 -0
  20. package/dist/collection/assets/crown.svg +12 -0
  21. package/dist/collection/assets/error.svg +3 -0
  22. package/dist/collection/assets/gift.svg +24 -0
  23. package/dist/collection/assets/link.svg +3 -0
  24. package/dist/collection/assets/lock.svg +3 -0
  25. package/dist/collection/assets/notification.svg +20 -0
  26. package/dist/collection/assets/opt-out.svg +3 -0
  27. package/dist/collection/assets/revert-icon.svg +4 -0
  28. package/dist/collection/assets/reward-gift.svg +123 -0
  29. package/dist/collection/assets/slot.svg +59 -0
  30. package/dist/collection/assets/sport.svg +34 -0
  31. package/dist/collection/assets/swipe.svg +3 -0
  32. package/dist/collection/assets/target.svg +16 -0
  33. package/dist/collection/assets/term-and-condition.svg +3 -0
  34. package/dist/collection/collection-manifest.json +48 -0
  35. package/dist/collection/components/casino-challenges-overlay-drawer/casino-challenges-overlay-drawer.css +260 -0
  36. package/dist/collection/components/casino-challenges-overlay-drawer/casino-challenges-overlay-drawer.js +793 -0
  37. package/dist/collection/components/casino-challenges-overlay-drawer/index.js +1 -0
  38. package/dist/collection/components/components/casino-challenge-opt-out-modal/casino-challenge-opt-out-modal.css +141 -0
  39. package/dist/collection/components/components/casino-challenge-opt-out-modal/casino-challenge-opt-out-modal.js +124 -0
  40. package/dist/collection/components/components/casino-challenge-overlay-background/casino-challenge-overlay-background.css +89 -0
  41. package/dist/collection/components/components/casino-challenge-overlay-background/casino-challenge-overlay-background.js +44 -0
  42. package/dist/collection/components/components/casino-challenges-claim-code/casino-challenges-claim-code.css +143 -0
  43. package/dist/collection/components/components/casino-challenges-claim-code/casino-challenges-claim-code.js +260 -0
  44. package/dist/collection/components/components/casino-challenges-empty-state/casino-challenges-empty-state.css +35 -0
  45. package/dist/collection/components/components/casino-challenges-empty-state/casino-challenges-empty-state.js +80 -0
  46. package/dist/collection/components/components/casino-challenges-overlay-drawer-history/casino-challenges-overlay-drawer-history.css +37 -0
  47. package/dist/collection/components/components/casino-challenges-overlay-drawer-history/casino-challenges-overlay-drawer-history.js +335 -0
  48. package/dist/collection/components/components/casino-challenges-overlay-drawer-history/components/casino-challenge-drawer-history-item/casino-challenge-drawer-history-item.css +170 -0
  49. package/dist/collection/components/components/casino-challenges-overlay-drawer-history/components/casino-challenge-drawer-history-item/casino-challenge-drawer-history-item.js +173 -0
  50. package/dist/collection/components/components/casino-challenges-overlay-loader/casino-challenges-overlay-loader.css +83 -0
  51. package/dist/collection/components/components/casino-challenges-overlay-loader/casino-challenges-overlay-loader.js +63 -0
  52. package/dist/collection/components/components/casino-challenges-overlay-tabs/casino-challenges-overlay-tabs.css +116 -0
  53. package/dist/collection/components/components/casino-challenges-overlay-tabs/casino-challenges-overlay-tabs.js +171 -0
  54. package/dist/collection/components/components/swipe-up/swipe-up.css +61 -0
  55. package/dist/collection/components/components/swipe-up/swipe-up.js +155 -0
  56. package/dist/collection/consts.js +3829 -0
  57. package/dist/collection/index.js +1 -0
  58. package/dist/collection/utils/general-info-utils.js +105 -0
  59. package/dist/collection/utils/levels-utils.js +55 -0
  60. package/dist/collection/utils/locale.utils.js +146 -0
  61. package/dist/collection/utils/types.js +160 -0
  62. package/dist/collection/utils/utils.js +54 -0
  63. package/dist/esm/app-globals-0f993ce5.js +3 -0
  64. package/dist/esm/casino-challenge-details-events_21.entry.js +4436 -0
  65. package/dist/esm/casino-challenges-overlay-drawer-b6d3a238.js +994 -0
  66. package/dist/esm/casino-challenges-overlay-drawer.js +20 -0
  67. package/dist/esm/index-25fd45d2.js +1563 -0
  68. package/dist/esm/index.js +2 -0
  69. package/dist/esm/loader.js +11 -0
  70. package/dist/index.cjs.js +1 -0
  71. package/dist/index.js +1 -0
  72. package/dist/stencil.config.dev.js +19 -0
  73. package/dist/stencil.config.js +19 -0
  74. package/dist/storybook/main.js +43 -0
  75. package/dist/storybook/preview.js +9 -0
  76. package/dist/types/builds/emfe-widgets/widgets-monorepo/packages/stencil/casino-challenges-overlay-drawer/.stencil/libs/common/src/storybook/storybook-utils.d.ts +39 -0
  77. package/dist/types/builds/emfe-widgets/widgets-monorepo/packages/stencil/casino-challenges-overlay-drawer/.stencil/packages/stencil/casino-challenges-overlay-drawer/stencil.config.d.ts +2 -0
  78. package/dist/types/builds/emfe-widgets/widgets-monorepo/packages/stencil/casino-challenges-overlay-drawer/.stencil/packages/stencil/casino-challenges-overlay-drawer/stencil.config.dev.d.ts +2 -0
  79. package/dist/types/builds/emfe-widgets/widgets-monorepo/packages/stencil/casino-challenges-overlay-drawer/.stencil/packages/stencil/casino-challenges-overlay-drawer/storybook/main.d.ts +3 -0
  80. package/dist/types/builds/emfe-widgets/widgets-monorepo/packages/stencil/casino-challenges-overlay-drawer/.stencil/packages/stencil/casino-challenges-overlay-drawer/storybook/preview.d.ts +70 -0
  81. package/dist/types/builds/emfe-widgets/widgets-monorepo/packages/stencil/casino-challenges-overlay-drawer/.stencil/tools/plugins/index.d.ts +4 -0
  82. package/dist/types/builds/emfe-widgets/widgets-monorepo/packages/stencil/casino-challenges-overlay-drawer/.stencil/tools/plugins/lazy-load-chunk-plugin.d.ts +12 -0
  83. package/dist/types/builds/emfe-widgets/widgets-monorepo/packages/stencil/casino-challenges-overlay-drawer/.stencil/tools/plugins/stencil-clean-deps-plugin.d.ts +5 -0
  84. package/dist/types/builds/emfe-widgets/widgets-monorepo/packages/stencil/casino-challenges-overlay-drawer/.stencil/tools/plugins/vite-chunk-plugin.d.ts +6 -0
  85. package/dist/types/builds/emfe-widgets/widgets-monorepo/packages/stencil/casino-challenges-overlay-drawer/.stencil/tools/plugins/vite-clean-deps-plugin.d.ts +4 -0
  86. package/dist/types/components/casino-challenges-overlay-drawer/casino-challenges-overlay-drawer.d.ts +77 -0
  87. package/dist/types/components/casino-challenges-overlay-drawer/index.d.ts +1 -0
  88. package/dist/types/components/components/casino-challenge-opt-out-modal/casino-challenge-opt-out-modal.d.ts +12 -0
  89. package/dist/types/components/components/casino-challenge-overlay-background/casino-challenge-overlay-background.d.ts +6 -0
  90. package/dist/types/components/components/casino-challenges-claim-code/casino-challenges-claim-code.d.ts +49 -0
  91. package/dist/types/components/components/casino-challenges-empty-state/casino-challenges-empty-state.d.ts +6 -0
  92. package/dist/types/components/components/casino-challenges-overlay-drawer-history/casino-challenges-overlay-drawer-history.d.ts +33 -0
  93. package/dist/types/components/components/casino-challenges-overlay-drawer-history/components/casino-challenge-drawer-history-item/casino-challenge-drawer-history-item.d.ts +12 -0
  94. package/dist/types/components/components/casino-challenges-overlay-loader/casino-challenges-overlay-loader.d.ts +5 -0
  95. package/dist/types/components/components/casino-challenges-overlay-tabs/casino-challenges-overlay-tabs.d.ts +16 -0
  96. package/dist/types/components/components/swipe-up/swipe-up.d.ts +20 -0
  97. package/dist/types/components.d.ts +362 -0
  98. package/dist/types/consts.d.ts +585 -0
  99. package/dist/types/index.d.ts +1 -0
  100. package/dist/types/stencil-public-runtime.d.ts +1674 -0
  101. package/dist/types/utils/general-info-utils.d.ts +10 -0
  102. package/dist/types/utils/levels-utils.d.ts +5 -0
  103. package/dist/types/utils/locale.utils.d.ts +12 -0
  104. package/dist/types/utils/types.d.ts +327 -0
  105. package/dist/types/utils/utils.d.ts +7 -0
  106. package/loader/cdn.js +1 -0
  107. package/loader/index.cjs.js +1 -0
  108. package/loader/index.d.ts +24 -0
  109. package/loader/index.es2017.js +1 -0
  110. package/loader/index.js +2 -0
  111. package/loader/package.json +11 -0
  112. package/package.json +27 -0
@@ -0,0 +1,83 @@
1
+ :host {
2
+ display: block;
3
+ }
4
+
5
+ :host(.full) {
6
+ width: 100%;
7
+ height: 100%;
8
+ }
9
+ :host(.full) .backdrop {
10
+ border-radius: 0;
11
+ }
12
+
13
+ .Mobile.backdrop {
14
+ border-radius: 0;
15
+ }
16
+ .Mobile .wrapper {
17
+ top: calc(50% - 16px);
18
+ left: calc(50% - 22px);
19
+ }
20
+ .Mobile .wrapper .loader {
21
+ width: 32px;
22
+ height: 44px;
23
+ }
24
+ .Mobile .wrapper .loader span {
25
+ width: 6px;
26
+ height: 28px;
27
+ }
28
+
29
+ .backdrop {
30
+ width: 100%;
31
+ height: 100%;
32
+ position: absolute;
33
+ top: 0;
34
+ background: var(--emw--backdrop-background, rgba(9, 9, 9, 0.8));
35
+ backdrop-filter: blur(6.882352829px);
36
+ z-index: 3;
37
+ border-radius: 30px;
38
+ }
39
+
40
+ .wrapper {
41
+ position: absolute;
42
+ top: calc(50% - 40px);
43
+ left: calc(50% - 27px);
44
+ }
45
+ .wrapper .loader {
46
+ width: 54px;
47
+ height: 80px;
48
+ display: flex;
49
+ justify-content: space-between;
50
+ align-items: center;
51
+ }
52
+ .wrapper .loader span {
53
+ width: 10px;
54
+ height: 52px;
55
+ background: var(--emw--color-green, #00fa5a);
56
+ border-radius: var(--emw--button-border-xl, 999px);
57
+ opacity: 0.15;
58
+ animation: bars 1s infinite linear;
59
+ }
60
+ .wrapper .loader span:nth-child(1) {
61
+ animation-delay: 0s;
62
+ }
63
+ .wrapper .loader span:nth-child(2) {
64
+ animation-delay: 0.33s;
65
+ }
66
+ .wrapper .loader span:nth-child(3) {
67
+ animation-delay: 0.66s;
68
+ }
69
+
70
+ @keyframes bars {
71
+ 0%, 100% {
72
+ height: 50%;
73
+ opacity: 0.15;
74
+ }
75
+ 20% {
76
+ height: 100%;
77
+ opacity: 1;
78
+ }
79
+ 40% {
80
+ height: 50%;
81
+ opacity: 0.15;
82
+ }
83
+ }
@@ -0,0 +1,63 @@
1
+ import { h, Host } from "@stencil/core";
2
+ export class CasinoChallengesOverlayLoader {
3
+ constructor() {
4
+ this.fullSize = false;
5
+ this.isMobile = false;
6
+ }
7
+ render() {
8
+ return (h(Host, { key: 'f15937c1bdc456e2d0e0f9bed18774470df1afd9', class: {
9
+ full: this.fullSize
10
+ } }, h("div", { key: 'b40ec5c8aa4c31c22d06eb033bba49836768de39', class: { backdrop: true, Mobile: this.isMobile } }, h("div", { key: '2f9e58b3c79e9b7d62168ebeb70f8459fb19a103', class: { wrapper: true } }, h("div", { key: 'd86fb87597d2a45581b975a666a1f385674621dd', class: "loader" }, h("span", { key: '412c7854b4b8621de5306e2d0a97011fd8dfc779' }), h("span", { key: 'aab014759e6fa04bd4df97dc12ede209a0aafbbe' }), h("span", { key: 'dfd8a7b6ed9f4b34f425f6009e473ff1f1953c5f' }))))));
11
+ }
12
+ static get is() { return "casino-challenges-overlay-loader"; }
13
+ static get originalStyleUrls() {
14
+ return {
15
+ "$": ["casino-challenges-overlay-loader.scss"]
16
+ };
17
+ }
18
+ static get styleUrls() {
19
+ return {
20
+ "$": ["casino-challenges-overlay-loader.css"]
21
+ };
22
+ }
23
+ static get properties() {
24
+ return {
25
+ "fullSize": {
26
+ "type": "boolean",
27
+ "mutable": false,
28
+ "complexType": {
29
+ "original": "boolean",
30
+ "resolved": "boolean",
31
+ "references": {}
32
+ },
33
+ "required": false,
34
+ "optional": false,
35
+ "docs": {
36
+ "tags": [],
37
+ "text": ""
38
+ },
39
+ "attribute": "full-size",
40
+ "reflect": false,
41
+ "defaultValue": "false"
42
+ },
43
+ "isMobile": {
44
+ "type": "boolean",
45
+ "mutable": false,
46
+ "complexType": {
47
+ "original": "boolean",
48
+ "resolved": "boolean",
49
+ "references": {}
50
+ },
51
+ "required": false,
52
+ "optional": false,
53
+ "docs": {
54
+ "tags": [],
55
+ "text": ""
56
+ },
57
+ "attribute": "is-mobile",
58
+ "reflect": true,
59
+ "defaultValue": "false"
60
+ }
61
+ };
62
+ }
63
+ }
@@ -0,0 +1,116 @@
1
+ .challenges__tabs-wrapper.Mobile {
2
+ width: auto;
3
+ margin: 0 16px;
4
+ }
5
+ .challenges__tabs-wrapper.Mobile .challenges__tabs {
6
+ height: 34px;
7
+ padding: 2px 5px;
8
+ margin: 12px 0;
9
+ font-size: var(--emw--font-size-small, 14px);
10
+ }
11
+ .challenges__tabs-wrapper.Mobile .challenges__tabs.challenges__tabs--promo {
12
+ min-width: 84px;
13
+ border: 1px solid transparent;
14
+ }
15
+ .challenges__tabs-wrapper.Mobile .challenges__tab {
16
+ height: 28px;
17
+ min-width: auto;
18
+ border: 1px solid transparent;
19
+ }
20
+ .challenges__tabs-wrapper.Mobile .challenges-tab--promo {
21
+ min-width: auto;
22
+ }
23
+ .challenges__tabs-wrapper.Mobile .challenges-tab--promo.active {
24
+ background: var(--emw--active-tab-background, rgba(9, 9, 9, 0.4));
25
+ backdrop-filter: blur(11.4705886841px);
26
+ }
27
+ .challenges__tabs-wrapper.Mobile .challenges-tab--promo span {
28
+ margin-right: 4px;
29
+ }
30
+
31
+ .challenges__tabs-wrapper {
32
+ position: relative;
33
+ z-index: 1;
34
+ display: flex;
35
+ align-items: center;
36
+ justify-content: center;
37
+ margin: 0 24px;
38
+ }
39
+ .challenges__tabs-wrapper .challenges__tabs {
40
+ width: 100%;
41
+ box-sizing: border-box;
42
+ height: 42px;
43
+ display: flex;
44
+ align-items: center;
45
+ padding: 4px;
46
+ margin: 16px 0;
47
+ overflow-x: auto;
48
+ scrollbar-width: none;
49
+ -ms-overflow-style: none;
50
+ border-radius: var(--emw--border-radius-large, 99px);
51
+ border: 1px solid var(--emw--color-gray-100, rgba(255, 255, 255, 0.1));
52
+ background: var(--emw--tabs-background, linear-gradient(180deg, rgba(255, 255, 255, 0.02) 0%, rgba(255, 255, 255, 0.1) 100%));
53
+ color: var(--emw--color-white, #fff);
54
+ font-size: var(--emw--font-size-medium, 16px);
55
+ font-weight: var(--emw--font-weight-medium, 500);
56
+ }
57
+ .challenges__tabs-wrapper .challenges__tabs.challenges__tabs--promo {
58
+ min-width: 89px;
59
+ margin-right: 10px;
60
+ padding: 0;
61
+ overflow-x: hidden;
62
+ width: initial;
63
+ }
64
+ .challenges__tabs-wrapper .challenges__tab {
65
+ box-sizing: border-box;
66
+ height: 34px;
67
+ width: 25%;
68
+ min-width: 75px;
69
+ position: relative;
70
+ display: flex;
71
+ justify-content: center;
72
+ align-items: center;
73
+ gap: 4px;
74
+ padding: 4px 8px;
75
+ cursor: pointer;
76
+ text-align: center;
77
+ border-radius: var(--emw--border-radius-large, 99px);
78
+ border: 1px solid transparent;
79
+ }
80
+ .challenges__tabs-wrapper .challenges__tab.active {
81
+ background: var(--emw--active-tab-background, rgba(9, 9, 9, 0.4));
82
+ backdrop-filter: blur(6.882352829px);
83
+ border: 1px solid var(--emw--color-gray-300, rgba(255, 255, 255, 0.07));
84
+ }
85
+ .challenges__tabs-wrapper .challenges__tab.challenges__tab--promo {
86
+ box-sizing: content-box;
87
+ min-width: 65px;
88
+ padding: 8px 12px;
89
+ background: var(--emw--color-gray-200, rgba(255, 255, 255, 0.2));
90
+ box-shadow: 0 1px 0 0 rgba(0, 0, 0, 0.05), 0 4px 4px 0 rgba(0, 0, 0, 0.05), 0 10px 10px 0 rgba(0, 0, 0, 0.1);
91
+ backdrop-filter: blur(10px);
92
+ }
93
+ .challenges__tabs-wrapper .challenges__tab.challenges__tab--promo.active {
94
+ background: var(--emw--active-tab-background, rgba(9, 9, 9, 0.4));
95
+ backdrop-filter: blur(11.4705886841px);
96
+ border: 1px solid transparent;
97
+ }
98
+
99
+ @container challenges-drawer (width <= 500px) {
100
+ .challenges__tabs-wrapper {
101
+ margin: 0 20px;
102
+ }
103
+ .challenges__tabs-wrapper .challenges__tabs {
104
+ font-size: var(--emw--font-size-small, 14px);
105
+ }
106
+ }
107
+ @container challenges-drawer (width <= 400px) {
108
+ .challenges__tabs-wrapper {
109
+ margin: 0 15px;
110
+ }
111
+ }
112
+ @container challenges-drawer (height <= 760px) {
113
+ .challenges__tabs-wrapper .challenges__tabs {
114
+ margin: 0 0 10px;
115
+ }
116
+ }
@@ -0,0 +1,171 @@
1
+ import { h, Host } from "@stencil/core";
2
+ import { translate } from "../../../utils/locale.utils";
3
+ import { EChallengesTabs } from "../../../utils/types";
4
+ import notificationIcon from "../../../assets/notification.svg";
5
+ import crownIcon from "../../../assets/crown.svg";
6
+ export class CasinoChallengeOverlayTabs {
7
+ constructor() {
8
+ this.handleTabClick = (index) => () => {
9
+ this.tabClick.emit(index);
10
+ };
11
+ this.language = 'en';
12
+ this.isMobile = false;
13
+ this.activeTabIndex = EChallengesTabs.Active;
14
+ this.activeTabHasNotification = false;
15
+ this.pendingTabHasNotification = false;
16
+ }
17
+ get tabs() {
18
+ return [
19
+ { label: translate('promo', this.language) },
20
+ { label: translate('active', this.language) },
21
+ { label: translate('pendingTab', this.language) },
22
+ { label: translate('finishedTab', this.language) },
23
+ { label: translate('codeTab', this.language) }
24
+ ];
25
+ }
26
+ render() {
27
+ var _a;
28
+ return (h(Host, { key: 'ee3ef4b4bc68c97e9d2cf09fdb18bd07c89fa393' }, h("div", { key: '7c5ad9fa44f4fb9593be61b4c47fe28d793913c4', class: { 'challenges__tabs-wrapper': true, Mobile: this.isMobile } }, h("div", { key: '2188b25224bd3f9bb2a69b1946490d7eeac49bf4', class: "challenges__tabs challenges__tabs--promo" }, h("div", { key: '6545accdd8c223d1f28c4344497b5aa236653b84', class: {
29
+ challenges__tab: true,
30
+ 'challenges__tab--promo': true,
31
+ active: this.activeTabIndex === EChallengesTabs.Promo
32
+ }, onClick: this.handleTabClick(EChallengesTabs.Promo) }, h("span", { key: 'e145f5bf9fc6c87df0c86bedc70b97c77f1f6021' }, (_a = this.tabs[0]) === null || _a === void 0 ? void 0 : _a.label), h("img", { key: 'd7d2e925a73673ec536f9aeea11211bb8db7988c', src: crownIcon }))), h("div", { key: 'd24f27763e7b288a939252f3b0d2214372e5b922', class: "challenges__tabs" }, this.tabs.map((tab, index) => {
33
+ if (index === EChallengesTabs.Promo)
34
+ return;
35
+ return (h("div", { class: {
36
+ challenges__tab: true,
37
+ active: index === this.activeTabIndex
38
+ }, onClick: this.handleTabClick(index) }, tab.label, ((index === EChallengesTabs.Active && this.activeTabHasNotification) ||
39
+ (index === EChallengesTabs.Pending && this.pendingTabHasNotification)) && (h("img", { src: notificationIcon }))));
40
+ })))));
41
+ }
42
+ static get is() { return "casino-challenges-overlay-tabs"; }
43
+ static get originalStyleUrls() {
44
+ return {
45
+ "$": ["casino-challenges-overlay-tabs.scss"]
46
+ };
47
+ }
48
+ static get styleUrls() {
49
+ return {
50
+ "$": ["casino-challenges-overlay-tabs.css"]
51
+ };
52
+ }
53
+ static get properties() {
54
+ return {
55
+ "language": {
56
+ "type": "string",
57
+ "mutable": false,
58
+ "complexType": {
59
+ "original": "string",
60
+ "resolved": "string",
61
+ "references": {}
62
+ },
63
+ "required": false,
64
+ "optional": false,
65
+ "docs": {
66
+ "tags": [],
67
+ "text": ""
68
+ },
69
+ "attribute": "language",
70
+ "reflect": true,
71
+ "defaultValue": "'en'"
72
+ },
73
+ "isMobile": {
74
+ "type": "boolean",
75
+ "mutable": false,
76
+ "complexType": {
77
+ "original": "boolean",
78
+ "resolved": "boolean",
79
+ "references": {}
80
+ },
81
+ "required": false,
82
+ "optional": false,
83
+ "docs": {
84
+ "tags": [],
85
+ "text": ""
86
+ },
87
+ "attribute": "is-mobile",
88
+ "reflect": true,
89
+ "defaultValue": "false"
90
+ },
91
+ "activeTabIndex": {
92
+ "type": "number",
93
+ "mutable": false,
94
+ "complexType": {
95
+ "original": "EChallengesTabs",
96
+ "resolved": "EChallengesTabs.Active | EChallengesTabs.Code | EChallengesTabs.Finished | EChallengesTabs.Pending | EChallengesTabs.Promo",
97
+ "references": {
98
+ "EChallengesTabs": {
99
+ "location": "import",
100
+ "path": "../../../utils/types",
101
+ "id": "../../../../packages/stencil/casino-challenges-overlay-drawer/src/utils/types.ts::EChallengesTabs"
102
+ }
103
+ }
104
+ },
105
+ "required": false,
106
+ "optional": false,
107
+ "docs": {
108
+ "tags": [],
109
+ "text": ""
110
+ },
111
+ "attribute": "active-tab-index",
112
+ "reflect": true,
113
+ "defaultValue": "EChallengesTabs.Active"
114
+ },
115
+ "activeTabHasNotification": {
116
+ "type": "boolean",
117
+ "mutable": false,
118
+ "complexType": {
119
+ "original": "boolean",
120
+ "resolved": "boolean",
121
+ "references": {}
122
+ },
123
+ "required": false,
124
+ "optional": false,
125
+ "docs": {
126
+ "tags": [],
127
+ "text": ""
128
+ },
129
+ "attribute": "active-tab-has-notification",
130
+ "reflect": true,
131
+ "defaultValue": "false"
132
+ },
133
+ "pendingTabHasNotification": {
134
+ "type": "boolean",
135
+ "mutable": false,
136
+ "complexType": {
137
+ "original": "boolean",
138
+ "resolved": "boolean",
139
+ "references": {}
140
+ },
141
+ "required": false,
142
+ "optional": false,
143
+ "docs": {
144
+ "tags": [],
145
+ "text": ""
146
+ },
147
+ "attribute": "pending-tab-has-notification",
148
+ "reflect": true,
149
+ "defaultValue": "false"
150
+ }
151
+ };
152
+ }
153
+ static get events() {
154
+ return [{
155
+ "method": "tabClick",
156
+ "name": "tabClick",
157
+ "bubbles": true,
158
+ "cancelable": true,
159
+ "composed": true,
160
+ "docs": {
161
+ "tags": [],
162
+ "text": ""
163
+ },
164
+ "complexType": {
165
+ "original": "any",
166
+ "resolved": "any",
167
+ "references": {}
168
+ }
169
+ }];
170
+ }
171
+ }
@@ -0,0 +1,61 @@
1
+ :host {
2
+ display: block;
3
+ height: 100%;
4
+ overflow: hidden;
5
+ }
6
+
7
+ .hero {
8
+ display: flex;
9
+ flex-direction: column;
10
+ align-items: center;
11
+ justify-content: center;
12
+ transition: transform 120ms linear, opacity 120ms linear;
13
+ will-change: transform, opacity;
14
+ margin-bottom: 16px;
15
+ }
16
+
17
+ .swipe-btn {
18
+ display: flex;
19
+ justify-content: center;
20
+ align-items: center;
21
+ border: none;
22
+ padding: 14px 28px;
23
+ cursor: grab;
24
+ touch-action: none;
25
+ user-select: none;
26
+ width: 39px;
27
+ height: 16px;
28
+ margin: 0 auto;
29
+ }
30
+
31
+ .content {
32
+ overflow: hidden;
33
+ transform-origin: top center;
34
+ transition: transform 120ms linear, height 120ms linear, border-radius 120ms linear;
35
+ will-change: transform, height, border-radius;
36
+ border-radius: 20px 20px 0 0;
37
+ border-top: 1px solid var(--emw--color-gray-300, rgba(255, 255, 255, 0.07));
38
+ background: var(--emw--color-black-200, rgba(9, 9, 9, 0.8));
39
+ }
40
+
41
+ .swipe-down-handle {
42
+ display: flex;
43
+ justify-content: center;
44
+ align-items: center;
45
+ padding: 10px 0;
46
+ cursor: grab;
47
+ touch-action: none;
48
+ user-select: none;
49
+ }
50
+
51
+ .swipe-btn {
52
+ border: none;
53
+ border-radius: 999px;
54
+ padding: 14px 28px;
55
+ font-size: var(--emw--font-size-large, 18px);
56
+ background: transparent;
57
+ color: black;
58
+ cursor: grab;
59
+ touch-action: none;
60
+ user-select: none;
61
+ }
@@ -0,0 +1,155 @@
1
+ import { h } from "@stencil/core";
2
+ import swipe from "../../../assets/swipe.svg";
3
+ export class SwipeUp {
4
+ constructor() {
5
+ this.startY = 0;
6
+ this.startProgress = 0;
7
+ this.dragging = false;
8
+ this.isOpened = false;
9
+ this.maxSwipe = 260;
10
+ this.clamp = (v) => Math.max(0, Math.min(1, v));
11
+ this.onPointerDown = (e) => {
12
+ this.dragging = true;
13
+ this.startY = e.clientY;
14
+ this.startProgress = this.progress;
15
+ window.addEventListener('pointermove', this.onPointerMove);
16
+ window.addEventListener('pointerup', this.onPointerUp);
17
+ e.currentTarget.setPointerCapture(e.pointerId);
18
+ };
19
+ this.onPointerMove = (e) => {
20
+ if (!this.dragging)
21
+ return;
22
+ const deltaY = this.startY - e.clientY;
23
+ const deltaProgress = deltaY / this.maxSwipe;
24
+ const next = this.startProgress + deltaProgress;
25
+ this.progress = this.clamp(next);
26
+ };
27
+ this.snap = () => {
28
+ this.progress = this.progress > 0.5 ? 1 : 0;
29
+ };
30
+ this.onPointerUp = () => {
31
+ if (!this.dragging)
32
+ return;
33
+ this.dragging = false;
34
+ this.snap();
35
+ window.removeEventListener('pointermove', this.onPointerMove);
36
+ window.removeEventListener('pointerup', this.onPointerUp);
37
+ };
38
+ this.progress = 0;
39
+ this.isMobile = false;
40
+ this.isOneSlider = false;
41
+ }
42
+ onIsOneSliderChange(newValue) {
43
+ this.maxSwipe = newValue ? 250 : 260;
44
+ }
45
+ onSwipeChange(newValue) {
46
+ var _a;
47
+ (_a = this.swippedUp) === null || _a === void 0 ? void 0 : _a.emit({ progress: newValue, swipped: newValue === 1 });
48
+ if (newValue === 1) {
49
+ this.isOpened = true;
50
+ }
51
+ else if (newValue === 0) {
52
+ this.isOpened = false;
53
+ }
54
+ }
55
+ render() {
56
+ const heroTranslate = this.progress * -this.maxSwipe;
57
+ const heroOpacity = 1 - this.progress;
58
+ const contentTranslate = this.progress * -this.maxSwipe;
59
+ if (this.isMobile) {
60
+ return (h("div", { style: { display: 'flex', height: '100%', 'flex-direction': 'column', overflow: 'auto' } }, h("header", { class: "hero", style: {
61
+ transform: `translateY(${heroTranslate}px)`,
62
+ opacity: `${heroOpacity}`
63
+ } }, h("slot", { name: "header" })), h("main", { class: "content", style: {
64
+ transform: `translateY(${contentTranslate}px)`,
65
+ 'margin-bottom': `-${this.maxSwipe}px`,
66
+ height: '100%',
67
+ overflow: this.isOpened ? 'auto' : 'hidden'
68
+ } }, this.isOpened ? (h("button", { class: "swipe-btn", onPointerDown: this.onPointerDown, style: { position: 'sticky', zIndex: '123', left: 'calc(50% - 40px)' } }, h("img", { src: swipe, width: 23, height: 6, style: { rotate: '180deg' } }))) : (h("button", { class: "swipe-btn", onPointerDown: this.onPointerDown }, h("img", { src: swipe, width: 23, height: 6 }))), h("slot", { name: "details" }))));
69
+ }
70
+ return (h("div", { style: { display: 'flex', height: '100%', 'flex-direction': 'column' } }, h("slot", { name: "header" }), h("slot", { name: "details" })));
71
+ }
72
+ static get is() { return "swipe-up"; }
73
+ static get originalStyleUrls() {
74
+ return {
75
+ "$": ["swipe-up.scss"]
76
+ };
77
+ }
78
+ static get styleUrls() {
79
+ return {
80
+ "$": ["swipe-up.css"]
81
+ };
82
+ }
83
+ static get properties() {
84
+ return {
85
+ "isMobile": {
86
+ "type": "boolean",
87
+ "mutable": false,
88
+ "complexType": {
89
+ "original": "boolean",
90
+ "resolved": "boolean",
91
+ "references": {}
92
+ },
93
+ "required": false,
94
+ "optional": false,
95
+ "docs": {
96
+ "tags": [],
97
+ "text": ""
98
+ },
99
+ "attribute": "is-mobile",
100
+ "reflect": true,
101
+ "defaultValue": "false"
102
+ },
103
+ "isOneSlider": {
104
+ "type": "boolean",
105
+ "mutable": false,
106
+ "complexType": {
107
+ "original": "boolean",
108
+ "resolved": "boolean",
109
+ "references": {}
110
+ },
111
+ "required": false,
112
+ "optional": false,
113
+ "docs": {
114
+ "tags": [],
115
+ "text": ""
116
+ },
117
+ "attribute": "is-one-slider",
118
+ "reflect": true,
119
+ "defaultValue": "false"
120
+ }
121
+ };
122
+ }
123
+ static get states() {
124
+ return {
125
+ "progress": {}
126
+ };
127
+ }
128
+ static get events() {
129
+ return [{
130
+ "method": "swippedUp",
131
+ "name": "swippedUp",
132
+ "bubbles": true,
133
+ "cancelable": true,
134
+ "composed": true,
135
+ "docs": {
136
+ "tags": [],
137
+ "text": ""
138
+ },
139
+ "complexType": {
140
+ "original": "any",
141
+ "resolved": "any",
142
+ "references": {}
143
+ }
144
+ }];
145
+ }
146
+ static get watchers() {
147
+ return [{
148
+ "propName": "isOneSlider",
149
+ "methodName": "onIsOneSliderChange"
150
+ }, {
151
+ "propName": "progress",
152
+ "methodName": "onSwipeChange"
153
+ }];
154
+ }
155
+ }