diff --git a/.editorconfig b/.editorconfig new file mode 100644 index 0000000..4fad2fa --- /dev/null +++ b/.editorconfig @@ -0,0 +1,524 @@ +[*] +charset = utf-8 +end_of_line = crlf +indent_size = 2 +indent_style = space +insert_final_newline = false +max_line_length = 120 +tab_width = 2 +ij_continuation_indent_size = 8 +ij_formatter_off_tag = @formatter:off +ij_formatter_on_tag = @formatter:on +ij_formatter_tags_enabled = false +ij_smart_tabs = false +ij_visual_guides = none +ij_wrap_on_typing = false + +[*.css] +ij_css_align_closing_brace_with_properties = false +ij_css_align_values = 1 +ij_css_blank_lines_around_nested = 1 +ij_css_blank_lines_around_top = 1 +ij_css_braces_placement = 1 +ij_css_enforce_on_format = false +ij_css_keep_blank_lines_in_code = 2 +ij_css_keep_indents_on_empty_lines = false +ij_css_keep_single_line_blocks = false +ij_css_quote_marks = 1 +ij_css_space_after_colon = true +ij_css_space_opening_brace = true + +[*.ets] +ij_extendtypescript_align_multiline_array_initializer_expression = false +ij_extendtypescript_align_multiline_for = true +ij_extendtypescript_align_multiline_parameters = true +ij_extendtypescript_align_multiline_ternary_operation = false +ij_extendtypescript_align_union_types = false +ij_extendtypescript_array_initializer_new_line_after_left_brace = false +ij_extendtypescript_array_initializer_right_brace_on_new_line = false +ij_extendtypescript_array_initializer_wrap = off +ij_extendtypescript_assignment_wrap = off +ij_extendtypescript_binary_operation_sign_on_next_line = false +ij_extendtypescript_binary_operation_wrap = off +ij_extendtypescript_blank_lines_after_imports = 1 +ij_extendtypescript_blank_lines_around_class = 1 +ij_extendtypescript_blank_lines_around_component_statement_in_struct = 1 +ij_extendtypescript_blank_lines_around_field = 0 +ij_extendtypescript_blank_lines_around_field_in_interface = 0 +ij_extendtypescript_blank_lines_around_field_in_struct = 1 +ij_extendtypescript_blank_lines_around_function = 1 +ij_extendtypescript_blank_lines_around_method = 1 +ij_extendtypescript_blank_lines_around_method_in_interface = 1 +ij_extendtypescript_block_brace_style = end_of_line +ij_extendtypescript_block_comment_at_first_column = true +ij_extendtypescript_brace_style = 1 +ij_extendtypescript_call_parameters_new_line_after_left_paren = false +ij_extendtypescript_call_parameters_right_paren_on_new_line = false +ij_extendtypescript_call_parameters_wrap = off +ij_extendtypescript_catch_on_new_line = false +ij_extendtypescript_class_brace_style = 1 +ij_extendtypescript_do_while_brace_force = never +ij_extendtypescript_else_on_new_line = false +ij_extendtypescript_extends_keyword_wrap = off +ij_extendtypescript_finally_on_new_line = false +ij_extendtypescript_for_brace_force = never +ij_extendtypescript_for_statement_new_line_after_left_paren = false +ij_extendtypescript_for_statement_right_paren_on_new_line = false +ij_extendtypescript_for_statement_wrap = off +ij_extendtypescript_function_expression_brace_style = 1 +ij_extendtypescript_if_brace_force = never +ij_extendtypescript_indent_case_from_switch = true +ij_extendtypescript_keep_blank_lines_in_code = 2 +ij_extendtypescript_keep_indents_on_empty_lines = false +ij_extendtypescript_keep_line_breaks = true +ij_extendtypescript_label_indent_absolute = false +ij_extendtypescript_label_indent_size = 0 +ij_extendtypescript_line_comment_add_space = false +ij_extendtypescript_line_comment_at_first_column = true +ij_extendtypescript_method_brace_style = end_of_line +ij_extendtypescript_method_call_chain_wrap = on_every_item +ij_extendtypescript_method_parameters_new_line_after_left_paren = false +ij_extendtypescript_method_parameters_right_paren_on_new_line = false +ij_extendtypescript_method_parameters_wrap = off +ij_extendtypescript_parentheses_expression_new_line_after_left_paren = false +ij_extendtypescript_parentheses_expression_right_paren_on_new_line = false +ij_extendtypescript_place_assignment_sign_on_next_line = false +ij_extendtypescript_space_after_colon = true +ij_extendtypescript_space_after_comma = true +ij_extendtypescript_space_after_dots_in_rest_parameter = false +ij_extendtypescript_space_after_quest = true +ij_extendtypescript_space_after_type_colon = true +ij_extendtypescript_space_before_catch_keyword = true +ij_extendtypescript_space_before_catch_left_brace = true +ij_extendtypescript_space_before_catch_parentheses = true +ij_extendtypescript_space_before_class_left_brace = true +ij_extendtypescript_space_before_colon = true +ij_extendtypescript_space_before_comma = false +ij_extendtypescript_space_before_do_left_brace = true +ij_extendtypescript_space_before_else_keyword = true +ij_extendtypescript_space_before_else_left_brace = true +ij_extendtypescript_space_before_finally_keyword = true +ij_extendtypescript_space_before_finally_left_brace = true +ij_extendtypescript_space_before_for_left_brace = true +ij_extendtypescript_space_before_for_parentheses = true +ij_extendtypescript_space_before_for_semicolon = false +ij_extendtypescript_space_before_if_left_brace = true +ij_extendtypescript_space_before_if_parentheses = true +ij_extendtypescript_space_before_method_call_parentheses = false +ij_extendtypescript_space_before_method_left_brace = true +ij_extendtypescript_space_before_method_parentheses = false +ij_extendtypescript_space_before_parent_in_async_arrow_function = true +ij_extendtypescript_space_before_parent_in_function_expression = true +ij_extendtypescript_space_before_quest = true +ij_extendtypescript_space_before_switch_left_brace = true +ij_extendtypescript_space_before_switch_parentheses = true +ij_extendtypescript_space_before_try_left_brace = true +ij_extendtypescript_space_before_type_colon = false +ij_extendtypescript_space_before_while_keyword = true +ij_extendtypescript_space_before_while_left_brace = true +ij_extendtypescript_space_before_while_parentheses = true +ij_extendtypescript_space_other_after_asterisk_generator = true +ij_extendtypescript_space_other_after_dot_dot_dot = false +ij_extendtypescript_space_other_after_key_value_separator = true +ij_extendtypescript_space_other_before_asterisk_generator = false +ij_extendtypescript_space_other_before_key_value_separator = false +ij_extendtypescript_spaces_around_additive_operators = true +ij_extendtypescript_spaces_around_assignment_operators = true +ij_extendtypescript_spaces_around_bitwise_operators = true +ij_extendtypescript_spaces_around_equality_operators = true +ij_extendtypescript_spaces_around_logical_operators = true +ij_extendtypescript_spaces_around_multiplicative_operators = true +ij_extendtypescript_spaces_around_operators_after_unary = false +ij_extendtypescript_spaces_around_operators_arrow_function = true +ij_extendtypescript_spaces_around_operators_before_unary = false +ij_extendtypescript_spaces_around_relational_operators = true +ij_extendtypescript_spaces_around_shift_operators = true +ij_extendtypescript_spaces_around_unary_operator = false +ij_extendtypescript_spaces_within_array_brackets = false +ij_extendtypescript_spaces_within_brackets = false +ij_extendtypescript_spaces_within_catch_parentheses = false +ij_extendtypescript_spaces_within_es6_import_export_braces = true +ij_extendtypescript_spaces_within_for_parentheses = false +ij_extendtypescript_spaces_within_if_parentheses = false +ij_extendtypescript_spaces_within_interpolation_expressions = false +ij_extendtypescript_spaces_within_method_call_parentheses = false +ij_extendtypescript_spaces_within_method_parentheses = false +ij_extendtypescript_spaces_within_object_literal_braces = true +ij_extendtypescript_spaces_within_object_type_braces = true +ij_extendtypescript_spaces_within_parentheses = false +ij_extendtypescript_spaces_within_switch_parentheses = false +ij_extendtypescript_spaces_within_type_assertions = true +ij_extendtypescript_spaces_within_union_types = true +ij_extendtypescript_spaces_within_while_parentheses = false +ij_extendtypescript_special_else_if_treatment = true +ij_extendtypescript_ternary_operation_signs_on_next_line = false +ij_extendtypescript_ternary_operation_wrap = off +ij_extendtypescript_use_relative_indents = false +ij_extendtypescript_while_brace_force = never +ij_extendtypescript_while_on_new_line = false +ij_extendtypescript_wrapping_call_chain_dot = true +ij_extendtypescript_wrapping_es6_import_export = 5 +ij_extendtypescript_wrapping_objects = 5 +ij_extendtypescript_wrapping_union_types = 0 +ij_extendtypescript_wrapping_variable_declarations = 1 + +[*.hml] +ij_hml_add_new_line_before_tags = none +ij_hml_align_attributes = true +ij_hml_align_text = false +ij_hml_attribute_wrap = normal +ij_hml_block_comment_at_first_column = true +ij_hml_do_not_align_children_of_min_lines = 0 +ij_hml_do_not_break_if_inline_tags = none +ij_hml_do_not_indent_children_of_tags = none +ij_hml_expression_wrap = normal +ij_hml_inline_tags = none +ij_hml_keep_blank_lines = 2 +ij_hml_keep_indents_on_empty_lines = false +ij_hml_keep_line_breaks = true +ij_hml_keep_line_breaks_in_expression = true +ij_hml_keep_line_breaks_in_text = true +ij_hml_keep_whitespaces = true +ij_hml_line_comment_at_first_column = true +ij_hml_new_line_after_last_attribute = never +ij_hml_new_line_before_first_attribute = never +ij_hml_remove_new_line_before_tags = none +ij_hml_space_after_tag_name = false +ij_hml_space_around_equality_in_attribute = false +ij_hml_space_inside_empty_tag = false +ij_hml_text_wrap = normal + +[*.js] +ij_javascript_align_multiline_array_initializer_expression = false +ij_javascript_align_multiline_for = true +ij_javascript_align_multiline_parameters = true +ij_javascript_align_multiline_ternary_operation = false +ij_javascript_align_union_types = false +ij_javascript_array_initializer_new_line_after_left_brace = false +ij_javascript_array_initializer_right_brace_on_new_line = false +ij_javascript_array_initializer_wrap = off +ij_javascript_assignment_wrap = off +ij_javascript_binary_operation_sign_on_next_line = false +ij_javascript_binary_operation_wrap = off +ij_javascript_blank_lines_after_imports = 1 +ij_javascript_blank_lines_around_class = 1 +ij_javascript_blank_lines_around_component_statement_in_struct = 1 +ij_javascript_blank_lines_around_field = 0 +ij_javascript_blank_lines_around_field_in_interface = 0 +ij_javascript_blank_lines_around_field_in_struct = 0 +ij_javascript_blank_lines_around_function = 1 +ij_javascript_blank_lines_around_method = 1 +ij_javascript_blank_lines_around_method_in_interface = 1 +ij_javascript_block_brace_style = end_of_line +ij_javascript_block_comment_at_first_column = true +ij_javascript_brace_style = 1 +ij_javascript_call_parameters_new_line_after_left_paren = false +ij_javascript_call_parameters_right_paren_on_new_line = false +ij_javascript_call_parameters_wrap = off +ij_javascript_catch_on_new_line = false +ij_javascript_class_brace_style = 1 +ij_javascript_do_while_brace_force = never +ij_javascript_else_on_new_line = false +ij_javascript_extends_keyword_wrap = off +ij_javascript_finally_on_new_line = false +ij_javascript_for_brace_force = never +ij_javascript_for_statement_new_line_after_left_paren = false +ij_javascript_for_statement_right_paren_on_new_line = false +ij_javascript_for_statement_wrap = off +ij_javascript_function_expression_brace_style = 1 +ij_javascript_if_brace_force = never +ij_javascript_indent_case_from_switch = true +ij_javascript_keep_blank_lines_in_code = 2 +ij_javascript_keep_indents_on_empty_lines = false +ij_javascript_keep_line_breaks = true +ij_javascript_label_indent_absolute = false +ij_javascript_label_indent_size = 0 +ij_javascript_line_comment_add_space = false +ij_javascript_line_comment_at_first_column = true +ij_javascript_method_brace_style = end_of_line +ij_javascript_method_call_chain_wrap = off +ij_javascript_method_parameters_new_line_after_left_paren = false +ij_javascript_method_parameters_right_paren_on_new_line = false +ij_javascript_method_parameters_wrap = off +ij_javascript_parentheses_expression_new_line_after_left_paren = false +ij_javascript_parentheses_expression_right_paren_on_new_line = false +ij_javascript_place_assignment_sign_on_next_line = false +ij_javascript_space_after_colon = true +ij_javascript_space_after_comma = true +ij_javascript_space_after_dots_in_rest_parameter = false +ij_javascript_space_after_quest = true +ij_javascript_space_after_type_colon = true +ij_javascript_space_before_catch_keyword = true +ij_javascript_space_before_catch_left_brace = true +ij_javascript_space_before_catch_parentheses = true +ij_javascript_space_before_class_left_brace = true +ij_javascript_space_before_colon = true +ij_javascript_space_before_comma = false +ij_javascript_space_before_do_left_brace = true +ij_javascript_space_before_else_keyword = true +ij_javascript_space_before_else_left_brace = true +ij_javascript_space_before_finally_keyword = true +ij_javascript_space_before_finally_left_brace = true +ij_javascript_space_before_for_left_brace = true +ij_javascript_space_before_for_parentheses = true +ij_javascript_space_before_for_semicolon = false +ij_javascript_space_before_if_left_brace = true +ij_javascript_space_before_if_parentheses = true +ij_javascript_space_before_method_call_parentheses = false +ij_javascript_space_before_method_left_brace = true +ij_javascript_space_before_method_parentheses = false +ij_javascript_space_before_parent_in_async_arrow_function = true +ij_javascript_space_before_parent_in_function_expression = true +ij_javascript_space_before_quest = true +ij_javascript_space_before_switch_left_brace = true +ij_javascript_space_before_switch_parentheses = true +ij_javascript_space_before_try_left_brace = true +ij_javascript_space_before_type_colon = false +ij_javascript_space_before_while_keyword = true +ij_javascript_space_before_while_left_brace = true +ij_javascript_space_before_while_parentheses = true +ij_javascript_space_other_after_asterisk_generator = true +ij_javascript_space_other_after_dot_dot_dot = false +ij_javascript_space_other_after_key_value_separator = true +ij_javascript_space_other_before_asterisk_generator = false +ij_javascript_space_other_before_key_value_separator = false +ij_javascript_spaces_around_additive_operators = true +ij_javascript_spaces_around_assignment_operators = true +ij_javascript_spaces_around_bitwise_operators = true +ij_javascript_spaces_around_equality_operators = true +ij_javascript_spaces_around_logical_operators = true +ij_javascript_spaces_around_multiplicative_operators = true +ij_javascript_spaces_around_operators_after_unary = false +ij_javascript_spaces_around_operators_arrow_function = true +ij_javascript_spaces_around_operators_before_unary = false +ij_javascript_spaces_around_relational_operators = true +ij_javascript_spaces_around_shift_operators = true +ij_javascript_spaces_around_unary_operator = false +ij_javascript_spaces_within_array_brackets = false +ij_javascript_spaces_within_brackets = false +ij_javascript_spaces_within_catch_parentheses = false +ij_javascript_spaces_within_es6_import_export_braces = false +ij_javascript_spaces_within_for_parentheses = false +ij_javascript_spaces_within_if_parentheses = false +ij_javascript_spaces_within_interpolation_expressions = false +ij_javascript_spaces_within_method_call_parentheses = false +ij_javascript_spaces_within_method_parentheses = false +ij_javascript_spaces_within_object_literal_braces = true +ij_javascript_spaces_within_object_type_braces = true +ij_javascript_spaces_within_parentheses = false +ij_javascript_spaces_within_switch_parentheses = false +ij_javascript_spaces_within_type_assertions = true +ij_javascript_spaces_within_union_types = true +ij_javascript_spaces_within_while_parentheses = false +ij_javascript_special_else_if_treatment = true +ij_javascript_ternary_operation_signs_on_next_line = false +ij_javascript_ternary_operation_wrap = off +ij_javascript_use_relative_indents = false +ij_javascript_while_brace_force = never +ij_javascript_while_on_new_line = false +ij_javascript_wrapping_call_chain_dot = true +ij_javascript_wrapping_es6_import_export = 5 +ij_javascript_wrapping_objects = 5 +ij_javascript_wrapping_union_types = 0 +ij_javascript_wrapping_variable_declarations = 1 + +[*.json] +indent_size = 2 +ij_json_keep_blank_lines_in_code = 0 +ij_json_keep_indents_on_empty_lines = false +ij_json_keep_line_breaks = true +ij_json_space_after_colon = true +ij_json_space_after_comma = true +ij_json_space_before_colon = true +ij_json_space_before_comma = false +ij_json_spaces_within_braces = false +ij_json_spaces_within_brackets = false +ij_json_wrap_long_lines = false + +[*.properties] +ij_properties_align_group_field_declarations = false +ij_properties_keep_blank_lines = false +ij_properties_key_value_delimiter = equals +ij_properties_spaces_around_key_value_delimiter = false + +[*.ts] +ij_typescript_align_multiline_array_initializer_expression = false +ij_typescript_align_multiline_for = true +ij_typescript_align_multiline_parameters = true +ij_typescript_align_multiline_ternary_operation = false +ij_typescript_align_union_types = false +ij_typescript_array_initializer_new_line_after_left_brace = false +ij_typescript_array_initializer_right_brace_on_new_line = false +ij_typescript_array_initializer_wrap = off +ij_typescript_assignment_wrap = off +ij_typescript_binary_operation_sign_on_next_line = false +ij_typescript_binary_operation_wrap = off +ij_typescript_blank_lines_after_imports = 1 +ij_typescript_blank_lines_around_class = 1 +ij_typescript_blank_lines_around_component_statement_in_struct = 1 +ij_typescript_blank_lines_around_field = 0 +ij_typescript_blank_lines_around_field_in_interface = 0 +ij_typescript_blank_lines_around_field_in_struct = 0 +ij_typescript_blank_lines_around_function = 1 +ij_typescript_blank_lines_around_method = 1 +ij_typescript_blank_lines_around_method_in_interface = 1 +ij_typescript_block_brace_style = end_of_line +ij_typescript_block_comment_at_first_column = true +ij_typescript_brace_style = 1 +ij_typescript_call_parameters_new_line_after_left_paren = false +ij_typescript_call_parameters_right_paren_on_new_line = false +ij_typescript_call_parameters_wrap = off +ij_typescript_catch_on_new_line = false +ij_typescript_class_brace_style = 1 +ij_typescript_do_while_brace_force = never +ij_typescript_else_on_new_line = false +ij_typescript_extends_keyword_wrap = off +ij_typescript_finally_on_new_line = false +ij_typescript_for_brace_force = never +ij_typescript_for_statement_new_line_after_left_paren = false +ij_typescript_for_statement_right_paren_on_new_line = false +ij_typescript_for_statement_wrap = off +ij_typescript_function_expression_brace_style = 1 +ij_typescript_if_brace_force = never +ij_typescript_indent_case_from_switch = true +ij_typescript_keep_blank_lines_in_code = 2 +ij_typescript_keep_indents_on_empty_lines = false +ij_typescript_keep_line_breaks = true +ij_typescript_label_indent_absolute = false +ij_typescript_label_indent_size = 0 +ij_typescript_line_comment_add_space = false +ij_typescript_line_comment_at_first_column = true +ij_typescript_method_brace_style = end_of_line +ij_typescript_method_call_chain_wrap = off +ij_typescript_method_parameters_new_line_after_left_paren = false +ij_typescript_method_parameters_right_paren_on_new_line = false +ij_typescript_method_parameters_wrap = off +ij_typescript_parentheses_expression_new_line_after_left_paren = false +ij_typescript_parentheses_expression_right_paren_on_new_line = false +ij_typescript_place_assignment_sign_on_next_line = false +ij_typescript_space_after_colon = true +ij_typescript_space_after_comma = true +ij_typescript_space_after_dots_in_rest_parameter = false +ij_typescript_space_after_quest = true +ij_typescript_space_after_type_colon = true +ij_typescript_space_before_catch_keyword = true +ij_typescript_space_before_catch_left_brace = true +ij_typescript_space_before_catch_parentheses = true +ij_typescript_space_before_class_left_brace = true +ij_typescript_space_before_colon = true +ij_typescript_space_before_comma = false +ij_typescript_space_before_do_left_brace = true +ij_typescript_space_before_else_keyword = true +ij_typescript_space_before_else_left_brace = true +ij_typescript_space_before_finally_keyword = true +ij_typescript_space_before_finally_left_brace = true +ij_typescript_space_before_for_left_brace = true +ij_typescript_space_before_for_parentheses = true +ij_typescript_space_before_for_semicolon = false +ij_typescript_space_before_if_left_brace = true +ij_typescript_space_before_if_parentheses = true +ij_typescript_space_before_method_call_parentheses = false +ij_typescript_space_before_method_left_brace = true +ij_typescript_space_before_method_parentheses = false +ij_typescript_space_before_parent_in_async_arrow_function = true +ij_typescript_space_before_parent_in_function_expression = true +ij_typescript_space_before_quest = true +ij_typescript_space_before_switch_left_brace = true +ij_typescript_space_before_switch_parentheses = true +ij_typescript_space_before_try_left_brace = true +ij_typescript_space_before_type_colon = false +ij_typescript_space_before_while_keyword = true +ij_typescript_space_before_while_left_brace = true +ij_typescript_space_before_while_parentheses = true +ij_typescript_space_other_after_asterisk_generator = true +ij_typescript_space_other_after_dot_dot_dot = false +ij_typescript_space_other_after_key_value_separator = true +ij_typescript_space_other_before_asterisk_generator = false +ij_typescript_space_other_before_key_value_separator = false +ij_typescript_spaces_around_additive_operators = true +ij_typescript_spaces_around_assignment_operators = true +ij_typescript_spaces_around_bitwise_operators = true +ij_typescript_spaces_around_equality_operators = true +ij_typescript_spaces_around_logical_operators = true +ij_typescript_spaces_around_multiplicative_operators = true +ij_typescript_spaces_around_operators_after_unary = false +ij_typescript_spaces_around_operators_arrow_function = true +ij_typescript_spaces_around_operators_before_unary = false +ij_typescript_spaces_around_relational_operators = true +ij_typescript_spaces_around_shift_operators = true +ij_typescript_spaces_around_unary_operator = false +ij_typescript_spaces_within_array_brackets = false +ij_typescript_spaces_within_brackets = false +ij_typescript_spaces_within_catch_parentheses = false +ij_typescript_spaces_within_es6_import_export_braces = false +ij_typescript_spaces_within_for_parentheses = false +ij_typescript_spaces_within_if_parentheses = false +ij_typescript_spaces_within_interpolation_expressions = false +ij_typescript_spaces_within_method_call_parentheses = false +ij_typescript_spaces_within_method_parentheses = false +ij_typescript_spaces_within_object_literal_braces = true +ij_typescript_spaces_within_object_type_braces = true +ij_typescript_spaces_within_parentheses = false +ij_typescript_spaces_within_switch_parentheses = false +ij_typescript_spaces_within_type_assertions = true +ij_typescript_spaces_within_union_types = true +ij_typescript_spaces_within_while_parentheses = false +ij_typescript_special_else_if_treatment = true +ij_typescript_ternary_operation_signs_on_next_line = false +ij_typescript_ternary_operation_wrap = off +ij_typescript_use_relative_indents = false +ij_typescript_while_brace_force = never +ij_typescript_while_on_new_line = false +ij_typescript_wrapping_call_chain_dot = true +ij_typescript_wrapping_es6_import_export = 5 +ij_typescript_wrapping_objects = 5 +ij_typescript_wrapping_union_types = 0 +ij_typescript_wrapping_variable_declarations = 1 + +[.editorconfig] +ij_editorconfig_align_group_field_declarations = false +ij_editorconfig_space_after_colon = false +ij_editorconfig_space_after_comma = true +ij_editorconfig_space_before_colon = false +ij_editorconfig_space_before_comma = false +ij_editorconfig_spaces_around_assignment_operators = true + +[{*.htm,*.html,*.sht,*.shtm,*.shtml}] +ij_html_add_new_line_before_tags = body,div,p,form,h1,h2,h3 +ij_html_align_attributes = true +ij_html_align_text = false +ij_html_attribute_wrap = normal +ij_html_block_comment_at_first_column = true +ij_html_do_not_align_children_of_min_lines = 0 +ij_html_do_not_break_if_inline_tags = title,h1,h2,h3,h4,h5,h6,p +ij_html_do_not_indent_children_of_tags = html,body,thead,tbody,tfoot +ij_html_enforce_quotes = false +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 +ij_html_keep_blank_lines = 2 +ij_html_keep_indents_on_empty_lines = false +ij_html_keep_line_breaks = true +ij_html_keep_line_breaks_in_text = true +ij_html_keep_whitespaces = false +ij_html_keep_whitespaces_inside = span,pre,textarea +ij_html_line_comment_at_first_column = true +ij_html_new_line_after_last_attribute = never +ij_html_new_line_before_first_attribute = never +ij_html_quote_style = double +ij_html_remove_new_line_before_tags = br +ij_html_space_after_tag_name = false +ij_html_space_around_equality_in_attribute = false +ij_html_space_inside_empty_tag = false +ij_html_text_wrap = normal + +[{*.markdown,*.md}] +ij_markdown_force_one_space_after_blockquote_symbol = true +ij_markdown_force_one_space_after_header_symbol = true +ij_markdown_force_one_space_after_list_bullet = true +ij_markdown_force_one_space_between_words = true +ij_markdown_keep_indents_on_empty_lines = false +ij_markdown_max_lines_around_block_elements = 1 +ij_markdown_max_lines_around_header = 1 +ij_markdown_max_lines_between_paragraphs = 1 +ij_markdown_min_lines_around_block_elements = 1 +ij_markdown_min_lines_around_header = 1 +ij_markdown_min_lines_between_paragraphs = 1 diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..c911348 --- /dev/null +++ b/.gitignore @@ -0,0 +1,19 @@ +*.iml +.gradle +/local.properties +/.idea/caches +/.idea/libraries +/.idea/modules.xml +/.idea/workspace.xml +/.idea/navEditor.xml +/.idea/assetWizardSettings.xml +.DS_Store +/build +/captures +.externalNativeBuild +/entry/.preview +.cxx +/node_modules +/.idea +package-lock.json +.hvigor \ No newline at end of file diff --git a/AppScope/app.json5 b/AppScope/app.json5 new file mode 100644 index 0000000..c025555 --- /dev/null +++ b/AppScope/app.json5 @@ -0,0 +1,11 @@ +{ + "app": { + "bundleName": "com.ohos.calendardata", + "vendor": "huawei", + "versionCode": 140005130, + "versionName": "14.0.5.130", + "icon": "$media:icon", + "label": "$string:app_name", + "distributedNotificationEnabled": true + } +} diff --git a/AppScope/resources/en_US/element/string.json b/AppScope/resources/en_US/element/string.json new file mode 100644 index 0000000..d28c99d --- /dev/null +++ b/AppScope/resources/en_US/element/string.json @@ -0,0 +1,8 @@ +{ + "string": [ + { + "name": "app_name", + "value": "CalendarData" + } + ] +} \ No newline at end of file diff --git a/AppScope/resources/zh_CN/element/string.json b/AppScope/resources/zh_CN/element/string.json new file mode 100644 index 0000000..9f03183 --- /dev/null +++ b/AppScope/resources/zh_CN/element/string.json @@ -0,0 +1,8 @@ +{ + "string": [ + { + "name": "app_name", + "value": "日历存储" + } + ] +} \ No newline at end of file diff --git a/LICENSE b/LICENSE new file mode 100644 index 0000000..d0381d6 --- /dev/null +++ b/LICENSE @@ -0,0 +1,176 @@ +Apache License + Version 2.0, January 2004 + http://www.apache.org/licenses/ + + TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION + + 1. Definitions. + + "License" shall mean the terms and conditions for use, reproduction, + and distribution as defined by Sections 1 through 9 of this document. + + "Licensor" shall mean the copyright owner or entity authorized by + the copyright owner that is granting the License. + + "Legal Entity" shall mean the union of the acting entity and all + other entities that control, are controlled by, or are under common + control with that entity. For the purposes of this definition, + "control" means (i) the power, direct or indirect, to cause the + direction or management of such entity, whether by contract or + otherwise, or (ii) ownership of fifty percent (50%) or more of the + outstanding shares, or (iii) beneficial ownership of such entity. + + "You" (or "Your") shall mean an individual or Legal Entity + exercising permissions granted by this License. + + "Source" form shall mean the preferred form for making modifications, + including but not limited to software source code, documentation + source, and configuration files. + + "Object" form shall mean any form resulting from mechanical + transformation or translation of a Source form, including but + not limited to compiled object code, generated documentation, + and conversions to other media types. + + "Work" shall mean the work of authorship, whether in Source or + Object form, made available under the License, as indicated by a + copyright notice that is included in or attached to the work + (an example is provided in the Appendix below). + + "Derivative Works" shall mean any work, whether in Source or Object + form, that is based on (or derived from) the Work and for which the + editorial revisions, annotations, elaborations, or other modifications + represent, as a whole, an original work of authorship. For the purposes + of this License, Derivative Works shall not include works that remain + separable from, or merely link (or bind by name) to the interfaces of, + the Work and Derivative Works thereof. + + "Contribution" shall mean any work of authorship, including + the original version of the Work and any modifications or additions + to that Work or Derivative Works thereof, that is intentionally + submitted to Licensor for inclusion in the Work by the copyright owner + or by an individual or Legal Entity authorized to submit on behalf of + the copyright owner. For the purposes of this definition, "submitted" + means any form of electronic, verbal, or written communication sent + to the Licensor or its representatives, including but not limited to + communication on electronic mailing lists, source code control systems, + and issue tracking systems that are managed by, or on behalf of, the + Licensor for the purpose of discussing and improving the Work, but + excluding communication that is conspicuously marked or otherwise + designated in writing by the copyright owner as "Not a Contribution." + + "Contributor" shall mean Licensor and any individual or Legal Entity + on behalf of whom a Contribution has been received by Licensor and + subsequently incorporated within the Work. + + 2. Grant of Copyright License. Subject to the terms and conditions of + this License, each Contributor hereby grants to You a perpetual, + worldwide, non-exclusive, no-charge, royalty-free, irrevocable + copyright license to reproduce, prepare Derivative Works of, + publicly display, publicly perform, sublicense, and distribute the + Work and such Derivative Works in Source or Object form. + + 3. Grant of Patent License. Subject to the terms and conditions of + this License, each Contributor hereby grants to You a perpetual, + worldwide, non-exclusive, no-charge, royalty-free, irrevocable + (except as stated in this section) patent license to make, have made, + use, offer to sell, sell, import, and otherwise transfer the Work, + where such license applies only to those patent claims licensable + by such Contributor that are necessarily infringed by their + Contribution(s) alone or by combination of their Contribution(s) + with the Work to which such Contribution(s) was submitted. If You + institute patent litigation against any entity (including a + cross-claim or counterclaim in a lawsuit) alleging that the Work + or a Contribution incorporated within the Work constitutes direct + or contributory patent infringement, then any patent licenses + granted to You under this License for that Work shall terminate + as of the date such litigation is filed. + + 4. Redistribution. You may reproduce and distribute copies of the + Work or Derivative Works thereof in any medium, with or without + modifications, and in Source or Object form, provided that You + meet the following conditions: + + (a) You must give any other recipients of the Work or + Derivative Works a copy of this License; and + + (b) You must cause any modified files to carry prominent notices + stating that You changed the files; and + + (c) You must retain, in the Source form of any Derivative Works + that You distribute, all copyright, patent, trademark, and + attribution notices from the Source form of the Work, + excluding those notices that do not pertain to any part of + the Derivative Works; and + + (d) If the Work includes a "NOTICE" text file as part of its + distribution, then any Derivative Works that You distribute must + include a readable copy of the attribution notices contained + within such NOTICE file, excluding those notices that do not + pertain to any part of the Derivative Works, in at least one + of the following places: within a NOTICE text file distributed + as part of the Derivative Works; within the Source form or + documentation, if provided along with the Derivative Works; or, + within a display generated by the Derivative Works, if and + wherever such third-party notices normally appear. The contents + of the NOTICE file are for informational purposes only and + do not modify the License. You may add Your own attribution + notices within Derivative Works that You distribute, alongside + or as an addendum to the NOTICE text from the Work, provided + that such additional attribution notices cannot be construed + as modifying the License. + + You may add Your own copyright statement to Your modifications and + may provide additional or different license terms and conditions + for use, reproduction, or distribution of Your modifications, or + for any such Derivative Works as a whole, provided Your use, + reproduction, and distribution of the Work otherwise complies with + the conditions stated in this License. + + 5. Submission of Contributions. Unless You explicitly state otherwise, + any Contribution intentionally submitted for inclusion in the Work + by You to the Licensor shall be under the terms and conditions of + this License, without any additional terms or conditions. + Notwithstanding the above, nothing herein shall supersede or modify + the terms of any separate license agreement you may have executed + with Licensor regarding such Contributions. + + 6. Trademarks. This License does not grant permission to use the trade + names, trademarks, service marks, or product names of the Licensor, + except as required for reasonable and customary use in describing the + origin of the Work and reproducing the content of the NOTICE file. + + 7. Disclaimer of Warranty. Unless required by applicable law or + agreed to in writing, Licensor provides the Work (and each + Contributor provides its Contributions) on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or + implied, including, without limitation, any warranties or conditions + of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A + PARTICULAR PURPOSE. You are solely responsible for determining the + appropriateness of using or redistributing the Work and assume any + risks associated with Your exercise of permissions under this License. + + 8. Limitation of Liability. In no event and under no legal theory, + whether in tort (including negligence), contract, or otherwise, + unless required by applicable law (such as deliberate and grossly + negligent acts) or agreed to in writing, shall any Contributor be + liable to You for damages, including any direct, indirect, special, + incidental, or consequential damages of any character arising as a + result of this License or out of the use or inability to use the + Work (including but not limited to damages for loss of goodwill, + work stoppage, computer failure or malfunction, or any and all + other commercial damages or losses), even if such Contributor + has been advised of the possibility of such damages. + + 9. Accepting Warranty or Additional Liability. While redistributing + the Work or Derivative Works thereof, You may choose to offer, + and charge a fee for, acceptance of support, warranty, indemnity, + or other liability obligations and/or rights consistent with this + License. However, in accepting such obligations, You may act only + on Your own behalf and on Your sole responsibility, not on behalf + of any other Contributor, and only if You agree to indemnify, + defend, and hold each Contributor harmless for any liability + incurred by, or claims asserted against, such Contributor by reason + of your accepting any such warranty or additional liability. + + END OF TERMS AND CONDITIONS diff --git a/OAT.xml b/OAT.xml new file mode 100644 index 0000000..ce87c9b --- /dev/null +++ b/OAT.xml @@ -0,0 +1,87 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/README.en.md b/README.en.md deleted file mode 100644 index be13a11..0000000 --- a/README.en.md +++ /dev/null @@ -1,36 +0,0 @@ -# applications_calendar_data - -#### Description -{**When you're done, you can delete the content in this README and update the file with details for others getting started with your repository**} - -#### Software Architecture -Software architecture description - -#### Installation - -1. xxxx -2. xxxx -3. xxxx - -#### Instructions - -1. xxxx -2. xxxx -3. xxxx - -#### Contribution - -1. Fork the repository -2. Create Feat_xxx branch -3. Commit your code -4. Create Pull Request - - -#### Gitee Feature - -1. You can use Readme\_XXX.md to support different languages, such as Readme\_en.md, Readme\_zh.md -2. Gitee blog [blog.gitee.com](https://blog.gitee.com) -3. Explore open source project [https://gitee.com/explore](https://gitee.com/explore) -4. The most valuable open source project [GVP](https://gitee.com/gvp) -5. The manual of Gitee [https://gitee.com/help](https://gitee.com/help) -6. The most popular members [https://gitee.com/gitee-stars/](https://gitee.com/gitee-stars/) diff --git a/README.md b/README.md index 5b5af55..750df00 100644 --- a/README.md +++ b/README.md @@ -1,39 +1,77 @@ -# applications_calendar_data +# CalendarData -#### 介绍 -{**以下是 Gitee 平台说明,您可以替换此简介** -Gitee 是 OSCHINA 推出的基于 Git 的代码托管平台(同时支持 SVN)。专为开发者提供稳定、高效、安全的云端软件开发协作平台 -无论是个人、团队、或是企业,都能够用 Gitee 实现代码托管、项目管理、协作开发。企业项目请看 [https://gitee.com/enterprises](https://gitee.com/enterprises)} +## 1. Introduction -#### 软件架构 -软件架构说明 +The calendardata application is a preset application in OpenHarmony that provides the function of adding, deleting, modifying, and checking the schedule + +## 2. Directory Structure +``` +├─AppScope +│ │ +│ └─resources # resource file +├─common +│ │ +│ └─src +│ └─main +│ └─ets # basic methods +├─datamanager +│ └─src +│ └─main +│ └─ets # data manager +├─dataprovider +│ └─src +│ └─main +│ └─ets # the proxy of data manager +├─datastructure +│ └─src +│ └─main +│ └─ets # data structure +├─entry +│ └─src +│ └─main # the entry of project +├─rrule +│ └─src +│ └─main +│ └─ets # recurrence rule +└─signature # certificate file +``` + +### Architecture + +![](./figures/architecture.png) + +- **product** + Business form layer: Distinguish various forms of applications for different products and screens, including personalized business, component configuration, and personalized resource packages。 + +- **feature** + Common feature layer: An abstract collection of common feature components that can be referenced by various application forms。 + +- **common** + Common capability layer: Basic capability set, modules that each application form must rely on, including tool classes and common resource packages。 + +## 3. Packaging + +Open project engineering by DevEco Studio, choose: Build → Build Haps(s)/APP(s) → Build Hap(s) + +![](./figures/build_haps.png) + +After compilation, the HAP package will be generated in the `\build\outputs` path in the project directory (if no signature is configured, only unsigned HAP packages will be generated) + +![](./figures/build_output_dir_release.png) + +### Install + +Install the compiled hap package using the command: hdc_std install "HAP packet address" + +![](./figures/calendar_install.png) + +## Constraint +- Development Environment + - **DevEco Studio for OpenHarmony**: Version number greater than 3.1.1.101, Download and Install OpenHarmony SDK API Version 10(The initial IDE configuration can refer to the IDE usage documentation) +- Language + - ArkTS +- Limitation + - This example only supports running on standard systems -#### 安装教程 -1. xxxx -2. xxxx -3. xxxx - -#### 使用说明 - -1. xxxx -2. xxxx -3. xxxx - -#### 参与贡献 - -1. Fork 本仓库 -2. 新建 Feat_xxx 分支 -3. 提交代码 -4. 新建 Pull Request - - -#### 特技 - -1. 使用 Readme\_XXX.md 来支持不同的语言,例如 Readme\_en.md, Readme\_zh.md -2. Gitee 官方博客 [blog.gitee.com](https://blog.gitee.com) -3. 你可以 [https://gitee.com/explore](https://gitee.com/explore) 这个地址来了解 Gitee 上的优秀开源项目 -4. [GVP](https://gitee.com/gvp) 全称是 Gitee 最有价值开源项目,是综合评定出的优秀开源项目 -5. Gitee 官方提供的使用手册 [https://gitee.com/help](https://gitee.com/help) -6. Gitee 封面人物是一档用来展示 Gitee 会员风采的栏目 [https://gitee.com/gitee-stars/](https://gitee.com/gitee-stars/) diff --git a/README_zh.md b/README_zh.md new file mode 100644 index 0000000..0ba3b1b --- /dev/null +++ b/README_zh.md @@ -0,0 +1,77 @@ +# 日历存储应用 + +## 1. 项目介绍 + +日历存储应用是OpenHarmony中预置的应用,提供日程的增删改查功能 + +## 2. 目录结构 +``` +├─AppScope +│ │ +│ └─resources # 资源文件 +├─common +│ │ +│ └─src +│ └─main +│ └─ets # 公共方法 +├─datamanager +│ └─src +│ └─main +│ └─ets # 数据处理 +├─dataprovider +│ └─src +│ └─main +│ └─ets # 数据处理代理层 +├─datastructure +│ └─src +│ └─main +│ └─ets # 数据结构 +├─entry +│ └─src +│ └─main # 程序入口 +├─rrule +│ └─src +│ └─main +│ └─ets # 重复规则 +└─signature # 证书文件目录 +``` + +### 整体架构 + +![](./figures/architecture.png) + +- **product** + 业务形态层:区分不同产品、不同屏幕的各形态应用,含有个性化业务,组件的配置,以及个性化资源包。 + +- **feature** + 公共特性层:抽象的公共特性组件集合,可以被各应用形态引用。 + +- **common** + 公共能力层:基础能力集,每个应用形态都必须依赖的模块,包含工具类和通用的资源包 + +## 3. 打包 + +在DevEco Studio打开项目工程,选择Build → Build Haps(s)/APP(s) → Build Hap(s) + +![](./figures/build_haps.png) + +编译完成后,hap包会生成在工程目录下的 `\build\outputs`路径下(如果没有配置签名,则只会生成未签名的hap包) + +![](./figures/build_output_dir_release.png) + +### 安装 + +使用hdc_std install "hap包地址" 命令进行安装编译后的hap包 + +![](./figures/calendar_install.png) + +## 约束 +- 开发环境 + - **DevEco Studio for OpenHarmony**: 版本号大于3.1.1.101,下载安装OpenHarmony SDK API Version 10。(初始的IDE配置可以参考IDE的使用文档) +- 语言版本 + - ArkTS +- 限制 + - 本示例仅支持标准系统上运行 + + + diff --git a/build-profile.json5 b/build-profile.json5 new file mode 100644 index 0000000..b6269f2 --- /dev/null +++ b/build-profile.json5 @@ -0,0 +1,60 @@ +{ + "app": { + "signingConfigs": [ + { + "name": "release", + "material": { + "certpath": "signature/OpenHarmony.cer", + "storePassword": "00000016A43DB287656F9CFA087114488027CD89E3231C93D42EC5194FB828F4371A1E204CD5", + "keyAlias": "OpenHarmony Application Release", + "keyPassword": "000000167CF0026BCB30B41577DAC2A9799D19ECBEE46B840885676FF359D455D3A1D7FACC8C", + "profile": "signature/calendardata.p7b", + "signAlg": "SHA256withECDSA", + "storeFile": "signature/OpenHarmony.p12" + } + } + ], + "compileSdkVersion": 10, + "compatibleSdkVersion": 10, + "products": [ + { + "name": "default", + "signingConfig": "release", + } + ] + }, + "modules": [ + { + "name": "entry", + "srcPath": "./entry", + "targets": [ + { + "name": "default", + "applyToProducts": [ + "default" + ] + } + ] + }, + { + "name": "common", + "srcPath": "./common" + }, + { + "name": "datastructure", + "srcPath": "./datastructure" + }, + { + "name": "datamanager", + "srcPath": "./datamanager" + }, + { + "name": "rrule", + "srcPath": "./rrule" + }, + { + "name": "dataprovider", + "srcPath": "./dataprovider" + } + ] +} \ No newline at end of file diff --git a/bundle.json b/bundle.json new file mode 100644 index 0000000..7b02a8f --- /dev/null +++ b/bundle.json @@ -0,0 +1,37 @@ +{ + "name": "@ohos/calendardata", + "description": "Calendar manager service for standard system.", + "version": "3.1", + "license": "Apache License 2.0", + "publishAs": "code-segment", + "segment": { + "destPath": "applications/standard/calendardata" + }, + "dirs": {}, + "scripts": {}, + "component": { + "name": "calendardata", + "subsystem": "applications", + "syscap": [], + "features": [], + "adapted_system_type": [ + "standard" + ], + "rom": "", + "ram": "", + "deps": { + "components": [], + "third_party": [] + }, + "build": { + "group_type": { + "service_group": [ + "//applications/standard/calendardata/calendarmanager:calendarmanager" + ] + }, + "test": [ + "//applications/standard/calendardata/calendarmanager/test:unittest" + ] + } + } +} diff --git a/common/.gitignore b/common/.gitignore new file mode 100644 index 0000000..4f9a973 --- /dev/null +++ b/common/.gitignore @@ -0,0 +1,3 @@ +/node_modules +/.preview +/build \ No newline at end of file diff --git a/common/build-profile.json5 b/common/build-profile.json5 new file mode 100644 index 0000000..35dff6d --- /dev/null +++ b/common/build-profile.json5 @@ -0,0 +1,5 @@ +{ + "apiType": "stageMode", + "buildOption": { + } +} diff --git a/common/hvigorfile.ts b/common/hvigorfile.ts new file mode 100644 index 0000000..42ed4b4 --- /dev/null +++ b/common/hvigorfile.ts @@ -0,0 +1,3 @@ +// Script for compiling build behavior. It is built in the build plug-in and cannot be modified currently. +module.exports = require('@ohos/hvigor-ohos-plugin').harTasks + diff --git a/common/package.json b/common/package.json new file mode 100644 index 0000000..da97b7a --- /dev/null +++ b/common/package.json @@ -0,0 +1,14 @@ +{ + "name": "@ohos/common", + "description": "a npm package which contains arkUI2.0 page", + "ohos": { + "org": "" + }, + "version": "1.0.0", + "main": "index.ets", + "types": "", + "repository": {}, + "license": "ISC", + "dependencies": {}, + "type": "module" +} diff --git a/common/src/main/ets/utils/Log.ets b/common/src/main/ets/utils/Log.ets new file mode 100644 index 0000000..aae64e8 --- /dev/null +++ b/common/src/main/ets/utils/Log.ets @@ -0,0 +1,48 @@ +/** + * @file Describe the file + * Copyright (c) 2023 Huawei Device Co., Ltd. + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +const TAG = 'CalendarData'; + +/** + * Global Log class + * + * @since 2022-04-13 + */ +export class Log { + public static log(classTag: string, msg: string) { + console.log(TAG + "--" + classTag + ":" + msg); + } + + public static debug(classTag: string, msg: string) { + console.debug(TAG + "--" + classTag + ":" + msg); + } + + public static info(classTag: string, msg: string) { + console.info(TAG + "--" + classTag + ":" + msg); + } + + public static warn(classTag: string, msg: string) { + console.warn(TAG + "--" + classTag + ":" + msg); + } + + public static error(classTag: string, msg: string) { + console.error(TAG + "--" + classTag + ":" + msg); + } + + public static stringify(data: object): string { + return JSON.stringify(data, null, 4); + } +} diff --git a/common/src/main/module.json5 b/common/src/main/module.json5 new file mode 100644 index 0000000..cd5693c --- /dev/null +++ b/common/src/main/module.json5 @@ -0,0 +1,12 @@ +{ + "module": { + "name": "common", + "type": "har", + "deviceTypes": [ + "default", + "tablet" + ], + "installationFree": false, + "uiSyntax": "ets" + } +} diff --git a/datamanager/.gitignore b/datamanager/.gitignore new file mode 100644 index 0000000..4f9a973 --- /dev/null +++ b/datamanager/.gitignore @@ -0,0 +1,3 @@ +/node_modules +/.preview +/build \ No newline at end of file diff --git a/datamanager/build-profile.json5 b/datamanager/build-profile.json5 new file mode 100644 index 0000000..35dff6d --- /dev/null +++ b/datamanager/build-profile.json5 @@ -0,0 +1,5 @@ +{ + "apiType": "stageMode", + "buildOption": { + } +} diff --git a/datamanager/hvigorfile.ts b/datamanager/hvigorfile.ts new file mode 100644 index 0000000..42ed4b4 --- /dev/null +++ b/datamanager/hvigorfile.ts @@ -0,0 +1,3 @@ +// Script for compiling build behavior. It is built in the build plug-in and cannot be modified currently. +module.exports = require('@ohos/hvigor-ohos-plugin').harTasks + diff --git a/datamanager/package.json b/datamanager/package.json new file mode 100644 index 0000000..4bad47b --- /dev/null +++ b/datamanager/package.json @@ -0,0 +1,18 @@ +{ + "name": "@ohos/datamanager", + "description": "a npm package which contains arkUI2.0 page", + "ohos": { + "org": "" + }, + "version": "1.0.0", + "main": "index.ets", + "types": "", + "repository": {}, + "license": "ISC", + "dependencies": { + "@ohos/common": "file:../common", + "@ohos/datastructure": "file:../datastructure", + "@ohos/rrule": "file:../rrule" + }, + "type": "module" +} diff --git a/datamanager/src/main/module.json5 b/datamanager/src/main/module.json5 new file mode 100644 index 0000000..ccac603 --- /dev/null +++ b/datamanager/src/main/module.json5 @@ -0,0 +1,12 @@ +{ + "module": { + "name": "datamanager", + "type": "har", + "deviceTypes": [ + "default", + "tablet" + ], + "installationFree": false, + "uiSyntax": "ets" + } +} diff --git a/dataprovider/.gitignore b/dataprovider/.gitignore new file mode 100644 index 0000000..4f9a973 --- /dev/null +++ b/dataprovider/.gitignore @@ -0,0 +1,3 @@ +/node_modules +/.preview +/build \ No newline at end of file diff --git a/dataprovider/build-profile.json5 b/dataprovider/build-profile.json5 new file mode 100644 index 0000000..35dff6d --- /dev/null +++ b/dataprovider/build-profile.json5 @@ -0,0 +1,5 @@ +{ + "apiType": "stageMode", + "buildOption": { + } +} diff --git a/dataprovider/hvigorfile.ts b/dataprovider/hvigorfile.ts new file mode 100644 index 0000000..42ed4b4 --- /dev/null +++ b/dataprovider/hvigorfile.ts @@ -0,0 +1,3 @@ +// Script for compiling build behavior. It is built in the build plug-in and cannot be modified currently. +module.exports = require('@ohos/hvigor-ohos-plugin').harTasks + diff --git a/dataprovider/package.json b/dataprovider/package.json new file mode 100644 index 0000000..8d5e72e --- /dev/null +++ b/dataprovider/package.json @@ -0,0 +1,18 @@ +{ + "name": "@ohos/dataprovider", + "description": "a npm package which contains arkUI2.0 page", + "ohos": { + "org": "" + }, + "version": "1.0.0", + "main": "index.ets", + "types": "", + "repository": {}, + "license": "ISC", + "dependencies": { + "@ohos/common": "file:../common", + "@ohos/datamanager": "file:../datamanager", + "@ohos/datastructure": "file:../datastructure" + }, + "type": "module" +} diff --git a/dataprovider/src/main/module.json5 b/dataprovider/src/main/module.json5 new file mode 100644 index 0000000..54fb279 --- /dev/null +++ b/dataprovider/src/main/module.json5 @@ -0,0 +1,12 @@ +{ + "module": { + "name": "dataprovider", + "type": "har", + "deviceTypes": [ + "default", + "tablet" + ], + "installationFree": false, + "uiSyntax": "ets" + } +} diff --git a/datastructure/.gitignore b/datastructure/.gitignore new file mode 100644 index 0000000..4f9a973 --- /dev/null +++ b/datastructure/.gitignore @@ -0,0 +1,3 @@ +/node_modules +/.preview +/build \ No newline at end of file diff --git a/datastructure/build-profile.json5 b/datastructure/build-profile.json5 new file mode 100644 index 0000000..0f5aacb --- /dev/null +++ b/datastructure/build-profile.json5 @@ -0,0 +1,5 @@ +{ + "apiType": "stageMode", + "buildOption": { + } +} diff --git a/datastructure/hvigorfile.ts b/datastructure/hvigorfile.ts new file mode 100644 index 0000000..42ed4b4 --- /dev/null +++ b/datastructure/hvigorfile.ts @@ -0,0 +1,3 @@ +// Script for compiling build behavior. It is built in the build plug-in and cannot be modified currently. +module.exports = require('@ohos/hvigor-ohos-plugin').harTasks + diff --git a/datastructure/package.json b/datastructure/package.json new file mode 100644 index 0000000..c0d4631 --- /dev/null +++ b/datastructure/package.json @@ -0,0 +1,14 @@ +{ + "name": "@ohos/datastructure", + "description": "a npm package which contains arkUI2.0 page", + "ohos": { + "org": "" + }, + "version": "1.0.0", + "main": "index.ets", + "types": "", + "repository": {}, + "license": "ISC", + "dependencies": {}, + "type": "module" +} diff --git a/datastructure/src/main/module.json5 b/datastructure/src/main/module.json5 new file mode 100644 index 0000000..b41342a --- /dev/null +++ b/datastructure/src/main/module.json5 @@ -0,0 +1,12 @@ +{ + "module": { + "name": "datastructure", + "type": "har", + "deviceTypes": [ + "default", + "tablet" + ], + "installationFree": false, + "uiSyntax": "ets" + } +} diff --git a/entry/.gitignore b/entry/.gitignore new file mode 100644 index 0000000..0620a3c --- /dev/null +++ b/entry/.gitignore @@ -0,0 +1,3 @@ +/build +/node_modules +/.preview \ No newline at end of file diff --git a/entry/build-profile.json5 b/entry/build-profile.json5 new file mode 100644 index 0000000..8b2e839 --- /dev/null +++ b/entry/build-profile.json5 @@ -0,0 +1,11 @@ +{ + apiType: 'stageMode', + showInServiceCenter: false, + buildOption: { + }, + "targets": [ + { + "name": "default", + } + ] +} \ No newline at end of file diff --git a/entry/hvigorfile.js b/entry/hvigorfile.js new file mode 100644 index 0000000..7692388 --- /dev/null +++ b/entry/hvigorfile.js @@ -0,0 +1 @@ +module.exports = require('@ohos/hvigor-ohos-plugin'). hapTasks \ No newline at end of file diff --git a/entry/package.json b/entry/package.json new file mode 100644 index 0000000..4cc23ad --- /dev/null +++ b/entry/package.json @@ -0,0 +1,17 @@ +{ + "name": "@ohos/entry", + "description": "a npm package which contains arkUI2.0 page", + "ohos": { + "org": "" + }, + "version": "1.0.0", + "main": "index.ets", + "types": "", + "repository": {}, + "license": "ISC", + "dependencies": { + "@ohos/common": "file:../common", + "@ohos/datamanager": "file:../datamanager", + "@ohos/dataprovider": "file:../dataprovider" + } +} diff --git a/entry/proguard-rules.pro b/entry/proguard-rules.pro new file mode 100644 index 0000000..f7666e4 --- /dev/null +++ b/entry/proguard-rules.pro @@ -0,0 +1 @@ +# config module specific ProGuard rules here. \ No newline at end of file diff --git a/entry/src/main/ets/Application/Application.ets b/entry/src/main/ets/Application/Application.ets new file mode 100644 index 0000000..f752ae8 --- /dev/null +++ b/entry/src/main/ets/Application/Application.ets @@ -0,0 +1,59 @@ +/** + * @file Describe the file + * Copyright (c) 2023 Huawei Device Co., Ltd. + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +import UIAbility from '@ohos.app.ability.UIAbility'; +import { Log } from '@ohos/common/src/main/ets/utils/Log' + +const TAG = 'Application' + +export default class Application extends UIAbility { + onCreate(want, launchParam) { + Log.log(TAG, "MainAbility onCreate"); + globalThis.abilityWant = want; + } + + onDestroy() { + Log.log(TAG, "MainAbility onDestroy"); + } + + onWindowStageCreate(windowStage) { + // Main window is created, set main page for this ability + Log.log(TAG, "MainAbility onWindowStageCreate"); + + windowStage.loadContent("pages/index", (err, data) => { + if (err?.code) { + console.error('Failed to load the content. Cause:' + JSON.stringify(err)); + return; + } + console.info('Succeeded in loading the content. Data: ' + JSON.stringify(data)); + }); + } + + onWindowStageDestroy() { + // Main window is destroyed, release UI related resources + Log.log(TAG, "MainAbility onWindowStageDestroy"); + } + + onForeground() { + // Ability has brought to foreground + Log.log(TAG, "MainAbility onForeground"); + } + + onBackground() { + // Ability has back to background + Log.log(TAG, "MainAbility onBackground"); + } +}; diff --git a/entry/src/main/ets/MainAbility/MainAbility.ets b/entry/src/main/ets/MainAbility/MainAbility.ets new file mode 100644 index 0000000..8eed85f --- /dev/null +++ b/entry/src/main/ets/MainAbility/MainAbility.ets @@ -0,0 +1,54 @@ +/** + * @file Describe the file + * Copyright (c) 2023 Huawei Device Co., Ltd. + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +import UIAbility from '@ohos.app.ability.UIAbility'; +import { Log } from '@ohos/common/src/main/ets/utils/Log' + +const TAG = 'MainAbility' + +export default class MainAbility extends UIAbility { + onCreate(want, launchParam) { + Log.log(TAG, "MainAbility onCreate"); + globalThis.abilityWant = want; + globalThis.context = this.context; + } + + onDestroy() { + Log.log(TAG, "MainAbility onDestroy"); + } + + onWindowStageCreate(windowStage) { + // Main window is created, set main page for this ability + Log.log(TAG, "MainAbility onWindowStageCreate"); + + windowStage.setUIContent(this.context, "pages/index", null); + } + + onWindowStageDestroy() { + // Main window is destroyed, release UI related resources + Log.log(TAG, "MainAbility onWindowStageDestroy"); + } + + onForeground() { + // Ability has brought to foreground + Log.log(TAG, "MainAbility onForeground"); + } + + onBackground() { + // Ability has back to background + Log.log(TAG, "MainAbility onBackground"); + } +}; diff --git a/entry/src/main/ets/pages/index.ets b/entry/src/main/ets/pages/index.ets new file mode 100644 index 0000000..c788e0b --- /dev/null +++ b/entry/src/main/ets/pages/index.ets @@ -0,0 +1,29 @@ +/** + * @file Describe the file + * Copyright (c) 2023 Huawei Device Co., Ltd. + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +@Entry +@Component +struct Index { + @State message: string = 'Hello World' + + /** + * In low-code mode, do not add anything to the build function, as it will be + * overwritten by the content generated by the .visual file in the build phase. + */ + build() { + + } +} \ No newline at end of file diff --git a/entry/src/main/module.json5 b/entry/src/main/module.json5 new file mode 100644 index 0000000..41bdb01 --- /dev/null +++ b/entry/src/main/module.json5 @@ -0,0 +1,49 @@ +{ + "module": { + "name": "entry", + "type": "entry", + "srcEntrance": "./ets/Application/Application.ets", + "description": "$string:description_mainability", + "mainElement": "MainAbility", + "deviceTypes": [ + "default", + "tablet" + ], + "installationFree": false, + "deliveryWithInstall": true, + "pages": "$profile:main_pages", + "uiSyntax": "ets", + "abilities": [ + { + "name": "MainAbility", + "srcEntrance": "./ets/MainAbility/MainAbility.ets", + "description": "$string:description_mainability", + "icon": "$media:icon", + "label": "$string:app_name", + "visible": true, + "launchType": "standard", + "startWindowIcon": "$media:icon", + "startWindowBackground": "$color:yellow" + }, + { + "name": "Application", + "srcEntrance": "./ets/Application/Application.ets", + "icon": "$media:icon", + "startWindowIcon": "$media:icon", + "startWindowBackground": "$color:yellow", + "visible": true + } + ], + "metadata": [ + { + "name": "hmos.app.quickfix", + "value": "true" + } + ], + "requestPermissions": [ + { + "name": "ohos.permission.PERMISSION_USED_STATS" + }, + ] + } +} \ No newline at end of file diff --git a/entry/src/main/resources/base/element/color.json b/entry/src/main/resources/base/element/color.json new file mode 100644 index 0000000..43e8668 --- /dev/null +++ b/entry/src/main/resources/base/element/color.json @@ -0,0 +1,8 @@ +{ + "color": [ + { + "name": "yellow", + "value": "#FFD700" + } + ] +} \ No newline at end of file diff --git a/entry/src/main/resources/base/element/string.json b/entry/src/main/resources/base/element/string.json new file mode 100644 index 0000000..fb9f432 --- /dev/null +++ b/entry/src/main/resources/base/element/string.json @@ -0,0 +1,16 @@ +{ + "string": [ + { + "name": "entry_MainAbility", + "value": "entry_MainAbility" + }, + { + "name": "description_mainability", + "value": "eTS_Empty Ability" + }, + { + "name": "app_name", + "value": "CalendarData" + } + ] +} \ No newline at end of file diff --git a/entry/src/main/resources/base/media/icon.png b/entry/src/main/resources/base/media/icon.png new file mode 100644 index 0000000..8fac328 Binary files /dev/null and b/entry/src/main/resources/base/media/icon.png differ diff --git a/entry/src/main/resources/base/profile/data_config.json b/entry/src/main/resources/base/profile/data_config.json new file mode 100644 index 0000000..1b221c1 --- /dev/null +++ b/entry/src/main/resources/base/profile/data_config.json @@ -0,0 +1,23 @@ +{ + "forms": [ + { + "name": "widget", + "description": "This is a service widget.", + "src": "./js/widget/pages/index/index", + "window": { + "designWidth": 720, + "autoDesignWidth": true + }, + "colorMode": "auto", + "isDefault": true, + "updateEnabled": true, + "scheduledUpdateTime": "10:30", + "updateDuration": 1, + "defaultDimension": "2*2", + "supportDimensions": [ + "2*2" + ], + "formConfigAbility": "ability://xxxxx" + } + ] +} \ No newline at end of file diff --git a/entry/src/main/resources/base/profile/main_pages.json b/entry/src/main/resources/base/profile/main_pages.json new file mode 100644 index 0000000..feec276 --- /dev/null +++ b/entry/src/main/resources/base/profile/main_pages.json @@ -0,0 +1,5 @@ +{ + "src": [ + "pages/index" + ] +} diff --git a/figures/architecture.png b/figures/architecture.png new file mode 100644 index 0000000..72ce23f Binary files /dev/null and b/figures/architecture.png differ diff --git a/figures/build_haps.png b/figures/build_haps.png new file mode 100644 index 0000000..39fd7a1 Binary files /dev/null and b/figures/build_haps.png differ diff --git a/figures/build_output_dir_release.png b/figures/build_output_dir_release.png new file mode 100644 index 0000000..0caf8df Binary files /dev/null and b/figures/build_output_dir_release.png differ diff --git a/figures/calendar_install.png b/figures/calendar_install.png new file mode 100644 index 0000000..139d214 Binary files /dev/null and b/figures/calendar_install.png differ diff --git a/gradlew b/gradlew new file mode 100644 index 0000000..adc7c48 --- /dev/null +++ b/gradlew @@ -0,0 +1,23 @@ +npm config set registry http://mirrors.tools.huawei.com/npm/ +npm config set @ohos:registry https://cmc.centralrepo.rnd.huawei.com/artifactory/api/npm/product_npm/ +npm config set strict-ssl false +npm install +cd common +npm install +cd .. +cd datastructure +npm install +cd .. +cd datamanager +npm install +cd .. +cd rrule +npm install +cd .. +cd dataprovider +npm install +cd .. +cd entry +npm install +cd .. +node ./node_modules/@ohos/hvigor/bin/hvigor.js --mode module assembleHap -p debuggable=false diff --git a/hvigorfile.js b/hvigorfile.js new file mode 100644 index 0000000..a94b489 --- /dev/null +++ b/hvigorfile.js @@ -0,0 +1 @@ +module.exports = require('@ohos/hvigor-ohos-plugin').appTasks \ No newline at end of file diff --git a/package.json b/package.json new file mode 100644 index 0000000..6da9976 --- /dev/null +++ b/package.json @@ -0,0 +1,18 @@ +{ + "name": "CalendarData", + "version": "1.0.0", + "ohos": { + "org": "huawei", + "buildTool": "hvigor", + "directoryLevel": "project" + }, + "description": "example description", + "repository": {}, + "license": "ISC", + "dependencies": { + "hypium": "^1.0.0", + "@ohos/hvigor": "1.4.0", + "@ohos/hvigor-ohos-plugin": "1.4.0", + "@ohos/hypium": "1.0.3" + } +} diff --git a/rrule/.gitignore b/rrule/.gitignore new file mode 100644 index 0000000..4f9a973 --- /dev/null +++ b/rrule/.gitignore @@ -0,0 +1,3 @@ +/node_modules +/.preview +/build \ No newline at end of file diff --git a/rrule/build-profile.json5 b/rrule/build-profile.json5 new file mode 100644 index 0000000..0f5aacb --- /dev/null +++ b/rrule/build-profile.json5 @@ -0,0 +1,5 @@ +{ + "apiType": "stageMode", + "buildOption": { + } +} diff --git a/rrule/hvigorfile.ts b/rrule/hvigorfile.ts new file mode 100644 index 0000000..42ed4b4 --- /dev/null +++ b/rrule/hvigorfile.ts @@ -0,0 +1,3 @@ +// Script for compiling build behavior. It is built in the build plug-in and cannot be modified currently. +module.exports = require('@ohos/hvigor-ohos-plugin').harTasks + diff --git a/rrule/package.json b/rrule/package.json new file mode 100644 index 0000000..a56eec3 --- /dev/null +++ b/rrule/package.json @@ -0,0 +1,16 @@ +{ + "name": "@ohos/rrule", + "description": "a npm package which contains arkUI2.0 page", + "ohos": { + "org": "" + }, + "version": "1.0.0", + "main": "index.ets", + "types": "", + "repository": {}, + "license": "ISC", + "dependencies": { + "@ohos/common": "file:../common" + }, + "type": "module" +} diff --git a/rrule/src/main/module.json5 b/rrule/src/main/module.json5 new file mode 100644 index 0000000..4db8a3d --- /dev/null +++ b/rrule/src/main/module.json5 @@ -0,0 +1,12 @@ +{ + "module": { + "name": "rrule", + "type": "har", + "deviceTypes": [ + "default", + "tablet" + ], + "installationFree": false, + "uiSyntax": "ets" + } +} diff --git a/signature/OpenHarmony.cer b/signature/OpenHarmony.cer new file mode 100644 index 0000000..c6f689d --- /dev/null +++ b/signature/OpenHarmony.cer @@ -0,0 +1,29 @@ +-----BEGIN CERTIFICATE----- +MIICMzCCAbmgAwIBAgIIWUnLZ/SCTRowCgYIKoZIzj0EAwMwYzELMAkGA1UEBhMC +Q04xFDASBgNVBAoTC09wZW5IYXJtb255MRkwFwYDVQQLExBPcGVuSGFybW9ueSBU +ZWFtMSMwIQYDVQQDExpPcGVuSGFybW9ueSBBcHBsaWNhdGlvbiBDQTAeFw0yMjA1 +MDcwMjM2MzRaFw0zMjA1MDQwMjM2MzRaMGgxCzAJBgNVBAYTAkNOMRQwEgYDVQQK +EwtPcGVuSGFybW9ueTEZMBcGA1UECxMQT3Blbkhhcm1vbnkgVGVhbTEoMCYGA1UE +AxMfT3Blbkhhcm1vbnkgQXBwbGljYXRpb24gUmVsZWFzZTBZMBMGByqGSM49AgEG +CCqGSM49AwEHA0IABNtg4JBClbl92Rgc3jm/RfcAdrHXaM8F0QOiwVEhnV5ebE5j +NIYnAx+weFRT3QTyUjRNdhmc2aAzWyi+5t5CoBOjUjBQMB0GA1UdDgQWBBT7ca7o +ZXEQULCXcHGai7vaDVFYGjAOBgNVHQ8BAf8EBAMCB4AwHwYDVR0jBBgwFoAU24a3 +IhbVC6FLt90le7nxBX2iLUcwCgYIKoZIzj0EAwMDaAAwZQIwTkX4EoMKxWLBFAQx +Sbg1+nr9tWojKWBvsc87Hq+Ekvb25QN2MCrpWr4oc29smktcAjEA2DNZQyvfTmRQ +JAIGSyJXIeOSnvhJ5rXn2A0qurNyQegWovvyCv+jr5/SlB7nmDLU +-----END CERTIFICATE----- +-----BEGIN CERTIFICATE----- +MIICYTCCAeWgAwIBAgIEHmXAPTAMBggqhkjOPQQDAwUAMGgxCzAJBgNVBAYTAkNO +MRQwEgYDVQQKEwtPcGVuSGFybW9ueTEZMBcGA1UECxMQT3Blbkhhcm1vbnkgVGVh +bTEoMCYGA1UEAxMfT3Blbkhhcm1vbnkgQXBwbGljYXRpb24gUm9vdCBDQTAeFw0y +MTAyMDIxMjE1MzJaFw00OTEyMzExMjE1MzJaMGMxCzAJBgNVBAYTAkNOMRQwEgYD +VQQKEwtPcGVuSGFybW9ueTEZMBcGA1UECxMQT3Blbkhhcm1vbnkgVGVhbTEjMCEG +A1UEAxMaT3Blbkhhcm1vbnkgQXBwbGljYXRpb24gQ0EwdjAQBgcqhkjOPQIBBgUr +gQQAIgNiAAQhnu7Hna8XNa2KyqRf5+lBJScE4xqf89N0g0OuqAb2re8nGsvWkw26 +uDekfnBYicd+G3Cydqa2zFIwV7Talyg2ULW3r8KbGpyl84mJEPPRmCGJ+H9gtCsf ++OrJ4Y76LVWjYzBhMB8GA1UdIwQYMBaAFBc6EKGrGXzlAE+s0Zgnsphadw7NMA8G +A1UdEwEB/wQFMAMBAf8wDgYDVR0PAQH/BAQDAgEGMB0GA1UdDgQWBBTbhrciFtUL +oUu33SV7ufEFfaItRzAMBggqhkjOPQQDAwUAA2gAMGUCMG3cXjiDmXTvf7D4Omhf +qcc2nuO+EMfWE+N9ZhBP5UhV34mAGWi3SfLU6rcV0urWEQIxAMYIb3epOnKhUrcm +Lfu1WKzFlpYQwmw73RaCHP2I3k6NcuWOYeNwWXSNZ8o0nzvaLg== +-----END CERTIFICATE----- diff --git a/signature/OpenHarmony.p12 b/signature/OpenHarmony.p12 new file mode 100644 index 0000000..60f9bb4 Binary files /dev/null and b/signature/OpenHarmony.p12 differ diff --git a/signature/calendardata.p7b b/signature/calendardata.p7b new file mode 100644 index 0000000..0c88584 Binary files /dev/null and b/signature/calendardata.p7b differ diff --git a/signature/material/ac/2414e0c961364455b65852f0a25c9ae3 b/signature/material/ac/2414e0c961364455b65852f0a25c9ae3 new file mode 100644 index 0000000..f3a39f0 --- /dev/null +++ b/signature/material/ac/2414e0c961364455b65852f0a25c9ae3 @@ -0,0 +1 @@ +PTr&lV|>?̔ \ No newline at end of file diff --git a/signature/material/ce/0fbd9335b2684b6f989729ef91a537f7 b/signature/material/ce/0fbd9335b2684b6f989729ef91a537f7 new file mode 100644 index 0000000..b1f99fe Binary files /dev/null and b/signature/material/ce/0fbd9335b2684b6f989729ef91a537f7 differ diff --git a/signature/material/fd/0/a3716aae34ff42fc9c59ba058380be54 b/signature/material/fd/0/a3716aae34ff42fc9c59ba058380be54 new file mode 100644 index 0000000..32c1e4c --- /dev/null +++ b/signature/material/fd/0/a3716aae34ff42fc9c59ba058380be54 @@ -0,0 +1 @@ +W9[7FaM8Ŷ \ No newline at end of file diff --git a/signature/material/fd/1/b58cea655c3a489fac614ad24e5119d7 b/signature/material/fd/1/b58cea655c3a489fac614ad24e5119d7 new file mode 100644 index 0000000..4483b18 --- /dev/null +++ b/signature/material/fd/1/b58cea655c3a489fac614ad24e5119d7 @@ -0,0 +1 @@ +a=0ׂj%2,õ \ No newline at end of file diff --git a/signature/material/fd/2/93b27032ebb94fb3a6ce540e778f5835 b/signature/material/fd/2/93b27032ebb94fb3a6ce540e778f5835 new file mode 100644 index 0000000..1e1a286 --- /dev/null +++ b/signature/material/fd/2/93b27032ebb94fb3a6ce540e778f5835 @@ -0,0 +1 @@ +?|9EcW \ No newline at end of file