Skip to content

Commit 4f1b294

Browse files
authored
Merge pull request #107 from IgniteUI/dpetev/source
add igniteui-react/-dockmanager/-grids base and build process source
2 parents a26165a + 64952f6 commit 4f1b294

Some content is hidden

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

65 files changed

+9880
-8
lines changed

.azure-pipelines/api-docs.yml

Lines changed: 103 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,103 @@
1+
trigger:
2+
tags:
3+
include:
4+
- master
5+
- '*'
6+
7+
pool:
8+
vmImage: ubuntu-latest
9+
10+
parameters:
11+
- name: verbose
12+
displayName: 'Get verbose output from steps - where configurable'
13+
type: boolean
14+
default: false
15+
16+
variables:
17+
- name: npmBuildTag
18+
value: dev
19+
20+
name: $(BuildDefinitionName)_$(Build.SourceBranchName)_$(Date:yyyy-MM-dd).$(Rev:r)
21+
22+
steps:
23+
# build:
24+
- template: setup-build-test-steps.yml
25+
parameters:
26+
verbose: ${{ parameters.verbose }}
27+
- task: PowerShell@2
28+
displayName: 'Apply DeployAPI tag'
29+
name: ProduceTags
30+
inputs:
31+
targetType: 'inline'
32+
script: |
33+
$vNum = [regex]::Match("$(Build.SourceBranchName)", "(?<rMajor>\d+)\.(?<rMinor>\d+)\.(?<rBuild>\d+)(-(?<rSuffix>\S*.\d+))?")
34+
Write-Output "Matching regex: $vNum.Value"
35+
if ($vNum.Success) {
36+
$ma = $vNum.Groups['rMajor'].Value
37+
$mi = $vNum.Groups['rMinor'].Value
38+
$b = $vNum.Groups['rBuild'].Value
39+
$s =$vNum.Groups['rSuffix'].Value
40+
41+
if($ma -and $mi -and $b -and $s) {
42+
Write-Output "Not final Release, so deploy to Staging only"
43+
Write-Host "##vso[build.addbuildtag]Staging"
44+
Write-Output "Setting DeployAPI tag"
45+
Write-Host "##vso[build.addbuildtag]DeployAPI"
46+
Write-Host "##vso[task.setvariable variable=npmBuildTag;]staging"
47+
} elseif ($ma -and $mi -and $b) {
48+
Write-Output "Final Release, can deploy to Production as well"
49+
Write-Host "##vso[build.addbuildtag]Staging"
50+
Write-Host "##vso[build.addbuildtag]Production"
51+
Write-Output "Setting DeployAPI tag"
52+
Write-Host "##vso[build.addbuildtag]DeployAPI"
53+
Write-Host "##vso[task.setvariable variable=npmBuildTag;]prod"
54+
} else {
55+
Write-Host "##vso[task.setvariable variable=npmBuildTag;]dev"
56+
Write-Output "Release is not final, so no deploy of api"
57+
}
58+
} else {
59+
Write-Host "##vso[task.setvariable variable=npmBuildTag;]dev"
60+
Write-Output "Source branch is not a tag. To deploy api please create a tag. For testing purpose use `-alpha.x` or `-beta.x` suffix."
61+
}
62+
- task: Npm@1
63+
displayName: 'Build $(npmBuildTag) TypeDoc'
64+
inputs:
65+
command: 'custom'
66+
verbose: ${{ parameters.verbose }}
67+
customCommand: 'run build:docs:$(npmBuildTag)'
68+
- task: ArchiveFiles@1
69+
displayName: 'Archive $(npmBuildTag) TypeDoc'
70+
inputs:
71+
rootFolder: '$(build.sourcesDirectory)/typedocs'
72+
includeRootFolder: false
73+
archiveType: zip
74+
archiveFile: '$(Build.ArtifactStagingDirectory)/TypeDocOutput.zip'
75+
- task: Npm@1
76+
displayName: 'Build Production TypeDoc'
77+
condition: eq(variables['npmBuildTag'], 'prod')
78+
inputs:
79+
command: 'custom'
80+
verbose: ${{ parameters.verbose }}
81+
customCommand: 'run build:docs:prod'
82+
- task: ArchiveFiles@1
83+
displayName: 'Archive Production TypeDoc'
84+
condition: eq(variables['npmBuildTag'], 'prod')
85+
inputs:
86+
rootFolder: '$(build.sourcesDirectory)/typedocs'
87+
includeRootFolder: false
88+
archiveType: zip
89+
archiveFile: '$(Build.ArtifactStagingDirectory)/TypeDocOutputProduction.zip'
90+
- task: PowerShell@2
91+
displayName: 'Copy components README'
92+
inputs:
93+
targetType: inline
94+
script: Copy-Item -Path ".azure-pipelines/artifacts/versioning.ps1" -Destination "$(Build.ArtifactStagingDirectory)"
95+
- task: PublishBuildArtifacts@1
96+
displayName: 'Publish Artifacts'
97+
inputs:
98+
PathtoPublish: '$(Build.ArtifactStagingDirectory)'
99+
ArtifactName: 'TypeDocOutput'
100+
publishLocation: 'Container'
101+
102+
103+
Lines changed: 28 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,28 @@
1+
==============================================================
2+
==== Ignite UI(R) for React ====
3+
==============================================================
4+
5+
==============================================================
6+
==== Distributed under Infragistics(R) Ultimate license ====
7+
==== agreement. You have to fully read, understand, ====
8+
==== and agree with the following license prior to ====
9+
==== using this copy of the Ignite UI product: ====
10+
==== http://www.infragistics.com/legal/ultimate/license/ ====
11+
==============================================================
12+
13+
14+
Getting Started with Ignite UI for React
15+
--------------------------------------------------------------
16+
You can find getting started information related to this product here:
17+
18+
https://igniteui.com/
19+
20+
THIRD PARTY COMPONENTS, USAGE & RESTRICTIONS.
21+
22+
A. The SOFTWARE may include certain third party components ("MS-PL Components") licensed under the Microsoft Permissive License ("MS-PL"). A list of included MS-PL Components and their respective licenses shall be provided upon request.
23+
To the extent required by the MS-PL, the terms of such license will apply in lieu of the terms of this Agreement, and Infragistics, Inc. hereby represents and warrants that the license granted to such MS-PL Components will be no less broad than the license granted in this Agreement. To the extent the terms of the license applicable to MS-PL Components prohibit any of the restrictions in this agreement with respect to such MS-PL Components, such restrictions will not apply to such MS-PL Components. The MS-PL Components are provided "as is" by the third party licensors who disclaim all liabilities, damages, (even if they have been advised of the possibility of such damages), warranties, indemnities and other obligations of any kind, express or implied, with regard to the MS-PL Components. The MS-PL Components are excluded from any indemnity provided by Infragistics Inc. in this license. Nothing in the foregoing affects any performance warranty provided by Infragistics Inc. with regard to the SOFTWARE as a whole.
24+
25+
B. The SOFTWARE may also include third party components ("Other Components") licensed under, and subject to the permission of the MIT License found at https://opensource.org/licenses/MIT. The Other Components are provided "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE OTHER COMPONENTS OR THE USE OF OTHER DEALINGS IN THE OTHER COMPONENTS.
26+
27+
C. Note: To the best of our knowledge, Microsoft© doesn't forbid third-party companies from developing a product for the XPS document generation. However, according to the XML Paper Specification Patent License, we need to provide the following notice for your information:
28+
This product may incorporate intellectual property owned by Microsoft Corporation. The terms and conditions upon which Microsoft is licensing such intellectual property can be found at http://www.microsoft.com/whdc/XPS/XpsLicense.mspx.
Lines changed: 21 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,21 @@
1+
MIT License
2+
3+
Copyright (c) 2025 INFRAGISTICS
4+
5+
Permission is hereby granted, free of charge, to any person obtaining a copy
6+
of this software and associated documentation files (the "Software"), to deal
7+
in the Software without restriction, including without limitation the rights
8+
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
9+
copies of the Software, and to permit persons to whom the Software is
10+
furnished to do so, subject to the following conditions:
11+
12+
The above copyright notice and this permission notice shall be included in all
13+
copies or substantial portions of the Software.
14+
15+
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
16+
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
17+
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
18+
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
19+
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
20+
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
21+
SOFTWARE.
Lines changed: 16 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,16 @@
1+
# Ignite UI for React - from Infragistics
2+
3+
[Ignite UI for React](https://www.infragistics.com/products/ignite-ui-react) includes a wide range of easy to use React UI components that have been designed and optimized for high-performance, high-volume data scenarios. Ignite UI for React is designed to enable developers to build the most modern, high-performance HTML5 & JavaScript apps for modern desktop browsers, mobile experiences and progressive web apps (PWA’s) targeting the React framework.
4+
5+
## View Samples and Documentation
6+
7+
This package provides the following components:
8+
9+
[Avatar](https://www.infragistics.com/products/ignite-ui-react/react/components/layouts/avatar), [Badge](https://www.infragistics.com/products/ignite-ui-react/react/components/inputs/badge), [Button](https://www.infragistics.com/products/ignite-ui-react/react/components/inputs/button), [Card](https://www.infragistics.com/products/ignite-ui-react/react/components/layouts/card), [Checkbox](https://www.infragistics.com/products/ignite-ui-react/react/components/inputs/checkbox), [Chip](https://www.infragistics.com/products/ignite-ui-react/react/components/inputs/chip), [Calendar](https://www.infragistics.com/products/ignite-ui-react/react/components/scheduling/calendar), [Expansion Panel](https://www.infragistics.com/products/ignite-ui-react/react/components/layouts/expansion-panel), [Form](https://www.infragistics.com/products/ignite-ui-react/react/components/inputs/form), [Icon](https://www.infragistics.com/products/ignite-ui-react/react/components/layouts/icon), [Input](https://www.infragistics.com/products/ignite-ui-react/react/components/inputs/input), [List](https://www.infragistics.com/products/ignite-ui-react/react/components/grids/list), [Nav Bar](https://www.infragistics.com/products/ignite-ui-react/react/components/menus/navbar), [Radio](https://www.infragistics.com/products/ignite-ui-react/react/components/inputs/radio), [Ripple](https://www.infragistics.com/products/ignite-ui-react/react/components/inputs/ripple), [Switch](https://www.infragistics.com/products/ignite-ui-react/react/components/inputs/switch), [Slider](https://www.infragistics.com/products/ignite-ui-react/react/components/inputs/slider), [Snackbar](https://www.infragistics.com/products/ignite-ui-react/react/components/notifications/snackbar), [Toast](https://www.infragistics.com/products/ignite-ui-react/react/components/notifications/toast), [Tree](https://www.infragistics.com/products/ignite-ui-react/react/components/grids/tree), and many more.
10+
11+
12+
## NPM Package
13+
14+
You can include Ignite UI for React in your project using this `npm` command:
15+
16+
`npm install --save igniteui-react`
Lines changed: 20 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,20 @@
1+
# Ignite UI for React Dock Manager - from Infragistics
2+
3+
[Ignite UI React Dock Manager](https://www.infragistics.com/products/ignite-ui-react) provides means to manage the layout of your application through panes, allowing your end-users to customize it further by pinning, resizing, moving and hiding panes.
4+
5+
## View Samples and Documentation
6+
7+
[React Dock Manager Overview](https://www.infragistics.com/products/ignite-ui-react/react/components/layouts/dock-manager)
8+
9+
## NPM Package
10+
11+
You can include Ignite UI React Dock Manager in your project using this `npm` command:
12+
13+
`npm install --save igniteui-react-dockmanager`
14+
15+
## License
16+
This is a commercial product, requiring a valid paid-for license for use. This license details can by found [here](http://www.infragistics.com/legal/ultimate/license/)
17+
18+
To acquire a license for usage, please register for a trial and acquire a license at [Infragistics.com](https://www.infragistics.com).
19+
20+
© Copyright 2025 Infragistics. All Rights Reserved. The Infragistics Ultimate license & copyright applies to this distribution. For information on that license, please go to our website [here](https://www.infragistics.com/legal/license).
Lines changed: 25 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,25 @@
1+
# Ignite UI for React Grids - from Infragistics
2+
3+
[Ignite UI for React](https://www.infragistics.com/products/ignite-ui-react) includes a wide range of easy to use React UI components that have been designed and optimized for high-performance, high-volume data scenarios. Ignite UI for React is designed to enable developers to build the most modern, high-performance HTML5 & JavaScript apps for modern desktop browsers, mobile experiences and progressive web apps (PWA’s) targeting the React framework.
4+
5+
## View Samples and Documentation
6+
7+
This package provides the grid components that include:
8+
9+
- [**Grid**](https://www.infragistics.com/products/ignite-ui-react/react/components/grids/grids-header)
10+
- [**Pivot Grid**](https://www.infragistics.com/products/ignite-ui-react/react/components/grids/pivot-grid/overview)
11+
- [**Tree Grid**](https://www.infragistics.com/products/ignite-ui-react/react/components/grids/tree-grid/overview)
12+
- [**Hierarchical Grid**](https://www.infragistics.com/products/ignite-ui-react/react/components/grids/hierarchical-grid/overview)
13+
14+
## NPM Package
15+
16+
You can include Ignite UI for React Grids in your project using this `npm` command:
17+
18+
`npm install --save igniteui-react-grids`
19+
20+
## License
21+
This is a commercial product, requiring a valid paid-for license for use. This license details can by found [here](http://www.infragistics.com/legal/ultimate/license/)
22+
23+
To acquire a license for usage, please register for a trial and acquire a license at [Infragistics.com](https://www.infragistics.com).
24+
25+
© Copyright 2025 Infragistics. All Rights Reserved. The Infragistics Ultimate license & copyright applies to this distribution. For information on that license, please go to our website [here](https://www.infragistics.com/legal/license).
Lines changed: 118 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,118 @@
1+
# When run from file with params or when locally debugging:
2+
param(
3+
### Latest api docs paths as deployed on dev/staging/release
4+
[string]$docsLatestRoot,
5+
### The new type doc that will be deployed.
6+
[string] $typeDocToDeploy,
7+
### The json file that contains all versions for dev/staging/release
8+
[string] $jsonFile,
9+
### The version tag.
10+
[string]$tag,
11+
### Whether this is the latest verisons, and should overwrite the latest folder.
12+
[bool]$isLatest
13+
)
14+
15+
# When run as inline script in release pipe:
16+
# $docsLatestRoot = "$(stagingFilePath_reactAPI)";
17+
# $typeDocToDeploy = "$(System.ArtifactsDirectory)/TypeDocOutput";
18+
# $jsonFile = "react-api-docs-versions-prod.json";
19+
# $tag = "$(pMajor).$(pMinor).$(pBuild)";
20+
# $isLatest = $True;
21+
22+
Write-Output "Tag is: " $tag
23+
24+
$versionPath = $docsLatestRoot.Replace("typescript\latest", $tag + "\typescript");
25+
$docsLatestTSFolder = [System.IO.Directory]::GetParent($docsLatestRoot);
26+
$docsLatestRootFolder = [System.IO.Directory]::GetParent($docsLatestTSFolder);
27+
Write-Output "version path is:" $versionPath;
28+
29+
$filePath = $docsLatestRootFolder.FullName + "\" + $jsonFile;
30+
31+
Write-Output "json file path is:" $filePath;
32+
33+
#######Delete all other folders starting with <Major>.<Minor>########
34+
#######Since we are going to keep the latest and greatest########
35+
$lastDot = $tag.LastIndexOf('.');
36+
$filter = $tag.Substring(0,$lastDot);
37+
$foldersToDel = Get-ChildItem -Path $docsLatestRootFolder -Directory -Filter $filter*
38+
Write-Output "Folders to delete: " $foldersToDel
39+
40+
try {
41+
foreach($f in $foldersToDel){
42+
if([System.IO.Directory]::Exists($f.FullName))
43+
{ Write-Output $f.FullName " to be deleted!"
44+
Remove-Item $f.FullName -Recurse -Force -Verbose } }
45+
46+
Write-Output $f.FullName " deleted."
47+
}
48+
catch { Write-Output "Exception while deleting the old folders" }
49+
50+
Write-Output "Starting copying files from: " $typeDocToDeploy "to: " $versionPath;
51+
52+
New-Item -Path $versionPath -ItemType Directory -Force -Verbose
53+
Copy-Item -Path $typeDocToDeploy\* -Destination $versionPath -Recurse -Force -Verbose
54+
55+
Write-Output "Files copied."
56+
57+
###Add metatag inside index.html files' head section
58+
Write-Output "Add metatag inside index.html files' head section";
59+
$indexFiles = Get-ChildItem -Path $versionPath -File -Recurse -Filter index.html
60+
Write-Output "Index files to update:" + $indexFiles.Length;
61+
foreach($indexFile in $indexFiles) {
62+
Write-Output "Updating file: " + $indexFile.FullName;
63+
$newText = [System.IO.File]::ReadAllText($indexFile.FullName).Replace("</head>", " <meta name=`"robots`" content=`"noindex,nofollow`">
64+
</head>");
65+
[System.IO.File]::WriteAllText($indexFile.FullName, $newText);
66+
Write-Output "File updated: " $indexFile.FullName;
67+
}
68+
69+
############Update the typescript folders if isLatest flag is true###########
70+
Write-Output "Is latest version?: " $isLatest;
71+
if($isLatest) {
72+
Write-Output "Updating latest folder since this is latest version.";
73+
$typeScriptFolder = $versionPath;
74+
$typeScriptFolderToUpdate = $docsLatestTSFolder.FullName;
75+
Write-Output "[Latest] typeScriptFolderToUpdate is:" $typeScriptFolderToUpdate;
76+
77+
#Delete the existing content as octopus option - delete all before deployment
78+
try {
79+
Remove-Item $typeScriptFolderToUpdate\* -Recurse -Force -Verbose }
80+
catch { Write-Output "Exception while deleting the $typeScriptFolderToUpdate" }
81+
Write-Output "Copy from " $typeScriptFolder "to: " $typeScriptFolderToUpdate;
82+
New-Item -Path $typeScriptFolderToUpdate\latest -ItemType Directory -Force -Verbose
83+
Copy-Item -Path $typeScriptFolder\* -Destination $typeScriptFolderToUpdate\latest -Recurse -Force -Verbose
84+
Write-Output "Copy Done.";
85+
}
86+
87+
###########Json file content Update###########
88+
Write-Output "Update json file with new version."
89+
### If file does not exits - create it
90+
if (![System.IO.File]::Exists($filePath)) {
91+
Write-Output "File at: " $filePath "does not exist. Creating new file."
92+
New-Item -Path $filePath -ItemType File -Force -Verbose
93+
}
94+
95+
Write-Output "Check file exists: " ([System.IO.File]::Exists($filePath))
96+
Write-Output "Check dir exists:" ([System.IO.Directory]::Exists($docsLatestRootFolder));
97+
98+
99+
if([System.IO.File]::Exists($filePath) -and [System.IO.Directory]::Exists($docsLatestRootFolder)) {
100+
$folders = Get-ChildItem -Path $docsLatestRootFolder -Directory -Exclude $tagFolder,"sass","typescript" -Name | Sort-Object @{Expression = {[double]($_.Substring(0, $_.LastIndexOf('.'))) }};
101+
Write-Output "Folders found: " + $folders.Length;
102+
$textToUpdate = "";
103+
foreach($item in $folders) {
104+
$textToUpdate += '"' + $item + '"';
105+
}
106+
$textToUpdate = "[" + $textToUpdate.Replace("`"`"","`"`,`"") + "]" ;
107+
Write-Output "Text to update: " $textToUpdate;
108+
109+
$content = [System.IO.File]::ReadAllText($filePath);
110+
if (!$content) {
111+
### No Content Yet. Set initial structure.
112+
Write-Output "File has no previous content. Set initial structure."
113+
$content = '{"folders": []}';
114+
}
115+
$newContent = $content -replace "\[.*\]", $textToUpdate;
116+
Write-Output "New file content is: " $newContent;
117+
[System.IO.File]::WriteAllText($filePath,$newContent);
118+
}

.azure-pipelines/ci.yml

Lines changed: 27 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,27 @@
1+
# CI pipeline is triggered by branch policy
2+
# https://learn.microsoft.com/en-us/azure/devops/pipelines/repos/azure-repos-git?view=azure-devops&tabs=yaml#pr-triggers
3+
trigger: none
4+
5+
pool:
6+
vmImage: ubuntu-latest
7+
8+
parameters:
9+
- name: verbose
10+
displayName: 'Get verbose output from steps - where configurable'
11+
type: boolean
12+
default: false
13+
14+
steps:
15+
- template: setup-build-test-steps.yml
16+
parameters:
17+
verbose: ${{ parameters.verbose }}
18+
19+
- task: PublishTestResults@2
20+
condition: succeededOrFailed()
21+
inputs:
22+
testRunner: JUnit
23+
testResultsFiles: 'test-report/junit-report.xml'
24+
25+
- task: PublishCodeCoverageResults@2
26+
inputs:
27+
summaryFileLocation: 'coverage/*coverage.xml'

0 commit comments

Comments
 (0)