@shakerquiz/utilities 0.5.105 → 0.5.107

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/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "type": "module",
3
3
  "name": "@shakerquiz/utilities",
4
- "version": "0.5.105",
4
+ "version": "0.5.107",
5
5
  "author": "yurkimus <yurkimus@gmail.com>",
6
6
  "license": "ISC",
7
7
  "repository": {
@@ -0,0 +1,100 @@
1
+ export var VenueAudience = /** @type {const} */ ({
2
+ 'Any': 'Any',
3
+ 'All': 'All',
4
+ 'Restricted': 'Restricted',
5
+ 'Unknown': 'Unknown',
6
+ })
7
+
8
+ export var VenueAudiences = [
9
+ VenueAudience['Any'],
10
+ VenueAudience['All'],
11
+ VenueAudience['Restricted'],
12
+ VenueAudience['Unknown'],
13
+ ]
14
+
15
+ export var PersistedVenueStatuses = [
16
+ VenueAudience['All'],
17
+ VenueAudience['Restricted'],
18
+ ]
19
+
20
+ var VenueAudienceShape = {
21
+ [VenueAudience['All']]: {
22
+ is_adult: false,
23
+ },
24
+
25
+ [VenueAudience['Restricted']]: {
26
+ is_adult: true,
27
+ },
28
+
29
+ [VenueAudience['Unknown']]: {
30
+ is_adult: null,
31
+ },
32
+ }
33
+
34
+ var VenueAudienceShapes = Object.entries(VenueAudienceShape)
35
+
36
+ export var VenueAudienceTitle = {
37
+ [VenueAudience['Any']]: 'Любая',
38
+ [VenueAudience['All']]: 'Без ограничений',
39
+ [VenueAudience['Restricted']]: '18+',
40
+ [VenueAudience['Unknown']]: 'Неизвестно',
41
+ }
42
+
43
+ export var VenueAudienceIcon = {
44
+ [VenueAudience['Any']]: 'hero/outline/square-2-stack',
45
+ [VenueAudience['All']]: 'hero/outline/check-circle',
46
+ [VenueAudience['Restricted']]: 'hero/outline/x-circle',
47
+ [VenueAudience['Unknown']]: 'hero/outline/no-symbol',
48
+ }
49
+
50
+ /**
51
+ * @returns {keyof typeof VenueAudience}
52
+ */
53
+ var fromString = value =>
54
+ value in VenueAudience
55
+ ? value
56
+ : VenueAudience['Unknown']
57
+
58
+ /**
59
+ * @returns {keyof typeof VenueAudience}
60
+ */
61
+ var fromObject = value =>
62
+ VenueAudienceShapes
63
+ .find(([, shape]) => shape.is_adult === value?.is_adult)
64
+ ?.at(0)
65
+ ?? VenueAudience['Unknown']
66
+
67
+ /**
68
+ * @returns {typeof VenueAudienceShape[keyof typeof VenueAudienceShape]}
69
+ */
70
+ var toObject = value =>
71
+ VenueAudienceShapes
72
+ .find(([, shape]) => shape.is_adult === value?.is_adult)
73
+ ?.at(1)
74
+ ?? VenueAudienceShape[VenueAudience['Unknown']]
75
+
76
+ /**
77
+ * @returns {keyof typeof VenueAudience}
78
+ */
79
+ export var inferVenueAudience = value => {
80
+ switch (typeof value) {
81
+ case 'string':
82
+ return fromString(value)
83
+
84
+ case 'object':
85
+ return fromObject(value)
86
+
87
+ default:
88
+ return VenueAudience['Unknown']
89
+ }
90
+ }
91
+
92
+ export var inferVenueAudienceShape = value => {
93
+ switch (typeof value) {
94
+ case 'string':
95
+ return toObject(value)
96
+
97
+ default:
98
+ return VenueAudienceShape[VenueAudience['Unknown']]
99
+ }
100
+ }
@@ -10,6 +10,11 @@ export var VenueCityModes = [
10
10
  VenueCityMode['unknown'],
11
11
  ]
12
12
 
13
+ export var DerivedVenueCityModes = [
14
+ VenueCityMode['known'],
15
+ VenueCityMode['unknown'],
16
+ ]
17
+
13
18
  export var VenueCityModeTitle = /** @type {const} */ ({
14
19
  [VenueCityMode['any']]: 'Любой',
15
20
  [VenueCityMode['known']]: 'Назначен',
@@ -12,7 +12,7 @@ export var VenueStatuses = [
12
12
  VenueStatus['UNKNOWN'],
13
13
  ]
14
14
 
15
- export var WritableVenueStatuses = [
15
+ export var PersistedVenueStatuses = [
16
16
  VenueStatus['ACTIVE'],
17
17
  VenueStatus['ARCHIVE'],
18
18
  ]