sveltekit-ui 1.1.15 → 1.1.17

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 (200) hide show
  1. package/package.json +3 -3
  2. package/src/routes/+page.svelte +24 -0
  3. package/dist/Components/Alert/index.svelte +0 -88
  4. package/dist/Components/Alert/index.svelte.js +0 -101
  5. package/dist/Components/ArrowToggle/index.svelte +0 -62
  6. package/dist/Components/Attachment/index.svelte +0 -77
  7. package/dist/Components/Attachment/index.svelte.js +0 -119
  8. package/dist/Components/Audio/index.svelte +0 -193
  9. package/dist/Components/Audio/index.svelte.js +0 -463
  10. package/dist/Components/AudioEditor/index.svelte +0 -252
  11. package/dist/Components/AudioEditor/index.svelte.js +0 -977
  12. package/dist/Components/AudioEditor/samples/alloy-voice-sample.mp3 +0 -0
  13. package/dist/Components/AudioEditor/samples/echo-voice-sample.mp3 +0 -0
  14. package/dist/Components/AudioEditor/samples/fable-voice-sample.mp3 +0 -0
  15. package/dist/Components/AudioEditor/samples/nova-voice-sample.mp3 +0 -0
  16. package/dist/Components/AudioEditor/samples/onyx-voice-sample.mp3 +0 -0
  17. package/dist/Components/AudioEditor/samples/shimmer-voice-sample.mp3 +0 -0
  18. package/dist/Components/AuthCodeInput/index.svelte +0 -85
  19. package/dist/Components/AuthCodeInput/index.svelte.js +0 -95
  20. package/dist/Components/Breadcrumbs/index.svelte +0 -27
  21. package/dist/Components/Breadcrumbs/index.svelte.js +0 -88
  22. package/dist/Components/Button/index.svelte +0 -721
  23. package/dist/Components/Button/index.svelte.js +0 -375
  24. package/dist/Components/Chart/Klines/index.svelte +0 -87
  25. package/dist/Components/Chart/index.svelte +0 -226
  26. package/dist/Components/Chart/index.svelte.js +0 -1090
  27. package/dist/Components/ChartInput/DisplayNav/Klines/index.svelte +0 -150
  28. package/dist/Components/ChartInput/DisplayNav/Lines/index.svelte +0 -45
  29. package/dist/Components/ChartInput/DisplayNav/index.svelte +0 -297
  30. package/dist/Components/ChartInput/EditPanel/index.svelte +0 -155
  31. package/dist/Components/ChartInput/index.svelte +0 -21
  32. package/dist/Components/ChartInput/index.svelte.js +0 -671
  33. package/dist/Components/Checkbox/index.svelte +0 -411
  34. package/dist/Components/Checkbox/index.svelte.js +0 -178
  35. package/dist/Components/Code/index.svelte +0 -23
  36. package/dist/Components/Code/index.svelte.js +0 -33
  37. package/dist/Components/Color/index.svelte +0 -51
  38. package/dist/Components/Color/index.svelte.js +0 -31
  39. package/dist/Components/ColorInput/ChromaPicker/index.svelte +0 -50
  40. package/dist/Components/ColorInput/ColorPalette/index.svelte +0 -62
  41. package/dist/Components/ColorInput/OpacityPicker/index.svelte +0 -68
  42. package/dist/Components/ColorInput/ShowcasePicker/index.svelte +0 -136
  43. package/dist/Components/ColorInput/index.svelte +0 -70
  44. package/dist/Components/ColorInput/index.svelte.js +0 -386
  45. package/dist/Components/ConditionsInput/index.svelte +0 -46
  46. package/dist/Components/ConditionsInput/index.svelte.js +0 -201
  47. package/dist/Components/Confetti/index.svelte +0 -98
  48. package/dist/Components/Confetti/index.svelte.js +0 -94
  49. package/dist/Components/Content/index.svelte +0 -500
  50. package/dist/Components/Content/index.svelte.js +0 -910
  51. package/dist/Components/ContentInput/AttributesInput/CustomConfig/Audio/index.svelte +0 -31
  52. package/dist/Components/ContentInput/AttributesInput/CustomConfig/Audio/index.svelte.js +0 -258
  53. package/dist/Components/ContentInput/AttributesInput/CustomConfig/AudioAdvanced/index.svelte +0 -31
  54. package/dist/Components/ContentInput/AttributesInput/CustomConfig/AudioAdvanced/index.svelte.js +0 -258
  55. package/dist/Components/ContentInput/AttributesInput/CustomConfig/Dropdown/index.svelte +0 -58
  56. package/dist/Components/ContentInput/AttributesInput/CustomConfig/Dropdown/index.svelte.js +0 -206
  57. package/dist/Components/ContentInput/AttributesInput/CustomConfig/Image/index.svelte +0 -28
  58. package/dist/Components/ContentInput/AttributesInput/CustomConfig/Image/index.svelte.js +0 -224
  59. package/dist/Components/ContentInput/AttributesInput/CustomConfig/Number/index.svelte +0 -44
  60. package/dist/Components/ContentInput/AttributesInput/CustomConfig/Number/index.svelte.js +0 -272
  61. package/dist/Components/ContentInput/AttributesInput/CustomConfig/Qr/index.svelte +0 -41
  62. package/dist/Components/ContentInput/AttributesInput/CustomConfig/Qr/index.svelte.js +0 -202
  63. package/dist/Components/ContentInput/AttributesInput/CustomConfig/Slider/index.svelte +0 -19
  64. package/dist/Components/ContentInput/AttributesInput/CustomConfig/Slider/index.svelte.js +0 -117
  65. package/dist/Components/ContentInput/AttributesInput/CustomConfig/TableAdvanced/index.svelte +0 -60
  66. package/dist/Components/ContentInput/AttributesInput/CustomConfig/TableAdvanced/index.svelte.js +0 -542
  67. package/dist/Components/ContentInput/AttributesInput/CustomConfig/Tag/index.svelte +0 -47
  68. package/dist/Components/ContentInput/AttributesInput/CustomConfig/Tag/index.svelte.js +0 -185
  69. package/dist/Components/ContentInput/AttributesInput/CustomConfig/TextInput/index.svelte +0 -35
  70. package/dist/Components/ContentInput/AttributesInput/CustomConfig/TextInput/index.svelte.js +0 -222
  71. package/dist/Components/ContentInput/AttributesInput/CustomConfig/TimeInput/index.svelte +0 -20
  72. package/dist/Components/ContentInput/AttributesInput/CustomConfig/TimeInput/index.svelte.js +0 -84
  73. package/dist/Components/ContentInput/AttributesInput/DefinedTypeInput/index.svelte +0 -25
  74. package/dist/Components/ContentInput/AttributesInput/DefinedTypeInput/index.svelte.js +0 -91
  75. package/dist/Components/ContentInput/AttributesInput/index.svelte +0 -352
  76. package/dist/Components/ContentInput/AttributesInput/index.svelte.js +0 -1436
  77. package/dist/Components/ContentInput/ContentPanelBuilder/AddElement/index.svelte +0 -64
  78. package/dist/Components/ContentInput/ContentPanelBuilder/AddElement/index.svelte.js +0 -97
  79. package/dist/Components/ContentInput/ContentPanelBuilder/ElementList/index.svelte +0 -184
  80. package/dist/Components/ContentInput/ContentPanelBuilder/index.svelte +0 -41
  81. package/dist/Components/ContentInput/index.svelte +0 -78
  82. package/dist/Components/ContentInput/index.svelte.js +0 -1197
  83. package/dist/Components/CronInput/index.svelte +0 -78
  84. package/dist/Components/CronInput/index.svelte.js +0 -198
  85. package/dist/Components/DataTypeInput/index.svelte +0 -174
  86. package/dist/Components/DataTypeInput/index.svelte.js +0 -565
  87. package/dist/Components/Dropdown/index.svelte +0 -116
  88. package/dist/Components/Dropdown/index.svelte.js +0 -403
  89. package/dist/Components/EmailAddress/index.svelte +0 -22
  90. package/dist/Components/EmailAddress/index.svelte.js +0 -45
  91. package/dist/Components/ErrorX/index.svelte +0 -58
  92. package/dist/Components/Eye/index.svelte +0 -57
  93. package/dist/Components/FileInput/index.svelte +0 -146
  94. package/dist/Components/FileInput/index.svelte.js +0 -225
  95. package/dist/Components/Hamburger/index.svelte +0 -99
  96. package/dist/Components/HorizScrollBox/index.svelte +0 -145
  97. package/dist/Components/Icon/index.svelte +0 -412
  98. package/dist/Components/Icon/index.svelte.js +0 -116
  99. package/dist/Components/IconInput/index.svelte +0 -77
  100. package/dist/Components/IconInput/index.svelte.js +0 -259
  101. package/dist/Components/Image/index.svelte +0 -126
  102. package/dist/Components/Image/index.svelte.js +0 -116
  103. package/dist/Components/ImageEditor/Image/CropBox/index.svelte +0 -165
  104. package/dist/Components/ImageEditor/Image/index.svelte +0 -104
  105. package/dist/Components/ImageEditor/Panels/AI/index.svelte +0 -44
  106. package/dist/Components/ImageEditor/Panels/Crop/index.svelte +0 -96
  107. package/dist/Components/ImageEditor/Panels/File/QualityPicker/index.svelte +0 -124
  108. package/dist/Components/ImageEditor/Panels/File/index.svelte +0 -74
  109. package/dist/Components/ImageEditor/Panels/Filters/index.svelte +0 -46
  110. package/dist/Components/ImageEditor/Panels/Resize/index.svelte +0 -58
  111. package/dist/Components/ImageEditor/index.svelte +0 -93
  112. package/dist/Components/ImageEditor/index.svelte.js +0 -1961
  113. package/dist/Components/ImageSlider/index.svelte +0 -124
  114. package/dist/Components/ImageSlider/index.svelte.js +0 -99
  115. package/dist/Components/InfoBox/index.svelte +0 -89
  116. package/dist/Components/Json/Nested/index.svelte +0 -157
  117. package/dist/Components/Json/index.svelte +0 -60
  118. package/dist/Components/Json/index.svelte.js +0 -594
  119. package/dist/Components/LabeledItem/index.svelte +0 -102
  120. package/dist/Components/Layout/NavBar/FullNav/index.svelte +0 -52
  121. package/dist/Components/Layout/NavBar/NavGuts/index.svelte +0 -87
  122. package/dist/Components/Layout/NavBar/index.svelte +0 -72
  123. package/dist/Components/Layout/index.svelte +0 -149
  124. package/dist/Components/Layout/index.svelte.js +0 -360
  125. package/dist/Components/Link/index.svelte +0 -47
  126. package/dist/Components/Link/index.svelte.js +0 -136
  127. package/dist/Components/LoadingSuccessDiv/index.svelte +0 -51
  128. package/dist/Components/LoadingWheel/index.svelte +0 -38
  129. package/dist/Components/Location/index.svelte +0 -79
  130. package/dist/Components/Location/index.svelte.js +0 -288
  131. package/dist/Components/LocationInput/index.svelte +0 -197
  132. package/dist/Components/LocationInput/index.svelte.js +0 -965
  133. package/dist/Components/Number/index.svelte +0 -47
  134. package/dist/Components/Number/index.svelte.js +0 -151
  135. package/dist/Components/PhoneCountryCode/index.svelte +0 -7
  136. package/dist/Components/PhoneCountryCode/index.svelte.js +0 -260
  137. package/dist/Components/PhoneNumber/index.svelte +0 -22
  138. package/dist/Components/PhoneNumber/index.svelte.js +0 -41
  139. package/dist/Components/Popover/index.svelte +0 -396
  140. package/dist/Components/Popover/index.svelte.js +0 -319
  141. package/dist/Components/Qr/index.svelte +0 -85
  142. package/dist/Components/Qr/index.svelte.js +0 -301
  143. package/dist/Components/QrInput/index.svelte +0 -47
  144. package/dist/Components/QrInput/index.svelte.js +0 -218
  145. package/dist/Components/Slider/index.svelte +0 -239
  146. package/dist/Components/Slider/index.svelte.js +0 -469
  147. package/dist/Components/Spacer/index.svelte +0 -41
  148. package/dist/Components/StoragePicker/DisplayFile/index.svelte +0 -15
  149. package/dist/Components/StoragePicker/index.svelte +0 -187
  150. package/dist/Components/StoragePicker/index.svelte.js +0 -592
  151. package/dist/Components/SuccessCheck/index.svelte +0 -56
  152. package/dist/Components/TableAdvanced/ColumnInput/index.svelte +0 -117
  153. package/dist/Components/TableAdvanced/ColumnInput/index.svelte.js +0 -456
  154. package/dist/Components/TableAdvanced/FilterInput/index.svelte +0 -54
  155. package/dist/Components/TableAdvanced/FilterInput/index.svelte.js +0 -247
  156. package/dist/Components/TableAdvanced/Pagination/index.svelte +0 -43
  157. package/dist/Components/TableAdvanced/Pagination/index.svelte.js +0 -97
  158. package/dist/Components/TableAdvanced/SortByInput/index.svelte +0 -72
  159. package/dist/Components/TableAdvanced/SortByInput/index.svelte.js +0 -176
  160. package/dist/Components/TableAdvanced/index.svelte +0 -275
  161. package/dist/Components/TableAdvanced/index.svelte.js +0 -1565
  162. package/dist/Components/Tag/index.svelte +0 -45
  163. package/dist/Components/Tag/index.svelte.js +0 -76
  164. package/dist/Components/TextArrayInput/index.svelte +0 -108
  165. package/dist/Components/TextArrayInput/index.svelte.js +0 -239
  166. package/dist/Components/TextInput/PasswordTooltip/index.svelte +0 -89
  167. package/dist/Components/TextInput/index.svelte +0 -223
  168. package/dist/Components/TextInput/index.svelte.js +0 -447
  169. package/dist/Components/Time/index.svelte +0 -7
  170. package/dist/Components/Time/index.svelte.js +0 -38
  171. package/dist/Components/TimeInput/NumberToggler/index.svelte +0 -34
  172. package/dist/Components/TimeInput/NumberToggler/index.svelte.js +0 -79
  173. package/dist/Components/TimeInput/index.js +0 -702
  174. package/dist/Components/TimeInput/index.svelte +0 -211
  175. package/dist/Components/TimeInput/index.svelte.js +0 -638
  176. package/dist/Components/Tooltip/index.svelte +0 -143
  177. package/dist/Components/TransparentBackground/index.svelte +0 -153
  178. package/dist/Components/TypingDots/index.svelte +0 -84
  179. package/dist/Components/VariablePathInput/index.svelte +0 -63
  180. package/dist/Components/VariablePathInput/index.svelte.js +0 -273
  181. package/dist/Components/VideoTBD/index.svelte +0 -100
  182. package/dist/Components/XFollow/index.svelte +0 -42
  183. package/dist/Components/XPost/index.svelte +0 -52
  184. package/dist/Components/XPost/index.svelte.js +0 -64
  185. package/dist/Components/YoutubeChannelButton/index.svelte +0 -82
  186. package/dist/Components/YoutubeVideo/index.svelte +0 -73
  187. package/dist/Components/YoutubeVideo/index.svelte.js +0 -54
  188. package/dist/actions/draggable.js +0 -49
  189. package/dist/actions/index.js +0 -24
  190. package/dist/actions/no_spaces.js +0 -33
  191. package/dist/actions/numbers_only.js +0 -26
  192. package/dist/actions/scroll_y.js +0 -28
  193. package/dist/actions/stop_scroll_propagation_y.js +0 -42
  194. package/dist/actions/swipe_handler.js +0 -295
  195. package/dist/client/astc_formatting/index.js +0 -1128
  196. package/dist/client/docs/index.js +0 -7622
  197. package/dist/client/index.js +0 -735
  198. package/dist/client/types/index.js +0 -2812
  199. package/dist/index.js +0 -180
  200. package/dist/style.css +0 -682
