Skip to content

Commit f6e7abb

Browse files
committed
chore: set up project structure and add core files
- Add configuration files (.editorconfig, .gitignore, eslint, tsconfig, etc.) - Add initial UI5 app structure (controllers, views, models, assets) - Update README and REUSE.toml - Remove unused Apache-2.0 license - Add deployment workflow
1 parent 2ae42ca commit f6e7abb

36 files changed

+19830
-40
lines changed

.editorconfig

Lines changed: 23 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,23 @@
1+
# EditorConfig helps developers define and maintain consistent
2+
# coding styles between different editors and IDEs
3+
# editorconfig.org
4+
5+
root = true
6+
7+
[*]
8+
# We recommend you to keep these unchanged
9+
end_of_line = lf
10+
charset = utf-8
11+
trim_trailing_whitespace = true
12+
insert_final_newline = true
13+
14+
# Change these settings to your own preference
15+
indent_style = tab
16+
indent_size = 2
17+
18+
[*.{yaml,yml}]
19+
indent_style = space
20+
21+
[*.md]
22+
indent_style = unset
23+
trim_trailing_whitespace = false

.github/workflows/deploy.yaml

Lines changed: 57 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,57 @@
1+
name: Deploy TypeScript Application to Pages
2+
3+
on:
4+
push:
5+
branches:
6+
- main
7+
workflow_dispatch:
8+
9+
# Sets permissions of the GITHUB_TOKEN to allow deployment to GitHub Pages
10+
permissions:
11+
contents: read
12+
pages: write
13+
id-token: write
14+
15+
# Allow only one concurrent deployment, skipping runs queued between the run in-progress and latest queued.
16+
# However, do NOT cancel in-progress runs as we want to allow these production deployments to complete.
17+
concurrency:
18+
group: "pages"
19+
cancel-in-progress: false
20+
21+
jobs:
22+
build:
23+
runs-on: ubuntu-latest
24+
steps:
25+
- name: Checkout
26+
uses: actions/checkout@v4
27+
28+
- name: Setup Node.js
29+
uses: actions/setup-node@v4
30+
with:
31+
node-version: 22
32+
cache: "npm"
33+
34+
- name: Setup Pages
35+
uses: actions/configure-pages@v5
36+
37+
- name: Install dependencies
38+
run: npm ci
39+
40+
- name: Build
41+
run: npm run build:opt
42+
43+
- name: Upload artifact
44+
uses: actions/upload-pages-artifact@v3
45+
with:
46+
path: ./dist
47+
48+
deploy:
49+
environment:
50+
name: github-pages
51+
url: ${{ steps.deployment.outputs.page_url }}
52+
runs-on: ubuntu-latest
53+
needs: build
54+
steps:
55+
- name: Deploy to GitHub Pages
56+
id: deployment
57+
uses: actions/deploy-pages@v4

.gitignore

Lines changed: 20 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,20 @@
1+
# build results
2+
dist
3+
coverage
4+
report
5+
.nyc_output
6+
7+
# Logs
8+
logs
9+
*.log
10+
npm-debug.log*
11+
yarn-debug.log*
12+
yarn-error.log*
13+
14+
# Dependency directories
15+
node_modules/
16+
17+
.DS_Store
18+
.env
19+
20+
.ui5-tooling-modules

README.md

Lines changed: 42 additions & 22 deletions
Original file line numberDiff line numberDiff line change
@@ -1,41 +1,61 @@
1-
# SAP-samples/repository-template
2-
This default template for SAP Samples repositories includes files for README, LICENSE, and REUSE.toml. All repositories on github.com/SAP-samples will be created based on this template.
1+
# UXC Seamless Integration
32

