@saooti/octopus-sdk 33.1.3 → 33.2.0

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 (49) hide show
  1. package/README.md +1 -0
  2. package/package.json +1 -3
  3. package/src/App.vue +1 -1
  4. package/src/assets/_utilities.scss +522 -0
  5. package/src/assets/bootstrap.scss +181 -0
  6. package/src/assets/form.scss +0 -20
  7. package/src/assets/general.scss +1 -0
  8. package/src/assets/modal.scss +49 -8
  9. package/src/assets/octopus-library.scss +2 -3
  10. package/src/components/display/categories/CategoryChooser.vue +1 -1
  11. package/src/components/display/categories/CategoryFilter.vue +60 -46
  12. package/src/components/display/categories/CategoryList.vue +22 -19
  13. package/src/components/display/comments/AddCommentModal.vue +60 -67
  14. package/src/components/display/comments/CommentBasicView.vue +2 -3
  15. package/src/components/display/emission/EmissionItem.vue +2 -1
  16. package/src/components/display/emission/EmissionPlayerItem.vue +0 -11
  17. package/src/components/display/participant/ParticipantItem.vue +2 -1
  18. package/src/components/display/playlist/PlaylistItem.vue +2 -1
  19. package/src/components/display/podcasts/PodcastInlineList.vue +1 -1
  20. package/src/components/display/podcasts/PodcastInlineListClassic.vue +1 -1
  21. package/src/components/display/podcasts/PodcastInlineListTemplate.vue +6 -2
  22. package/src/components/display/podcasts/PodcastPlayBar.vue +9 -35
  23. package/src/components/display/podcasts/TagList.vue +0 -2
  24. package/src/components/display/rubriques/RubriqueList.vue +25 -20
  25. package/src/components/display/sharing/PlayerParameters.vue +76 -99
  26. package/src/components/display/sharing/ShareButtons.vue +3 -5
  27. package/src/components/display/sharing/ShareButtonsIntern.vue +1 -1
  28. package/src/components/display/sharing/ShareDistribution.vue +11 -10
  29. package/src/components/display/sharing/SubscribeButtons.vue +1 -1
  30. package/src/components/form/ClassicLoading.vue +5 -1
  31. package/src/components/misc/Accordion.vue +48 -0
  32. package/src/components/misc/ErrorMessage.vue +2 -1
  33. package/src/components/misc/HomeDropdown.vue +66 -63
  34. package/src/components/misc/Nav.vue +92 -0
  35. package/src/components/misc/Popover.vue +137 -98
  36. package/src/components/misc/ProgressBar.vue +96 -0
  37. package/src/components/misc/Spinner.vue +26 -0
  38. package/src/components/misc/modal/ClassicModal.vue +141 -0
  39. package/src/components/misc/modal/ClipboardModal.vue +25 -40
  40. package/src/components/misc/modal/MessageModal.vue +45 -60
  41. package/src/components/misc/modal/NewsletterModal.vue +84 -92
  42. package/src/components/misc/modal/QrCodeModal.vue +19 -36
  43. package/src/components/misc/modal/ShareModalPlayer.vue +69 -133
  44. package/src/components/misc/player/Player.vue +0 -6
  45. package/src/components/misc/player/PlayerCompact.vue +4 -3
  46. package/src/components/misc/player/PlayerLarge.vue +12 -8
  47. package/src/components/misc/player/PlayerProgressBar.vue +10 -48
  48. package/src/components/pages/Podcast.vue +1 -1
  49. package/src/assets/bootstrap-diff.scss +0 -195
package/README.md CHANGED
@@ -698,4 +698,5 @@ See [Configuration Reference](https://cli.vuejs.org/config/).
698
698
  * 33.1.0 Refacto store
699
699
  * 33.1.2 Refacto lazy export
700
700
  * 33.1.3 Refacto lazy export
701
+ * 33.2.0 Refacto delete bootstrap
701
702
 
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@saooti/octopus-sdk",
3
- "version": "33.1.3",
3
+ "version": "33.2.0",
4
4
  "private": false,
5
5
  "description": "Javascript SDK for using octopus",
6
6
  "author": "Saooti",
@@ -21,7 +21,6 @@
21
21
  "@vue/compat": "^3.2.37",
22
22
  "autoprefixer": "^10.4.8",
23
23
  "axios": "^0.24.0",
24
- "bootstrap": "5.2.0",
25
24
  "express": "^4.18.2",
26
25
  "hls.js": "^1.1.5",
27
26
  "humanize-duration": "^3.27.2",
@@ -44,7 +43,6 @@
44
43
  "vuex": "^4.0.2"
45
44
  },
