├── .editorconfig
├── .gitignore
├── .vscode
└── extensions.json
├── README.md
├── avatar.jpg
├── index.html
├── package-lock.json
├── package.json
├── public
└── favicon.ico
├── src
├── App.vue
├── assets
│ ├── base.css
│ ├── logo.svg
│ └── main.css
└── main.js
└── vite.config.js
/.editorconfig:
--------------------------------------------------------------------------------
1 | [*]
2 | charset = utf-8
3 | end_of_line = lf
4 | indent_size = 4
5 | indent_style = space
6 | insert_final_newline = false
7 | max_line_length = 120
8 | tab_width = 4
9 | ij_continuation_indent_size = 8
10 | ij_formatter_off_tag = @formatter:off
11 | ij_formatter_on_tag = @formatter:on
12 | ij_formatter_tags_enabled = true
13 | ij_smart_tabs = false
14 | ij_visual_guides =
15 | ij_wrap_on_typing = false
16 |
17 | [*.css]
18 | ij_css_align_closing_brace_with_properties = false
19 | ij_css_blank_lines_around_nested_selector = 1
20 | ij_css_blank_lines_between_blocks = 1
21 | ij_css_block_comment_add_space = false
22 | ij_css_brace_placement = end_of_line
23 | ij_css_enforce_quotes_on_format = false
24 | ij_css_hex_color_long_format = false
25 | ij_css_hex_color_lower_case = false
26 | ij_css_hex_color_short_format = false
27 | ij_css_hex_color_upper_case = false
28 | ij_css_keep_blank_lines_in_code = 2
29 | ij_css_keep_indents_on_empty_lines = false
30 | ij_css_keep_single_line_blocks = false
31 | ij_css_properties_order = font,font-family,font-size,font-weight,font-style,font-variant,font-size-adjust,font-stretch,line-height,position,z-index,top,right,bottom,left,display,visibility,float,clear,overflow,overflow-x,overflow-y,clip,zoom,align-content,align-items,align-self,flex,flex-flow,flex-basis,flex-direction,flex-grow,flex-shrink,flex-wrap,justify-content,order,box-sizing,width,min-width,max-width,height,min-height,max-height,margin,margin-top,margin-right,margin-bottom,margin-left,padding,padding-top,padding-right,padding-bottom,padding-left,table-layout,empty-cells,caption-side,border-spacing,border-collapse,list-style,list-style-position,list-style-type,list-style-image,content,quotes,counter-reset,counter-increment,resize,cursor,user-select,nav-index,nav-up,nav-right,nav-down,nav-left,transition,transition-delay,transition-timing-function,transition-duration,transition-property,transform,transform-origin,animation,animation-name,animation-duration,animation-play-state,animation-timing-function,animation-delay,animation-iteration-count,animation-direction,text-align,text-align-last,vertical-align,white-space,text-decoration,text-emphasis,text-emphasis-color,text-emphasis-style,text-emphasis-position,text-indent,text-justify,letter-spacing,word-spacing,text-outline,text-transform,text-wrap,text-overflow,text-overflow-ellipsis,text-overflow-mode,word-wrap,word-break,tab-size,hyphens,pointer-events,opacity,color,border,border-width,border-style,border-color,border-top,border-top-width,border-top-style,border-top-color,border-right,border-right-width,border-right-style,border-right-color,border-bottom,border-bottom-width,border-bottom-style,border-bottom-color,border-left,border-left-width,border-left-style,border-left-color,border-radius,border-top-left-radius,border-top-right-radius,border-bottom-right-radius,border-bottom-left-radius,border-image,border-image-source,border-image-slice,border-image-width,border-image-outset,border-image-repeat,outline,outline-width,outline-style,outline-color,outline-offset,background,background-color,background-image,background-repeat,background-attachment,background-position,background-position-x,background-position-y,background-clip,background-origin,background-size,box-decoration-break,box-shadow,text-shadow
32 | ij_css_space_after_colon = true
33 | ij_css_space_before_opening_brace = true
34 | ij_css_use_double_quotes = true
35 | ij_css_value_alignment = do_not_align
36 |
37 | [*.feature]
38 | indent_size = 2
39 | ij_gherkin_keep_indents_on_empty_lines = false
40 |
41 | [*.less]
42 | indent_size = 2
43 | ij_less_align_closing_brace_with_properties = false
44 | ij_less_blank_lines_around_nested_selector = 1
45 | ij_less_blank_lines_between_blocks = 1
46 | ij_less_block_comment_add_space = false
47 | ij_less_brace_placement = 0
48 | ij_less_enforce_quotes_on_format = false
49 | ij_less_hex_color_long_format = false
50 | ij_less_hex_color_lower_case = false
51 | ij_less_hex_color_short_format = false
52 | ij_less_hex_color_upper_case = false
53 | ij_less_keep_blank_lines_in_code = 2
54 | ij_less_keep_indents_on_empty_lines = false
55 | ij_less_keep_single_line_blocks = false
56 | ij_less_line_comment_add_space = false
57 | ij_less_line_comment_at_first_column = false
58 | ij_less_properties_order = font,font-family,font-size,font-weight,font-style,font-variant,font-size-adjust,font-stretch,line-height,position,z-index,top,right,bottom,left,display,visibility,float,clear,overflow,overflow-x,overflow-y,clip,zoom,align-content,align-items,align-self,flex,flex-flow,flex-basis,flex-direction,flex-grow,flex-shrink,flex-wrap,justify-content,order,box-sizing,width,min-width,max-width,height,min-height,max-height,margin,margin-top,margin-right,margin-bottom,margin-left,padding,padding-top,padding-right,padding-bottom,padding-left,table-layout,empty-cells,caption-side,border-spacing,border-collapse,list-style,list-style-position,list-style-type,list-style-image,content,quotes,counter-reset,counter-increment,resize,cursor,user-select,nav-index,nav-up,nav-right,nav-down,nav-left,transition,transition-delay,transition-timing-function,transition-duration,transition-property,transform,transform-origin,animation,animation-name,animation-duration,animation-play-state,animation-timing-function,animation-delay,animation-iteration-count,animation-direction,text-align,text-align-last,vertical-align,white-space,text-decoration,text-emphasis,text-emphasis-color,text-emphasis-style,text-emphasis-position,text-indent,text-justify,letter-spacing,word-spacing,text-outline,text-transform,text-wrap,text-overflow,text-overflow-ellipsis,text-overflow-mode,word-wrap,word-break,tab-size,hyphens,pointer-events,opacity,color,border,border-width,border-style,border-color,border-top,border-top-width,border-top-style,border-top-color,border-right,border-right-width,border-right-style,border-right-color,border-bottom,border-bottom-width,border-bottom-style,border-bottom-color,border-left,border-left-width,border-left-style,border-left-color,border-radius,border-top-left-radius,border-top-right-radius,border-bottom-right-radius,border-bottom-left-radius,border-image,border-image-source,border-image-slice,border-image-width,border-image-outset,border-image-repeat,outline,outline-width,outline-style,outline-color,outline-offset,background,background-color,background-image,background-repeat,background-attachment,background-position,background-position-x,background-position-y,background-clip,background-origin,background-size,box-decoration-break,box-shadow,text-shadow
59 | ij_less_space_after_colon = true
60 | ij_less_space_before_opening_brace = true
61 | ij_less_use_double_quotes = true
62 | ij_less_value_alignment = 0
63 |
64 | [*.sass]
65 | indent_size = 2
66 | ij_sass_align_closing_brace_with_properties = false
67 | ij_sass_blank_lines_around_nested_selector = 1
68 | ij_sass_blank_lines_between_blocks = 1
69 | ij_sass_brace_placement = 0
70 | ij_sass_enforce_quotes_on_format = false
71 | ij_sass_hex_color_long_format = false
72 | ij_sass_hex_color_lower_case = false
73 | ij_sass_hex_color_short_format = false
74 | ij_sass_hex_color_upper_case = false
75 | ij_sass_keep_blank_lines_in_code = 2
76 | ij_sass_keep_indents_on_empty_lines = false
77 | ij_sass_keep_single_line_blocks = false
78 | ij_sass_line_comment_add_space = false
79 | ij_sass_line_comment_at_first_column = false
80 | ij_sass_properties_order = font,font-family,font-size,font-weight,font-style,font-variant,font-size-adjust,font-stretch,line-height,position,z-index,top,right,bottom,left,display,visibility,float,clear,overflow,overflow-x,overflow-y,clip,zoom,align-content,align-items,align-self,flex,flex-flow,flex-basis,flex-direction,flex-grow,flex-shrink,flex-wrap,justify-content,order,box-sizing,width,min-width,max-width,height,min-height,max-height,margin,margin-top,margin-right,margin-bottom,margin-left,padding,padding-top,padding-right,padding-bottom,padding-left,table-layout,empty-cells,caption-side,border-spacing,border-collapse,list-style,list-style-position,list-style-type,list-style-image,content,quotes,counter-reset,counter-increment,resize,cursor,user-select,nav-index,nav-up,nav-right,nav-down,nav-left,transition,transition-delay,transition-timing-function,transition-duration,transition-property,transform,transform-origin,animation,animation-name,animation-duration,animation-play-state,animation-timing-function,animation-delay,animation-iteration-count,animation-direction,text-align,text-align-last,vertical-align,white-space,text-decoration,text-emphasis,text-emphasis-color,text-emphasis-style,text-emphasis-position,text-indent,text-justify,letter-spacing,word-spacing,text-outline,text-transform,text-wrap,text-overflow,text-overflow-ellipsis,text-overflow-mode,word-wrap,word-break,tab-size,hyphens,pointer-events,opacity,color,border,border-width,border-style,border-color,border-top,border-top-width,border-top-style,border-top-color,border-right,border-right-width,border-right-style,border-right-color,border-bottom,border-bottom-width,border-bottom-style,border-bottom-color,border-left,border-left-width,border-left-style,border-left-color,border-radius,border-top-left-radius,border-top-right-radius,border-bottom-right-radius,border-bottom-left-radius,border-image,border-image-source,border-image-slice,border-image-width,border-image-outset,border-image-repeat,outline,outline-width,outline-style,outline-color,outline-offset,background,background-color,background-image,background-repeat,background-attachment,background-position,background-position-x,background-position-y,background-clip,background-origin,background-size,box-decoration-break,box-shadow,text-shadow
81 | ij_sass_space_after_colon = true
82 | ij_sass_space_before_opening_brace = true
83 | ij_sass_use_double_quotes = true
84 | ij_sass_value_alignment = 0
85 |
86 | [*.scss]
87 | indent_size = 2
88 | ij_scss_align_closing_brace_with_properties = false
89 | ij_scss_blank_lines_around_nested_selector = 1
90 | ij_scss_blank_lines_between_blocks = 1
91 | ij_scss_block_comment_add_space = false
92 | ij_scss_brace_placement = 0
93 | ij_scss_enforce_quotes_on_format = false
94 | ij_scss_hex_color_long_format = false
95 | ij_scss_hex_color_lower_case = false
96 | ij_scss_hex_color_short_format = false
97 | ij_scss_hex_color_upper_case = false
98 | ij_scss_keep_blank_lines_in_code = 2
99 | ij_scss_keep_indents_on_empty_lines = false
100 | ij_scss_keep_single_line_blocks = false
101 | ij_scss_line_comment_add_space = false
102 | ij_scss_line_comment_at_first_column = false
103 | ij_scss_properties_order = font,font-family,font-size,font-weight,font-style,font-variant,font-size-adjust,font-stretch,line-height,position,z-index,top,right,bottom,left,display,visibility,float,clear,overflow,overflow-x,overflow-y,clip,zoom,align-content,align-items,align-self,flex,flex-flow,flex-basis,flex-direction,flex-grow,flex-shrink,flex-wrap,justify-content,order,box-sizing,width,min-width,max-width,height,min-height,max-height,margin,margin-top,margin-right,margin-bottom,margin-left,padding,padding-top,padding-right,padding-bottom,padding-left,table-layout,empty-cells,caption-side,border-spacing,border-collapse,list-style,list-style-position,list-style-type,list-style-image,content,quotes,counter-reset,counter-increment,resize,cursor,user-select,nav-index,nav-up,nav-right,nav-down,nav-left,transition,transition-delay,transition-timing-function,transition-duration,transition-property,transform,transform-origin,animation,animation-name,animation-duration,animation-play-state,animation-timing-function,animation-delay,animation-iteration-count,animation-direction,text-align,text-align-last,vertical-align,white-space,text-decoration,text-emphasis,text-emphasis-color,text-emphasis-style,text-emphasis-position,text-indent,text-justify,letter-spacing,word-spacing,text-outline,text-transform,text-wrap,text-overflow,text-overflow-ellipsis,text-overflow-mode,word-wrap,word-break,tab-size,hyphens,pointer-events,opacity,color,border,border-width,border-style,border-color,border-top,border-top-width,border-top-style,border-top-color,border-right,border-right-width,border-right-style,border-right-color,border-bottom,border-bottom-width,border-bottom-style,border-bottom-color,border-left,border-left-width,border-left-style,border-left-color,border-radius,border-top-left-radius,border-top-right-radius,border-bottom-right-radius,border-bottom-left-radius,border-image,border-image-source,border-image-slice,border-image-width,border-image-outset,border-image-repeat,outline,outline-width,outline-style,outline-color,outline-offset,background,background-color,background-image,background-repeat,background-attachment,background-position,background-position-x,background-position-y,background-clip,background-origin,background-size,box-decoration-break,box-shadow,text-shadow
104 | ij_scss_space_after_colon = true
105 | ij_scss_space_before_opening_brace = true
106 | ij_scss_use_double_quotes = true
107 | ij_scss_value_alignment = 0
108 |
109 | [*.vue]
110 | indent_size = 2
111 | tab_width = 2
112 | ij_continuation_indent_size = 4
113 | ij_vue_indent_children_of_top_level = template
114 | ij_vue_interpolation_new_line_after_start_delimiter = true
115 | ij_vue_interpolation_new_line_before_end_delimiter = true
116 | ij_vue_interpolation_wrap = off
117 | ij_vue_keep_indents_on_empty_lines = false
118 | ij_vue_spaces_within_interpolation_expressions = true
119 |
120 | [.editorconfig]
121 | ij_editorconfig_align_group_field_declarations = false
122 | ij_editorconfig_space_after_colon = false
123 | ij_editorconfig_space_after_comma = true
124 | ij_editorconfig_space_before_colon = false
125 | ij_editorconfig_space_before_comma = false
126 | ij_editorconfig_spaces_around_assignment_operators = true
127 |
128 | [{*.ant,*.fxml,*.jhm,*.jnlp,*.jrxml,*.rng,*.tld,*.wsdl,*.xml,*.xsd,*.xsl,*.xslt,*.xul}]
129 | ij_xml_align_attributes = true
130 | ij_xml_align_text = false
131 | ij_xml_attribute_wrap = normal
132 | ij_xml_block_comment_add_space = false
133 | ij_xml_block_comment_at_first_column = true
134 | ij_xml_keep_blank_lines = 2
135 | ij_xml_keep_indents_on_empty_lines = false
136 | ij_xml_keep_line_breaks = true
137 | ij_xml_keep_line_breaks_in_text = true
138 | ij_xml_keep_whitespaces = false
139 | ij_xml_keep_whitespaces_around_cdata = preserve
140 | ij_xml_keep_whitespaces_inside_cdata = false
141 | ij_xml_line_comment_at_first_column = true
142 | ij_xml_space_after_tag_name = false
143 | ij_xml_space_around_equals_in_attribute = false
144 | ij_xml_space_inside_empty_tag = false
145 | ij_xml_text_wrap = normal
146 |
147 | [{*.ats,*.cts,*.mts,*.ts}]
148 | ij_continuation_indent_size = 4
149 | ij_typescript_align_imports = false
150 | ij_typescript_align_multiline_array_initializer_expression = false
151 | ij_typescript_align_multiline_binary_operation = false
152 | ij_typescript_align_multiline_chained_methods = false
153 | ij_typescript_align_multiline_extends_list = false
154 | ij_typescript_align_multiline_for = true
155 | ij_typescript_align_multiline_parameters = true
156 | ij_typescript_align_multiline_parameters_in_calls = false
157 | ij_typescript_align_multiline_ternary_operation = false
158 | ij_typescript_align_object_properties = 0
159 | ij_typescript_align_union_types = false
160 | ij_typescript_align_var_statements = 0
161 | ij_typescript_array_initializer_new_line_after_left_brace = false
162 | ij_typescript_array_initializer_right_brace_on_new_line = false
163 | ij_typescript_array_initializer_wrap = off
164 | ij_typescript_assignment_wrap = off
165 | ij_typescript_binary_operation_sign_on_next_line = false
166 | ij_typescript_binary_operation_wrap = off
167 | ij_typescript_blacklist_imports = rxjs/Rx,node_modules/**,**/node_modules/**,@angular/material,@angular/material/typings/**
168 | ij_typescript_blank_lines_after_imports = 1
169 | ij_typescript_blank_lines_around_class = 1
170 | ij_typescript_blank_lines_around_field = 0
171 | ij_typescript_blank_lines_around_field_in_interface = 0
172 | ij_typescript_blank_lines_around_function = 1
173 | ij_typescript_blank_lines_around_method = 1
174 | ij_typescript_blank_lines_around_method_in_interface = 1
175 | ij_typescript_block_brace_style = end_of_line
176 | ij_typescript_block_comment_add_space = false
177 | ij_typescript_block_comment_at_first_column = true
178 | ij_typescript_call_parameters_new_line_after_left_paren = false
179 | ij_typescript_call_parameters_right_paren_on_new_line = false
180 | ij_typescript_call_parameters_wrap = off
181 | ij_typescript_catch_on_new_line = false
182 | ij_typescript_chained_call_dot_on_new_line = true
183 | ij_typescript_class_brace_style = end_of_line
184 | ij_typescript_comma_on_new_line = false
185 | ij_typescript_do_while_brace_force = never
186 | ij_typescript_else_on_new_line = false
187 | ij_typescript_enforce_trailing_comma = keep
188 | ij_typescript_enum_constants_wrap = on_every_item
189 | ij_typescript_extends_keyword_wrap = off
190 | ij_typescript_extends_list_wrap = off
191 | ij_typescript_field_prefix = _
192 | ij_typescript_file_name_style = relaxed
193 | ij_typescript_finally_on_new_line = false
194 | ij_typescript_for_brace_force = never
195 | ij_typescript_for_statement_new_line_after_left_paren = false
196 | ij_typescript_for_statement_right_paren_on_new_line = false
197 | ij_typescript_for_statement_wrap = off
198 | ij_typescript_force_quote_style = false
199 | ij_typescript_force_semicolon_style = false
200 | ij_typescript_function_expression_brace_style = end_of_line
201 | ij_typescript_if_brace_force = never
202 | ij_typescript_import_merge_members = global
203 | ij_typescript_import_prefer_absolute_path = global
204 | ij_typescript_import_sort_members = true
205 | ij_typescript_import_sort_module_name = false
206 | ij_typescript_import_use_node_resolution = true
207 | ij_typescript_imports_wrap = on_every_item
208 | ij_typescript_indent_case_from_switch = true
209 | ij_typescript_indent_chained_calls = true
210 | ij_typescript_indent_package_children = 0
211 | ij_typescript_jsdoc_include_types = false
212 | ij_typescript_jsx_attribute_value = braces
213 | ij_typescript_keep_blank_lines_in_code = 2
214 | ij_typescript_keep_first_column_comment = true
215 | ij_typescript_keep_indents_on_empty_lines = false
216 | ij_typescript_keep_line_breaks = true
217 | ij_typescript_keep_simple_blocks_in_one_line = false
218 | ij_typescript_keep_simple_methods_in_one_line = false
219 | ij_typescript_line_comment_add_space = true
220 | ij_typescript_line_comment_at_first_column = false
221 | ij_typescript_method_brace_style = end_of_line
222 | ij_typescript_method_call_chain_wrap = off
223 | ij_typescript_method_parameters_new_line_after_left_paren = false
224 | ij_typescript_method_parameters_right_paren_on_new_line = false
225 | ij_typescript_method_parameters_wrap = off
226 | ij_typescript_object_literal_wrap = on_every_item
227 | ij_typescript_object_types_wrap = on_every_item
228 | ij_typescript_parentheses_expression_new_line_after_left_paren = false
229 | ij_typescript_parentheses_expression_right_paren_on_new_line = false
230 | ij_typescript_place_assignment_sign_on_next_line = false
231 | ij_typescript_prefer_as_type_cast = false
232 | ij_typescript_prefer_explicit_types_function_expression_returns = false
233 | ij_typescript_prefer_explicit_types_function_returns = false
234 | ij_typescript_prefer_explicit_types_vars_fields = false
235 | ij_typescript_prefer_parameters_wrap = false
236 | ij_typescript_property_prefix =
237 | ij_typescript_reformat_c_style_comments = false
238 | ij_typescript_space_after_colon = true
239 | ij_typescript_space_after_comma = true
240 | ij_typescript_space_after_dots_in_rest_parameter = false
241 | ij_typescript_space_after_generator_mult = true
242 | ij_typescript_space_after_property_colon = true
243 | ij_typescript_space_after_quest = true
244 | ij_typescript_space_after_type_colon = true
245 | ij_typescript_space_after_unary_not = false
246 | ij_typescript_space_before_async_arrow_lparen = true
247 | ij_typescript_space_before_catch_keyword = true
248 | ij_typescript_space_before_catch_left_brace = true
249 | ij_typescript_space_before_catch_parentheses = true
250 | ij_typescript_space_before_class_lbrace = true
251 | ij_typescript_space_before_class_left_brace = true
252 | ij_typescript_space_before_colon = true
253 | ij_typescript_space_before_comma = false
254 | ij_typescript_space_before_do_left_brace = true
255 | ij_typescript_space_before_else_keyword = true
256 | ij_typescript_space_before_else_left_brace = true
257 | ij_typescript_space_before_finally_keyword = true
258 | ij_typescript_space_before_finally_left_brace = true
259 | ij_typescript_space_before_for_left_brace = true
260 | ij_typescript_space_before_for_parentheses = true
261 | ij_typescript_space_before_for_semicolon = false
262 | ij_typescript_space_before_function_left_parenth = true
263 | ij_typescript_space_before_generator_mult = false
264 | ij_typescript_space_before_if_left_brace = true
265 | ij_typescript_space_before_if_parentheses = true
266 | ij_typescript_space_before_method_call_parentheses = false
267 | ij_typescript_space_before_method_left_brace = true
268 | ij_typescript_space_before_method_parentheses = false
269 | ij_typescript_space_before_property_colon = false
270 | ij_typescript_space_before_quest = true
271 | ij_typescript_space_before_switch_left_brace = true
272 | ij_typescript_space_before_switch_parentheses = true
273 | ij_typescript_space_before_try_left_brace = true
274 | ij_typescript_space_before_type_colon = false
275 | ij_typescript_space_before_unary_not = false
276 | ij_typescript_space_before_while_keyword = true
277 | ij_typescript_space_before_while_left_brace = true
278 | ij_typescript_space_before_while_parentheses = true
279 | ij_typescript_spaces_around_additive_operators = true
280 | ij_typescript_spaces_around_arrow_function_operator = true
281 | ij_typescript_spaces_around_assignment_operators = true
282 | ij_typescript_spaces_around_bitwise_operators = true
283 | ij_typescript_spaces_around_equality_operators = true
284 | ij_typescript_spaces_around_logical_operators = true
285 | ij_typescript_spaces_around_multiplicative_operators = true
286 | ij_typescript_spaces_around_relational_operators = true
287 | ij_typescript_spaces_around_shift_operators = true
288 | ij_typescript_spaces_around_unary_operator = false
289 | ij_typescript_spaces_within_array_initializer_brackets = false
290 | ij_typescript_spaces_within_brackets = false
291 | ij_typescript_spaces_within_catch_parentheses = false
292 | ij_typescript_spaces_within_for_parentheses = false
293 | ij_typescript_spaces_within_if_parentheses = false
294 | ij_typescript_spaces_within_imports = false
295 | ij_typescript_spaces_within_interpolation_expressions = false
296 | ij_typescript_spaces_within_method_call_parentheses = false
297 | ij_typescript_spaces_within_method_parentheses = false
298 | ij_typescript_spaces_within_object_literal_braces = false
299 | ij_typescript_spaces_within_object_type_braces = true
300 | ij_typescript_spaces_within_parentheses = false
301 | ij_typescript_spaces_within_switch_parentheses = false
302 | ij_typescript_spaces_within_type_assertion = false
303 | ij_typescript_spaces_within_union_types = true
304 | ij_typescript_spaces_within_while_parentheses = false
305 | ij_typescript_special_else_if_treatment = true
306 | ij_typescript_ternary_operation_signs_on_next_line = false
307 | ij_typescript_ternary_operation_wrap = off
308 | ij_typescript_union_types_wrap = on_every_item
309 | ij_typescript_use_chained_calls_group_indents = false
310 | ij_typescript_use_double_quotes = true
311 | ij_typescript_use_explicit_js_extension = auto
312 | ij_typescript_use_path_mapping = always
313 | ij_typescript_use_public_modifier = false
314 | ij_typescript_use_semicolon_after_statement = true
315 | ij_typescript_var_declaration_wrap = normal
316 | ij_typescript_while_brace_force = never
317 | ij_typescript_while_on_new_line = false
318 | ij_typescript_wrap_comments = false
319 |
320 | [{*.bash,*.sh,*.zsh}]
321 | indent_size = 2
322 | tab_width = 2
323 | ij_shell_binary_ops_start_line = false
324 | ij_shell_keep_column_alignment_padding = false
325 | ij_shell_minify_program = false
326 | ij_shell_redirect_followed_by_space = false
327 | ij_shell_switch_cases_indented = false
328 | ij_shell_use_unix_line_separator = true
329 |
330 | [{*.cjs,*.js}]
331 | ij_continuation_indent_size = 4
332 | ij_javascript_align_imports = false
333 | ij_javascript_align_multiline_array_initializer_expression = false
334 | ij_javascript_align_multiline_binary_operation = false
335 | ij_javascript_align_multiline_chained_methods = false
336 | ij_javascript_align_multiline_extends_list = false
337 | ij_javascript_align_multiline_for = true
338 | ij_javascript_align_multiline_parameters = true
339 | ij_javascript_align_multiline_parameters_in_calls = false
340 | ij_javascript_align_multiline_ternary_operation = false
341 | ij_javascript_align_object_properties = 0
342 | ij_javascript_align_union_types = false
343 | ij_javascript_align_var_statements = 0
344 | ij_javascript_array_initializer_new_line_after_left_brace = false
345 | ij_javascript_array_initializer_right_brace_on_new_line = false
346 | ij_javascript_array_initializer_wrap = off
347 | ij_javascript_assignment_wrap = off
348 | ij_javascript_binary_operation_sign_on_next_line = false
349 | ij_javascript_binary_operation_wrap = off
350 | ij_javascript_blacklist_imports = rxjs/Rx,node_modules/**,**/node_modules/**,@angular/material,@angular/material/typings/**
351 | ij_javascript_blank_lines_after_imports = 1
352 | ij_javascript_blank_lines_around_class = 1
353 | ij_javascript_blank_lines_around_field = 0
354 | ij_javascript_blank_lines_around_function = 1
355 | ij_javascript_blank_lines_around_method = 1
356 | ij_javascript_block_brace_style = end_of_line
357 | ij_javascript_block_comment_add_space = false
358 | ij_javascript_block_comment_at_first_column = true
359 | ij_javascript_call_parameters_new_line_after_left_paren = false
360 | ij_javascript_call_parameters_right_paren_on_new_line = false
361 | ij_javascript_call_parameters_wrap = off
362 | ij_javascript_catch_on_new_line = false
363 | ij_javascript_chained_call_dot_on_new_line = true
364 | ij_javascript_class_brace_style = end_of_line
365 | ij_javascript_comma_on_new_line = false
366 | ij_javascript_do_while_brace_force = never
367 | ij_javascript_else_on_new_line = false
368 | ij_javascript_enforce_trailing_comma = keep
369 | ij_javascript_extends_keyword_wrap = off
370 | ij_javascript_extends_list_wrap = off
371 | ij_javascript_field_prefix = _
372 | ij_javascript_file_name_style = relaxed
373 | ij_javascript_finally_on_new_line = false
374 | ij_javascript_for_brace_force = never
375 | ij_javascript_for_statement_new_line_after_left_paren = false
376 | ij_javascript_for_statement_right_paren_on_new_line = false
377 | ij_javascript_for_statement_wrap = off
378 | ij_javascript_force_quote_style = false
379 | ij_javascript_force_semicolon_style = false
380 | ij_javascript_function_expression_brace_style = end_of_line
381 | ij_javascript_if_brace_force = never
382 | ij_javascript_import_merge_members = global
383 | ij_javascript_import_prefer_absolute_path = global
384 | ij_javascript_import_sort_members = true
385 | ij_javascript_import_sort_module_name = false
386 | ij_javascript_import_use_node_resolution = true
387 | ij_javascript_imports_wrap = on_every_item
388 | ij_javascript_indent_case_from_switch = true
389 | ij_javascript_indent_chained_calls = true
390 | ij_javascript_indent_package_children = 0
391 | ij_javascript_jsx_attribute_value = braces
392 | ij_javascript_keep_blank_lines_in_code = 2
393 | ij_javascript_keep_first_column_comment = true
394 | ij_javascript_keep_indents_on_empty_lines = false
395 | ij_javascript_keep_line_breaks = true
396 | ij_javascript_keep_simple_blocks_in_one_line = false
397 | ij_javascript_keep_simple_methods_in_one_line = false
398 | ij_javascript_line_comment_add_space = true
399 | ij_javascript_line_comment_at_first_column = false
400 | ij_javascript_method_brace_style = end_of_line
401 | ij_javascript_method_call_chain_wrap = off
402 | ij_javascript_method_parameters_new_line_after_left_paren = false
403 | ij_javascript_method_parameters_right_paren_on_new_line = false
404 | ij_javascript_method_parameters_wrap = off
405 | ij_javascript_object_literal_wrap = on_every_item
406 | ij_javascript_object_types_wrap = on_every_item
407 | ij_javascript_parentheses_expression_new_line_after_left_paren = false
408 | ij_javascript_parentheses_expression_right_paren_on_new_line = false
409 | ij_javascript_place_assignment_sign_on_next_line = false
410 | ij_javascript_prefer_as_type_cast = false
411 | ij_javascript_prefer_explicit_types_function_expression_returns = false
412 | ij_javascript_prefer_explicit_types_function_returns = false
413 | ij_javascript_prefer_explicit_types_vars_fields = false
414 | ij_javascript_prefer_parameters_wrap = false
415 | ij_javascript_property_prefix =
416 | ij_javascript_reformat_c_style_comments = false
417 | ij_javascript_space_after_colon = true
418 | ij_javascript_space_after_comma = true
419 | ij_javascript_space_after_dots_in_rest_parameter = false
420 | ij_javascript_space_after_generator_mult = true
421 | ij_javascript_space_after_property_colon = true
422 | ij_javascript_space_after_quest = true
423 | ij_javascript_space_after_type_colon = true
424 | ij_javascript_space_after_unary_not = false
425 | ij_javascript_space_before_async_arrow_lparen = true
426 | ij_javascript_space_before_catch_keyword = true
427 | ij_javascript_space_before_catch_left_brace = true
428 | ij_javascript_space_before_catch_parentheses = true
429 | ij_javascript_space_before_class_lbrace = true
430 | ij_javascript_space_before_class_left_brace = true
431 | ij_javascript_space_before_colon = true
432 | ij_javascript_space_before_comma = false
433 | ij_javascript_space_before_do_left_brace = true
434 | ij_javascript_space_before_else_keyword = true
435 | ij_javascript_space_before_else_left_brace = true
436 | ij_javascript_space_before_finally_keyword = true
437 | ij_javascript_space_before_finally_left_brace = true
438 | ij_javascript_space_before_for_left_brace = true
439 | ij_javascript_space_before_for_parentheses = true
440 | ij_javascript_space_before_for_semicolon = false
441 | ij_javascript_space_before_function_left_parenth = true
442 | ij_javascript_space_before_generator_mult = false
443 | ij_javascript_space_before_if_left_brace = true
444 | ij_javascript_space_before_if_parentheses = true
445 | ij_javascript_space_before_method_call_parentheses = false
446 | ij_javascript_space_before_method_left_brace = true
447 | ij_javascript_space_before_method_parentheses = false
448 | ij_javascript_space_before_property_colon = false
449 | ij_javascript_space_before_quest = true
450 | ij_javascript_space_before_switch_left_brace = true
451 | ij_javascript_space_before_switch_parentheses = true
452 | ij_javascript_space_before_try_left_brace = true
453 | ij_javascript_space_before_type_colon = false
454 | ij_javascript_space_before_unary_not = false
455 | ij_javascript_space_before_while_keyword = true
456 | ij_javascript_space_before_while_left_brace = true
457 | ij_javascript_space_before_while_parentheses = true
458 | ij_javascript_spaces_around_additive_operators = true
459 | ij_javascript_spaces_around_arrow_function_operator = true
460 | ij_javascript_spaces_around_assignment_operators = true
461 | ij_javascript_spaces_around_bitwise_operators = true
462 | ij_javascript_spaces_around_equality_operators = true
463 | ij_javascript_spaces_around_logical_operators = true
464 | ij_javascript_spaces_around_multiplicative_operators = true
465 | ij_javascript_spaces_around_relational_operators = true
466 | ij_javascript_spaces_around_shift_operators = true
467 | ij_javascript_spaces_around_unary_operator = false
468 | ij_javascript_spaces_within_array_initializer_brackets = false
469 | ij_javascript_spaces_within_brackets = false
470 | ij_javascript_spaces_within_catch_parentheses = false
471 | ij_javascript_spaces_within_for_parentheses = false
472 | ij_javascript_spaces_within_if_parentheses = false
473 | ij_javascript_spaces_within_imports = false
474 | ij_javascript_spaces_within_interpolation_expressions = false
475 | ij_javascript_spaces_within_method_call_parentheses = false
476 | ij_javascript_spaces_within_method_parentheses = false
477 | ij_javascript_spaces_within_object_literal_braces = false
478 | ij_javascript_spaces_within_object_type_braces = true
479 | ij_javascript_spaces_within_parentheses = false
480 | ij_javascript_spaces_within_switch_parentheses = false
481 | ij_javascript_spaces_within_type_assertion = false
482 | ij_javascript_spaces_within_union_types = true
483 | ij_javascript_spaces_within_while_parentheses = false
484 | ij_javascript_special_else_if_treatment = true
485 | ij_javascript_ternary_operation_signs_on_next_line = false
486 | ij_javascript_ternary_operation_wrap = off
487 | ij_javascript_union_types_wrap = on_every_item
488 | ij_javascript_use_chained_calls_group_indents = false
489 | ij_javascript_use_double_quotes = true
490 | ij_javascript_use_explicit_js_extension = auto
491 | ij_javascript_use_path_mapping = always
492 | ij_javascript_use_public_modifier = false
493 | ij_javascript_use_semicolon_after_statement = true
494 | ij_javascript_var_declaration_wrap = normal
495 | ij_javascript_while_brace_force = never
496 | ij_javascript_while_on_new_line = false
497 | ij_javascript_wrap_comments = false
498 |
499 | [{*.har,*.jsb2,*.jsb3,*.json,.babelrc,.eslintrc,.prettierrc,.stylelintrc,bowerrc,jest.config}]
500 | indent_size = 2
501 | ij_json_array_wrapping = split_into_lines
502 | ij_json_keep_blank_lines_in_code = 0
503 | ij_json_keep_indents_on_empty_lines = false
504 | ij_json_keep_line_breaks = true
505 | ij_json_keep_trailing_comma = false
506 | ij_json_object_wrapping = split_into_lines
507 | ij_json_property_alignment = do_not_align
508 | ij_json_space_after_colon = true
509 | ij_json_space_after_comma = true
510 | ij_json_space_before_colon = false
511 | ij_json_space_before_comma = false
512 | ij_json_spaces_within_braces = false
513 | ij_json_spaces_within_brackets = false
514 | ij_json_wrap_long_lines = false
515 |
516 | [{*.htm,*.html,*.ng,*.sht,*.shtm,*.shtml}]
517 | indent_size = 2
518 | tab_width = 2
519 | ij_continuation_indent_size = 4
520 | ij_html_add_new_line_before_tags = body,div,p,form,h1,h2,h3
521 | ij_html_align_attributes = true
522 | ij_html_align_text = false
523 | ij_html_attribute_wrap = normal
524 | ij_html_block_comment_add_space = false
525 | ij_html_block_comment_at_first_column = true
526 | ij_html_do_not_align_children_of_min_lines = 0
527 | ij_html_do_not_break_if_inline_tags = title,h1,h2,h3,h4,h5,h6,p
528 | ij_html_do_not_indent_children_of_tags = html,thead,tbody,tfoot
529 | ij_html_enforce_quotes = false
530 | ij_html_inline_tags = a,abbr,acronym,b,basefont,bdo,big,br,cite,cite,code,dfn,em,font,i,img,input,kbd,label,q,s,samp,select,small,span,strike,strong,sub,sup,textarea,tt,u,var
531 | ij_html_keep_blank_lines = 2
532 | ij_html_keep_indents_on_empty_lines = false
533 | ij_html_keep_line_breaks = true
534 | ij_html_keep_line_breaks_in_text = true
535 | ij_html_keep_whitespaces = false
536 | ij_html_keep_whitespaces_inside = span,pre,textarea
537 | ij_html_line_comment_at_first_column = true
538 | ij_html_new_line_after_last_attribute = never
539 | ij_html_new_line_before_first_attribute = never
540 | ij_html_quote_style = double
541 | ij_html_remove_new_line_before_tags = br
542 | ij_html_space_after_tag_name = false
543 | ij_html_space_around_equality_in_attribute = false
544 | ij_html_space_inside_empty_tag = false
545 | ij_html_text_wrap = normal
546 |
547 | [{*.http,*.rest}]
548 | indent_size = 0
549 | ij_continuation_indent_size = 4
550 | ij_http-request_call_parameters_wrap = normal
551 | ij_http-request_method_parameters_wrap = split_into_lines
552 | ij_http-request_space_before_comma = true
553 | ij_http-request_spaces_around_assignment_operators = true
554 |
555 | [{*.markdown,*.md}]
556 | ij_markdown_force_one_space_after_blockquote_symbol = true
557 | ij_markdown_force_one_space_after_header_symbol = true
558 | ij_markdown_force_one_space_after_list_bullet = true
559 | ij_markdown_force_one_space_between_words = true
560 | ij_markdown_format_tables = true
561 | ij_markdown_insert_quote_arrows_on_wrap = true
562 | ij_markdown_keep_indents_on_empty_lines = false
563 | ij_markdown_keep_line_breaks_inside_text_blocks = true
564 | ij_markdown_max_lines_around_block_elements = 1
565 | ij_markdown_max_lines_around_header = 1
566 | ij_markdown_max_lines_between_paragraphs = 1
567 | ij_markdown_min_lines_around_block_elements = 1
568 | ij_markdown_min_lines_around_header = 1
569 | ij_markdown_min_lines_between_paragraphs = 1
570 | ij_markdown_wrap_text_if_long = true
571 | ij_markdown_wrap_text_inside_blockquotes = true
572 |
573 | [{*.yaml,*.yml}]
574 | indent_size = 2
575 | ij_yaml_align_values_properties = do_not_align
576 | ij_yaml_autoinsert_sequence_marker = true
577 | ij_yaml_block_mapping_on_new_line = false
578 | ij_yaml_indent_sequence_value = true
579 | ij_yaml_keep_indents_on_empty_lines = false
580 | ij_yaml_keep_line_breaks = true
581 | ij_yaml_sequence_on_new_line = false
582 | ij_yaml_space_before_colon = false
583 | ij_yaml_spaces_within_braces = true
584 | ij_yaml_spaces_within_brackets = true
585 |
--------------------------------------------------------------------------------
/.gitignore:
--------------------------------------------------------------------------------
1 | # Logs
2 | logs
3 | *.log
4 | npm-debug.log*
5 | yarn-debug.log*
6 | yarn-error.log*
7 | pnpm-debug.log*
8 | lerna-debug.log*
9 |
10 | node_modules
11 | .DS_Store
12 | dist
13 | dist-ssr
14 | coverage
15 | *.local
16 |
17 | /cypress/videos/
18 | /cypress/screenshots/
19 |
20 | # Editor directories and files
21 | .vscode/*
22 | !.vscode/extensions.json
23 | .idea
24 | *.suo
25 | *.ntvs*
26 | *.njsproj
27 | *.sln
28 | *.sw?
29 |
--------------------------------------------------------------------------------
/.vscode/extensions.json:
--------------------------------------------------------------------------------
1 | {
2 | "recommendations": ["Vue.volar", "Vue.vscode-typescript-vue-plugin"]
3 | }
4 |
--------------------------------------------------------------------------------
/README.md:
--------------------------------------------------------------------------------
1 | # watermark
2 |
3 | Vue3 watermark
4 |
5 | ## Project Setup
6 |
7 | ```sh
8 | npm install
9 | ```
10 |
11 | ### Compile and Hot-Reload for Development
12 |
13 | ```sh
14 | npm run dev
15 | ```
16 |
17 | ### Compile and Minify for Production
18 |
19 | ```sh
20 | npm run build
21 | ```
22 |
--------------------------------------------------------------------------------
/avatar.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Nash-x9/watermark/2d5124b748aa457944257eecd56d9ad38a6408be/avatar.jpg
--------------------------------------------------------------------------------
/index.html:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 | 水印工具 - 纯前端水印
10 |
11 |
12 |
13 |
14 |
15 |
16 |
17 |
23 |
--------------------------------------------------------------------------------
/package-lock.json:
--------------------------------------------------------------------------------
1 | {
2 | "name": "watermark",
3 | "version": "0.0.0",
4 | "lockfileVersion": 2,
5 | "requires": true,
6 | "packages": {
7 | "": {
8 | "name": "watermark",
9 | "version": "0.0.0",
10 | "dependencies": {
11 | "colorpicker-v3": "^2.10.2",
12 | "vue": "^3.3.4"
13 | },
14 | "devDependencies": {
15 | "@vitejs/plugin-vue": "^4.4.0",
16 | "vite": "^4.4.11"
17 | }
18 | },
19 | "node_modules/@babel/parser": {
20 | "version": "7.23.0",
21 | "resolved": "https://registry.npmmirror.com/@babel/parser/-/parser-7.23.0.tgz",
22 | "integrity": "sha512-vvPKKdMemU85V9WE/l5wZEmImpCtLqbnTvqDS2U1fJ96KrxoW7KrXhNsNCblQlg8Ck4b85yxdTyelsMUgFUXiw==",
23 | "bin": {
24 | "parser": "bin/babel-parser.js"
25 | },
26 | "engines": {
27 | "node": ">=6.0.0"
28 | }
29 | },
30 | "node_modules/@esbuild/android-arm": {
31 | "version": "0.18.20",
32 | "resolved": "https://registry.npmmirror.com/@esbuild/android-arm/-/android-arm-0.18.20.tgz",
33 | "integrity": "sha512-fyi7TDI/ijKKNZTUJAQqiG5T7YjJXgnzkURqmGj13C6dCqckZBLdl4h7bkhHt/t0WP+zO9/zwroDvANaOqO5Sw==",
34 | "cpu": [
35 | "arm"
36 | ],
37 | "dev": true,
38 | "optional": true,
39 | "os": [
40 | "android"
41 | ],
42 | "engines": {
43 | "node": ">=12"
44 | }
45 | },
46 | "node_modules/@esbuild/android-arm64": {
47 | "version": "0.18.20",
48 | "resolved": "https://registry.npmmirror.com/@esbuild/android-arm64/-/android-arm64-0.18.20.tgz",
49 | "integrity": "sha512-Nz4rJcchGDtENV0eMKUNa6L12zz2zBDXuhj/Vjh18zGqB44Bi7MBMSXjgunJgjRhCmKOjnPuZp4Mb6OKqtMHLQ==",
50 | "cpu": [
51 | "arm64"
52 | ],
53 | "dev": true,
54 | "optional": true,
55 | "os": [
56 | "android"
57 | ],
58 | "engines": {
59 | "node": ">=12"
60 | }
61 | },
62 | "node_modules/@esbuild/android-x64": {
63 | "version": "0.18.20",
64 | "resolved": "https://registry.npmmirror.com/@esbuild/android-x64/-/android-x64-0.18.20.tgz",
65 | "integrity": "sha512-8GDdlePJA8D6zlZYJV/jnrRAi6rOiNaCC/JclcXpB+KIuvfBN4owLtgzY2bsxnx666XjJx2kDPUmnTtR8qKQUg==",
66 | "cpu": [
67 | "x64"
68 | ],
69 | "dev": true,
70 | "optional": true,
71 | "os": [
72 | "android"
73 | ],
74 | "engines": {
75 | "node": ">=12"
76 | }
77 | },
78 | "node_modules/@esbuild/darwin-arm64": {
79 | "version": "0.18.20",
80 | "resolved": "https://registry.npmmirror.com/@esbuild/darwin-arm64/-/darwin-arm64-0.18.20.tgz",
81 | "integrity": "sha512-bxRHW5kHU38zS2lPTPOyuyTm+S+eobPUnTNkdJEfAddYgEcll4xkT8DB9d2008DtTbl7uJag2HuE5NZAZgnNEA==",
82 | "cpu": [
83 | "arm64"
84 | ],
85 | "dev": true,
86 | "optional": true,
87 | "os": [
88 | "darwin"
89 | ],
90 | "engines": {
91 | "node": ">=12"
92 | }
93 | },
94 | "node_modules/@esbuild/darwin-x64": {
95 | "version": "0.18.20",
96 | "resolved": "https://registry.npmmirror.com/@esbuild/darwin-x64/-/darwin-x64-0.18.20.tgz",
97 | "integrity": "sha512-pc5gxlMDxzm513qPGbCbDukOdsGtKhfxD1zJKXjCCcU7ju50O7MeAZ8c4krSJcOIJGFR+qx21yMMVYwiQvyTyQ==",
98 | "cpu": [
99 | "x64"
100 | ],
101 | "dev": true,
102 | "optional": true,
103 | "os": [
104 | "darwin"
105 | ],
106 | "engines": {
107 | "node": ">=12"
108 | }
109 | },
110 | "node_modules/@esbuild/freebsd-arm64": {
111 | "version": "0.18.20",
112 | "resolved": "https://registry.npmmirror.com/@esbuild/freebsd-arm64/-/freebsd-arm64-0.18.20.tgz",
113 | "integrity": "sha512-yqDQHy4QHevpMAaxhhIwYPMv1NECwOvIpGCZkECn8w2WFHXjEwrBn3CeNIYsibZ/iZEUemj++M26W3cNR5h+Tw==",
114 | "cpu": [
115 | "arm64"
116 | ],
117 | "dev": true,
118 | "optional": true,
119 | "os": [
120 | "freebsd"
121 | ],
122 | "engines": {
123 | "node": ">=12"
124 | }
125 | },
126 | "node_modules/@esbuild/freebsd-x64": {
127 | "version": "0.18.20",
128 | "resolved": "https://registry.npmmirror.com/@esbuild/freebsd-x64/-/freebsd-x64-0.18.20.tgz",
129 | "integrity": "sha512-tgWRPPuQsd3RmBZwarGVHZQvtzfEBOreNuxEMKFcd5DaDn2PbBxfwLcj4+aenoh7ctXcbXmOQIn8HI6mCSw5MQ==",
130 | "cpu": [
131 | "x64"
132 | ],
133 | "dev": true,
134 | "optional": true,
135 | "os": [
136 | "freebsd"
137 | ],
138 | "engines": {
139 | "node": ">=12"
140 | }
141 | },
142 | "node_modules/@esbuild/linux-arm": {
143 | "version": "0.18.20",
144 | "resolved": "https://registry.npmmirror.com/@esbuild/linux-arm/-/linux-arm-0.18.20.tgz",
145 | "integrity": "sha512-/5bHkMWnq1EgKr1V+Ybz3s1hWXok7mDFUMQ4cG10AfW3wL02PSZi5kFpYKrptDsgb2WAJIvRcDm+qIvXf/apvg==",
146 | "cpu": [
147 | "arm"
148 | ],
149 | "dev": true,
150 | "optional": true,
151 | "os": [
152 | "linux"
153 | ],
154 | "engines": {
155 | "node": ">=12"
156 | }
157 | },
158 | "node_modules/@esbuild/linux-arm64": {
159 | "version": "0.18.20",
160 | "resolved": "https://registry.npmmirror.com/@esbuild/linux-arm64/-/linux-arm64-0.18.20.tgz",
161 | "integrity": "sha512-2YbscF+UL7SQAVIpnWvYwM+3LskyDmPhe31pE7/aoTMFKKzIc9lLbyGUpmmb8a8AixOL61sQ/mFh3jEjHYFvdA==",
162 | "cpu": [
163 | "arm64"
164 | ],
165 | "dev": true,
166 | "optional": true,
167 | "os": [
168 | "linux"
169 | ],
170 | "engines": {
171 | "node": ">=12"
172 | }
173 | },
174 | "node_modules/@esbuild/linux-ia32": {
175 | "version": "0.18.20",
176 | "resolved": "https://registry.npmmirror.com/@esbuild/linux-ia32/-/linux-ia32-0.18.20.tgz",
177 | "integrity": "sha512-P4etWwq6IsReT0E1KHU40bOnzMHoH73aXp96Fs8TIT6z9Hu8G6+0SHSw9i2isWrD2nbx2qo5yUqACgdfVGx7TA==",
178 | "cpu": [
179 | "ia32"
180 | ],
181 | "dev": true,
182 | "optional": true,
183 | "os": [
184 | "linux"
185 | ],
186 | "engines": {
187 | "node": ">=12"
188 | }
189 | },
190 | "node_modules/@esbuild/linux-loong64": {
191 | "version": "0.18.20",
192 | "resolved": "https://registry.npmmirror.com/@esbuild/linux-loong64/-/linux-loong64-0.18.20.tgz",
193 | "integrity": "sha512-nXW8nqBTrOpDLPgPY9uV+/1DjxoQ7DoB2N8eocyq8I9XuqJ7BiAMDMf9n1xZM9TgW0J8zrquIb/A7s3BJv7rjg==",
194 | "cpu": [
195 | "loong64"
196 | ],
197 | "dev": true,
198 | "optional": true,
199 | "os": [
200 | "linux"
201 | ],
202 | "engines": {
203 | "node": ">=12"
204 | }
205 | },
206 | "node_modules/@esbuild/linux-mips64el": {
207 | "version": "0.18.20",
208 | "resolved": "https://registry.npmmirror.com/@esbuild/linux-mips64el/-/linux-mips64el-0.18.20.tgz",
209 | "integrity": "sha512-d5NeaXZcHp8PzYy5VnXV3VSd2D328Zb+9dEq5HE6bw6+N86JVPExrA6O68OPwobntbNJ0pzCpUFZTo3w0GyetQ==",
210 | "cpu": [
211 | "mips64el"
212 | ],
213 | "dev": true,
214 | "optional": true,
215 | "os": [
216 | "linux"
217 | ],
218 | "engines": {
219 | "node": ">=12"
220 | }
221 | },
222 | "node_modules/@esbuild/linux-ppc64": {
223 | "version": "0.18.20",
224 | "resolved": "https://registry.npmmirror.com/@esbuild/linux-ppc64/-/linux-ppc64-0.18.20.tgz",
225 | "integrity": "sha512-WHPyeScRNcmANnLQkq6AfyXRFr5D6N2sKgkFo2FqguP44Nw2eyDlbTdZwd9GYk98DZG9QItIiTlFLHJHjxP3FA==",
226 | "cpu": [
227 | "ppc64"
228 | ],
229 | "dev": true,
230 | "optional": true,
231 | "os": [
232 | "linux"
233 | ],
234 | "engines": {
235 | "node": ">=12"
236 | }
237 | },
238 | "node_modules/@esbuild/linux-riscv64": {
239 | "version": "0.18.20",
240 | "resolved": "https://registry.npmmirror.com/@esbuild/linux-riscv64/-/linux-riscv64-0.18.20.tgz",
241 | "integrity": "sha512-WSxo6h5ecI5XH34KC7w5veNnKkju3zBRLEQNY7mv5mtBmrP/MjNBCAlsM2u5hDBlS3NGcTQpoBvRzqBcRtpq1A==",
242 | "cpu": [
243 | "riscv64"
244 | ],
245 | "dev": true,
246 | "optional": true,
247 | "os": [
248 | "linux"
249 | ],
250 | "engines": {
251 | "node": ">=12"
252 | }
253 | },
254 | "node_modules/@esbuild/linux-s390x": {
255 | "version": "0.18.20",
256 | "resolved": "https://registry.npmmirror.com/@esbuild/linux-s390x/-/linux-s390x-0.18.20.tgz",
257 | "integrity": "sha512-+8231GMs3mAEth6Ja1iK0a1sQ3ohfcpzpRLH8uuc5/KVDFneH6jtAJLFGafpzpMRO6DzJ6AvXKze9LfFMrIHVQ==",
258 | "cpu": [
259 | "s390x"
260 | ],
261 | "dev": true,
262 | "optional": true,
263 | "os": [
264 | "linux"
265 | ],
266 | "engines": {
267 | "node": ">=12"
268 | }
269 | },
270 | "node_modules/@esbuild/linux-x64": {
271 | "version": "0.18.20",
272 | "resolved": "https://registry.npmmirror.com/@esbuild/linux-x64/-/linux-x64-0.18.20.tgz",
273 | "integrity": "sha512-UYqiqemphJcNsFEskc73jQ7B9jgwjWrSayxawS6UVFZGWrAAtkzjxSqnoclCXxWtfwLdzU+vTpcNYhpn43uP1w==",
274 | "cpu": [
275 | "x64"
276 | ],
277 | "dev": true,
278 | "optional": true,
279 | "os": [
280 | "linux"
281 | ],
282 | "engines": {
283 | "node": ">=12"
284 | }
285 | },
286 | "node_modules/@esbuild/netbsd-x64": {
287 | "version": "0.18.20",
288 | "resolved": "https://registry.npmmirror.com/@esbuild/netbsd-x64/-/netbsd-x64-0.18.20.tgz",
289 | "integrity": "sha512-iO1c++VP6xUBUmltHZoMtCUdPlnPGdBom6IrO4gyKPFFVBKioIImVooR5I83nTew5UOYrk3gIJhbZh8X44y06A==",
290 | "cpu": [
291 | "x64"
292 | ],
293 | "dev": true,
294 | "optional": true,
295 | "os": [
296 | "netbsd"
297 | ],
298 | "engines": {
299 | "node": ">=12"
300 | }
301 | },
302 | "node_modules/@esbuild/openbsd-x64": {
303 | "version": "0.18.20",
304 | "resolved": "https://registry.npmmirror.com/@esbuild/openbsd-x64/-/openbsd-x64-0.18.20.tgz",
305 | "integrity": "sha512-e5e4YSsuQfX4cxcygw/UCPIEP6wbIL+se3sxPdCiMbFLBWu0eiZOJ7WoD+ptCLrmjZBK1Wk7I6D/I3NglUGOxg==",
306 | "cpu": [
307 | "x64"
308 | ],
309 | "dev": true,
310 | "optional": true,
311 | "os": [
312 | "openbsd"
313 | ],
314 | "engines": {
315 | "node": ">=12"
316 | }
317 | },
318 | "node_modules/@esbuild/sunos-x64": {
319 | "version": "0.18.20",
320 | "resolved": "https://registry.npmmirror.com/@esbuild/sunos-x64/-/sunos-x64-0.18.20.tgz",
321 | "integrity": "sha512-kDbFRFp0YpTQVVrqUd5FTYmWo45zGaXe0X8E1G/LKFC0v8x0vWrhOWSLITcCn63lmZIxfOMXtCfti/RxN/0wnQ==",
322 | "cpu": [
323 | "x64"
324 | ],
325 | "dev": true,
326 | "optional": true,
327 | "os": [
328 | "sunos"
329 | ],
330 | "engines": {
331 | "node": ">=12"
332 | }
333 | },
334 | "node_modules/@esbuild/win32-arm64": {
335 | "version": "0.18.20",
336 | "resolved": "https://registry.npmmirror.com/@esbuild/win32-arm64/-/win32-arm64-0.18.20.tgz",
337 | "integrity": "sha512-ddYFR6ItYgoaq4v4JmQQaAI5s7npztfV4Ag6NrhiaW0RrnOXqBkgwZLofVTlq1daVTQNhtI5oieTvkRPfZrePg==",
338 | "cpu": [
339 | "arm64"
340 | ],
341 | "dev": true,
342 | "optional": true,
343 | "os": [
344 | "win32"
345 | ],
346 | "engines": {
347 | "node": ">=12"
348 | }
349 | },
350 | "node_modules/@esbuild/win32-ia32": {
351 | "version": "0.18.20",
352 | "resolved": "https://registry.npmmirror.com/@esbuild/win32-ia32/-/win32-ia32-0.18.20.tgz",
353 | "integrity": "sha512-Wv7QBi3ID/rROT08SABTS7eV4hX26sVduqDOTe1MvGMjNd3EjOz4b7zeexIR62GTIEKrfJXKL9LFxTYgkyeu7g==",
354 | "cpu": [
355 | "ia32"
356 | ],
357 | "dev": true,
358 | "optional": true,
359 | "os": [
360 | "win32"
361 | ],
362 | "engines": {
363 | "node": ">=12"
364 | }
365 | },
366 | "node_modules/@esbuild/win32-x64": {
367 | "version": "0.18.20",
368 | "resolved": "https://registry.npmmirror.com/@esbuild/win32-x64/-/win32-x64-0.18.20.tgz",
369 | "integrity": "sha512-kTdfRcSiDfQca/y9QIkng02avJ+NCaQvrMejlsB3RRv5sE9rRoeBPISaZpKxHELzRxZyLvNts1P27W3wV+8geQ==",
370 | "cpu": [
371 | "x64"
372 | ],
373 | "dev": true,
374 | "optional": true,
375 | "os": [
376 | "win32"
377 | ],
378 | "engines": {
379 | "node": ">=12"
380 | }
381 | },
382 | "node_modules/@jridgewell/sourcemap-codec": {
383 | "version": "1.4.15",
384 | "resolved": "https://registry.npmmirror.com/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.4.15.tgz",
385 | "integrity": "sha512-eF2rxCRulEKXHTRiDrDy6erMYWqNw4LPdQ8UQA4huuxaQsVeRPFl2oM8oDGxMFhJUWZf9McpLtJasDDZb/Bpeg=="
386 | },
387 | "node_modules/@vitejs/plugin-vue": {
388 | "version": "4.4.0",
389 | "resolved": "https://registry.npmmirror.com/@vitejs/plugin-vue/-/plugin-vue-4.4.0.tgz",
390 | "integrity": "sha512-xdguqb+VUwiRpSg+nsc2HtbAUSGak25DXYvpQQi4RVU1Xq1uworyoH/md9Rfd8zMmPR/pSghr309QNcftUVseg==",
391 | "dev": true,
392 | "engines": {
393 | "node": "^14.18.0 || >=16.0.0"
394 | },
395 | "peerDependencies": {
396 | "vite": "^4.0.0",
397 | "vue": "^3.2.25"
398 | }
399 | },
400 | "node_modules/@vue/compiler-core": {
401 | "version": "3.3.7",
402 | "resolved": "https://registry.npmmirror.com/@vue/compiler-core/-/compiler-core-3.3.7.tgz",
403 | "integrity": "sha512-pACdY6YnTNVLXsB86YD8OF9ihwpolzhhtdLVHhBL6do/ykr6kKXNYABRtNMGrsQXpEXXyAdwvWWkuTbs4MFtPQ==",
404 | "dependencies": {
405 | "@babel/parser": "^7.23.0",
406 | "@vue/shared": "3.3.7",
407 | "estree-walker": "^2.0.2",
408 | "source-map-js": "^1.0.2"
409 | }
410 | },
411 | "node_modules/@vue/compiler-dom": {
412 | "version": "3.3.7",
413 | "resolved": "https://registry.npmmirror.com/@vue/compiler-dom/-/compiler-dom-3.3.7.tgz",
414 | "integrity": "sha512-0LwkyJjnUPssXv/d1vNJ0PKfBlDoQs7n81CbO6Q0zdL7H1EzqYRrTVXDqdBVqro0aJjo/FOa1qBAPVI4PGSHBw==",
415 | "dependencies": {
416 | "@vue/compiler-core": "3.3.7",
417 | "@vue/shared": "3.3.7"
418 | }
419 | },
420 | "node_modules/@vue/compiler-sfc": {
421 | "version": "3.3.7",
422 | "resolved": "https://registry.npmmirror.com/@vue/compiler-sfc/-/compiler-sfc-3.3.7.tgz",
423 | "integrity": "sha512-7pfldWy/J75U/ZyYIXRVqvLRw3vmfxDo2YLMwVtWVNew8Sm8d6wodM+OYFq4ll/UxfqVr0XKiVwti32PCrruAw==",
424 | "dependencies": {
425 | "@babel/parser": "^7.23.0",
426 | "@vue/compiler-core": "3.3.7",
427 | "@vue/compiler-dom": "3.3.7",
428 | "@vue/compiler-ssr": "3.3.7",
429 | "@vue/reactivity-transform": "3.3.7",
430 | "@vue/shared": "3.3.7",
431 | "estree-walker": "^2.0.2",
432 | "magic-string": "^0.30.5",
433 | "postcss": "^8.4.31",
434 | "source-map-js": "^1.0.2"
435 | }
436 | },
437 | "node_modules/@vue/compiler-ssr": {
438 | "version": "3.3.7",
439 | "resolved": "https://registry.npmmirror.com/@vue/compiler-ssr/-/compiler-ssr-3.3.7.tgz",
440 | "integrity": "sha512-TxOfNVVeH3zgBc82kcUv+emNHo+vKnlRrkv8YvQU5+Y5LJGJwSNzcmLUoxD/dNzv0bhQ/F0s+InlgV0NrApJZg==",
441 | "dependencies": {
442 | "@vue/compiler-dom": "3.3.7",
443 | "@vue/shared": "3.3.7"
444 | }
445 | },
446 | "node_modules/@vue/reactivity": {
447 | "version": "3.3.7",
448 | "resolved": "https://registry.npmmirror.com/@vue/reactivity/-/reactivity-3.3.7.tgz",
449 | "integrity": "sha512-cZNVjWiw00708WqT0zRpyAgduG79dScKEPYJXq2xj/aMtk3SKvL3FBt2QKUlh6EHBJ1m8RhBY+ikBUzwc7/khg==",
450 | "dependencies": {
451 | "@vue/shared": "3.3.7"
452 | }
453 | },
454 | "node_modules/@vue/reactivity-transform": {
455 | "version": "3.3.7",
456 | "resolved": "https://registry.npmmirror.com/@vue/reactivity-transform/-/reactivity-transform-3.3.7.tgz",
457 | "integrity": "sha512-APhRmLVbgE1VPGtoLQoWBJEaQk4V8JUsqrQihImVqKT+8U6Qi3t5ATcg4Y9wGAPb3kIhetpufyZ1RhwbZCIdDA==",
458 | "dependencies": {
459 | "@babel/parser": "^7.23.0",
460 | "@vue/compiler-core": "3.3.7",
461 | "@vue/shared": "3.3.7",
462 | "estree-walker": "^2.0.2",
463 | "magic-string": "^0.30.5"
464 | }
465 | },
466 | "node_modules/@vue/runtime-core": {
467 | "version": "3.3.7",
468 | "resolved": "https://registry.npmmirror.com/@vue/runtime-core/-/runtime-core-3.3.7.tgz",
469 | "integrity": "sha512-LHq9du3ubLZFdK/BP0Ysy3zhHqRfBn80Uc+T5Hz3maFJBGhci1MafccnL3rpd5/3wVfRHAe6c+PnlO2PAavPTQ==",
470 | "dependencies": {
471 | "@vue/reactivity": "3.3.7",
472 | "@vue/shared": "3.3.7"
473 | }
474 | },
475 | "node_modules/@vue/runtime-dom": {
476 | "version": "3.3.7",
477 | "resolved": "https://registry.npmmirror.com/@vue/runtime-dom/-/runtime-dom-3.3.7.tgz",
478 | "integrity": "sha512-PFQU1oeJxikdDmrfoNQay5nD4tcPNYixUBruZzVX/l0eyZvFKElZUjW4KctCcs52nnpMGO6UDK+jF5oV4GT5Lw==",
479 | "dependencies": {
480 | "@vue/runtime-core": "3.3.7",
481 | "@vue/shared": "3.3.7",
482 | "csstype": "^3.1.2"
483 | }
484 | },
485 | "node_modules/@vue/server-renderer": {
486 | "version": "3.3.7",
487 | "resolved": "https://registry.npmmirror.com/@vue/server-renderer/-/server-renderer-3.3.7.tgz",
488 | "integrity": "sha512-UlpKDInd1hIZiNuVVVvLgxpfnSouxKQOSE2bOfQpBuGwxRV/JqqTCyyjXUWiwtVMyeRaZhOYYqntxElk8FhBhw==",
489 | "dependencies": {
490 | "@vue/compiler-ssr": "3.3.7",
491 | "@vue/shared": "3.3.7"
492 | },
493 | "peerDependencies": {
494 | "vue": "3.3.7"
495 | }
496 | },
497 | "node_modules/@vue/shared": {
498 | "version": "3.3.7",
499 | "resolved": "https://registry.npmmirror.com/@vue/shared/-/shared-3.3.7.tgz",
500 | "integrity": "sha512-N/tbkINRUDExgcPTBvxNkvHGu504k8lzlNQRITVnm6YjOjwa4r0nnbd4Jb01sNpur5hAllyRJzSK5PvB9PPwRg=="
501 | },
502 | "node_modules/@vueuse/core": {
503 | "version": "7.7.1",
504 | "resolved": "https://registry.npmmirror.com/@vueuse/core/-/core-7.7.1.tgz",
505 | "integrity": "sha512-PRRgbATMpoeUmkCEBtUeJgOwtew8s+4UsEd+Pm7MhkjL2ihCNrSqxNVtM6NFE4uP2sWnkGcZpCjPuNSxowJ1Ow==",
506 | "dependencies": {
507 | "@vueuse/shared": "7.7.1",
508 | "vue-demi": "*"
509 | },
510 | "peerDependencies": {
511 | "@vue/composition-api": "^1.1.0",
512 | "vue": "^2.6.0 || ^3.2.0"
513 | },
514 | "peerDependenciesMeta": {
515 | "@vue/composition-api": {
516 | "optional": true
517 | },
518 | "vue": {
519 | "optional": true
520 | }
521 | }
522 | },
523 | "node_modules/@vueuse/core/node_modules/@vueuse/shared": {
524 | "version": "7.7.1",
525 | "resolved": "https://registry.npmmirror.com/@vueuse/shared/-/shared-7.7.1.tgz",
526 | "integrity": "sha512-rN2qd22AUl7VdBxihagWyhUNHCyVk9IpvBTTfHoLH9G7rGE552X1f+zeCfehuno0zXif13jPw+icW/wn2a0rnQ==",
527 | "dependencies": {
528 | "vue-demi": "*"
529 | },
530 | "peerDependencies": {
531 | "@vue/composition-api": "^1.1.0",
532 | "vue": "^2.6.0 || ^3.2.0"
533 | },
534 | "peerDependenciesMeta": {
535 | "@vue/composition-api": {
536 | "optional": true
537 | },
538 | "vue": {
539 | "optional": true
540 | }
541 | }
542 | },
543 | "node_modules/@vueuse/core/node_modules/vue-demi": {
544 | "version": "0.14.6",
545 | "resolved": "https://registry.npmmirror.com/vue-demi/-/vue-demi-0.14.6.tgz",
546 | "integrity": "sha512-8QA7wrYSHKaYgUxDA5ZC24w+eHm3sYCbp0EzcDwKqN3p6HqtTCGR/GVsPyZW92unff4UlcSh++lmqDWN3ZIq4w==",
547 | "hasInstallScript": true,
548 | "bin": {
549 | "vue-demi-fix": "bin/vue-demi-fix.js",
550 | "vue-demi-switch": "bin/vue-demi-switch.js"
551 | },
552 | "engines": {
553 | "node": ">=12"
554 | },
555 | "peerDependencies": {
556 | "@vue/composition-api": "^1.0.0-rc.1",
557 | "vue": "^3.0.0-0 || ^2.6.0"
558 | },
559 | "peerDependenciesMeta": {
560 | "@vue/composition-api": {
561 | "optional": true
562 | }
563 | }
564 | },
565 | "node_modules/colorpicker-v3": {
566 | "version": "2.10.2",
567 | "resolved": "https://registry.npmmirror.com/colorpicker-v3/-/colorpicker-v3-2.10.2.tgz",
568 | "integrity": "sha512-ZWPq5wcugS3NcL7DwYqVSP5mE/x45FK31olGpig+Tko5jUXk0danfEYi1Aei3lgYs+Z0zAfhbhqVuDgOdUs5Mw==",
569 | "dependencies": {
570 | "@vueuse/core": "^7.5.5",
571 | "vue": "^3.2.25"
572 | }
573 | },
574 | "node_modules/csstype": {
575 | "version": "3.1.2",
576 | "resolved": "https://registry.npmmirror.com/csstype/-/csstype-3.1.2.tgz",
577 | "integrity": "sha512-I7K1Uu0MBPzaFKg4nI5Q7Vs2t+3gWWW648spaF+Rg7pI9ds18Ugn+lvg4SHczUdKlHI5LWBXyqfS8+DufyBsgQ=="
578 | },
579 | "node_modules/esbuild": {
580 | "version": "0.18.20",
581 | "resolved": "https://registry.npmmirror.com/esbuild/-/esbuild-0.18.20.tgz",
582 | "integrity": "sha512-ceqxoedUrcayh7Y7ZX6NdbbDzGROiyVBgC4PriJThBKSVPWnnFHZAkfI1lJT8QFkOwH4qOS2SJkS4wvpGl8BpA==",
583 | "dev": true,
584 | "hasInstallScript": true,
585 | "bin": {
586 | "esbuild": "bin/esbuild"
587 | },
588 | "engines": {
589 | "node": ">=12"
590 | },
591 | "optionalDependencies": {
592 | "@esbuild/android-arm": "0.18.20",
593 | "@esbuild/android-arm64": "0.18.20",
594 | "@esbuild/android-x64": "0.18.20",
595 | "@esbuild/darwin-arm64": "0.18.20",
596 | "@esbuild/darwin-x64": "0.18.20",
597 | "@esbuild/freebsd-arm64": "0.18.20",
598 | "@esbuild/freebsd-x64": "0.18.20",
599 | "@esbuild/linux-arm": "0.18.20",
600 | "@esbuild/linux-arm64": "0.18.20",
601 | "@esbuild/linux-ia32": "0.18.20",
602 | "@esbuild/linux-loong64": "0.18.20",
603 | "@esbuild/linux-mips64el": "0.18.20",
604 | "@esbuild/linux-ppc64": "0.18.20",
605 | "@esbuild/linux-riscv64": "0.18.20",
606 | "@esbuild/linux-s390x": "0.18.20",
607 | "@esbuild/linux-x64": "0.18.20",
608 | "@esbuild/netbsd-x64": "0.18.20",
609 | "@esbuild/openbsd-x64": "0.18.20",
610 | "@esbuild/sunos-x64": "0.18.20",
611 | "@esbuild/win32-arm64": "0.18.20",
612 | "@esbuild/win32-ia32": "0.18.20",
613 | "@esbuild/win32-x64": "0.18.20"
614 | }
615 | },
616 | "node_modules/estree-walker": {
617 | "version": "2.0.2",
618 | "resolved": "https://registry.npmmirror.com/estree-walker/-/estree-walker-2.0.2.tgz",
619 | "integrity": "sha512-Rfkk/Mp/DL7JVje3u18FxFujQlTNR2q6QfMSMB7AvCBx91NGj/ba3kCfza0f6dVDbw7YlRf/nDrn7pQrCCyQ/w=="
620 | },
621 | "node_modules/fsevents": {
622 | "version": "2.3.3",
623 | "resolved": "https://registry.npmmirror.com/fsevents/-/fsevents-2.3.3.tgz",
624 | "integrity": "sha512-5xoDfX+fL7faATnagmWPpbFtwh/R77WmMMqqHGS65C3vvB0YHrgF+B1YmZ3441tMj5n63k0212XNoJwzlhffQw==",
625 | "dev": true,
626 | "hasInstallScript": true,
627 | "optional": true,
628 | "os": [
629 | "darwin"
630 | ],
631 | "engines": {
632 | "node": "^8.16.0 || ^10.6.0 || >=11.0.0"
633 | }
634 | },
635 | "node_modules/magic-string": {
636 | "version": "0.30.5",
637 | "resolved": "https://registry.npmmirror.com/magic-string/-/magic-string-0.30.5.tgz",
638 | "integrity": "sha512-7xlpfBaQaP/T6Vh8MO/EqXSW5En6INHEvEXQiuff7Gku0PWjU3uf6w/j9o7O+SpB5fOAkrI5HeoNgwjEO0pFsA==",
639 | "dependencies": {
640 | "@jridgewell/sourcemap-codec": "^1.4.15"
641 | },
642 | "engines": {
643 | "node": ">=12"
644 | }
645 | },
646 | "node_modules/nanoid": {
647 | "version": "3.3.6",
648 | "resolved": "https://registry.npmmirror.com/nanoid/-/nanoid-3.3.6.tgz",
649 | "integrity": "sha512-BGcqMMJuToF7i1rt+2PWSNVnWIkGCU78jBG3RxO/bZlnZPK2Cmi2QaffxGO/2RvWi9sL+FAiRiXMgsyxQ1DIDA==",
650 | "bin": {
651 | "nanoid": "bin/nanoid.cjs"
652 | },
653 | "engines": {
654 | "node": "^10 || ^12 || ^13.7 || ^14 || >=15.0.1"
655 | }
656 | },
657 | "node_modules/picocolors": {
658 | "version": "1.0.0",
659 | "resolved": "https://registry.npmmirror.com/picocolors/-/picocolors-1.0.0.tgz",
660 | "integrity": "sha512-1fygroTLlHu66zi26VoTDv8yRgm0Fccecssto+MhsZ0D/DGW2sm8E8AjW7NU5VVTRt5GxbeZ5qBuJr+HyLYkjQ=="
661 | },
662 | "node_modules/postcss": {
663 | "version": "8.4.31",
664 | "resolved": "https://registry.npmmirror.com/postcss/-/postcss-8.4.31.tgz",
665 | "integrity": "sha512-PS08Iboia9mts/2ygV3eLpY5ghnUcfLV/EXTOW1E2qYxJKGGBUtNjN76FYHnMs36RmARn41bC0AZmn+rR0OVpQ==",
666 | "dependencies": {
667 | "nanoid": "^3.3.6",
668 | "picocolors": "^1.0.0",
669 | "source-map-js": "^1.0.2"
670 | },
671 | "engines": {
672 | "node": "^10 || ^12 || >=14"
673 | }
674 | },
675 | "node_modules/rollup": {
676 | "version": "3.29.4",
677 | "resolved": "https://registry.npmmirror.com/rollup/-/rollup-3.29.4.tgz",
678 | "integrity": "sha512-oWzmBZwvYrU0iJHtDmhsm662rC15FRXmcjCk1xD771dFDx5jJ02ufAQQTn0etB2emNk4J9EZg/yWKpsn9BWGRw==",
679 | "dev": true,
680 | "bin": {
681 | "rollup": "dist/bin/rollup"
682 | },
683 | "engines": {
684 | "node": ">=14.18.0",
685 | "npm": ">=8.0.0"
686 | },
687 | "optionalDependencies": {
688 | "fsevents": "~2.3.2"
689 | }
690 | },
691 | "node_modules/source-map-js": {
692 | "version": "1.0.2",
693 | "resolved": "https://registry.npmmirror.com/source-map-js/-/source-map-js-1.0.2.tgz",
694 | "integrity": "sha512-R0XvVJ9WusLiqTCEiGCmICCMplcCkIwwR11mOSD9CR5u+IXYdiseeEuXCVAjS54zqwkLcPNnmU4OeJ6tUrWhDw==",
695 | "engines": {
696 | "node": ">=0.10.0"
697 | }
698 | },
699 | "node_modules/vite": {
700 | "version": "4.5.0",
701 | "resolved": "https://registry.npmmirror.com/vite/-/vite-4.5.0.tgz",
702 | "integrity": "sha512-ulr8rNLA6rkyFAlVWw2q5YJ91v098AFQ2R0PRFwPzREXOUJQPtFUG0t+/ZikhaOCDqFoDhN6/v8Sq0o4araFAw==",
703 | "dev": true,
704 | "dependencies": {
705 | "esbuild": "^0.18.10",
706 | "postcss": "^8.4.27",
707 | "rollup": "^3.27.1"
708 | },
709 | "bin": {
710 | "vite": "bin/vite.js"
711 | },
712 | "engines": {
713 | "node": "^14.18.0 || >=16.0.0"
714 | },
715 | "optionalDependencies": {
716 | "fsevents": "~2.3.2"
717 | },
718 | "peerDependencies": {
719 | "@types/node": ">= 14",
720 | "less": "*",
721 | "lightningcss": "^1.21.0",
722 | "sass": "*",
723 | "stylus": "*",
724 | "sugarss": "*",
725 | "terser": "^5.4.0"
726 | },
727 | "peerDependenciesMeta": {
728 | "@types/node": {
729 | "optional": true
730 | },
731 | "less": {
732 | "optional": true
733 | },
734 | "lightningcss": {
735 | "optional": true
736 | },
737 | "sass": {
738 | "optional": true
739 | },
740 | "stylus": {
741 | "optional": true
742 | },
743 | "sugarss": {
744 | "optional": true
745 | },
746 | "terser": {
747 | "optional": true
748 | }
749 | }
750 | },
751 | "node_modules/vue": {
752 | "version": "3.3.7",
753 | "resolved": "https://registry.npmmirror.com/vue/-/vue-3.3.7.tgz",
754 | "integrity": "sha512-YEMDia1ZTv1TeBbnu6VybatmSteGOS3A3YgfINOfraCbf85wdKHzscD6HSS/vB4GAtI7sa1XPX7HcQaJ1l24zA==",
755 | "dependencies": {
756 | "@vue/compiler-dom": "3.3.7",
757 | "@vue/compiler-sfc": "3.3.7",
758 | "@vue/runtime-dom": "3.3.7",
759 | "@vue/server-renderer": "3.3.7",
760 | "@vue/shared": "3.3.7"
761 | },
762 | "peerDependencies": {
763 | "typescript": "*"
764 | },
765 | "peerDependenciesMeta": {
766 | "typescript": {
767 | "optional": true
768 | }
769 | }
770 | }
771 | },
772 | "dependencies": {
773 | "@babel/parser": {
774 | "version": "7.23.0",
775 | "resolved": "https://registry.npmmirror.com/@babel/parser/-/parser-7.23.0.tgz",
776 | "integrity": "sha512-vvPKKdMemU85V9WE/l5wZEmImpCtLqbnTvqDS2U1fJ96KrxoW7KrXhNsNCblQlg8Ck4b85yxdTyelsMUgFUXiw=="
777 | },
778 | "@esbuild/android-arm": {
779 | "version": "0.18.20",
780 | "resolved": "https://registry.npmmirror.com/@esbuild/android-arm/-/android-arm-0.18.20.tgz",
781 | "integrity": "sha512-fyi7TDI/ijKKNZTUJAQqiG5T7YjJXgnzkURqmGj13C6dCqckZBLdl4h7bkhHt/t0WP+zO9/zwroDvANaOqO5Sw==",
782 | "dev": true,
783 | "optional": true
784 | },
785 | "@esbuild/android-arm64": {
786 | "version": "0.18.20",
787 | "resolved": "https://registry.npmmirror.com/@esbuild/android-arm64/-/android-arm64-0.18.20.tgz",
788 | "integrity": "sha512-Nz4rJcchGDtENV0eMKUNa6L12zz2zBDXuhj/Vjh18zGqB44Bi7MBMSXjgunJgjRhCmKOjnPuZp4Mb6OKqtMHLQ==",
789 | "dev": true,
790 | "optional": true
791 | },
792 | "@esbuild/android-x64": {
793 | "version": "0.18.20",
794 | "resolved": "https://registry.npmmirror.com/@esbuild/android-x64/-/android-x64-0.18.20.tgz",
795 | "integrity": "sha512-8GDdlePJA8D6zlZYJV/jnrRAi6rOiNaCC/JclcXpB+KIuvfBN4owLtgzY2bsxnx666XjJx2kDPUmnTtR8qKQUg==",
796 | "dev": true,
797 | "optional": true
798 | },
799 | "@esbuild/darwin-arm64": {
800 | "version": "0.18.20",
801 | "resolved": "https://registry.npmmirror.com/@esbuild/darwin-arm64/-/darwin-arm64-0.18.20.tgz",
802 | "integrity": "sha512-bxRHW5kHU38zS2lPTPOyuyTm+S+eobPUnTNkdJEfAddYgEcll4xkT8DB9d2008DtTbl7uJag2HuE5NZAZgnNEA==",
803 | "dev": true,
804 | "optional": true
805 | },
806 | "@esbuild/darwin-x64": {
807 | "version": "0.18.20",
808 | "resolved": "https://registry.npmmirror.com/@esbuild/darwin-x64/-/darwin-x64-0.18.20.tgz",
809 | "integrity": "sha512-pc5gxlMDxzm513qPGbCbDukOdsGtKhfxD1zJKXjCCcU7ju50O7MeAZ8c4krSJcOIJGFR+qx21yMMVYwiQvyTyQ==",
810 | "dev": true,
811 | "optional": true
812 | },
813 | "@esbuild/freebsd-arm64": {
814 | "version": "0.18.20",
815 | "resolved": "https://registry.npmmirror.com/@esbuild/freebsd-arm64/-/freebsd-arm64-0.18.20.tgz",
816 | "integrity": "sha512-yqDQHy4QHevpMAaxhhIwYPMv1NECwOvIpGCZkECn8w2WFHXjEwrBn3CeNIYsibZ/iZEUemj++M26W3cNR5h+Tw==",
817 | "dev": true,
818 | "optional": true
819 | },
820 | "@esbuild/freebsd-x64": {
821 | "version": "0.18.20",
822 | "resolved": "https://registry.npmmirror.com/@esbuild/freebsd-x64/-/freebsd-x64-0.18.20.tgz",
823 | "integrity": "sha512-tgWRPPuQsd3RmBZwarGVHZQvtzfEBOreNuxEMKFcd5DaDn2PbBxfwLcj4+aenoh7ctXcbXmOQIn8HI6mCSw5MQ==",
824 | "dev": true,
825 | "optional": true
826 | },
827 | "@esbuild/linux-arm": {
828 | "version": "0.18.20",
829 | "resolved": "https://registry.npmmirror.com/@esbuild/linux-arm/-/linux-arm-0.18.20.tgz",
830 | "integrity": "sha512-/5bHkMWnq1EgKr1V+Ybz3s1hWXok7mDFUMQ4cG10AfW3wL02PSZi5kFpYKrptDsgb2WAJIvRcDm+qIvXf/apvg==",
831 | "dev": true,
832 | "optional": true
833 | },
834 | "@esbuild/linux-arm64": {
835 | "version": "0.18.20",
836 | "resolved": "https://registry.npmmirror.com/@esbuild/linux-arm64/-/linux-arm64-0.18.20.tgz",
837 | "integrity": "sha512-2YbscF+UL7SQAVIpnWvYwM+3LskyDmPhe31pE7/aoTMFKKzIc9lLbyGUpmmb8a8AixOL61sQ/mFh3jEjHYFvdA==",
838 | "dev": true,
839 | "optional": true
840 | },
841 | "@esbuild/linux-ia32": {
842 | "version": "0.18.20",
843 | "resolved": "https://registry.npmmirror.com/@esbuild/linux-ia32/-/linux-ia32-0.18.20.tgz",
844 | "integrity": "sha512-P4etWwq6IsReT0E1KHU40bOnzMHoH73aXp96Fs8TIT6z9Hu8G6+0SHSw9i2isWrD2nbx2qo5yUqACgdfVGx7TA==",
845 | "dev": true,
846 | "optional": true
847 | },
848 | "@esbuild/linux-loong64": {
849 | "version": "0.18.20",
850 | "resolved": "https://registry.npmmirror.com/@esbuild/linux-loong64/-/linux-loong64-0.18.20.tgz",
851 | "integrity": "sha512-nXW8nqBTrOpDLPgPY9uV+/1DjxoQ7DoB2N8eocyq8I9XuqJ7BiAMDMf9n1xZM9TgW0J8zrquIb/A7s3BJv7rjg==",
852 | "dev": true,
853 | "optional": true
854 | },
855 | "@esbuild/linux-mips64el": {
856 | "version": "0.18.20",
857 | "resolved": "https://registry.npmmirror.com/@esbuild/linux-mips64el/-/linux-mips64el-0.18.20.tgz",
858 | "integrity": "sha512-d5NeaXZcHp8PzYy5VnXV3VSd2D328Zb+9dEq5HE6bw6+N86JVPExrA6O68OPwobntbNJ0pzCpUFZTo3w0GyetQ==",
859 | "dev": true,
860 | "optional": true
861 | },
862 | "@esbuild/linux-ppc64": {
863 | "version": "0.18.20",
864 | "resolved": "https://registry.npmmirror.com/@esbuild/linux-ppc64/-/linux-ppc64-0.18.20.tgz",
865 | "integrity": "sha512-WHPyeScRNcmANnLQkq6AfyXRFr5D6N2sKgkFo2FqguP44Nw2eyDlbTdZwd9GYk98DZG9QItIiTlFLHJHjxP3FA==",
866 | "dev": true,
867 | "optional": true
868 | },
869 | "@esbuild/linux-riscv64": {
870 | "version": "0.18.20",
871 | "resolved": "https://registry.npmmirror.com/@esbuild/linux-riscv64/-/linux-riscv64-0.18.20.tgz",
872 | "integrity": "sha512-WSxo6h5ecI5XH34KC7w5veNnKkju3zBRLEQNY7mv5mtBmrP/MjNBCAlsM2u5hDBlS3NGcTQpoBvRzqBcRtpq1A==",
873 | "dev": true,
874 | "optional": true
875 | },
876 | "@esbuild/linux-s390x": {
877 | "version": "0.18.20",
878 | "resolved": "https://registry.npmmirror.com/@esbuild/linux-s390x/-/linux-s390x-0.18.20.tgz",
879 | "integrity": "sha512-+8231GMs3mAEth6Ja1iK0a1sQ3ohfcpzpRLH8uuc5/KVDFneH6jtAJLFGafpzpMRO6DzJ6AvXKze9LfFMrIHVQ==",
880 | "dev": true,
881 | "optional": true
882 | },
883 | "@esbuild/linux-x64": {
884 | "version": "0.18.20",
885 | "resolved": "https://registry.npmmirror.com/@esbuild/linux-x64/-/linux-x64-0.18.20.tgz",
886 | "integrity": "sha512-UYqiqemphJcNsFEskc73jQ7B9jgwjWrSayxawS6UVFZGWrAAtkzjxSqnoclCXxWtfwLdzU+vTpcNYhpn43uP1w==",
887 | "dev": true,
888 | "optional": true
889 | },
890 | "@esbuild/netbsd-x64": {
891 | "version": "0.18.20",
892 | "resolved": "https://registry.npmmirror.com/@esbuild/netbsd-x64/-/netbsd-x64-0.18.20.tgz",
893 | "integrity": "sha512-iO1c++VP6xUBUmltHZoMtCUdPlnPGdBom6IrO4gyKPFFVBKioIImVooR5I83nTew5UOYrk3gIJhbZh8X44y06A==",
894 | "dev": true,
895 | "optional": true
896 | },
897 | "@esbuild/openbsd-x64": {
898 | "version": "0.18.20",
899 | "resolved": "https://registry.npmmirror.com/@esbuild/openbsd-x64/-/openbsd-x64-0.18.20.tgz",
900 | "integrity": "sha512-e5e4YSsuQfX4cxcygw/UCPIEP6wbIL+se3sxPdCiMbFLBWu0eiZOJ7WoD+ptCLrmjZBK1Wk7I6D/I3NglUGOxg==",
901 | "dev": true,
902 | "optional": true
903 | },
904 | "@esbuild/sunos-x64": {
905 | "version": "0.18.20",
906 | "resolved": "https://registry.npmmirror.com/@esbuild/sunos-x64/-/sunos-x64-0.18.20.tgz",
907 | "integrity": "sha512-kDbFRFp0YpTQVVrqUd5FTYmWo45zGaXe0X8E1G/LKFC0v8x0vWrhOWSLITcCn63lmZIxfOMXtCfti/RxN/0wnQ==",
908 | "dev": true,
909 | "optional": true
910 | },
911 | "@esbuild/win32-arm64": {
912 | "version": "0.18.20",
913 | "resolved": "https://registry.npmmirror.com/@esbuild/win32-arm64/-/win32-arm64-0.18.20.tgz",
914 | "integrity": "sha512-ddYFR6ItYgoaq4v4JmQQaAI5s7npztfV4Ag6NrhiaW0RrnOXqBkgwZLofVTlq1daVTQNhtI5oieTvkRPfZrePg==",
915 | "dev": true,
916 | "optional": true
917 | },
918 | "@esbuild/win32-ia32": {
919 | "version": "0.18.20",
920 | "resolved": "https://registry.npmmirror.com/@esbuild/win32-ia32/-/win32-ia32-0.18.20.tgz",
921 | "integrity": "sha512-Wv7QBi3ID/rROT08SABTS7eV4hX26sVduqDOTe1MvGMjNd3EjOz4b7zeexIR62GTIEKrfJXKL9LFxTYgkyeu7g==",
922 | "dev": true,
923 | "optional": true
924 | },
925 | "@esbuild/win32-x64": {
926 | "version": "0.18.20",
927 | "resolved": "https://registry.npmmirror.com/@esbuild/win32-x64/-/win32-x64-0.18.20.tgz",
928 | "integrity": "sha512-kTdfRcSiDfQca/y9QIkng02avJ+NCaQvrMejlsB3RRv5sE9rRoeBPISaZpKxHELzRxZyLvNts1P27W3wV+8geQ==",
929 | "dev": true,
930 | "optional": true
931 | },
932 | "@jridgewell/sourcemap-codec": {
933 | "version": "1.4.15",
934 | "resolved": "https://registry.npmmirror.com/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.4.15.tgz",
935 | "integrity": "sha512-eF2rxCRulEKXHTRiDrDy6erMYWqNw4LPdQ8UQA4huuxaQsVeRPFl2oM8oDGxMFhJUWZf9McpLtJasDDZb/Bpeg=="
936 | },
937 | "@vitejs/plugin-vue": {
938 | "version": "4.4.0",
939 | "resolved": "https://registry.npmmirror.com/@vitejs/plugin-vue/-/plugin-vue-4.4.0.tgz",
940 | "integrity": "sha512-xdguqb+VUwiRpSg+nsc2HtbAUSGak25DXYvpQQi4RVU1Xq1uworyoH/md9Rfd8zMmPR/pSghr309QNcftUVseg==",
941 | "dev": true,
942 | "requires": {}
943 | },
944 | "@vue/compiler-core": {
945 | "version": "3.3.7",
946 | "resolved": "https://registry.npmmirror.com/@vue/compiler-core/-/compiler-core-3.3.7.tgz",
947 | "integrity": "sha512-pACdY6YnTNVLXsB86YD8OF9ihwpolzhhtdLVHhBL6do/ykr6kKXNYABRtNMGrsQXpEXXyAdwvWWkuTbs4MFtPQ==",
948 | "requires": {
949 | "@babel/parser": "^7.23.0",
950 | "@vue/shared": "3.3.7",
951 | "estree-walker": "^2.0.2",
952 | "source-map-js": "^1.0.2"
953 | }
954 | },
955 | "@vue/compiler-dom": {
956 | "version": "3.3.7",
957 | "resolved": "https://registry.npmmirror.com/@vue/compiler-dom/-/compiler-dom-3.3.7.tgz",
958 | "integrity": "sha512-0LwkyJjnUPssXv/d1vNJ0PKfBlDoQs7n81CbO6Q0zdL7H1EzqYRrTVXDqdBVqro0aJjo/FOa1qBAPVI4PGSHBw==",
959 | "requires": {
960 | "@vue/compiler-core": "3.3.7",
961 | "@vue/shared": "3.3.7"
962 | }
963 | },
964 | "@vue/compiler-sfc": {
965 | "version": "3.3.7",
966 | "resolved": "https://registry.npmmirror.com/@vue/compiler-sfc/-/compiler-sfc-3.3.7.tgz",
967 | "integrity": "sha512-7pfldWy/J75U/ZyYIXRVqvLRw3vmfxDo2YLMwVtWVNew8Sm8d6wodM+OYFq4ll/UxfqVr0XKiVwti32PCrruAw==",
968 | "requires": {
969 | "@babel/parser": "^7.23.0",
970 | "@vue/compiler-core": "3.3.7",
971 | "@vue/compiler-dom": "3.3.7",
972 | "@vue/compiler-ssr": "3.3.7",
973 | "@vue/reactivity-transform": "3.3.7",
974 | "@vue/shared": "3.3.7",
975 | "estree-walker": "^2.0.2",
976 | "magic-string": "^0.30.5",
977 | "postcss": "^8.4.31",
978 | "source-map-js": "^1.0.2"
979 | }
980 | },
981 | "@vue/compiler-ssr": {
982 | "version": "3.3.7",
983 | "resolved": "https://registry.npmmirror.com/@vue/compiler-ssr/-/compiler-ssr-3.3.7.tgz",
984 | "integrity": "sha512-TxOfNVVeH3zgBc82kcUv+emNHo+vKnlRrkv8YvQU5+Y5LJGJwSNzcmLUoxD/dNzv0bhQ/F0s+InlgV0NrApJZg==",
985 | "requires": {
986 | "@vue/compiler-dom": "3.3.7",
987 | "@vue/shared": "3.3.7"
988 | }
989 | },
990 | "@vue/reactivity": {
991 | "version": "3.3.7",
992 | "resolved": "https://registry.npmmirror.com/@vue/reactivity/-/reactivity-3.3.7.tgz",
993 | "integrity": "sha512-cZNVjWiw00708WqT0zRpyAgduG79dScKEPYJXq2xj/aMtk3SKvL3FBt2QKUlh6EHBJ1m8RhBY+ikBUzwc7/khg==",
994 | "requires": {
995 | "@vue/shared": "3.3.7"
996 | }
997 | },
998 | "@vue/reactivity-transform": {
999 | "version": "3.3.7",
1000 | "resolved": "https://registry.npmmirror.com/@vue/reactivity-transform/-/reactivity-transform-3.3.7.tgz",
1001 | "integrity": "sha512-APhRmLVbgE1VPGtoLQoWBJEaQk4V8JUsqrQihImVqKT+8U6Qi3t5ATcg4Y9wGAPb3kIhetpufyZ1RhwbZCIdDA==",
1002 | "requires": {
1003 | "@babel/parser": "^7.23.0",
1004 | "@vue/compiler-core": "3.3.7",
1005 | "@vue/shared": "3.3.7",
1006 | "estree-walker": "^2.0.2",
1007 | "magic-string": "^0.30.5"
1008 | }
1009 | },
1010 | "@vue/runtime-core": {
1011 | "version": "3.3.7",
1012 | "resolved": "https://registry.npmmirror.com/@vue/runtime-core/-/runtime-core-3.3.7.tgz",
1013 | "integrity": "sha512-LHq9du3ubLZFdK/BP0Ysy3zhHqRfBn80Uc+T5Hz3maFJBGhci1MafccnL3rpd5/3wVfRHAe6c+PnlO2PAavPTQ==",
1014 | "requires": {
1015 | "@vue/reactivity": "3.3.7",
1016 | "@vue/shared": "3.3.7"
1017 | }
1018 | },
1019 | "@vue/runtime-dom": {
1020 | "version": "3.3.7",
1021 | "resolved": "https://registry.npmmirror.com/@vue/runtime-dom/-/runtime-dom-3.3.7.tgz",
1022 | "integrity": "sha512-PFQU1oeJxikdDmrfoNQay5nD4tcPNYixUBruZzVX/l0eyZvFKElZUjW4KctCcs52nnpMGO6UDK+jF5oV4GT5Lw==",
1023 | "requires": {
1024 | "@vue/runtime-core": "3.3.7",
1025 | "@vue/shared": "3.3.7",
1026 | "csstype": "^3.1.2"
1027 | }
1028 | },
1029 | "@vue/server-renderer": {
1030 | "version": "3.3.7",
1031 | "resolved": "https://registry.npmmirror.com/@vue/server-renderer/-/server-renderer-3.3.7.tgz",
1032 | "integrity": "sha512-UlpKDInd1hIZiNuVVVvLgxpfnSouxKQOSE2bOfQpBuGwxRV/JqqTCyyjXUWiwtVMyeRaZhOYYqntxElk8FhBhw==",
1033 | "requires": {
1034 | "@vue/compiler-ssr": "3.3.7",
1035 | "@vue/shared": "3.3.7"
1036 | }
1037 | },
1038 | "@vue/shared": {
1039 | "version": "3.3.7",
1040 | "resolved": "https://registry.npmmirror.com/@vue/shared/-/shared-3.3.7.tgz",
1041 | "integrity": "sha512-N/tbkINRUDExgcPTBvxNkvHGu504k8lzlNQRITVnm6YjOjwa4r0nnbd4Jb01sNpur5hAllyRJzSK5PvB9PPwRg=="
1042 | },
1043 | "@vueuse/core": {
1044 | "version": "7.7.1",
1045 | "resolved": "https://registry.npmmirror.com/@vueuse/core/-/core-7.7.1.tgz",
1046 | "integrity": "sha512-PRRgbATMpoeUmkCEBtUeJgOwtew8s+4UsEd+Pm7MhkjL2ihCNrSqxNVtM6NFE4uP2sWnkGcZpCjPuNSxowJ1Ow==",
1047 | "requires": {
1048 | "@vueuse/shared": "7.7.1",
1049 | "vue-demi": "*"
1050 | },
1051 | "dependencies": {
1052 | "@vueuse/shared": {
1053 | "version": "7.7.1",
1054 | "resolved": "https://registry.npmmirror.com/@vueuse/shared/-/shared-7.7.1.tgz",
1055 | "integrity": "sha512-rN2qd22AUl7VdBxihagWyhUNHCyVk9IpvBTTfHoLH9G7rGE552X1f+zeCfehuno0zXif13jPw+icW/wn2a0rnQ==",
1056 | "requires": {
1057 | "vue-demi": "*"
1058 | }
1059 | },
1060 | "vue-demi": {
1061 | "version": "0.14.6",
1062 | "resolved": "https://registry.npmmirror.com/vue-demi/-/vue-demi-0.14.6.tgz",
1063 | "integrity": "sha512-8QA7wrYSHKaYgUxDA5ZC24w+eHm3sYCbp0EzcDwKqN3p6HqtTCGR/GVsPyZW92unff4UlcSh++lmqDWN3ZIq4w==",
1064 | "requires": {}
1065 | }
1066 | }
1067 | },
1068 | "colorpicker-v3": {
1069 | "version": "2.10.2",
1070 | "resolved": "https://registry.npmmirror.com/colorpicker-v3/-/colorpicker-v3-2.10.2.tgz",
1071 | "integrity": "sha512-ZWPq5wcugS3NcL7DwYqVSP5mE/x45FK31olGpig+Tko5jUXk0danfEYi1Aei3lgYs+Z0zAfhbhqVuDgOdUs5Mw==",
1072 | "requires": {
1073 | "@vueuse/core": "^7.5.5",
1074 | "vue": "^3.2.25"
1075 | }
1076 | },
1077 | "csstype": {
1078 | "version": "3.1.2",
1079 | "resolved": "https://registry.npmmirror.com/csstype/-/csstype-3.1.2.tgz",
1080 | "integrity": "sha512-I7K1Uu0MBPzaFKg4nI5Q7Vs2t+3gWWW648spaF+Rg7pI9ds18Ugn+lvg4SHczUdKlHI5LWBXyqfS8+DufyBsgQ=="
1081 | },
1082 | "esbuild": {
1083 | "version": "0.18.20",
1084 | "resolved": "https://registry.npmmirror.com/esbuild/-/esbuild-0.18.20.tgz",
1085 | "integrity": "sha512-ceqxoedUrcayh7Y7ZX6NdbbDzGROiyVBgC4PriJThBKSVPWnnFHZAkfI1lJT8QFkOwH4qOS2SJkS4wvpGl8BpA==",
1086 | "dev": true,
1087 | "requires": {
1088 | "@esbuild/android-arm": "0.18.20",
1089 | "@esbuild/android-arm64": "0.18.20",
1090 | "@esbuild/android-x64": "0.18.20",
1091 | "@esbuild/darwin-arm64": "0.18.20",
1092 | "@esbuild/darwin-x64": "0.18.20",
1093 | "@esbuild/freebsd-arm64": "0.18.20",
1094 | "@esbuild/freebsd-x64": "0.18.20",
1095 | "@esbuild/linux-arm": "0.18.20",
1096 | "@esbuild/linux-arm64": "0.18.20",
1097 | "@esbuild/linux-ia32": "0.18.20",
1098 | "@esbuild/linux-loong64": "0.18.20",
1099 | "@esbuild/linux-mips64el": "0.18.20",
1100 | "@esbuild/linux-ppc64": "0.18.20",
1101 | "@esbuild/linux-riscv64": "0.18.20",
1102 | "@esbuild/linux-s390x": "0.18.20",
1103 | "@esbuild/linux-x64": "0.18.20",
1104 | "@esbuild/netbsd-x64": "0.18.20",
1105 | "@esbuild/openbsd-x64": "0.18.20",
1106 | "@esbuild/sunos-x64": "0.18.20",
1107 | "@esbuild/win32-arm64": "0.18.20",
1108 | "@esbuild/win32-ia32": "0.18.20",
1109 | "@esbuild/win32-x64": "0.18.20"
1110 | }
1111 | },
1112 | "estree-walker": {
1113 | "version": "2.0.2",
1114 | "resolved": "https://registry.npmmirror.com/estree-walker/-/estree-walker-2.0.2.tgz",
1115 | "integrity": "sha512-Rfkk/Mp/DL7JVje3u18FxFujQlTNR2q6QfMSMB7AvCBx91NGj/ba3kCfza0f6dVDbw7YlRf/nDrn7pQrCCyQ/w=="
1116 | },
1117 | "fsevents": {
1118 | "version": "2.3.3",
1119 | "resolved": "https://registry.npmmirror.com/fsevents/-/fsevents-2.3.3.tgz",
1120 | "integrity": "sha512-5xoDfX+fL7faATnagmWPpbFtwh/R77WmMMqqHGS65C3vvB0YHrgF+B1YmZ3441tMj5n63k0212XNoJwzlhffQw==",
1121 | "dev": true,
1122 | "optional": true
1123 | },
1124 | "magic-string": {
1125 | "version": "0.30.5",
1126 | "resolved": "https://registry.npmmirror.com/magic-string/-/magic-string-0.30.5.tgz",
1127 | "integrity": "sha512-7xlpfBaQaP/T6Vh8MO/EqXSW5En6INHEvEXQiuff7Gku0PWjU3uf6w/j9o7O+SpB5fOAkrI5HeoNgwjEO0pFsA==",
1128 | "requires": {
1129 | "@jridgewell/sourcemap-codec": "^1.4.15"
1130 | }
1131 | },
1132 | "nanoid": {
1133 | "version": "3.3.6",
1134 | "resolved": "https://registry.npmmirror.com/nanoid/-/nanoid-3.3.6.tgz",
1135 | "integrity": "sha512-BGcqMMJuToF7i1rt+2PWSNVnWIkGCU78jBG3RxO/bZlnZPK2Cmi2QaffxGO/2RvWi9sL+FAiRiXMgsyxQ1DIDA=="
1136 | },
1137 | "picocolors": {
1138 | "version": "1.0.0",
1139 | "resolved": "https://registry.npmmirror.com/picocolors/-/picocolors-1.0.0.tgz",
1140 | "integrity": "sha512-1fygroTLlHu66zi26VoTDv8yRgm0Fccecssto+MhsZ0D/DGW2sm8E8AjW7NU5VVTRt5GxbeZ5qBuJr+HyLYkjQ=="
1141 | },
1142 | "postcss": {
1143 | "version": "8.4.31",
1144 | "resolved": "https://registry.npmmirror.com/postcss/-/postcss-8.4.31.tgz",
1145 | "integrity": "sha512-PS08Iboia9mts/2ygV3eLpY5ghnUcfLV/EXTOW1E2qYxJKGGBUtNjN76FYHnMs36RmARn41bC0AZmn+rR0OVpQ==",
1146 | "requires": {
1147 | "nanoid": "^3.3.6",
1148 | "picocolors": "^1.0.0",
1149 | "source-map-js": "^1.0.2"
1150 | }
1151 | },
1152 | "rollup": {
1153 | "version": "3.29.4",
1154 | "resolved": "https://registry.npmmirror.com/rollup/-/rollup-3.29.4.tgz",
1155 | "integrity": "sha512-oWzmBZwvYrU0iJHtDmhsm662rC15FRXmcjCk1xD771dFDx5jJ02ufAQQTn0etB2emNk4J9EZg/yWKpsn9BWGRw==",
1156 | "dev": true,
1157 | "requires": {
1158 | "fsevents": "~2.3.2"
1159 | }
1160 | },
1161 | "source-map-js": {
1162 | "version": "1.0.2",
1163 | "resolved": "https://registry.npmmirror.com/source-map-js/-/source-map-js-1.0.2.tgz",
1164 | "integrity": "sha512-R0XvVJ9WusLiqTCEiGCmICCMplcCkIwwR11mOSD9CR5u+IXYdiseeEuXCVAjS54zqwkLcPNnmU4OeJ6tUrWhDw=="
1165 | },
1166 | "vite": {
1167 | "version": "4.5.0",
1168 | "resolved": "https://registry.npmmirror.com/vite/-/vite-4.5.0.tgz",
1169 | "integrity": "sha512-ulr8rNLA6rkyFAlVWw2q5YJ91v098AFQ2R0PRFwPzREXOUJQPtFUG0t+/ZikhaOCDqFoDhN6/v8Sq0o4araFAw==",
1170 | "dev": true,
1171 | "requires": {
1172 | "esbuild": "^0.18.10",
1173 | "fsevents": "~2.3.2",
1174 | "postcss": "^8.4.27",
1175 | "rollup": "^3.27.1"
1176 | }
1177 | },
1178 | "vue": {
1179 | "version": "3.3.7",
1180 | "resolved": "https://registry.npmmirror.com/vue/-/vue-3.3.7.tgz",
1181 | "integrity": "sha512-YEMDia1ZTv1TeBbnu6VybatmSteGOS3A3YgfINOfraCbf85wdKHzscD6HSS/vB4GAtI7sa1XPX7HcQaJ1l24zA==",
1182 | "requires": {
1183 | "@vue/compiler-dom": "3.3.7",
1184 | "@vue/compiler-sfc": "3.3.7",
1185 | "@vue/runtime-dom": "3.3.7",
1186 | "@vue/server-renderer": "3.3.7",
1187 | "@vue/shared": "3.3.7"
1188 | }
1189 | }
1190 | }
1191 | }
1192 |
--------------------------------------------------------------------------------
/package.json:
--------------------------------------------------------------------------------
1 | {
2 | "name": "watermark",
3 | "version": "0.0.0",
4 | "private": true,
5 | "scripts": {
6 | "dev": "vite",
7 | "build": "vite build",
8 | "preview": "vite preview"
9 | },
10 | "dependencies": {
11 | "colorpicker-v3": "^2.10.2",
12 | "vue": "^3.3.4"
13 | },
14 | "devDependencies": {
15 | "@vitejs/plugin-vue": "^4.4.0",
16 | "vite": "^4.4.11"
17 | }
18 | }
19 |
--------------------------------------------------------------------------------
/public/favicon.ico:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Nash-x9/watermark/2d5124b748aa457944257eecd56d9ad38a6408be/public/favicon.ico
--------------------------------------------------------------------------------
/src/App.vue:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
41 |
42 |
43 |
44 |
45 |
46 |
47 |
48 |
169 |
170 |
207 |
--------------------------------------------------------------------------------
/src/assets/base.css:
--------------------------------------------------------------------------------
1 | /* color palette from */
2 | :root {
3 | --vt-c-white: #ffffff;
4 | --vt-c-white-soft: #f8f8f8;
5 | --vt-c-white-mute: #f2f2f2;
6 |
7 | --vt-c-black: #181818;
8 | --vt-c-black-soft: #222222;
9 | --vt-c-black-mute: #282828;
10 |
11 | --vt-c-indigo: #2c3e50;
12 |
13 | --vt-c-divider-light-1: rgba(60, 60, 60, 0.29);
14 | --vt-c-divider-light-2: rgba(60, 60, 60, 0.12);
15 | --vt-c-divider-dark-1: rgba(84, 84, 84, 0.65);
16 | --vt-c-divider-dark-2: rgba(84, 84, 84, 0.48);
17 |
18 | --vt-c-text-light-1: var(--vt-c-indigo);
19 | --vt-c-text-light-2: rgba(60, 60, 60, 0.66);
20 | --vt-c-text-dark-1: var(--vt-c-white);
21 | --vt-c-text-dark-2: rgba(235, 235, 235, 0.64);
22 | }
23 |
24 | /* semantic color variables for this project */
25 | :root {
26 | --color-background: var(--vt-c-white);
27 | --color-background-soft: var(--vt-c-white-soft);
28 | --color-background-mute: var(--vt-c-white-mute);
29 |
30 | --color-border: var(--vt-c-divider-light-2);
31 | --color-border-hover: var(--vt-c-divider-light-1);
32 |
33 | --color-heading: var(--vt-c-text-light-1);
34 | --color-text: var(--vt-c-text-light-1);
35 |
36 | --section-gap: 160px;
37 | }
38 |
39 | @media (prefers-color-scheme: dark) {
40 | :root {
41 | --color-background: var(--vt-c-black);
42 | --color-background-soft: var(--vt-c-black-soft);
43 | --color-background-mute: var(--vt-c-black-mute);
44 |
45 | --color-border: var(--vt-c-divider-dark-2);
46 | --color-border-hover: var(--vt-c-divider-dark-1);
47 |
48 | --color-heading: var(--vt-c-text-dark-1);
49 | --color-text: var(--vt-c-text-dark-2);
50 | }
51 | }
52 |
53 | *,
54 | *::before,
55 | *::after {
56 | box-sizing: border-box;
57 | margin: 0;
58 | font-weight: normal;
59 | }
60 |
61 | body {
62 | min-height: 100vh;
63 | color: var(--color-text);
64 | background: var(--color-background);
65 | transition: color 0.5s,
66 | background-color 0.5s;
67 | line-height: 1.6;
68 | font-family: Inter,
69 | -apple-system,
70 | BlinkMacSystemFont,
71 | 'Segoe UI',
72 | Roboto,
73 | Oxygen,
74 | Ubuntu,
75 | Cantarell,
76 | 'Fira Sans',
77 | 'Droid Sans',
78 | 'Helvetica Neue',
79 | sans-serif;
80 | font-size: 15px;
81 | text-rendering: optimizeLegibility;
82 | -webkit-font-smoothing: antialiased;
83 | -moz-osx-font-smoothing: grayscale;
84 | }
85 |
86 | button {
87 | background-color: #5252fa;
88 | color: white;
89 | border: none;
90 | padding: 8px 20px;
91 | border-radius: 5px;
92 | font-size: 14px;
93 | cursor: pointer;
94 | transition: background-color 0.3s ease;
95 | }
96 |
97 | button:hover {
98 | background-color: #3838ab;
99 | }
100 |
101 | input[type="text"], input[type="number"] {
102 | border: 2px solid #ccc;
103 | border-radius: 4px;
104 | padding: 8px;
105 | font-size: 16px;
106 | width: 200px;
107 | }
108 |
109 | /* 鼠标悬停时的样式 */
110 | input[type="text"], input[type="number"]:hover {
111 | border-color: #888;
112 | }
113 |
114 | /* 获得焦点时的样式 */
115 | input[type="text"], input[type="number"]:focus {
116 | outline: none;
117 | border-color: #555;
118 | box-shadow: 0 0 5px #555;
119 | }
120 |
121 | input[type=range] {
122 | -webkit-appearance: none;
123 | width: 200px;
124 | height: 30px;
125 | background-color: rgba(82, 82, 250, 0.8);
126 | border-radius: 5px; /*这个属性设置使填充进度条时的图形为圆角*/
127 | }
128 |
129 | input[type=range]::-webkit-slider-thumb {
130 | -webkit-appearance: none; /*隐藏滑块*/
131 | }
132 |
133 | input[type=range]::-webkit-slider-runnable-track {
134 | height: 30px;
135 | border-radius: 5px; /*将轨道设为圆角的*/
136 | box-shadow: 0 1px 1px #def3f8, inset 0 .12em .12em #0d1112; /*轨道内置阴影效果*/
137 | }
138 |
139 | input[type=range]:focus {
140 | outline: none; /*原始的控件获取到焦点时,会显示包裹整个控件的边框,所以还需要把边框取消。*/
141 | }
142 |
143 | input[type=range]::-webkit-slider-thumb {
144 | -webkit-appearance: none;
145 | width: 15px;
146 | height: 30px;
147 | background: #ffffff;
148 | border-radius: 20%; /*外观设置为圆形*/
149 | border: solid 0.125em rgba(205, 224, 230, 0.5); /*设置边框*/
150 | box-shadow: 0 .125em .125em #3b4547; /*添加底部阴影*/
151 | }
152 |
153 | .form {
154 | display: flex;
155 | flex-wrap: wrap;
156 | }
157 |
158 | .form-item {
159 | width: 30%;
160 | display: flex;
161 | margin-bottom: 5px;
162 | }
163 |
164 | .form-item label {
165 | width: 120px;
166 | }
167 |
168 | .form-item input {
169 | justify-content: flex-end;
170 | }
171 |
172 | @media (max-width: 768px) {
173 | .form-item label {
174 | font-size: 10px;
175 | line-height: 32px;
176 | width: 100px;
177 | }
178 |
179 | .form-item {
180 | width: 100%;
181 | display: flex;
182 | margin-bottom: 5px;
183 | }
184 |
185 | .form-item input[type="text"] {
186 | width: 200px;
187 | }
188 |
189 | button {
190 | background-color: #5252fa;
191 | color: white;
192 | border: none;
193 | padding: 8px 12px;
194 | border-radius: 5px;
195 | font-size: 10px;
196 | cursor: pointer;
197 | transition: background-color 0.3s ease;
198 | }
199 |
200 | .form-item-inline {
201 | flex-direction: column;
202 | }
203 | }
204 |
205 | .form-item-inline {
206 | width: 100%;
207 | display: flex;
208 | }
209 |
--------------------------------------------------------------------------------
/src/assets/logo.svg:
--------------------------------------------------------------------------------
1 |
2 |
--------------------------------------------------------------------------------
/src/assets/main.css:
--------------------------------------------------------------------------------
1 | @import './base.css';
2 |
3 | #app {
4 | display: flex;
5 | justify-content: center;
6 | flex: auto;
7 | }
8 |
9 | a,
10 | .green {
11 | text-decoration: none;
12 | color: hsla(160, 100%, 37%, 1);
13 | transition: 0.4s;
14 | }
15 |
16 | @media (hover: hover) {
17 | a:hover {
18 | background-color: hsla(160, 100%, 37%, 0.2);
19 | }
20 | }
21 |
22 | @media (min-width: 1024px) {
23 | body {
24 | display: flex;
25 | }
26 | }
27 |
--------------------------------------------------------------------------------
/src/main.js:
--------------------------------------------------------------------------------
1 | import './assets/main.css'
2 |
3 | import {createApp} from 'vue'
4 | import App from './App.vue'
5 | import ColorPicker from 'colorpicker-v3' // 注册组件
6 | import 'colorpicker-v3/style.css' // 引入样式文件
7 | const app = createApp(App)
8 | app.use(ColorPicker)
9 | app.mount('#app')
10 |
--------------------------------------------------------------------------------
/vite.config.js:
--------------------------------------------------------------------------------
1 | import { fileURLToPath, URL } from 'node:url'
2 |
3 | import { defineConfig } from 'vite'
4 | import vue from '@vitejs/plugin-vue'
5 |
6 | // https://vitejs.dev/config/
7 | export default defineConfig({
8 | plugins: [
9 | vue(),
10 | ],
11 | resolve: {
12 | alias: {
13 | '@': fileURLToPath(new URL('./src', import.meta.url))
14 | }
15 | }
16 | })
17 |
--------------------------------------------------------------------------------