sweetalert2 11.1.6 → 11.1.10
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +28 -0
- package/README.md +22 -223
- package/dist/sweetalert2.all.js +129 -45
- package/dist/sweetalert2.all.min.js +2 -2
- package/dist/sweetalert2.css +1 -4
- package/dist/sweetalert2.js +128 -44
- package/dist/sweetalert2.min.css +1 -1
- package/dist/sweetalert2.min.js +1 -1
- package/package.json +17 -16
- package/src/SweetAlert.js +1 -1
- package/src/instanceMethods/_destroy.js +15 -6
- package/src/instanceMethods/_main.js +2 -1
- package/src/instanceMethods/buttons-handlers.js +8 -2
- package/src/instanceMethods/close.js +47 -9
- package/src/privateMethods.js +3 -2
- package/src/privateProps.js +2 -1
- package/src/scss/_toasts.scss +0 -4
- package/src/utils/dom/renderers/renderActions.js +21 -10
- package/src/variables.scss +6 -2
package/CHANGELOG.md
CHANGED
|
@@ -1,3 +1,31 @@
|
|
|
1
|
+
## [11.1.10](https://github.com/sweetalert2/sweetalert2/compare/v11.1.9...v11.1.10) (2021-11-08)
|
|
2
|
+
|
|
3
|
+
|
|
4
|
+
### Bug Fixes
|
|
5
|
+
|
|
6
|
+
* reverse buttons in toasts ([#2344](https://github.com/sweetalert2/sweetalert2/issues/2344)) ([36eb14d](https://github.com/sweetalert2/sweetalert2/commit/36eb14dd407009b1dd2edceef53313807ade5f63))
|
|
7
|
+
|
|
8
|
+
## [11.1.9](https://github.com/sweetalert2/sweetalert2/compare/v11.1.8...v11.1.9) (2021-10-16)
|
|
9
|
+
|
|
10
|
+
|
|
11
|
+
### Bug Fixes
|
|
12
|
+
|
|
13
|
+
* handle the rejection of the initial Swal when chaining multiple Swal inside preConfirm ([#2335](https://github.com/sweetalert2/sweetalert2/issues/2335)) ([84e2e55](https://github.com/sweetalert2/sweetalert2/commit/84e2e55bbbaa9cd1fac0c65f21e63e2c0ecee59e))
|
|
14
|
+
|
|
15
|
+
## [11.1.8](https://github.com/sweetalert2/sweetalert2/compare/v11.1.7...v11.1.8) (2021-10-14)
|
|
16
|
+
|
|
17
|
+
|
|
18
|
+
### Bug Fixes
|
|
19
|
+
|
|
20
|
+
* preConfirm & preDeny promise rejections rejects the main Swal.fire promise ([#2334](https://github.com/sweetalert2/sweetalert2/issues/2334)) ([040b7a9](https://github.com/sweetalert2/sweetalert2/commit/040b7a9beec3da92561462b0dcb307b521464338))
|
|
21
|
+
|
|
22
|
+
## [11.1.7](https://github.com/sweetalert2/sweetalert2/compare/v11.1.6...v11.1.7) (2021-09-22)
|
|
23
|
+
|
|
24
|
+
|
|
25
|
+
### Bug Fixes
|
|
26
|
+
|
|
27
|
+
* buttons outline for toasts ([a51814f](https://github.com/sweetalert2/sweetalert2/commit/a51814f38fe0b674d76292e7c826e50560cedc2c))
|
|
28
|
+
|
|
1
29
|
## [11.1.6](https://github.com/sweetalert2/sweetalert2/compare/v11.1.5...v11.1.6) (2021-09-19)
|
|
2
30
|
|
|
3
31
|
|
package/README.md
CHANGED
|
@@ -1,223 +1,18 @@
|
|
|
1
|
-
<
|
|
2
|
-
<
|
|
3
|
-
</
|
|
4
|
-
|
|
5
|
-
<p align="center">
|
|
6
|
-
<a href="https://sweetalert2.github.io/">
|
|
7
|
-
<img src="/assets/swal2-logo.png" alt="SweetAlert2">
|
|
8
|
-
</a>
|
|
9
|
-
</p>
|
|
10
|
-
|
|
11
|
-
<p align="center">
|
|
12
|
-
A beautiful, responsive, customizable, accessible (WAI-ARIA) replacement for JavaScript's popup boxes. Zero dependencies.
|
|
13
|
-
</p>
|
|
14
|
-
|
|
15
|
-
<p align="center">
|
|
16
|
-
<a href="https://sweetalert2.github.io/">
|
|
17
|
-
<img src="https://raw.github.com/sweetalert2/sweetalert2/master/assets/sweetalert2.gif" width="562"><br>
|
|
18
|
-
See SweetAlert2 in action ↗
|
|
19
|
-
</a>
|
|
20
|
-
</p>
|
|
21
|
-
|
|
22
|
-
<p align="center">
|
|
23
|
-
<a href="https://github.com/sweetalert2/sweetalert2/actions"><img alt="Build Status" src="https://github.com/sweetalert2/sweetalert2/workflows/build/badge.svg"></a>
|
|
24
|
-
<a href="https://codeclimate.com/github/sweetalert2/sweetalert2/test_coverage"><img alt="Coverage Status" src="https://api.codeclimate.com/v1/badges/eba34bb80477933854d4/test_coverage"></a>
|
|
25
|
-
<a href="https://www.npmjs.com/package/sweetalert2"><img alt="Version" src="https://img.shields.io/npm/v/sweetalert2.svg"></a>
|
|
26
|
-
<a href="https://www.jsdelivr.com/package/npm/sweetalert2"><img alt="jsdelivr" src="https://data.jsdelivr.com/v1/package/npm/sweetalert2/badge?style=rounded"></a>
|
|
27
|
-
<a href="#support-and-donations"><img alt="Support Donate" src="https://img.shields.io/static/v1?label=Sponsor&message=%E2%9D%A4&logo=GitHub&color=ea4aaa"></a>
|
|
28
|
-
</p>
|
|
1
|
+
<a href="https://sweetalert2.github.io/">
|
|
2
|
+
<img src="./assets/swal2-logo.png" width="498" alt="SweetAlert2">
|
|
3
|
+
</a>
|
|
29
4
|
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
:moneybag: [Get $100 in free credits with DigitalOcean!](https://m.do.co/c/12907f2ba0bf)
|
|
5
|
+
A beautiful, responsive, customizable, accessible (WAI-ARIA) replacement <br> for JavaScript's popup boxes. Zero dependencies.
|
|
33
6
|
|
|
34
7
|
---
|
|
35
8
|
|
|
36
|
-
|
|
37
|
-
<br>If you're upgrading from v9.x, please [upgrade from v9 to v10](https://github.com/sweetalert2/sweetalert2/releases/tag/v10.0.0) first!
|
|
38
|
-
<br>If you're upgrading from v8.x, please [upgrade from v8 to v9](https://github.com/sweetalert2/sweetalert2/releases/tag/v9.0.0) first!
|
|
39
|
-
<br>If you're upgrading from v7.x, please [upgrade from v7 to v8](https://github.com/sweetalert2/sweetalert2/releases/tag/v8.0.0) first!
|
|
40
|
-
<br>If you're upgrading from v6.x, please [upgrade from v6 to v7](https://github.com/sweetalert2/sweetalert2/releases/tag/v7.0.0) first!
|
|
41
|
-
|
|
42
|
-
:point_right: **Migrating from [SweetAlert](https://github.com/t4t5/sweetalert)?** [SweetAlert 1.x to SweetAlert2 migration guide](https://github.com/sweetalert2/sweetalert2/wiki/Migration-from-SweetAlert-to-SweetAlert2)
|
|
9
|
+
### [Installation](https://sweetalert2.github.io/#download) | [Usage](https://sweetalert2.github.io/#usage) | [Examples](https://sweetalert2.github.io/#examples) | [Recipe gallery](https://sweetalert2.github.io/recipe-gallery/) | [Themes](https://github.com/sweetalert2/sweetalert2-themes) | [React](https://github.com/sweetalert2/sweetalert2-react-content) | [Angular](https://github.com/sweetalert2/ngx-sweetalert2) | [:heart: Donate](https://sweetalert2.github.io/#donations)
|
|
43
10
|
|
|
44
11
|
---
|
|
45
12
|
|
|
46
|
-
|
|
47
|
-
------------
|
|
48
|
-
|
|
49
|
-
```sh
|
|
50
|
-
npm install --save sweetalert2
|
|
51
|
-
```
|
|
52
|
-
|
|
53
|
-
Or grab from [jsdelivr CDN](https://www.jsdelivr.com/package/npm/sweetalert2)
|
|
54
|
-
:
|
|
55
|
-
|
|
56
|
-
```html
|
|
57
|
-
<script src="https://cdn.jsdelivr.net/npm/sweetalert2@11"></script>
|
|
58
|
-
```
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
Usage
|
|
62
|
-
-----
|
|
63
|
-
|
|
64
|
-
```html
|
|
65
|
-
<script src="sweetalert2/dist/sweetalert2.all.min.js"></script>
|
|
66
|
-
```
|
|
67
|
-
|
|
68
|
-
You can also include the stylesheet separately if desired:
|
|
69
|
-
|
|
70
|
-
```html
|
|
71
|
-
<script src="sweetalert2/dist/sweetalert2.min.js"></script>
|
|
72
|
-
<link rel="stylesheet" href="sweetalert2/dist/sweetalert2.min.css">
|
|
73
|
-
```
|
|
74
|
-
|
|
75
|
-
Or:
|
|
76
|
-
|
|
77
|
-
```js
|
|
78
|
-
// ES6 Modules or TypeScript
|
|
79
|
-
import Swal from 'sweetalert2'
|
|
80
|
-
|
|
81
|
-
// CommonJS
|
|
82
|
-
const Swal = require('sweetalert2')
|
|
83
|
-
```
|
|
84
|
-
|
|
85
|
-
Or with JS modules:
|
|
86
|
-
|
|
87
|
-
```html
|
|
88
|
-
<link rel="stylesheet" href="sweetalert2/dist/sweetalert2.css">
|
|
89
|
-
|
|
90
|
-
<script type="module">
|
|
91
|
-
import Swal from 'sweetalert2/src/sweetalert2.js'
|
|
92
|
-
</script>
|
|
93
|
-
```
|
|
94
|
-
|
|
95
|
-
It's possible to import JS and CSS separately, e.g. if you need to customize styles:
|
|
96
|
-
|
|
97
|
-
```js
|
|
98
|
-
import Swal from 'sweetalert2/dist/sweetalert2.js'
|
|
99
|
-
|
|
100
|
-
import 'sweetalert2/src/sweetalert2.scss'
|
|
101
|
-
```
|
|
102
|
-
|
|
103
|
-
Please note that [TypeScript is well-supported](https://github.com/sweetalert2/sweetalert2/blob/master/sweetalert2.d.ts), so you don't have to install a third-party declaration file.
|
|
104
|
-
|
|
105
|
-
|
|
106
|
-
Examples
|
|
107
|
-
--------
|
|
108
|
-
|
|
109
|
-
The most basic message:
|
|
110
|
-
|
|
111
|
-
```js
|
|
112
|
-
Swal.fire('Hello world!')
|
|
113
|
-
```
|
|
114
|
-
|
|
115
|
-
A message signaling an error:
|
|
116
|
-
|
|
117
|
-
```js
|
|
118
|
-
Swal.fire('Oops...', 'Something went wrong!', 'error')
|
|
119
|
-
```
|
|
120
|
-
|
|
121
|
-
Handling the result of SweetAlert2 modal:
|
|
122
|
-
|
|
123
|
-
```js
|
|
124
|
-
Swal.fire({
|
|
125
|
-
title: 'Are you sure?',
|
|
126
|
-
text: 'You will not be able to recover this imaginary file!',
|
|
127
|
-
icon: 'warning',
|
|
128
|
-
showCancelButton: true,
|
|
129
|
-
confirmButtonText: 'Yes, delete it!',
|
|
130
|
-
cancelButtonText: 'No, keep it'
|
|
131
|
-
}).then((result) => {
|
|
132
|
-
if (result.isConfirmed) {
|
|
133
|
-
Swal.fire(
|
|
134
|
-
'Deleted!',
|
|
135
|
-
'Your imaginary file has been deleted.',
|
|
136
|
-
'success'
|
|
137
|
-
)
|
|
138
|
-
// For more information about handling dismissals please visit
|
|
139
|
-
// https://sweetalert2.github.io/#handling-dismissals
|
|
140
|
-
} else if (result.dismiss === Swal.DismissReason.cancel) {
|
|
141
|
-
Swal.fire(
|
|
142
|
-
'Cancelled',
|
|
143
|
-
'Your imaginary file is safe :)',
|
|
144
|
-
'error'
|
|
145
|
-
)
|
|
146
|
-
}
|
|
147
|
-
})
|
|
148
|
-
```
|
|
149
|
-
|
|
150
|
-
## [Go here to see the docs and more examples ↗](https://sweetalert2.github.io/)
|
|
151
|
-
|
|
152
|
-
|
|
153
|
-
Browser compatibility
|
|
154
|
-
---------------------
|
|
155
|
-
|
|
156
|
-
Chrome | Firefox | Safari | Edge
|
|
157
|
-
-------|---------|--------|-----
|
|
158
|
-
:heavy_check_mark: | :heavy_check_mark: | :heavy_check_mark: | :heavy_check_mark: | :heavy_check_mark:
|
|
159
|
-
|
|
160
|
-
If you need IE11 and legacy Edge support, please use [the previous major version](https://github.com/sweetalert2/sweetalert2/releases/tag/v10.16.7).
|
|
161
|
-
|
|
162
|
-
|
|
163
|
-
|
|
164
|
-
Themes ([`sweetalert2-themes ↗`](https://github.com/sweetalert2/sweetalert2-themes))
|
|
165
|
-
------
|
|
166
|
-
|
|
167
|
-
- [`Dark`](https://github.com/sweetalert2/sweetalert2-themes/tree/master/dark)
|
|
168
|
-
- [`Minimal`](https://github.com/sweetalert2/sweetalert2-themes/tree/master/minimal)
|
|
169
|
-
- [`Borderless`](https://github.com/sweetalert2/sweetalert2-themes/tree/master/borderless)
|
|
170
|
-
- [`Bootstrap 4`](https://github.com/sweetalert2/sweetalert2-themes/tree/master/bootstrap-4)
|
|
171
|
-
- [`Material UI`](https://github.com/sweetalert2/sweetalert2-themes/tree/master/material-ui)
|
|
172
|
-
- [`WordPress Admin`](https://github.com/sweetalert2/sweetalert2-themes/tree/master/wordpress-admin)
|
|
173
|
-
- [`Bulma`](https://github.com/sweetalert2/sweetalert2-themes/tree/master/bulma)
|
|
174
|
-
- [`Default`](https://github.com/sweetalert2/sweetalert2-themes/tree/master/default)
|
|
175
|
-
|
|
176
|
-
|
|
177
|
-
Related projects
|
|
178
|
-
-------------------------
|
|
179
|
-
|
|
180
|
-
- [ngx-sweetalert2](https://github.com/sweetalert2/ngx-sweetalert2) - Angular 4+ integration
|
|
181
|
-
- [sweetalert2-react-content](https://github.com/sweetalert2/sweetalert2-react-content) - React integration
|
|
182
|
-
- [sweetalert2-webpack-demo](https://github.com/sweetalert2/sweetalert2-webpack-demo) - webpack demo
|
|
183
|
-
- [sweetalert2-parcel-demo](https://github.com/sweetalert2/sweetalert2-parcel-demo) - overriding SCSS variables demo
|
|
184
|
-
|
|
185
|
-
|
|
186
|
-
Related community projects
|
|
187
|
-
-------------------------
|
|
188
|
-
|
|
189
|
-
- [avil13/vue-sweetalert2](https://github.com/avil13/vue-sweetalert2) - Vue.js wrapper
|
|
190
|
-
- [realrashid/sweet-alert](https://github.com/realrashid/sweet-alert) - Laravel 5 Package
|
|
191
|
-
- [Basaingeal/Razor.SweetAlert2](https://github.com/Basaingeal/Razor.SweetAlert2) - Blazor Wrapper
|
|
192
|
-
- [ElectronAlert](https://electron.guide/electron-alert/) - SweetAlert2 for Electron applications (main process)
|
|
193
|
-
|
|
194
|
-
|
|
195
|
-
Contributing
|
|
196
|
-
------------
|
|
197
|
-
|
|
198
|
-
[](https://codeclimate.com/github/sweetalert2/sweetalert2/maintainability)
|
|
199
|
-
[](https://github.com/sweetalert2/sweetalert2/blob/master/CHANGELOG.md)
|
|
200
|
-
|
|
201
|
-
If you would like to contribute enhancements or fixes, please do the following:
|
|
202
|
-
|
|
203
|
-
1. Fork the `sweetalert2` repository and clone it locally.
|
|
204
|
-
|
|
205
|
-
2. Make sure you have [npm](https://www.npmjs.com/) or [yarn](https://yarnpkg.com/) installed.
|
|
206
|
-
|
|
207
|
-
3. When in the SweetAlert2 directory, run `npm install` or `yarn install` to install dependencies.
|
|
208
|
-
|
|
209
|
-
4. To begin active development, run `npm start` or `yarn start`. This does several things for you:
|
|
210
|
-
- Builds the `dist` folder
|
|
211
|
-
- Serves sandbox.html @ http://localhost:8080/ (browser-sync ui: http://localhost:8081/)
|
|
212
|
-
- Re-builds and re-loads as necessary when files change
|
|
213
|
-
|
|
214
|
-
5. To run tests, run `npm run cypress:open` or `yarn cypress:open`
|
|
215
|
-
|
|
216
|
-
Big Thanks
|
|
217
|
-
----------
|
|
13
|
+
:moneybag: [Get $100 in free credits with DigitalOcean!](https://m.do.co/c/12907f2ba0bf)
|
|
218
14
|
|
|
219
|
-
|
|
220
|
-
- [Serena Verni (@serenaperora)](https://serena.verni.xyz) for creating the amazing project logo
|
|
15
|
+
---
|
|
221
16
|
|
|
222
17
|
Sponsors
|
|
223
18
|
--------
|
|
@@ -226,24 +21,28 @@ For all questions related to sponsorship please contact me via email limon.monte
|
|
|
226
21
|
|
|
227
22
|
[<img src="https://sweetalert2.github.io/images/sponsors/flowcrypt-banner.png">](https://flowcrypt.com/?utm_source=sweetalert2&utm_medium=banner)
|
|
228
23
|
|
|
229
|
-
[<img src="https://sweetalert2.github.io/images/plus.png" width="80">](SPONSORS.md) | [<img src="https://avatars2.githubusercontent.com/u/28631236?s=80&v=4" width="80">](https://flowcrypt.com/?utm_source=sweetalert2&utm_medium=logo) | [<img src="https://sweetalert2.github.io/images/sponsors/
|
|
24
|
+
[<img src="https://sweetalert2.github.io/images/plus.png" width="80">](SPONSORS.md) | [<img src="https://avatars2.githubusercontent.com/u/28631236?s=80&v=4" width="80">](https://flowcrypt.com/?utm_source=sweetalert2&utm_medium=logo) | [<img src="https://sweetalert2.github.io/images/sponsors/mybitcoinslots.png" width="80">](https://www.mybitcoinslots.com/?utm_source=sweetalert2&utm_medium=logo) | [<img src="https://sweetalert2.github.io/images/sponsors/torc-stark.png" width="80">](https://torcstark.com/) | [<img src="https://sweetalert2.github.io/images/sponsors/LifeDigital.png" width="80">](https://lifedigitalwiki.org/?utm_source=sweetalert2&utm_medium=logo) | [<img src="https://sweetalert2.github.io/images/sponsors/coderubik.png" width="80">](https://coderubik.com/?utm_source=sweetalert2&utm_medium=logo)
|
|
230
25
|
-|-|-|-|-|-
|
|
231
|
-
[Become a sponsor](SPONSORS.md) | [FlowCrypt](https://flowcrypt.com/?utm_source=sweetalert2&utm_medium=logo) | [
|
|
26
|
+
[Become a sponsor](SPONSORS.md) | [FlowCrypt](https://flowcrypt.com/?utm_source=sweetalert2&utm_medium=logo) | [My Bitcoin slots](https://www.mybitcoinslots.com/?utm_source=sweetalert2&utm_medium=logo) | [TorcStark](https://torcstark.com/) | [life digital](https://lifedigitalwiki.org/?utm_source=sweetalert2&utm_medium=logo) | [Code Rubik](https://coderubik.com/?utm_source=sweetalert2&utm_medium=logo)
|
|
232
27
|
|
|
233
|
-
[<img src="https://sweetalert2.github.io/images/sponsors/halvinlaina.png" width="80">](https://halvinlaina.fi/) | [<img src="https://avatars0.githubusercontent.com/u/3986989?s=80&v=4" width="80">](https://github.com/tiagostutz) | [<img src="https://sweetalert2.github.io/images/sponsors/sebaebc.png" width="80">](https://github.com/sebaebc)
|
|
234
|
-
|
|
235
|
-
[Halvin Laina](https://halvinlaina.fi/) | [Tiago de Oliveira Stutz](https://github.com/tiagostutz) | [SebaEBC](https://github.com/sebaebc)
|
|
28
|
+
[<img src="https://www.ndchost.com/logos/ndchost-stacked-256x256-transparent.png" width="80">](https://ndchost.com/?utm_campaign=sponsorship&utm_source=github&utm_medium=sweetalert2) | [<img src="https://sweetalert2.github.io/images/sponsors/halvinlaina.png" width="80">](https://halvinlaina.fi/) | [<img src="https://avatars0.githubusercontent.com/u/3986989?s=80&v=4" width="80">](https://github.com/tiagostutz) | [<img src="https://sweetalert2.github.io/images/sponsors/sebaebc.png" width="80">](https://github.com/sebaebc)
|
|
29
|
+
-|-|-|-
|
|
30
|
+
[NDCHost](https://ndchost.com/?utm_campaign=sponsorship&utm_source=github&utm_medium=sweetalert2) | [Halvin Laina](https://halvinlaina.fi/) | [Tiago de Oliveira Stutz](https://github.com/tiagostutz) | [SebaEBC](https://github.com/sebaebc)
|
|
236
31
|
|
|
237
32
|
NSFW Sponsors
|
|
238
33
|
-------------
|
|
239
34
|
|
|
240
|
-
[<img src="https://sweetalert2.github.io/images/sponsors/
|
|
241
|
-
|
|
242
|
-
[
|
|
35
|
+
[<img src="https://sweetalert2.github.io/images/sponsors/yourdoll.jpg" width="80">](https://www.yourdoll.com/) | [<img src="https://sweetalert2.github.io/images/sponsors/annies-dollhouse.png" width="80">](https://anniesdollhouse.com/) | [<img src="https://sweetalert2.github.io/images/sponsors/sexdollcenter.png" width="80">](https://sexdollcenter.vip/) |
|
|
36
|
+
-|-|-
|
|
37
|
+
[Your Doll](https://yourdoll.com/) | [Annie's Dollhouse](https://anniesdollhouse.com/) | [Sex Doll Center](https://sexdollcenter.vip/)
|
|
243
38
|
|
|
244
|
-
[<img src="https://sweetalert2.github.io/images/sponsors/
|
|
245
|
-
|
|
246
|
-
[
|
|
39
|
+
[<img src="https://sweetalert2.github.io/images/sponsors/sexangelbaby.png" width="80">](https://sexangelbaby.com/) | [<img src="https://sweetalert2.github.io/images/sponsors/theadulttoyfinder.png" width="80">](https://theadulttoyfinder.com/?utm_source=sweetalert2&utm_medium=logo) | [<img src="https://sweetalert2.github.io/images/sponsors/vsdoll.png" width="80">](https://vsdoll.com/?utm_source=sweetalert2&utm_medium=logo) | [<img src="https://sweetalert2.github.io/images/sponsors/fresh-materials.png" width="80">](https://www.thefreshmaterials.com/?utm_source=sweetalert2&utm_medium=logo)
|
|
40
|
+
-|-|-|-
|
|
41
|
+
[SexAngelbaby](https://sexangelbaby.com/) | [The Adult Toy Finder](https://theadulttoyfinder.com/?utm_source=sweetalert2&utm_medium=logo) | [VSDoll](https://vsdoll.com/?utm_source=sweetalert2&utm_medium=logo) | [Fresh Materials](https://www.thefreshmaterials.com/?utm_source=sweetalert2&utm_medium=logo)
|
|
42
|
+
|
|
43
|
+
[<img src="https://sweetalert2.github.io/images/sponsors/joylovedolls.png" width="80">](https://www.joylovedolls.com/?utm_source=sweetalert2&utm_medium=logo) | [<img src="https://sweetalert2.github.io/images/sponsors/my-sex-toy-guide.jpg" width="80">](https://www.mysextoyguide.com/?utm_source=sweetalert2&utm_medium=logo) | [<img src="https://sweetalert2.github.io/images/sponsors/best-blowjob-machines.jpg" width="80">](https://www.bestblowjobmachines.com/?utm_source=sweetalert2&utm_medium=logo) | [<img src="https://sweetalert2.github.io/images/sponsors/sextoycollective.jpg" width="80">](https://sextoycollective.com/?utm_source=sweetalert2&utm_medium=logo) | [<img src="https://sweetalert2.github.io/images/sponsors/doctorclimax.png" width="80">](https://doctorclimax.com/)
|
|
44
|
+
-|-|-|-|-
|
|
45
|
+
[Joy Love Dolls](https://www.joylovedolls.com/?utm_source=sweetalert2&utm_medium=logo) | [My Sex Toy Guide](https://www.mysextoyguide.com/?utm_source=sweetalert2&utm_medium=logo) | [Best Blowjob Machines](https://www.bestblowjobmachines.com/?utm_source=sweetalert2&utm_medium=logo) | [STC](https://sextoycollective.com/?utm_source=sweetalert2&utm_medium=logo) | [DoctorClimax](https://doctorclimax.com/)
|
|
247
46
|
|
|
248
47
|
Support and Donations
|
|
249
48
|
---------------------
|