Skip to content

Commit 72a6a24

Browse files
committed
Resolving Conflicts
2 parents 552f08b + 6e12e19 commit 72a6a24

File tree

234 files changed

+16939
-3813
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

234 files changed

+16939
-3813
lines changed

.github/CODE_OF_CONDUCT.md

Lines changed: 71 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,71 @@
1+
# Syncfusion Code of Conduct and Corporate Ethics Policy
2+
3+
## 1. Purpose
4+
5+
Syncfusion is committed to responsible corporate citizenship. Our commitment to integrity begins with following all local, state, and federal laws and regulations.
6+
7+
Employment at Syncfusion is based exclusively on individual merit and qualifications. The company prohibits discrimination on the basis of race, color, religion, veteran status, national origin, ancestry, pregnancy status, sex, gender identity or expression, age, marital status, mental or physical disability, medical condition, sexual orientation, or any other characteristic protected by law.
8+
9+
Syncfusion will not tolerate discrimination, harassment, or bullying in any form and will not retaliate against any employee who reports or participates in an investigation of such behavior.
10+
11+
## 2. Standards
12+
13+
Syncfusion complies with all laws relating to minimum wage and overtime payments. Employees must record their time accurately in accordance with the company’s established procedures.
14+
15+
The company adheres to all laws prohibiting child labor, slave labor, and other illegal workplace practices.
16+
17+
Syncfusion believes that acting ethically and responsibly is not just the right thing to do—it is also good for business and crucial for our continued success. We are dedicated to full compliance with all applicable laws and to maintaining high ethical standards in all business transactions.
18+
19+
## 3. Commitment to Ethics
20+
21+
Syncfusion is committed to protecting employees, customers, partners, vendors, and the company from illegal or damaging actions by individuals, knowingly or unknowingly. This policy establishes behavioral and ethical standards for Syncfusion’s employees, vendors, and the company.
22+
23+
This policy also aligns with the community standards of open-source initiatives maintained by Syncfusion, including the Syncfusion .NET MAUI Toolkit.
24+
25+
### 3.1 Executive Commitment to Ethics
26+
27+
Executives must:
28+
- Maintain an open-door policy and welcome suggestions or concerns.
29+
- Disclose any conflicts of interest regarding their position within Syncfusion.
30+
31+
### 3.2 Employee Commitment to Ethics
32+
33+
Syncfusion employees shall:
34+
- Treat everyone fairly and respectfully.
35+
- Promote a team environment and avoid unethical or compromising practices.
36+
- Abide by Syncfusion’s mission, values, and policies.
37+
- Avoid dishonesty, fraud, or misrepresentation.
38+
- Comply with all legal regulations and standards of equity.
39+
- Respect diversity and differences in people.
40+
- Refrain from profanity, abuse, or violence.
41+
- Maintain confidentiality during and after employment.
42+
- Respect and abide by management decisions.
43+
- Avoid public criticism that could harm Syncfusion’s reputation.
44+
45+
### 3.3 Maintaining Ethical Practices
46+
47+
Every employee must:
48+
- Support ethical behavior consistently.
49+
- Notify supervisors of any actual or potential conflicts of interest.
50+
- Avoid prohibited activities, including:
51+
- Using their position for personal or family gain.
52+
- Accepting or offering gifts or preferential treatment.
53+
- Misusing Syncfusion’s assets or resources.
54+
55+
### 3.4 Unethical Behavior
56+
57+
Unethical or illegal practices are strictly prohibited, including:
58+
- Corruption, bribery, or misuse of proprietary information.
59+
- Unauthorized use of company assets or confidential relationships.
60+
- Abuse of employment benefits.
61+
62+
All violations must be reported to: **[email protected]**
63+
64+
## 4. Open Source Contribution Ethics – MAUI Toolkit
65+
66+
Syncfusion maintains high ethical and community standards for its open-source projects. Contributors and users of the Syncfusion .NET MAUI Toolkit are expected to adhere to its [Code of Conduct](https://github.com/syncfusion/maui-toolkit) harassment-free collaboration environment.
67+
68+
Anyone participating in the open-source community representing Syncfusion should:
69+
- Follow the same integrity and professionalism expected of internal employees.
70+
- Avoid discriminatory or abusive behavior in any form.
71+
- Promote transparency and respect among all contributors, users, and maintainers.

.github/SECURITY.md

Lines changed: 33 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,33 @@
1+
# Security Policy
2+
3+
## 1. Purpose
4+
5+
We prioritize our project’s security and encourage the community to responsibly report any vulnerabilities.
6+
7+
## 2. Reporting a Vulnerability
8+
9+
We take the security of our Syncfusion .NET MAUI Toolkit project very seriously. If you discover a security vulnerability, please report it responsibly using the steps outlined below.
10+
11+
### 2.1 How to Report
12+
13+
#### 2.1.1 Contact us privately:
14+
- Please email us at **[email protected]** with a detailed report of the vulnerability.
15+
- Wait until we verify that the problem has been fixed before making the announcement in public.
16+
17+
#### 2.1.2 Provide details:
18+
- Provide instructions on how to replicate the vulnerability.
19+
- Share any possible impact or exploitation scenarios.
20+
21+
#### 2.1.3 Expect a response:
22+
- We will acknowledge receipt of your report within **2 business days**.
23+
- You will receive updates on the progress as we investigate and resolve the issue.
24+
25+
## 3. Security Patch Process
26+
27+
### 3.1 After a vulnerability is reported and verified:
28+
- We will assess its severity and impact.
29+
- A fix will be developed and tested internally.
30+
31+
The resolution will be included in the next available release. If necessary, a security patch will be issued immediately.
32+
33+
Affected users will be notified in the GitHub repository's **Releases** page and other relevant channels.

.github/workflows/codeql.yml

Lines changed: 98 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,98 @@
1+
# For most projects, this workflow file will not need changing; you simply need
2+
# to commit it to your repository.
3+
#
4+
# You may wish to alter this file to override the set of languages analyzed,
5+
# or to provide custom queries or build logic.
6+
#
7+
# ******** NOTE ********
8+
# We have attempted to detect the languages in your repository. Please check
9+
# the `language` matrix defined below to confirm you have the correct set of
10+
# supported CodeQL languages.
11+
#
12+
name: "CodeQL Advanced"
13+
14+
on:
15+
push:
16+
branches: [ "main" ]
17+
pull_request:
18+
branches: [ "main" ]
19+
schedule:
20+
- cron: '26 19 * * 5'
21+
22+
jobs:
23+
analyze:
24+
name: Analyze (${{ matrix.language }})
25+
# Runner size impacts CodeQL analysis time. To learn more, please see:
26+
# - https://gh.io/recommended-hardware-resources-for-running-codeql
27+
# - https://gh.io/supported-runners-and-hardware-resources
28+
# - https://gh.io/using-larger-runners (GitHub.com only)
29+
# Consider using larger runners or machines with greater resources for possible analysis time improvements.
30+
runs-on: ${{ (matrix.language == 'swift' && 'macos-latest') || 'ubuntu-latest' }}
31+
permissions:
32+
# required for all workflows
33+
security-events: write
34+
35+
# required to fetch internal or private CodeQL packs
36+
packages: read
37+
38+
# only required for workflows in private repositories
39+
actions: read
40+
contents: read
41+
42+
strategy:
43+
fail-fast: false
44+
matrix:
45+
include:
46+
- language: csharp
47+
build-mode: none
48+
# CodeQL supports the following values keywords for 'language': 'actions', 'c-cpp', 'csharp', 'go', 'java-kotlin', 'javascript-typescript', 'python', 'ruby', 'rust', 'swift'
49+
# Use `c-cpp` to analyze code written in C, C++ or both
50+
# Use 'java-kotlin' to analyze code written in Java, Kotlin or both
51+
# Use 'javascript-typescript' to analyze code written in JavaScript, TypeScript or both
52+
# To learn more about changing the languages that are analyzed or customizing the build mode for your analysis,
53+
# see https://docs.github.com/en/code-security/code-scanning/creating-an-advanced-setup-for-code-scanning/customizing-your-advanced-setup-for-code-scanning.
54+
# If you are analyzing a compiled language, you can modify the 'build-mode' for that language to customize how
55+
# your codebase is analyzed, see https://docs.github.com/en/code-security/code-scanning/creating-an-advanced-setup-for-code-scanning/codeql-code-scanning-for-compiled-languages
56+
steps:
57+
- name: Checkout repository
58+
uses: actions/checkout@v4
59+
60+
# Add any setup steps before running the `github/codeql-action/init` action.
61+
# This includes steps like installing compilers or runtimes (`actions/setup-node`
62+
# or others). This is typically only required for manual builds.
63+
# - name: Setup runtime (example)
64+
# uses: actions/setup-example@v1
65+
66+
# Initializes the CodeQL tools for scanning.
67+
- name: Initialize CodeQL
68+
uses: github/codeql-action/init@v3
69+
with:
70+
languages: ${{ matrix.language }}
71+
build-mode: ${{ matrix.build-mode }}
72+
# If you wish to specify custom queries, you can do so here or in a config file.
73+
# By default, queries listed here will override any specified in a config file.
74+
# Prefix the list here with "+" to use these queries and those in the config file.
75+
76+
# For more details on CodeQL's query packs, refer to: https://docs.github.com/en/code-security/code-scanning/automatically-scanning-your-code-for-vulnerabilities-and-errors/configuring-code-scanning#using-queries-in-ql-packs
77+
# queries: security-extended,security-and-quality
78+
79+
# If the analyze step fails for one of the languages you are analyzing with
80+
# "We were unable to automatically build your code", modify the matrix above
81+
# to set the build mode to "manual" for that language. Then modify this step
82+
# to build your code.
83+
# ℹ️ Command-line programs to run using the OS shell.
84+
# 📚 See https://docs.github.com/en/actions/using-workflows/workflow-syntax-for-github-actions#jobsjob_idstepsrun
85+
- if: matrix.build-mode == 'manual'
86+
shell: bash
87+
run: |
88+
echo 'If you are using a "manual" build mode for one or more of the' \
89+
'languages you are analyzing, replace this with the commands to build' \
90+
'your code, for example:'
91+
echo ' make bootstrap'
92+
echo ' make release'
93+
exit 1
94+
95+
- name: Perform CodeQL Analysis
96+
uses: github/codeql-action/analyze@v3
97+
with:
98+
category: "/language:${{matrix.language}}"

.github/workflows/triage.yml

Lines changed: 109 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,109 @@
1+
name: Triage Issues and PRs
2+
3+
on:
4+
issues:
5+
types: [opened, edited]
6+
pull_request:
7+
types: [opened, edited]
8+
9+
jobs:
10+
triage:
11+
runs-on: ubuntu-latest
12+
13+
steps:
14+
- name: Assign Labels
15+
uses: actions/github-script@v6
16+
with:
17+
script: |
18+
let issue_number = context.payload.issue?.number || context.payload.pull_request?.number;
19+
let title = context.payload.issue?.title?.toLowerCase() || context.payload.pull_request?.title?.toLowerCase() || '';
20+
let body = context.payload.issue?.body?.toLowerCase() || context.payload.pull_request?.body?.toLowerCase() || '';
21+
22+
const labels = [];
23+
if (title.includes('bug') || body.includes('bug') || title.includes('error') || body.includes('error') || title.includes('problem') || body.includes('problem')) {
24+
labels.push('bug');
25+
} else if (title.includes('feature') || body.includes('feature') || title.includes('request') || body.includes('request') || title.includes('suggestion') || body.includes('suggestion') || title.includes('improvement') || body.includes('improvement')) {
26+
labels.push('enhancement');
27+
} else if (title.includes('docs') || body.includes('docs') || title.includes('documentation') || body.includes('documentation')) {
28+
labels.push('documentation');
29+
} else if (title.includes('question') || body.includes('question')) {
30+
labels.push('question');
31+
} else {
32+
labels.push('needs-triage');
33+
}
34+
35+
if (issue_number) {
36+
await github.issues.addLabels({
37+
owner: context.repo.owner,
38+
repo: context.repo.repo,
39+
issue_number,
40+
labels,
41+
});
42+
}
43+
44+
- name: Assign to PaulAndersonS (Issues only)
45+
if: github.event.issue != null
46+
uses: actions/github-script@v6
47+
with:
48+
script: |
49+
await github.issues.addAssignees({
50+
owner: context.repo.owner,
51+
repo: context.repo.repo,
52+
issue_number: context.payload.issue.number,
53+
assignees: ['PaulAndersonS']
54+
});
55+
56+
- name: Add Comment (Issues)
57+
if: github.event.issue != null
58+
uses: actions/github-script@v6
59+
with:
60+
script: |
61+
const title = context.payload.issue.title.toLowerCase();
62+
let type = 'issue';
63+
if (title.includes('bug')) {
64+
type = 'bug report';
65+
} else if (title.includes('feature')) {
66+
type = 'feature request';
67+
} else if (title.includes('docs') || title.includes('documentation')) {
68+
type = 'documentation update';
69+
} else if (title.includes('question')) {
70+
type = 'question';
71+
}
72+
const comment = `Thank you for your ${type}! We will review it soon.`;
73+
await github.issues.createComment({
74+
owner: context.repo.owner,
75+
repo: context.repo.repo,
76+
issue_number: context.payload.issue.number,
77+
body: comment
78+
});
79+
80+
- name: Add Comment (Pull Requests)
81+
if: github.event.pull_request != null
82+
uses: actions/github-script@v6
83+
with:
84+
script: |
85+
const title = context.payload.pull_request.title.toLowerCase();
86+
let type = 'pull request';
87+
if (title.includes('bugfix') || title.includes('fix')) {
88+
type = 'bug fix PR';
89+
} else if (title.includes('feature')) {
90+
type = 'feature PR';
91+
} else if (title.includes('docs') || title.includes('documentation')) {
92+
type = 'documentation PR';
93+
}
94+
const comment = `Thank you for your ${type}! We will review it soon.`;
95+
await github.issues.createComment({
96+
owner: context.repo.owner,
97+
repo: context.repo.repo,
98+
issue_number: context.payload.pull_request.number,
99+
body: comment
100+
});
101+
102+
- name: Close Stale Issues and PRs
103+
uses: actions/stale@v4
104+
with:
105+
repo-token: ${{ secrets.GITHUB_TOKEN }}
106+
stale-issue-message: 'This issue has been automatically marked as stale because it has not had recent activity. It will be closed if no further activity occurs.'
107+
stale-pr-message: 'This pull request has been automatically marked as stale because it has not had recent activity. It will be closed if no further activity occurs.'
108+
days-before-stale: 60
109+
days-before-close: 14

CONTRIBUTING.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -22,7 +22,7 @@ Follow the coding style guidelines set by the [.NET Foundation](https://github.c
2222

2323
### Pull Request Requirements
2424

25-
Please refer to our [pull request template](PULL_REQUEST_TEMPLATE.md) for details on how to format your submissions.
25+
Please refer to our [pull request template](.github/PULL_REQUEST_TEMPLATE.md) for details on how to format your submissions.
2626

2727
* **Allow Edits from Maintainers:** Ensure you check the "Allow edits from maintainers" checkbox on your pull request. This permission allows us to make minor fixes and resolve conflicts quickly.
2828

maui/samples/Gallery/SampleList/CartesianChartSamplesList.xml

Lines changed: 4 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -57,7 +57,7 @@
5757
</CardLayout>
5858
</SubCategory>
5959

60-
<Sample Title="Fast Scatter" StatusTag="New" SampleName="FastScatterChart" SearchTags="scatter, scatter chart, scatter plot, fast scatter, fast scatter chart, fast scatter plot, high performance chart"/>
60+
<Sample Title="Fast Scatter" SampleName="FastScatterChart" SearchTags="scatter, scatter chart, scatter plot, fast scatter, fast scatter chart, fast scatter plot, high performance chart"/>
6161

6262
<SubCategory Title="Spline">
6363
<CardLayout>
@@ -166,14 +166,15 @@
166166
<Sample Title="Category" SampleName="CategoryAxisChart" SearchTags="string, name, category, axis"/>
167167
<Sample Title="Numerical" SampleName="NumericalAxisChart" SearchTags="numeric, axis"/>
168168
<Sample Title="Logarithm" SampleName="LogarithmicAxisChart" SearchTags="logarithmic, axis"/>
169-
<Sample Title="Date Time" SampleName="DateTimeAxisChart" SearchTags="date, axis"/>
169+
<Sample Title="Date Time" SampleName="DateTimeAxisChart" SearchTags="date, axis"/>
170+
<Sample Title="Date time category" SampleName="DateTimeCategoryAxis" SearchTags="date, category, axis" StatusTag="New" Description="This sample demonstrates a comparison of sales revenue using a date-time category axis."/>
170171
<Sample Title="Axis crossing" SampleName="AxisCrossing" SearchTags="axis, crossing" />
171172
</Category>
172173

173174

174175
<Sample Title="Annotation" SampleName="ShapeAnnotationSample" Description="This sample showcases the shape annotation support, which includes line, horizontal line, vertical line, rectangle, and ellipse." SearchTags="annotation, chart annotation"/>
175176

176-
<Sample Title="Empty Points" StatusTag="New" SampleName="EmptyPointSupport" SearchTags="empty points, missing data points, missing values, incomplete data, data gaps, incomplete records, blank entries"/>
177+
<Sample Title="Empty Points" SampleName="EmptyPointSupport" SearchTags="empty points, missing data points, missing values, incomplete data, data gaps, incomplete records, blank entries"/>
177178

178179
<Category Title="Plot band">
179180
<Sample Title="Horizontal" SampleName="HorizontalPlotBand" Platforms="Android,iOS" SearchTags="horizontal plot, band, plotband"/>

maui/samples/Gallery/SampleList/CircularChartSamplesList.xml

Lines changed: 7 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
<?xml version="1.0" encoding="utf-8" ?>
22
<SyncfusionControls>
33
<ControlCategory Name="Data Visualization">
4-
<Control Title="Circular Charts" ControlName="SfCircularChart" Image="circularchart.png" Description="Visualize the data using pie, doughnut and radial bar series.">
4+
<Control Title="Circular Charts" ControlName="SfCircularChart" StatusTag="Updated" Image="circularchart.png" Description="Visualize the data using pie, doughnut and radial bar series.">
55
<Category Title="Type">
66

77
<SubCategory Title="Pie">
@@ -12,12 +12,17 @@
1212
<Sample SearchTags="smart datalabels" Name="SmartDataLabelsChart" Platforms="Windows,Android,iOS" SampleName="SmartDataLabels" Title="Smart data labels"/>
1313
</CardLayout>
1414
</SubCategory>
15-
<SubCategory Title="Doughnut">
15+
<SubCategory Title="Doughnut" StatusTag="New">
1616
<CardLayout>
1717
<Sample SearchTags="Doughnut" Name="DoughnutChart" SampleName="DoughnutChart" Title="Default doughnut"/>
1818
<Sample SearchTags="SemiDoughnut" Name="SemiDoughnutChart" SampleName="SemiDoughnutChart" Title="Semi-doughnut chart" Description="This sample shows how to create a semi-doughnut using start and end angles."/>
1919
<Sample SearchTags="GroupToDoughnt" Name="GroupToDoughnt" SampleName="GroupToDoughnutChart" Title="Grouping"/>
2020
<!--<Sample SearchTags="CenterElevation" Name="CenterElevation" SampleName="CenterElevation" Title="Center elevation"/>-->
21+
<Sample SearchTags="CapStyle, Curved Edge, GapRatio, Spacing" StatusTag="New"
22+
Name="DoughnutChartWithCurvedEdge"
23+
SampleName="DoughnutChartWithCurvedEdge"
24+
Title="Curved edge and spacing"
25+
Description="This sample showcases the use of CapStyle and GapRatio in a doughnut chart. CapStyle defines the rounded corners of segment edges, while GapRatio adds spacing between segments."/>
2126
</CardLayout>
2227
</SubCategory>
2328
<SubCategory Title="Radial Bar">

0 commit comments

Comments
 (0)