4-
# Containing Files
3+
[![REUSE status](https://api.reuse.software/badge/github.com/SAP-samples/uxc-integration)](https://api.reuse.software/info/github.com/SAP-samples/uxc-integration)
54

6-
1. The LICENSE file:
7-
In most cases, the license for SAP sample projects is `Apache 2.0`.
5+
## Description
86

9-
2. The REUSE.toml file:
10-
The [Reuse Tool](https://reuse.software/) must be used for your samples project. You can find the REUSE.toml in the project initial. Please replace the parts inside the single angle quotation marks < > by the specific information for your repository.
7+
This sample project demonstrates the seamless integration of [UI5 Web Components](https://github.com/SAP/ui5-webcomponents) into the [OpenUI5](https://github.com/SAP/openui5) framework. The goal is to showcase how modern UI5 Web Components can be used alongside classic OpenUI5 controls within a single application, enabling developers to take advantage of the latest UI technologies without sacrificing compatibility or productivity.
118

12-
3. The README.md file (this file):
13-
Please edit this file as it is the primary description file for your project. You can find some placeholder titles for sections below.
9+
By using this sample, you can explore best practices for embedding UI5 Web Components in OpenUI5 views, handling interoperability, and leveraging the strengths of both frameworks. This integration pattern helps modernize SAP Fiori applications and extend their capabilities with reusable, standards-based UI elements.
1410

15-
# [Title]
16-
<!-- Please include descriptive title -->
11+
## Requirements
1712

18-
<!--- Register repository https://api.reuse.software/register, then add REUSE badge:
19-
[![REUSE status](https://api.reuse.software/badge/github.com/SAP-samples/REPO-NAME)](https://api.reuse.software/info/github.com/SAP-samples/REPO-NAME)
20-
-->
13+
Either [npm](https://www.npmjs.com/), [yarn](https://yarnpkg.com/), or [pnpm](https://pnpm.io/) for dependency management.
2114

22-
## Description
23-
<!-- Please include SEO-friendly description -->
15+
## Download and Installation
2416

25-
## Requirements
17+
1. Clone the project:
2618

27-
## Download and Installation
19+
```sh
20+
git clone https://github.com/SAP-samples/uxc-integration.git
21+
cd uxc-integration
22+
```
23+
24+
(or download from https://github.com/SAP-samples/uxc-integration/archive/main.zip)
25+
26+
2. Use npm (or any other package manager) to install the dependencies:
27+
28+
```sh
29+
npm install
30+
```
31+
32+
## Run the App
33+
34+
Execute the following command to run the app locally for development in watch mode (the browser reloads the app automatically when there are changes in the source code):
35+
36+
```sh
37+
npm start
38+
```
39+
40+
As shown in the terminal after executing this command, the app is then running on http://localhost:8080/index.html.<br>
41+
A browser window with this URL should automatically open.
42+
43+
## Debug the App
44+
45+
In the browser, you can directly debug the original TypeScript code, which is supplied via sourcemaps (need to be enabled in the browser's developer console if it does not work straight away).<br>
46+
If the browser doesn't automatically jump to the TypeScript code when setting breakpoints, use e.g. `Ctrl`/`Cmd` + `P` in Chrome to open the `*.ts` file you want to debug.
2847

2948
## Known Issues
30-
<!-- You may simply state "No known issues. -->
49+
50+
No known issues at this time.
3151

3252
## How to obtain support
33-
[Create an issue](https://github.com/SAP-samples/<repository-name>/issues) in this repository if you find a bug or have questions about the content.
34-
53+
[Create an issue](https://github.com/SAP-samples/uxc-integration/issues) in this repository if you find a bug or have questions about the content.
54+
3555
For additional support, [ask a question in SAP Community](https://answers.sap.com/questions/ask.html).
3656

3757
## Contributing
3858
If you wish to contribute code, offer fixes or improvements, please send a pull request. Due to legal reasons, contributors will be asked to accept a DCO when they create the first pull request to this project. This happens in an automated fashion during the submission process. SAP uses [the standard DCO text of the Linux Foundation](https://developercertificate.org/).
3959

4060
## License
41-
Copyright (c) 2024 SAP SE or an SAP affiliate company. All rights reserved. This project is licensed under the Apache Software License, version 2.0 except as noted otherwise in the [LICENSE](LICENSE) file.
61+
Copyright (c) 2025 SAP SE or an SAP affiliate company. All rights reserved. This project is licensed under the Apache Software License, version 2.0 except as noted otherwise in the [LICENSE](LICENSE) file.

REUSE.toml

Lines changed: 6 additions & 18 deletions
Original file line numberDiff line numberDiff line change
@@ -1,23 +1,11 @@
11
version = 1
2-
SPDX-PackageName = "<YOUR-REPO-NAME>"
3-
SPDX-PackageSupplier = "<YOUR-CONTACT (MAIL ADDRESS ETC.)>"
4-
SPDX-PackageDownloadLocation = "<https://github.com/sap-samples/YOUR-REPO-NAME>"
2+
SPDX-PackageName = "uxc-integration"
3+
SPDX-PackageSupplier = "[email protected]"
4+
SPDX-PackageDownloadLocation = "https://github.com/sap-samples/uxc-integration"
55
SPDX-PackageComment = "The code in this project may include calls to APIs (\"API Calls\") of\n SAP or third-party products or services developed outside of this project\n (\"External Products\").\n \"APIs\" means application programming interfaces, as well as their respective\n specifications and implementing code that allows software to communicate with\n other software.\n API Calls to External Products are not licensed under the open source license\n that governs this project. The use of such API Calls and related External\n Products are subject to applicable additional agreements with the relevant\n provider of the External Products. In no event shall the open source license\n that governs this project grant any rights in or to any External Products,or\n alter, expand or supersede any terms of the applicable additional agreements.\n If you have a valid license agreement with SAP for the use of a particular SAP\n External Product, then you may make use of any API Calls included in this\n project's code for that SAP External Product, subject to the terms of such\n license agreement. If you do not have a valid license agreement for the use of\n a particular SAP External Product, then you may only make use of any API Calls\n in this project for that SAP External Product for your internal, non-productive\n and non-commercial test and evaluation of such API Calls. Nothing herein grants\n you any rights to use or access any SAP External Product, or provide any third\n parties the right to use of access any SAP External Product, through API Calls."
66

77
[[annotations]]
8-
path = "<YOUR-FILE-OR-FOLDER-LIST>"
8+
path = "**"
99
precedence = "aggregate"
10-
SPDX-FileCopyrightText = "<YEARS-RELEVANT-FOR-YOUR-PROJECT> SAP SE or an SAP affiliate company and <YOUR-PROJECT-NAME> contributors"
11-
SPDX-License-Identifier = "Apache-2.0"
12-
13-
[[annotations]]
14-
path = "<THIRD-PARTY-FILE-OR-FOLDER-LIST>"
15-
precedence = "aggregate"
16-
SPDX-FileCopyrightText = "<COPYRIGHT-OF-THIRD-PARTY-CODE>"
17-
SPDX-License-Identifier = "<LICENSE-OF-THIRD-PARTY-CODE>"
18-
19-
[[annotations]]
20-
path = "<ANOTHER-THIRD-PARTY-FILE-OR-FOLDER-LIST>"
21-
precedence = "aggregate"
22-
SPDX-FileCopyrightText = "<COPYRIGHT-OF-ANOTHER-THIRD-PARTY-CODE>"
23-
SPDX-License-Identifier = "<LICENSE-OF-ANOTHER- THIRD-PARTY-CODE>"
10+
SPDX-FileCopyrightText = "2025 SAP SE or an SAP affiliate company and uxc-integration contributors"
11+
SPDX-License-Identifier = "Apache-2.0"

eslint.config.mjs

Lines changed: 28 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,28 @@
1+
import eslint from "@eslint/js";
2+
import globals from "globals";
3+
import tseslint from "typescript-eslint";
4+
5+
export default tseslint.config(
6+
eslint.configs.recommended,
7+
...tseslint.configs.recommended,
8+
...tseslint.configs.recommendedTypeChecked,
9+
{
10+
languageOptions: {
11+
globals: {
12+
...globals.browser,
13+
sap: "readonly"
14+
},
15+
ecmaVersion: 2023,
16+
parserOptions: {
17+
project: [
18+
"./tsconfig.json",
19+
"./webapp/test/e2e/tsconfig.json"
20+
],
21+
tsconfigRootDir: import.meta.dirname
22+
}
23+
}
24+
},
25+
{
26+
ignores: ["eslint.config.mjs", "webapp/test/e2e/**"]
27+
}
28+
);

0 commit comments

Comments
 (0)