46
45
  "devDependencies": {
47
- "@types/bootstrap": "^5.1.13",
48
46
  "@types/jquery": "^3.5.14",
49
47
  "@typescript-eslint/eslint-plugin": "^5.30.7",
50
48
  "@typescript-eslint/parser": "^5.30.7",
package/src/App.vue CHANGED
@@ -11,8 +11,8 @@
11
11
  />
12
12
  <LeftMenu
13
13
  v-if="displayMenu"
14
- @close="displayMenu=false"
15
14
  :is-education="false"
15
+ @close="displayMenu=false"
16
16
  />
17
17
  <CategoryFilter />
18
18
  <router-view />
@@ -0,0 +1,522 @@
1
+ // Utilities
2
+ $spacer: 1rem !default;
3
+ $font-size-base: 1rem !default;
4
+ $spacers: (
5
+ 0: 0,
6
+ 1: $spacer * .25,
7
+ 2: $spacer * .5,
8
+ 3: $spacer,
9
+ 4: $spacer * 1.5,
10
+ 5: $spacer * 3,
11
+ ) !default;
12
+ $font-sizes: (
13
+ 1: $font-size-base * 2.5,
14
+ 2: $font-size-base * 2,
15
+ 3: $font-size-base * 1.75,
16
+ 4: $font-size-base * 1.5,
17
+ 5: $font-size-base * 1.25,
18
+ 6: $font-size-base,
19
+ ) !default;
20
+ $white: #fff !default;
21
+ $black: #000 !default;
22
+ $primary: #0d6efd !default;
23
+ $secondary: #6c757d !default;
24
+ $success: #198754 !default;
25
+ $info: #0dcaf0 !default;
26
+ $warning: #ffc107 !default;
27
+ $danger: #dc3545 !default;
28
+ $light: #f8f9fa !default;
29
+ $dark: #212529 !default;
30
+ $theme-colors: (
31
+ "primary": $primary,
32
+ "secondary": $secondary,
33
+ "success": $success,
34
+ "info": $info,
35
+ "warning": $warning,
36
+ "danger": $danger,
37
+ "light": $light,
38
+ "dark": $dark,
39
+ "black": $black,
40
+ "white": $white,
41
+ ) !default;
42
+ $utilities: () !default;
43
+ // stylelint-disable-next-line scss/dollar-variable-default
44
+ $utilities: map-merge(
45
+ (
46
+ "align": (
47
+ property: vertical-align,
48
+ class: align,
49
+ values: baseline top middle bottom text-bottom text-top
50
+ ),
51
+ "float": (
52
+ responsive: true,
53
+ property: float,
54
+ values: (
55
+ start: left,
56
+ end: right,
57
+ none: none,
58
+ )
59
+ ),
60
+ "opacity": (
61
+ property: opacity,
62
+ values: (
63
+ 0: 0,
64
+ 25: .25,
65
+ 50: .5,
66
+ 75: .75,
67
+ 100: 1,
68
+ )
69
+ ),
70
+ "overflow": (
71
+ property: overflow,
72
+ values: auto hidden visible scroll,
73
+ ),
74
+ "display": (
75
+ responsive: true,
76
+ print: true,
77
+ property: display,
78
+ class: d,
79
+ values: inline inline-block block grid table table-row table-cell flex inline-flex none
80
+ ),
81
+ "position": (
82
+ property: position,
83
+ values: static relative absolute fixed sticky
84
+ ),
85
+ "border": (
86
+ property: border,
87
+ values: (
88
+ null: 1px solid #dee2e6,
89
+ 0: 0,
90
+ )
91
+ ),
92
+ "border-top": (
93
+ property: border-top,
94
+ values: (
95
+ null: 1px solid #dee2e6,
96
+ 0: 0,
97
+ )
98
+ ),
99
+ "border-end": (
100
+ property: border-right,
101
+ class: border-end,
102
+ values: (
103
+ null: 1px solid #dee2e6,
104
+ 0: 0,
105
+ )
106
+ ),
107
+ "border-bottom": (
108
+ property: border-bottom,
109
+ values: (
110
+ null: 1px solid #dee2e6,
111
+ 0: 0,
112
+ )
113
+ ),
114
+ "border-start": (
115
+ property: border-left,
116
+ class: border-start,
117
+ values: (
118
+ null: 1px solid #dee2e6,
119
+ 0: 0,
120
+ )
121
+ ),
122
+ "border-color": (
123
+ property: border-color,
124
+ class: border,
125
+ values: $theme-colors
126
+ ),
127
+ "width": (
128
+ property: width,
129
+ class: w,
130
+ values: (
131
+ 25: 25%,
132
+ 50: 50%,
133
+ 75: 75%,
134
+ 100: 100%,
135
+ auto: auto
136
+ )
137
+ ),
138
+ "height": (
139
+ property: height,
140
+ class: h,
141
+ values: (
142
+ 25: 25%,
143
+ 50: 50%,
144
+ 75: 75%,
145
+ 100: 100%,
146
+ auto: auto
147
+ )
148
+ ),
149
+ "flex": (
150
+ responsive: true,
151
+ property: flex,
152
+ values: (fill: 1 1 auto)
153
+ ),
154
+ "flex-direction": (
155
+ responsive: true,
156
+ property: flex-direction,
157
+ class: flex,
158
+ values: row column row-reverse column-reverse
159
+ ),
160
+ "flex-grow": (
161
+ responsive: true,
162
+ property: flex-grow,
163
+ class: flex,
164
+ values: (
165
+ grow-0: 0,
166
+ grow-1: 1,
167
+ )
168
+ ),
169
+ "flex-shrink": (
170
+ responsive: true,
171
+ property: flex-shrink,
172
+ class: flex,
173
+ values: (
174
+ shrink-0: 0,
175
+ shrink-1: 1,
176
+ )
177
+ ),
178
+ "flex-wrap": (
179
+ responsive: true,
180
+ property: flex-wrap,
181
+ class: flex,
182
+ values: wrap nowrap wrap-reverse
183
+ ),
184
+ "justify-content": (
185
+ responsive: true,
186
+ property: justify-content,
187
+ values: (
188
+ start: flex-start,
189
+ end: flex-end,
190
+ center: center,
191
+ between: space-between,
192
+ around: space-around,
193
+ evenly: space-evenly,
194
+ )
195
+ ),
196
+ "align-items": (
197
+ responsive: true,
198
+ property: align-items,
199
+ values: (
200
+ start: flex-start,
201
+ end: flex-end,
202
+ center: center,
203
+ baseline: baseline,
204
+ stretch: stretch,
205
+ )
206
+ ),
207
+ "align-content": (
208
+ responsive: true,
209
+ property: align-content,
210
+ values: (
211
+ start: flex-start,
212
+ end: flex-end,
213
+ center: center,
214
+ between: space-between,
215
+ around: space-around,
216
+ stretch: stretch,
217
+ )
218
+ ),
219
+ "align-self": (
220
+ responsive: true,
221
+ property: align-self,
222
+ values: (
223
+ auto: auto,
224
+ start: flex-start,
225
+ end: flex-end,
226
+ center: center,
227
+ baseline: baseline,
228
+ stretch: stretch,
229
+ )
230
+ ),
231
+ "margin": (
232
+ responsive: true,
233
+ property: margin,
234
+ class: m,
235
+ values: map-merge($spacers, (auto: auto))
236
+ ),
237
+ "margin-x": (
238
+ responsive: true,
239
+ property: margin-right margin-left,
240
+ class: mx,
241
+ values: map-merge($spacers, (auto: auto))
242
+ ),
243
+ "margin-y": (
244
+ responsive: true,
245
+ property: margin-top margin-bottom,
246
+ class: my,
247
+ values: map-merge($spacers, (auto: auto))
248
+ ),
249
+ "margin-top": (
250
+ responsive: true,
251
+ property: margin-top,
252
+ class: mt,
253
+ values: map-merge($spacers, (auto: auto))
254
+ ),
255
+ "margin-end": (
256
+ responsive: true,
257
+ property: margin-right,
258
+ class: me,
259
+ values: map-merge($spacers, (auto: auto))
260
+ ),
261
+ "margin-bottom": (
262
+ responsive: true,
263
+ property: margin-bottom,
264
+ class: mb,
265
+ values: map-merge($spacers, (auto: auto))
266
+ ),
267
+ "margin-start": (
268
+ responsive: true,
269
+ property: margin-left,
270
+ class: ms,
271
+ values: map-merge($spacers, (auto: auto))
272
+ ),
273
+ // Padding utilities
274
+ "padding": (
275
+ responsive: true,
276
+ property: padding,
277
+ class: p,
278
+ values: $spacers
279
+ ),
280
+ "padding-x": (
281
+ responsive: true,
282
+ property: padding-right padding-left,
283
+ class: px,
284
+ values: $spacers
285
+ ),
286
+ "padding-y": (
287
+ responsive: true,
288
+ property: padding-top padding-bottom,
289
+ class: py,
290
+ values: $spacers
291
+ ),
292
+ "padding-top": (
293
+ responsive: true,
294
+ property: padding-top,
295
+ class: pt,
296
+ values: $spacers
297
+ ),
298
+ "padding-end": (
299
+ responsive: true,
300
+ property: padding-right,
301
+ class: pe,
302
+ values: $spacers
303
+ ),
304
+ "padding-bottom": (
305
+ responsive: true,
306
+ property: padding-bottom,
307
+ class: pb,
308
+ values: $spacers
309
+ ),
310
+ "padding-start": (
311
+ responsive: true,
312
+ property: padding-left,
313
+ class: ps,
314
+ values: $spacers
315
+ ),
316
+ "font-size": (
317
+ rfs: true,
318
+ property: font-size,
319
+ class: fs,
320
+ values: $font-sizes
321
+ ),
322
+ "font-weight": (
323
+ property: font-weight,
324
+ class: fw,
325
+ values: (
326
+ light: 300,
327
+ lighter:lighter,
328
+ normal: 400,
329
+ bold: 700,
330
+ semibold: 600,
331
+ bolder:bolder
332
+ )
333
+ ),
334
+ "text-align": (
335
+ responsive: true,
336
+ property: text-align,
337
+ class: text,
338
+ values: (
339
+ start: left,
340
+ end: right,
341
+ center: center,
342
+ )
343
+ ),
344
+ "text-decoration": (
345
+ property: text-decoration,
346
+ values: none underline line-through
347
+ ),
348
+ "text-transform": (
349
+ property: text-transform,
350
+ class: text,
351
+ values: lowercase uppercase capitalize
352
+ ),
353
+ "white-space": (
354
+ property: white-space,
355
+ class: text,
356
+ values: (
357
+ wrap: normal,
358
+ nowrap: nowrap,
359
+ )
360
+ ),
361
+ "word-wrap": (
362
+ property: word-wrap word-break,
363
+ class: text,
364
+ values: (break: break-word),
365
+ rtl: false
366
+ ),
367
+ "color": (
368
+ property: color,
369
+ class: text,
370
+ values: $theme-colors,
371
+ ),
372
+ "background-color": (
373
+ property: background-color,
374
+ class: bg,
375
+ values: map-merge(
376
+ $theme-colors,
377
+ (
378
+ "transparent": transparent
379
+ )
380
+ )
381
+ ),
382
+ // scss-docs-end utils-bg-color
383
+ "gradient": (
384
+ property: background-image,
385
+ class: bg,
386
+ values: (gradient: linear-gradient(180deg, rgba($white, .15), rgba($white, 0)))
387
+ ),
388
+ "rounded": (
389
+ property: border-radius,
390
+ class: rounded,
391
+ values: (
392
+ null: .375rem,
393
+ 0: 0,
394
+ 1: .25rem,
395
+ 2: .375rem,
396
+ 3: .5rem,
397
+ 4: 1rem,
398
+ 5:2rem,
399
+ circle: 50%,
400
+ pill: 50rem
401
+ )
402
+ ),
403
+ "rounded-top": (
404
+ property: border-top-left-radius border-top-right-radius,
405
+ class: rounded-top,
406
+ values: (null: .375rem)
407
+ ),
408
+ "rounded-end": (
409
+ property: border-top-right-radius border-bottom-right-radius,
410
+ class: rounded-end,
411
+ values: (null: .375rem)
412
+ ),
413
+ "rounded-bottom": (
414
+ property: border-bottom-right-radius border-bottom-left-radius,
415
+ class: rounded-bottom,
416
+ values: (null: .375rem)
417
+ ),
418
+ "rounded-start": (
419
+ property: border-bottom-left-radius border-top-left-radius,
420
+ class: rounded-start,
421
+ values: (null: .375rem)
422
+ ),
423
+ "visibility": (
424
+ property: visibility,
425
+ class: null,
426
+ values: (
427
+ visible: visible,
428
+ invisible: hidden,
429
+ )
430
+ )
431
+ ),
432
+ $utilities
433
+ );
434
+ @mixin generate-utility($utility, $infix, $is-rfs-media-query: false) {
435
+ $values: map-get($utility, values);
436
+ // If the values are a list or string, convert it into a map
437
+ @if type-of($values) == "string" or type-of(nth($values, 1)) != "list" {
438
+ $values: zip($values, $values);
439
+ }
440
+ @each $key, $value in $values {
441
+ $properties: map-get($utility, property);
442
+ // Multiple properties are possible, for example with vertical or horizontal margins or paddings
443
+ @if type-of($properties) == "string" {
444
+ $properties: append((), $properties);
445
+ }
446
+
447
+ // Use custom class if present
448
+ $property-class: if(map-has-key($utility, class), map-get($utility, class), nth($properties, 1));
449
+ $property-class: if($property-class == null, "", $property-class);
450
+
451
+ // Use custom CSS variable name if present, otherwise default to `class`
452
+ $css-variable-name: if(map-has-key($utility, css-variable-name), map-get($utility, css-variable-name), map-get($utility, class));
453
+
454
+ // State params to generate pseudo-classes
455
+ $state: if(map-has-key($utility, state), map-get($utility, state), ());
456
+
457
+ $infix: if($property-class == "" and str-slice($infix, 1, 1) == "-", str-slice($infix, 2), $infix);
458
+
459
+ // Don't prefix if value key is null (eg. with shadow class)
460
+ $property-class-modifier: if($key, if($property-class == "" and $infix == "", "", "-") + $key, "");
461
+
462
+ @if map-get($utility, rfs) {
463
+ // Inside the media query
464
+ @if $is-rfs-media-query {
465
+ $val: rfs-value($value);
466
+
467
+ // Do not render anything if fluid and non fluid values are the same
468
+ $value: if($val == rfs-fluid-value($value), null, $val);
469
+ }
470
+ @else {
471
+ $value: rfs-fluid-value($value);
472
+ }
473
+ }
474
+
475
+ $is-css-var: map-get($utility, css-var);
476
+ $is-rtl: map-get($utility, rtl);
477
+
478
+ @if $value != null {
479
+ @if $is-rtl == false {
480
+ /* rtl:begin:remove */
481
+ }
482
+
483
+ @if $is-css-var {
484
+ .#{$property-class + $infix + $property-class-modifier} {
485
+ #{$css-variable-name}: #{$value};
486
+ }
487
+
488
+ @each $pseudo in $state {
489
+ .#{$property-class + $infix + $property-class-modifier}-#{$pseudo}:#{$pseudo} {
490
+ #{$css-variable-name}: #{$value};
491
+ }
492
+ }
493
+ } @else {
494
+ .#{$property-class + $infix + $property-class-modifier} {
495
+ @each $property in $properties {
496
+ #{$property}: $value if(true, !important, null);
497
+ }
498
+ }
499
+
500
+ @each $pseudo in $state {
501
+ .#{$property-class + $infix + $property-class-modifier}-#{$pseudo}:#{$pseudo} {
502
+ @each $property in $properties {
503
+ #{$property}: $value if(true, !important, null);
504
+ }
505
+ }
506
+ }
507
+ }
508
+
509
+ @if $is-rtl == false {
510
+ /* rtl:end:remove */
511
+ }
512
+ }
513
+ }
514
+ }
515
+
516
+ @each $key, $utility in $utilities {
517
+ // The utility can be disabled with `false`, thus check if the utility is a map first
518
+ // Then check if the utility needs print styles
519
+ @if type-of($utility) == "map" {
520
+ @include generate-utility($utility, "");
521
+ }
522
+ }