@@ -1,977 +0,0 @@
1
- import { create_unique_id, set_closurable, clean_file_name, url_to_file } from "../../client/index.js"
2
- import { create_popover_manager } from "../Popover/index.svelte.js"
3
- import { create_button_manager } from "../Button/index.svelte.js"
4
- import { create_text_input_manager } from "../TextInput/index.svelte.js"
5
- import { create_storage_picker_manager } from "../StoragePicker/index.svelte.js"
6
- import { create_dropdown_manager } from "../Dropdown/index.svelte.js"
7
- import { create_audio_manager } from "../Audio/index.svelte.js"
8
- import alloy_voice_sample from "./samples/alloy-voice-sample.mp3"
9
- import echo_voice_sample from "./samples/echo-voice-sample.mp3"
10
- import fable_voice_sample from "./samples/fable-voice-sample.mp3"
11
- import nova_voice_sample from "./samples/nova-voice-sample.mp3"
12
- import onyx_voice_sample from "./samples/onyx-voice-sample.mp3"
13
- import shimmer_voice_sample from "./samples/shimmer-voice-sample.mp3"
14
-
15
- export function create_audio_editor_manager(config) {
16
- let id = create_unique_id(null, 20)
17
-
18
- const voices = [
19
- {
20
- id: "alloy",
21
- name: "Alloy",
22
- labels: [],
23
- sample: alloy_voice_sample,
24
- },
25
- {
26
- id: "echo",
27
- name: "Echo",
28
- labels: [],
29
- sample: echo_voice_sample,
30
- },
31
- {
32
- id: "fable",
33
- name: "Fable",
34
- labels: [],
35
- sample: fable_voice_sample,
36
- },
37
- {
38
- id: "nova",
39
- name: "Nova",
40
- labels: [],
41
- sample: nova_voice_sample,
42
- },
43
- {
44
- id: "onyx",
45
- name: "Onyx",
46
- labels: [],
47
- sample: onyx_voice_sample,
48
- },
49
- {
50
- id: "shimmer",
51
- name: "Shimmer",
52
- labels: [],
53
- sample: shimmer_voice_sample,
54
- },
55
- ]
56
-
57
- const audio_tags_input_base = {
58
- TIT2: null,
59
- TALB: null,
60
- TPE1: null,
61
- APIC: {
62
- mime: null,
63
- type: {
64
- id: 0,
65
- },
66
- description: null,
67
- imageBuffer: null,
68
- },
69
- TYER: 2024,
70
- USLT: {
71
- language: "eng",
72
- text: null,
73
- },
74
- TLAN: null,
75
- }
76
-
77
- const audio_input_tag_defs = {
78
- TIT2: { display_order: 1, name: "Title", example: "Audio Title" },
79
- TALB: { display_order: 2, name: "Album Title", example: "Album Title" },
80
- APIC: {
81
- display_order: 3,
82
- name: "Attached Picture",
83
- example: "{ mime: 'image/jpeg', type: { id: 0 }, description: null, imageBuffer: null }",
84
- },
85
- TPE1: {
86
- display_order: 4,
87
- name: "Artist",
88
- example: "Artist",
89
- },
90
- USLT: {
91
- display_order: 5,
92
- name: "Unsynchronised Lyrics",
93
- example: "{ text: 'Lyrics of the audio', language: 'eng' }",
94
- },
95
- TYER: { display_order: 6, name: "Release Year", example: "2024" },
96
- TLAN: { display_order: 7, name: "Language", example: "eng" },
97
- TIT3: { display_order: 8, name: "Subtitle", example: "Audio Subtitle" },
98
- TPE2: { display_order: 9, name: "Album Artist", example: "Album Artist" },
99
- TCOM: {
100
- display_order: 10,
101
- name: "Composers",
102
- example: "[ 'Composer 1', 'Composer 2' ]",
103
- },
104
- TCON: {
105
- display_order: 11,
106
- name: "Genres",
107
- example: "[ 'Genre 1', 'Genre 2' ]",
108
- },
109
- TIT1: {
110
- display_order: 12,
111
- name: "Content Group Description",
112
- example: "Content Description",
113
- },
114
- TPE3: {
115
- display_order: 13,
116
- name: "Conductor/Performer Refinement",
117
- example: "Performer Name",
118
- },
119
- TPE4: {
120
- display_order: 14,
121
- name: "Interpreted, Remixed, or Otherwise Modified By",
122
- example: "Remixer Name",
123
- },
124
- TRCK: { display_order: 15, name: "Track Number", example: "'5' or '5/10'" },
125
- TPOS: { display_order: 16, name: "Disc Number", example: "'1' or '1/3'" },
126
- TPUB: {
127
- display_order: 17,
128
- name: "Label Name",
129
- example: "Record Label Name",
130
- },
131
- TKEY: { display_order: 18, name: "Initial Key", example: "A#m" },
132
- TMED: { display_order: 19, name: "Media Type", example: "Digital Media" },
133
- TDAT: {
134
- display_order: 20,
135
- name: "Release Date",
136
- example: "0101 (for 1st January)",
137
- },
138
- TSRC: {
139
- display_order: 21,
140
- name: "ISRC",
141
- example: "International Standard Recording Code",
142
- },
143
- TCOP: {
144
- display_order: 22,
145
- name: "Copyright Message",
146
- example: "© 2024 Record Label",
147
- },
148
- TEXT: {
149
- display_order: 23,
150
- name: "Lyricist/Text Writer",
151
- example: "Lyricist Name",
152
- },
153
- WCOM: {
154
- display_order: 24,
155
- name: "Commercial Information",
156
- example: "http://website.com",
157
- },
158
- WCOP: {
159
- display_order: 25,
160
- name: "Legal Information",
161
- example: "http://website.com/legal",
162
- },
163
- WOAF: {
164
- display_order: 26,
165
- name: "Official Audio File Webpage",
166
- example: "http://website.com/audio_file",
167
- },
168
- WOAR: {
169
- display_order: 27,
170
- name: "Official Artist Webpage",
171
- example: "http://website.com/artist",
172
- },
173
- WOAS: {
174
- display_order: 28,
175
- name: "Official Audio Source Webpage",
176
- example: "http://website.com/audiosource",
177
- },
178
- WORS: {
179
- display_order: 29,
180
- name: "Official Internet Radio Station Homepage",
181
- example: "http://website.com/radio",
182
- },
183
- WPAY: {
184
- display_order: 30,
185
- name: "Payment",
186
- example: "http://website.com/payment",
187
- },
188
- WPUB: {
189
- display_order: 31,
190
- name: "Publisher’s Official Webpage",
191
- example: "http://website.com/publisher",
192
- },
193
- TLEN: {
194
- display_order: 32,
195
- name: "Audio Duration",
196
- example: "230000 (for 3 minutes and 50 seconds)",
197
- },
198
- TBPM: { display_order: 33, name: "BPM", example: "120" },
199
- COMM: {
200
- display_order: 34,
201
- name: "Comments",
202
- example: "{ description: 'Comment', text: 'This is a comment', language: 'eng' }",
203
- },
204
- IPLS: {
205
- display_order: 35,
206
- name: "Involved People List",
207
- example: "[ ['role', 'name'], ['role', 'name'] ]",
208
- },
209
- SYLT: {
210
- display_order: 36,
211
- name: "Synchronised Lyrics",
212
- example:
213
- "{ type: 1, text: [ ['lyrics here', 0], ['lyrics here', 3500] ], timestampFormat: 2, language: 'eng', description: 'description' }",
214
- },
215
- TXXX: {
216
- display_order: 37,
217
- name: "Additional Defined Text",
218
- example: "{ description: 'description here', value: 'value here' }",
219
- },
220
- PRIV: {
221
- display_order: 38,
222
- name: "Private Frame",
223
- example: "{ id: 'identifier', data: dataArrayBuffer }",
224
- },
225
- }
226
-
227
- const lang_options = [
228
- { key: "eng", name: "English" },
229
- { key: "spa", name: "Spanish" },
230
- { key: "fra", name: "French" },
231
- { key: "deu", name: "German" },
232
- { key: "rus", name: "Russian" },
233
- { key: "ita", name: "Italian" },
234
- { key: "por", name: "Portuguese" },
235
- { key: "jpn", name: "Japanese" },
236
- { key: "zho", name: "Chinese" },
237
- { key: "ara", name: "Arabic" },
238
- { key: "hin", name: "Hindi" },
239
- { key: "kor", name: "Korean" },
240
- { key: "tur", name: "Turkish" },
241
- { key: "swe", name: "Swedish" },
242
- { key: "nld", name: "Dutch" },
243
- { key: "pol", name: "Polish" },
244
- { key: "dan", name: "Danish" },
245
- { key: "fin", name: "Finnish" },
246
- { key: "nor", name: "Norwegian" },
247
- { key: "heb", name: "Hebrew" },
248
- ]
249
-
250
- let is_loading_generate_audio = $state(false)
251
- let error_message = $state(null)
252
- let success_message = $state(null)
253
- let is_text_to_audio = $state(false)
254
-
255
- let is_popover = $state(true)
256
- let popover_manager = $state(null)
257
- let clear_button_manager = $state(null)
258
- let is_alt_content_shown = $state(false)
259
- let seed_from_input_popover_manager = $state(null)
260
- let seed_from_input_popover_button_manager = $state(null)
261
- let seed_audio_storage_picker_manager = $state(null)
262
- let download_audio_file_button_manager = $state(null)
263
- let generate_audio_changes_button_manager = $state(null)
264
- let finish_button_manager = $state(null)
265
- let use_text_to_audio_button_manager = $state(null)
266
- let select_file_from_storage_button_manager = $state(null)
267
- let use_mp3_file_button_manager = $state(null)
268
- let text_to_audio_text_input_manager = $state(null)
269
- let audio_storage_picker_manager = $state(null)
270
- let file_name_text_input_manager = $state(null)
271
- let title_text_input_manager = $state(null)
272
- let album_title_text_input_manager = $state(null)
273
- let image_storage_picker_manager = $state(null)
274
- let image_description_text_input_manager = $state(null)
275
- let artist_text_input_manager = $state(null)
276
- let lyrics_text_input_manager = $state(null)
277
- let release_year_text_input_manager = $state(null)
278
- let language_dropdown_manager = $state(null)
279
- let additional_tags_input_prepped = $state(null)
280
- let generated_audio_file_obj = $state(null)
281
- let voice_options = $state(null)
282
- let voice_id = $state(null)
283
- let edit_voice_popover_manager = $state(null)
284
- let edit_voice_button_manager = $state(null)
285
- let audio_manager = $state(null)
286
- let clear_generated_audio_button_manager = $state(null)
287
- let additional_metatags_dropdown_manager = $state(null)
288
-
289
- // actually we'll prob do this server stuff diff like call config?.fetch_audio_read_tags() and handle in parent
290
- let api_prefix = $derived(set_closurable(config?.api_prefix, "https://www.contibase.com/api/v1"))
291
- let storage_src = $derived(
292
- set_closurable(config?.storage_src, "https://www.contibase.com/api/v1/storage/{storage_id}")
293
- )
294
- let fetch_path_audio_read_tags = $derived(
295
- set_closurable(config?.fetch_path_audio_read_tags, `${api_prefix}/tools/audio/read_tags`)
296
- )
297
- let fetch_path_audio_post = $derived(set_closurable(config?.fetch_path_audio_post, `${api_prefix}/tools/audio`))
298
- let file_prefix = $derived(set_closurable(config?.file_prefix, `${api_prefix}/storage/`))
299
-
300
- let account = $derived(set_closurable(config?.account, null))
301
- let is_disabled = $derived(set_closurable(config?.is_disabled, false))
302
- let storage = $derived(set_closurable(config?.storage, null))
303
- let locally_uploaded_files = $derived(set_closurable(config?.locally_uploaded_files, null))
304
-
305
- let file_name_derived = $derived(`${clean_file_name(file_name_text_input_manager?.val)}.mp3`)
306
- let additional_tag_keys_ordered = $derived(
307
- Object.keys(additional_tags_input_prepped || {})
308
- .map((key) => ({ key, display_order: audio_input_tag_defs[key]?.display_order }))
309
- .sort((a, b) => a.display_order - b.display_order)
310
- .map((item) => item.key)
311
- )
312
-
313
- let text_to_audio_time_in_minutes = $derived(calc_time_in_minutes(text_to_audio_text_input_manager?.val))
314
-
315
- function calc_time_in_minutes(text) {
316
- if (!text || text.length < 20) {
317
- return 0
318
- }
319
- const average_speed = 155
320
- const word_count = text.split(" ").length
321
- return Math.ceil(word_count / average_speed)
322
- }
323
-
324
- async function seed(input) {
325
- if (!input) {
326
- file_name_text_input_manager.set_val(null)
327
- text_to_audio_text_input_manager.set_val(null)
328
- audio_storage_picker_manager.set_val(null)
329
- title_text_input_manager.set_val(null)
330
- album_title_text_input_manager.set_val(null)
331
- image_storage_picker_manager.set_val(null)
332
- image_description_text_input_manager.set_val(null)
333
- artist_text_input_manager.set_val(null)
334
- lyrics_text_input_manager.set_val(null)
335
- release_year_text_input_manager.set_val(null)
336
- language_dropdown_manager.set_val(null)
337
- additional_tags_input_prepped = null
338
- return
339
- }
340
- if (!input?.file && input?.id) {
341
- let file_src = `${file_prefix}${input?.id}`
342
- input.file = await url_to_file(file_src, file_name_derived)
343
- }
344
- is_text_to_audio = false
345
- text_to_audio_text_input_manager.set_val(null)
346
- if (input.hasOwnProperty("is_text_to_audio")) {
347
- is_text_to_audio = input?.is_text_to_audio
348
- text_to_audio_text_input_manager.set_val(input?.text_to_audio_input ?? null)
349
- voice_id = input?.voice_id ?? null
350
- }
351
- let cleaned_file_name = clean_file_name(input?.file_name ?? input?.file?.name)
352
- let audio_metadata = null
353
- if (input?.file) {
354
- audio_metadata = await get_audio_metadata(input?.file)
355
- audio_storage_picker_manager.set_val(input)
356
- }
357
- file_name_text_input_manager.set_val(cleaned_file_name)
358
- title_text_input_manager.set_val(input?.title ?? input?.tags?.TIT2 ?? audio_metadata?.tags?.TIT2 ?? null)
359
- album_title_text_input_manager.set_val(
360
- input?.album_title ?? input?.tags?.TALB ?? audio_metadata?.tags?.TALB ?? null
361
- )
362
- image_storage_picker_manager.set_val({ file_name: "cover", file: input?.image_file ?? audio_metadata?.image?.file })
363
- image_description_text_input_manager.set_val(
364
- input?.image_description ?? input?.tags?.APIC?.description ?? audio_metadata?.tags?.APIC?.description ?? null
365
- )
366
- artist_text_input_manager.set_val(input?.artist ?? input?.tags?.TPE1 ?? audio_metadata?.tags?.TPE1 ?? null)
367
- lyrics_text_input_manager.set_val(
368
- input?.lyrics ?? input?.tags?.USLT?.text ?? audio_metadata?.tags?.USLT?.text ?? null
369
- )
370
- release_year_text_input_manager.set_val(
371
- input?.release_year ?? input?.tags?.TYER ?? audio_metadata?.tags?.TYER ?? null
372
- )
373
- language_dropdown_manager.set_val(input?.language ?? input?.tags?.TLAN ?? audio_metadata?.tags?.TLAN ?? null)
374
- const tags_input = input?.tags ?? audio_metadata?.tags
375
- let additonal_tag_keys = []
376
- if (
377
- tags_input &&
378
- typeof tags_input == "object" &&
379
- !Array.isArray(tags_input) &&
380
- Object.keys(tags_input).length > 0
381
- ) {
382
- for (let key of Object.keys(tags_input)) {
383
- if (!audio_tags_input_base.hasOwnProperty(key)) {
384
- additonal_tag_keys.push(key)
385
- }
386
- }
387
- }
388
- additional_metatags_dropdown_manager.set_val(additonal_tag_keys)
389
- set_additional_tags_input_prepped(tags_input)
390
- popover_manager.open()
391
- seed_from_input_popover_manager.close()
392
- }
393
-
394
- function set_additional_tags_input_prepped(tags_input) {
395
- let additional_tags_input_prepped_loc = {}
396
- if (
397
- tags_input &&
398
- typeof tags_input == "object" &&
399
- !Array.isArray(tags_input) &&
400
- Object.keys(tags_input).length > 0
401
- ) {
402
- for (let [key, val] of Object.entries(tags_input)) {
403
- if (!audio_tags_input_base.hasOwnProperty(key)) {
404
- let tag_input_prepped_loc = {
405
- key,
406
- name: audio_input_tag_defs[key]?.name,
407
- display_order: audio_input_tag_defs[key]?.display_order,
408
- }
409
- tag_input_prepped_loc.text_input_manager = create_text_input_manager({
410
- val: val,
411
- is_disabled: () => is_loading_generate_audio || is_disabled,
412
- placeholder: () => audio_input_tag_defs[key]?.example,
413
- })
414
- additional_tags_input_prepped_loc[key] = tag_input_prepped_loc
415
- }
416
- }
417
- }
418
- additional_tags_input_prepped = additional_tags_input_prepped_loc
419
- }
420
-
421
- function clear() {
422
- seed(null)
423
- }
424
-
425
- async function get_audio_metadata(audio_file) {
426
- try {
427
- let form_data = new FormData()
428
- form_data.append("file", audio_file)
429
- let response = await fetch(fetch_path_audio_read_tags, {
430
- method: "POST",
431
- body: form_data,
432
- })
433
- if (!response.ok) {
434
- throw new Error(await response.text())
435
- }
436
- let res_body = await response.json()
437
- let res = {
438
- tags: null,
439
- image: null,
440
- }
441
- if (res_body?.raw) {
442
- res.tags = { ...audio_tags_input_base, ...res_body?.raw }
443
- if (res_body?.raw?.["APIC"]?.imageBuffer) {
444
- let buffer_data = res_body?.raw?.["APIC"]?.imageBuffer.data
445
- let uint_8_array = new Uint8Array(buffer_data)
446
- let blob = new Blob([uint_8_array], { type: res_body?.raw?.["APIC"]?.mime })
447
- res.image = {
448
- file: blob,
449
- type: res_body?.raw?.["APIC"]?.mime,
450
- src: URL.createObjectURL(blob),
451
- size_kb: Math.ceil(blob.size / 1024),
452
- description: res_body?.raw?.["APIC"]?.description,
453
- }
454
- }
455
- }
456
- return res
457
- } catch (err) {
458
- console.error(err)
459
- }
460
- }
461
-
462
- function set_text_to_audio_input(val) {
463
- text_to_audio_text_input_manager.set_val(val)
464
- }
465
-
466
- function set_is_text_to_audio(is_text_to_audio_input) {
467
- is_text_to_audio = is_text_to_audio_input
468
- }
469
-
470
- async function resize_and_convert_image(src, max_width, max_height, output_format) {
471
- return new Promise((resolve, reject) => {
472
- let img = new Image()
473
- img.crossOrigin = "anonymous"
474
- img.onload = () => {
475
- let canvas = document.createElement("canvas")
476
- let ctx = canvas.getContext("2d")
477
- let aspect_ratio = img.width / img.height
478
- let new_width = max_width
479
- let new_height = max_height
480
- if (new_width / new_height > aspect_ratio) new_width = new_height * aspect_ratio
481
- else new_height = new_width / aspect_ratio
482
- canvas.width = new_width
483
- canvas.height = new_height
484
- ctx.drawImage(img, 0, 0, new_width, new_height)
485
- resolve(canvas.toDataURL(output_format))
486
- }
487
- img.onerror = reject
488
- img.src = src
489
- })
490
- }
491
-
492
- async function generate_new_audio() {
493
- try {
494
- is_loading_generate_audio = true
495
- error_message = null
496
- success_message = null
497
- let form_data = new FormData()
498
- if (account?.id) {
499
- form_data.append("account_id", account?.id)
500
- }
501
- let tags_input = {
502
- TIT2: title_text_input_manager?.val ?? null,
503
- TALB: album_title_text_input_manager?.val ?? null,
504
- TPE1: artist_text_input_manager?.val ?? null,
505
- APIC: {
506
- mime: null,
507
- type: {
508
- id: 0,
509
- },
510
- description: image_description_text_input_manager?.val ?? null,
511
- imageBuffer: null,
512
- },
513
- TYER: release_year_text_input_manager?.val ?? null,
514
- USLT: {
515
- language: language_dropdown_manager?.val ?? null,
516
- text: lyrics_text_input_manager?.val ?? null,
517
- },
518
- TLAN: language_dropdown_manager?.val ?? null,
519
- }
520
- if (Object.keys(additional_tags_input_prepped || {}).length > 0) {
521
- for (let [key, val] of Object.entries(additional_tags_input_prepped || {})) {
522
- if (audio_input_tag_defs.hasOwnProperty(key)) {
523
- tags_input[key] = val?.text_input_manager?.val
524
- }
525
- }
526
- }
527
- form_data.append("tags", JSON.stringify(tags_input))
528
- form_data.append("file_name", file_name_text_input_manager?.val ?? null)
529
- form_data.append("is_text_to_audio", is_text_to_audio)
530
- if (is_text_to_audio) {
531
- form_data.append("text_to_audio_input", text_to_audio_text_input_manager?.val)
532
- form_data.append("voice_id", voice_id ?? null)
533
- } else {
534
- form_data.append("audio", audio_storage_picker_manager?.val?.file)
535
- }
536
- console.log("image_storage_picker_manager?.val", image_storage_picker_manager?.val)
537
- if (image_storage_picker_manager?.val) {
538
- let image_src = null
539
- if (image_storage_picker_manager?.val?.file) {
540
- image_src = URL.createObjectURL(image_storage_picker_manager?.val?.file)
541
- } else if (image_storage_picker_manager?.val?.id) {
542
- image_src = storage_src.replace("{storage_id}", image_storage_picker_manager?.val?.id)
543
- console.log("image_src_replace", image_src)
544
- }
545
- console.log("image_src", image_src)
546
- const sized_cover_base_64 = await resize_and_convert_image(image_src, 1000, 1000, "image/png")
547
- console.log("sized_cover_base_64", sized_cover_base_64)
548
- let sized_cover_file = await url_to_file(sized_cover_base_64, file_name_derived)
549
- console.log("sized_cover_file", sized_cover_file)
550
- form_data.append("image", sized_cover_file)
551
- }
552
- let response = await fetch(fetch_path_audio_post, {
553
- method: "POST",
554
- body: form_data,
555
- })
556
- console.log("fetch_audio_post_res", response)
557
- if (!response.ok) {
558
- let error_mes = await response.text()
559
- is_loading_generate_audio = false
560
- error_message = error_mes ?? "Error making audio changes."
561
- return
562
- }
563
- let res_body = await response.json()
564
- console.log("res_body1", res_body)
565
- // add to new file to client side temporary_storage data
566
- let new_audio_src = `${file_prefix}${res_body?.id}`
567
- let new_audio_file = await url_to_file(new_audio_src, file_name_derived)
568
- console.log("new_audio_file", new_audio_file)
569
- is_loading_generate_audio = false
570
- is_alt_content_shown = true
571
- setTimeout(() => {
572
- is_alt_content_shown = false
573
- }, 1800)
574
- generated_audio_file_obj = {
575
- file: new_audio_file,
576
- type: new_audio_file?.type,
577
- src: new_audio_src,
578
- file_name: new_audio_file?.name,
579
- size_kb: Math.round(new_audio_file?.size * 0.001),
580
- }
581
- seed({ file: new_audio_file })
582
- // optional: need third-party library to extract cover image from metadata clientside tbd. Already have working with server request but try and avoid that
583
- audio_manager = create_audio_manager({
584
- src: new_audio_src,
585
- })
586
- } catch (err) {
587
- is_loading_generate_audio = false
588
- error_message = err?.message ?? JSON.stringify(err)
589
- }
590
- }
591
-
592
- async function download_audio_file() {
593
- // file_name_tbd
594
- let response = await fetch(generated_audio_file_obj?.src)
595
- let blob = await response.blob()
596
- let url = URL.createObjectURL(blob)
597
- let link = document.createElement("a")
598
- link.href = url
599
- link.download = file_name_derived
600
- document.body.appendChild(link)
601
- link.click()
602
- document.body.removeChild(link)
603
- URL.revokeObjectURL(url)
604
- }
605
-
606
- function finish() {
607
- if (typeof config?.on_finish == "function") {
608
- config?.on_finish(generated_audio_file_obj)
609
- }
610
- popover_manager.close()
611
- }
612
-
613
- function init(config) {
614
- is_popover = config?.is_popover ?? true
615
- popover_manager = create_popover_manager({
616
- min_width: 320,
617
- target_width: 900,
618
- min_height: 320,
619
- target_height: 700,
620
- header: "Edit Audio",
621
- type: "center",
622
- success_message: "Successfully Generated Audio File",
623
- is_alt_content_shown: () => is_alt_content_shown,
624
- })
625
- clear_button_manager = create_button_manager({
626
- type: "outlined",
627
- text: "Clear",
628
- is_compressed: true,
629
- on_click: () => seed(),
630
- })
631
- download_audio_file_button_manager = create_button_manager({
632
- type: "outlined",
633
- is_disabled: () => is_disabled,
634
- text: "Download",
635
- support_icon: "download",
636
- is_compressed: true,
637
- on_click: () => download_audio_file(),
638
- })
639
- generate_audio_changes_button_manager = create_button_manager({
640
- text: "Generate Audio Changes",
641
- is_compressed: true,
642
- is_loading: () => is_loading_generate_audio,
643
- is_disabled: () =>
644
- (!is_text_to_audio && !audio_storage_picker_manager?.val) ||
645
- (is_text_to_audio && !text_to_audio_text_input_manager?.val),
646
- on_click: () => generate_new_audio(),
647
- })
648
- finish_button_manager = create_button_manager({
649
- type: "outlined",
650
- text: "Finish",
651
- support_icon: "check",
652
- is_compressed: true,
653
- is_disabled: () => is_disabled,
654
- on_click: () => finish(),
655
- })
656
- use_text_to_audio_button_manager = create_button_manager({
657
- type: "outlined",
658
- support_icon: "speech",
659
- text: "Use Text to Audio",
660
- mr: 1,
661
- is_compressed: true,
662
- is_disabled: () => is_loading_generate_audio,
663
- on_click: () => set_is_text_to_audio(true),
664
- })
665
- audio_storage_picker_manager = create_storage_picker_manager({
666
- storage: storage,
667
- default_folder_path: config?.storage_default_folder_path,
668
- locally_uploaded_files: () => locally_uploaded_files,
669
- storage_src: () => storage_src,
670
- accept: ["audio/mpeg"],
671
- is_show_button: false,
672
- is_multiselect: false,
673
- mb: 1,
674
- is_disabled: () => is_loading_generate_audio || is_disabled,
675
- })
676
- file_name_text_input_manager = create_text_input_manager({
677
- placeholder: "some_file_name",
678
- is_disabled: () => is_loading_generate_audio || is_disabled,
679
- })
680
- title_text_input_manager = create_text_input_manager({
681
- placeholder: audio_input_tag_defs?.TIT2?.example,
682
- is_disabled: () => is_loading_generate_audio || is_disabled,
683
- })
684
- album_title_text_input_manager = create_text_input_manager({
685
- placeholder: audio_input_tag_defs?.TALB?.example,
686
- is_disabled: () => is_loading_generate_audio || is_disabled,
687
- })
688
- image_storage_picker_manager = create_storage_picker_manager({
689
- storage: storage,
690
- default_folder_path: config?.storage_default_folder_path,
691
- locally_uploaded_files: () => locally_uploaded_files,
692
- accept: ["image/png", "image/jpeg", "image/webp", "image/gif"],
693
- is_multiselect: false,
694
- mb: 1,
695
- is_disabled: () => is_loading_generate_audio || is_disabled,
696
- })
697
- image_description_text_input_manager = create_text_input_manager({
698
- placeholder: "Image Description",
699
- mt: 1,
700
- is_disabled: () => is_loading_generate_audio || is_disabled,
701
- })
702
- artist_text_input_manager = create_text_input_manager({
703
- placeholder: audio_input_tag_defs?.TPE1?.example,
704
- is_disabled: () => is_loading_generate_audio || is_disabled,
705
- })
706
- lyrics_text_input_manager = create_text_input_manager({
707
- type: "text_area",
708
- placeholder: "Lyrics of the audio",
709
- is_disabled: () => is_loading_generate_audio || is_disabled,
710
- })
711
- release_year_text_input_manager = create_text_input_manager({
712
- val: null,
713
- type: "number",
714
- max: 2100,
715
- placeholder: audio_input_tag_defs?.TYER?.example,
716
- is_disabled: () => is_loading_generate_audio || is_disabled,
717
- })
718
- language_dropdown_manager = create_dropdown_manager({
719
- button_type: "outlined",
720
- is_button_compressed: true,
721
- is_clearable: true,
722
- options: lang_options,
723
- is_disabled: () => is_loading_generate_audio || is_disabled,
724
- })
725
- select_file_from_storage_button_manager = create_button_manager({
726
- type: "outlined",
727
- is_compressed: true,
728
- text: "Select Audio File",
729
- is_disabled: () => is_loading_generate_audio || is_disabled,
730
- popover_target: () => `popover_${audio_storage_picker_manager?.popover_manager?.id}`,
731
- })
732
- use_mp3_file_button_manager = create_button_manager({
733
- type: "outlined",
734
- support_icon: "file",
735
- text: "Use mp3 File",
736
- mb: 0.5,
737
- is_disabled: () => is_loading_generate_audio || is_disabled,
738
- is_compressed: true,
739
- on_click: () => set_is_text_to_audio(false),
740
- })
741
- text_to_audio_text_input_manager = create_text_input_manager({
742
- type: "text_area",
743
- rows: 7,
744
- mt: 0.5,
745
- is_disabled: () => is_loading_generate_audio || is_disabled,
746
- placeholder: "Text to convert to audio",
747
- })
748
- file_name_text_input_manager = create_text_input_manager({
749
- placeholder: "file_name",
750
- val: null,
751
- is_disabled: () => is_loading_generate_audio || is_disabled,
752
- })
753
- seed_from_input_popover_manager = create_popover_manager({
754
- header: "Seed Audio",
755
- type: "center",
756
- target_width: 400,
757
- target_height: 300,
758
- anchor_id: () => `button_${seed_from_input_popover_button_manager?.id}`,
759
- })
760
- seed_from_input_popover_button_manager = create_button_manager({
761
- type: "outlined",
762
- text: "Seed from file",
763
- is_compressed: true,
764
- is_disabled: () => is_loading_generate_audio || is_disabled,
765
- popover_target: () => `popover_${seed_from_input_popover_manager?.id}`,
766
- })
767
- seed_audio_storage_picker_manager = create_storage_picker_manager({
768
- storage: storage,
769
- default_folder_path: config?.storage_default_folder_path,
770
- locally_uploaded_files: () => locally_uploaded_files,
771
- accept: ["audio/mpeg"],
772
- is_multiselect: false,
773
- is_disabled: () => is_loading_generate_audio || is_disabled,
774
- on_finish: (input) => {
775
- seed(input)
776
- seed_audio_storage_picker_manager.set_val(null)
777
- },
778
- })
779
- audio_manager = null
780
- clear_generated_audio_button_manager = create_button_manager({
781
- type: "outlined",
782
- text: "Clear",
783
- is_compressed: true,
784
- on_click: () => (generated_audio_file_obj = null),
785
- })
786
- edit_voice_popover_manager = create_popover_manager({
787
- type: "center",
788
- header: "Select Voice",
789
- target_width: 500,
790
- target_height: 400,
791
- })
792
- edit_voice_button_manager = create_button_manager({
793
- type: "outlined",
794
- text: "Edit",
795
- support_icon: "edit",
796
- is_compressed: true,
797
- popover_target: () => `popover_${edit_voice_popover_manager?.id}`,
798
- })
799
- let voice_options_loc = []
800
- for (let voice of voices) {
801
- voice_options_loc.push({
802
- ...voice,
803
- audio_manager: create_audio_manager({
804
- ui_type: "short",
805
- src: voice?.sample,
806
- }),
807
- select_button_manager: create_button_manager({
808
- type: "outlined",
809
- text: "Select",
810
- selected_type: () => (voice?.id == voice_id ? "selected" : null),
811
- on_click: () => {
812
- voice_id = voice_id == voice?.id ? null : voice?.id
813
- edit_voice_popover_manager.close()
814
- },
815
- }),
816
- })
817
- }
818
- voice_options = voice_options_loc
819
- const additional_metatag_options = Object.keys(audio_input_tag_defs || {})
820
- .map((h) => ({ key: h, name: audio_input_tag_defs?.[h]?.name }))
821
- .filter((h) => !audio_tags_input_base.hasOwnProperty(h?.key))
822
- additional_metatags_dropdown_manager = create_dropdown_manager({
823
- val: [],
824
- is_clearable: true,
825
- is_multiselect: true,
826
- is_button_compressed: true,
827
- options: additional_metatag_options,
828
- on_change: (input) => {
829
- let tags_input = {}
830
- if (Array.isArray(input) && input.length > 0) {
831
- for (let key of input) {
832
- tags_input[key] = additional_tags_input_prepped?.[key]?.text_input_manager?.val ?? null
833
- }
834
- }
835
- set_additional_tags_input_prepped(tags_input)
836
- },
837
- })
838
- }
839
-
840
- init(config)
841
-
842
- return {
843
- id,
844
- get account() {
845
- return account
846
- },
847
- get is_text_to_audio() {
848
- return is_text_to_audio
849
- },
850
- get error_message() {
851
- return error_message
852
- },
853
- get success_message() {
854
- return success_message
855
- },
856
- get generate_audio_changes_button_manager() {
857
- return generate_audio_changes_button_manager
858
- },
859
- get use_text_to_audio_button_manager() {
860
- return use_text_to_audio_button_manager
861
- },
862
- get select_file_from_storage_button_manager() {
863
- return select_file_from_storage_button_manager
864
- },
865
- get use_mp3_file_button_manager() {
866
- return use_mp3_file_button_manager
867
- },
868
- get text_to_audio_text_input_manager() {
869
- return text_to_audio_text_input_manager
870
- },
871
- get file_name_text_input_manager() {
872
- return file_name_text_input_manager
873
- },
874
- get additional_tags_input_prepped() {
875
- return additional_tags_input_prepped
876
- },
877
- get additional_tag_keys_ordered() {
878
- return additional_tag_keys_ordered
879
- },
880
- get audio_storage_picker_manager() {
881
- return audio_storage_picker_manager
882
- },
883
- get file_name_text_input_manager() {
884
- return file_name_text_input_manager
885
- },
886
- get title_text_input_manager() {
887
- return title_text_input_manager
888
- },
889
- get album_title_text_input_manager() {
890
- return album_title_text_input_manager
891
- },
892
- get image_storage_picker_manager() {
893
- return image_storage_picker_manager
894
- },
895
- get image_description_text_input_manager() {
896
- return image_description_text_input_manager
897
- },
898
- get artist_text_input_manager() {
899
- return artist_text_input_manager
900
- },
901
- get lyrics_text_input_manager() {
902
- return lyrics_text_input_manager
903
- },
904
- get release_year_text_input_manager() {
905
- return release_year_text_input_manager
906
- },
907
- get language_dropdown_manager() {
908
- return language_dropdown_manager
909
- },
910
- get is_popover() {
911
- return is_popover
912
- },
913
- get popover_manager() {
914
- return popover_manager
915
- },
916
- get text_to_audio_time_in_minutes() {
917
- return text_to_audio_time_in_minutes
918
- },
919
- get voice_options() {
920
- return voice_options
921
- },
922
- get voice_id() {
923
- return voice_id
924
- },
925
- get edit_voice_popover_manager() {
926
- return edit_voice_popover_manager
927
- },
928
- get edit_voice_button_manager() {
929
- return edit_voice_button_manager
930
- },
931
- get seed_from_input_popover_manager() {
932
- return seed_from_input_popover_manager
933
- },
934
- get seed_from_input_popover_button_manager() {
935
- return seed_from_input_popover_button_manager
936
- },
937
- get seed_audio_storage_picker_manager() {
938
- return seed_audio_storage_picker_manager
939
- },
940
- get is_loading_generate_audio() {
941
- return is_loading_generate_audio
942
- },
943
- get generated_audio_file_obj() {
944
- return generated_audio_file_obj
945
- },
946
- get audio_manager() {
947
- return audio_manager
948
- },
949
- get clear_generated_audio_button_manager() {
950
- return clear_generated_audio_button_manager
951
- },
952
- get download_audio_file_button_manager() {
953
- return download_audio_file_button_manager
954
- },
955
- get clear_button_manager() {
956
- return clear_button_manager
957
- },
958
- get finish_button_manager() {
959
- return finish_button_manager
960
- },
961
- get additional_metatags_dropdown_manager() {
962
- return additional_metatags_dropdown_manager
963
- },
964
- audio_input_tag_defs,
965
- lang_options,
966
- init,
967
- seed,
968
- get_audio_metadata,
969
- resize_and_convert_image,
970
- set_text_to_audio_input,
971
- generate_new_audio,
972
- download_audio_file,
973
- set_is_text_to_audio,
974
- clear,
975
- finish,
976
- }
977
- }