Skip to content

Commit

Permalink
Merge pull request #551 from IgniteUI/rivanova/button-group-samples
Browse files Browse the repository at this point in the history
Add Button Group Samples
  • Loading branch information
ChronosSF authored Nov 2, 2023
2 parents fa22066 + 6504e9e commit 3fc5c66
Show file tree
Hide file tree
Showing 46 changed files with 1,672 additions and 0 deletions.
8 changes: 8 additions & 0 deletions browser/public/index.html
Original file line number Diff line number Diff line change
Expand Up @@ -600,6 +600,14 @@
<a class="nav-link" href="#" data-nav="/samples/inputs/button/size"><span>Size</span></a>
<a class="nav-link" href="#" data-nav="/samples/inputs/button/styling"><span>Styling</span></a>
</div>
<label id="nav-button-group" class="nav-component">Button Group</label>
<div id="nav-button-group-list" class="nav-list" state="collapsed">
<a class="nav-link" href="#" data-nav="/samples/inputs/button-group/alignment"><span>Alignment</span></a>
<a class="nav-link" href="#" data-nav="/samples/inputs/button-group/overview"><span>Overview</span></a>
<a class="nav-link" href="#" data-nav="/samples/inputs/button-group/selection"><span>Selection</span></a>
<a class="nav-link" href="#" data-nav="/samples/inputs/button-group/size"><span>Size</span></a>
<a class="nav-link" href="#" data-nav="/samples/inputs/button-group/styling"><span>Styling</span></a>
</div>
<label id="nav-checkbox" class="nav-component">Checkbox</label>
<div id="nav-checkbox-list" class="nav-list" state="collapsed">
<a class="nav-link" href="#" data-nav="/samples/inputs/checkbox/checking"><span>Checking</span></a>
Expand Down
11 changes: 11 additions & 0 deletions samples/inputs/button-group/alignment/.prettierrc
Original file line number Diff line number Diff line change
@@ -0,0 +1,11 @@
{
"printWidth": 250,
"tabWidth": 4,
"useTabs": false,
"semi": true,
"singleQuote": false,
"trailingComma": "none",
"bracketSpacing": true,
"jsxBracketSameLine": false,
"fluid": false
}
51 changes: 51 additions & 0 deletions samples/inputs/button-group/alignment/ReadMe.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,51 @@
<!-- NOTE: do not change this file because it's auto re-generated from template: -->
<!-- https://github.com/IgniteUI/igniteui-wc-examples/tree/vnext/templates/browser/sample/ReadMe.md -->

This folder contains implementation of Web Components application with example of Alignment feature using [Button Group](https://infragistics.com/webcomponentssite/components/general-getting-started.html) component.


<html lang="en" xmlns="http://www.w3.org/1999/xhtml">
<body>
<a target="_blank" href="https://infragistics.com/webcomponentssite/components/general-getting-started.html" rel="noopener noreferrer">
<img height="40px" style="border-radius: 0rem" alt="View Docs" src="https://github.com/IgniteUI/igniteui-blazor-examples/raw/vnext/templates/sample/images/button-docs.png"/>
</a>
<a target="_blank" href="./src/index.ts" rel="noopener noreferrer">
<img height="40px" style="border-radius: 0rem; max-width: 100%;" alt="View Code" src="https://github.com/IgniteUI/igniteui-blazor-examples/raw/vnext/templates/sample/images/button-code.png"/>
</a>
<a target="_blank" href="https://www.infragistics.com/webcomponents-demos/samples/inputs/button-group/alignment" rel="noopener noreferrer">
<img height="40px" style="border-radius: 0rem; max-width: 100%;" alt="Run Sample" src="https://github.com/IgniteUI/igniteui-blazor-examples/raw/vnext/templates/sample/images/button-run.png"/>
</a>
<a target="_blank" href="https://codesandbox.io/s/github/IgniteUI/igniteui-wc-examples/tree/master/samples/inputs/button-group/alignment?fontsize=14&hidenavigation=1&theme=dark&view=preview&file=/src/{SampleFile}" rel="noopener noreferrer">
<img height="40px" style="border-radius: 0rem; max-width: 100%;" alt="Run Sample" src="https://github.com/IgniteUI/igniteui-blazor-examples/raw/vnext/templates/sample/images/button-sandbox.png"/>
</a>
</body>
</html>

## Instructions

To set up this project locally, execute these commands:

```
git clone https://github.com/IgniteUI/igniteui-wc-examples.git
cd ./igniteui-wc-examples
cd ./samples/inputs/button-group/alignment
```

open above folder in VS Code or type:
```
code .
```

In terminal window, run:

```
npm install
npm run start
```

Then open http://localhost:4200/ in your browser


## Learn More

To learn more about **Ignite UI for Web Components**, check out the [Web Components documentation](https://infragistics.com/webcomponentssite/components/general-getting-started.html).
41 changes: 41 additions & 0 deletions samples/inputs/button-group/alignment/index.html
Original file line number Diff line number Diff line change
@@ -0,0 +1,41 @@
<!DOCTYPE html>
<html>
<head>
<title>Button Group Alignment</title>
<meta charset="UTF-8" />

<link rel="shortcut icon" href="https://static.infragistics.com/xplatform/images/browsers/wc.png" >
<link rel="stylesheet" href="https://fonts.googleapis.com/icon?family=Material+Icons" />
<link rel="stylesheet" href="https://fonts.googleapis.com/css?family=Kanit&display=swap" />
<link rel="stylesheet" href="https://fonts.googleapis.com/css?family=Titillium Web" />
<link rel="stylesheet" href="https://static.infragistics.com/xplatform/css/samples/shared.v8.css" type="text/css" />
</head>

<body>
<div id="root">
<div class="container sample">
<igc-button-group alignment="vertical">
<igc-toggle-button value="sofia">
<igc-ripple></igc-ripple>
Sofia
</igc-toggle-button>
<igc-toggle-button value="london">
<igc-ripple></igc-ripple>
London
</igc-toggle-button>
<igc-toggle-button value="new york" selected>
<igc-ripple></igc-ripple>
New York
</igc-toggle-button>
<igc-toggle-button value="tokyo">
<igc-ripple></igc-ripple>
Tokyo
</igc-toggle-button>
</igc-button-group>
</div>
</div>
<!-- This script is needed only for parcel and it will be excluded for webpack -->
<% if (false) { %><script src="src/index.ts"></script><% } %>

</body>
</html>
59 changes: 59 additions & 0 deletions samples/inputs/button-group/alignment/package.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,59 @@
{
"name": "wc-button-group-alignment",
"version": "1.0.0",
"description": "This project provides example of button group alignment using IgniteUI for Web Components",
"main": "src/index.ts",
"scripts": {
"build": "npm run build:prod",
"build:dev": "webpack --mode development --config ./webpack.config.js --progress --color --display-error-details",
"build:prod": "webpack --env.NODE_ENV=production --mode production --config ./webpack.config.js --progress --color --display-error-details --bail",
"serve:dev": "node --max-old-space-size=8192 node_modules/webpack-dev-server/bin/webpack-dev-server.js --mode development --config ./webpack.config.js --hot --progress --open",
"serve:prod": "webpack-dev-server --env.NODE_ENV=production --mode production --config ./webpack.config.js --port 3000 --host 0.0.0.0 --hot --progress --open --content-base dist/",
"start": "npm run serve:dev",
"build:legacy": "npm run build:prod:legacy",
"build:dev:legacy": "webpack --env.legacy=true --mode development --config ./webpack.config.js --progress --color --display-error-details",
"build:prod:legacy": "webpack --env.NODE_ENV=production --env.legacy=true --mode production --config ./webpack.config.js --progress --color --display-error-details --bail",
"serve:dev:legacy": "node --max-old-space-size=8192 node_modules/webpack-dev-server/bin/webpack-dev-server.js --env.legacy=true --mode development --config ./webpack.config.js --hot --progress --open",
"serve:prod:legacy": "webpack-dev-server --env.NODE_ENV=production --env.legacy=true --mode production --config ./webpack.config.js --port 3000 --host 0.0.0.0 --hot --progress --open --content-base dist/",
"start:legacy": "npm run serve:dev:legacy"
},
"author": "Infragistics",
"dependencies": {
"@webcomponents/custom-elements": "^1.4.1",
"@webcomponents/template": "^1.4.2",
"babel-runtime": "^6.26.0",
"core-js": "^3.6.5",
"igniteui-webcomponents": "4.5.0",
"lit": "^2.0.2",
"lit-html": "^2.2.0",
"tslib": "^2.0.0"
},
"devDependencies": {
"@babel/cli": "^7.8.3",
"@babel/core": "^7.8.3",
"@babel/plugin-proposal-class-properties": "^7.8.3",
"@babel/plugin-transform-runtime": "^7.10.0",
"@babel/preset-env": "^7.8.3",
"@babel/preset-typescript": "^7.8.3",
"@types/source-map": "^0.5.7",
"babel-loader": "^8.1.0",
"babel-plugin-transform-custom-element-classes": "^0.1.0",
"css-loader": "^1.0.0",
"csv-loader": "^3.0.2",
"file-loader": "^4.2.0",
"fork-ts-checker-webpack-plugin": "^4.1.5",
"html-webpack-plugin": "^4.3.0",
"parcel-bundler": "^1.6.1",
"source-map": "^0.7.3",
"style-loader": "^0.22.1",
"tsconfig-paths-webpack-plugin": "^4.0.0",
"typescript": "^4.4.4",
"webpack": "^5.74.0",
"webpack-cli": "^4.10.0",
"webpack-dev-server": "^4.11.1",
"worker-loader": "^3.0.8",
"xml-loader": "^1.2.1"
},
"license": "",
"homepage": "."
}
7 changes: 7 additions & 0 deletions samples/inputs/button-group/alignment/sandbox.config.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,7 @@
{
"infiniteLoopProtection": false,
"hardReloadOnChange": false,
"view": "browser",
"template": "parcel"
}

10 changes: 10 additions & 0 deletions samples/inputs/button-group/alignment/src/index.css
Original file line number Diff line number Diff line change
@@ -0,0 +1,10 @@
/* shared styles are loaded from: */
/* https://static.infragistics.com/xplatform/css/samples */

igc-button-group {
width: 200px;
}

igc-ripple {
--color: gray;
}
11 changes: 11 additions & 0 deletions samples/inputs/button-group/alignment/src/index.ts
Original file line number Diff line number Diff line change
@@ -0,0 +1,11 @@
import { defineComponents, IgcButtonGroupComponent, IgcRippleComponent } from 'igniteui-webcomponents';
import 'igniteui-webcomponents/themes/light/material.css';
import './index.css';

defineComponents(IgcButtonGroupComponent, IgcRippleComponent);
export class ButtonGroupAlignment {
constructor() {
}
}

new ButtonGroupAlignment();
20 changes: 20 additions & 0 deletions samples/inputs/button-group/alignment/tsconfig.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,20 @@
{
"compilerOptions": {
"noImplicitReturns": true,
"esModuleInterop": true,
"noImplicitAny": true,
"declarationDir": "dist/types",
"moduleResolution": "node",
"declaration": true,
"target": "es2015",
"module": "es2015",
"strict": true
},
"include": [
"src/**/*"
],
"exclude": [
"node_modules",
"dist"
]
}
105 changes: 105 additions & 0 deletions samples/inputs/button-group/alignment/webpack.config.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,105 @@
const ForkTsCheckerWebpackPlugin = require('fork-ts-checker-webpack-plugin');
const HtmlWebpackPlugin = require('html-webpack-plugin');
const TsconfigPathsPlugin = require('tsconfig-paths-webpack-plugin');
const path = require('path');
const webpack = require('webpack');

module.exports = env => {
const nodeEnv = process.env.NODE_ENV || 'development';
const isProd = nodeEnv === 'production';
const isLegacy = !!process.env.legacy && !(process.env.legacy == "false");
console.log(">> webpack nodeEnv=" + nodeEnv);
console.log(">> webpack isProd=" + isProd);
console.log(">> webpack isLegacy=" + isLegacy);
const presets = [
["@babel/preset-env", {
"useBuiltIns": "usage",
"corejs": 3,
"targets": {
"browsers": isLegacy ? ["defaults"] : [
"last 2 Chrome versions",
"last 2 Safari versions",
"last 2 iOS versions",
"last 2 Firefox versions",
"last 2 Edge versions"]
}
}],
"@babel/preset-typescript"
];

return {
entry: isLegacy ? [
path.resolve(__dirname, 'node_modules/@webcomponents/custom-elements'),
path.resolve(__dirname, 'node_modules/@webcomponents/template'),
path.resolve(__dirname, 'src')
] : path.resolve(__dirname, 'src'),
devtool: isProd ? false : 'source-map',
output: {
filename: isProd ? '[fullhash].bundle.js' : '[fullhash].bundle.js',
globalObject: 'this',
path: path.resolve(__dirname, 'dist'),
},

resolve: {
mainFields: ['esm2015', 'module', 'main'],
extensions: ['.ts', '.js', '.json'],
plugins: [new TsconfigPathsPlugin({
configFile: './tsconfig.json',
extensions: ['.ts', '.js'],
mainFields: ['esm2015', 'module', 'main']
})]
},

module: {
rules: [
{ test: /\.(png|svg|jpg|gif)$/, use: ['file-loader'] },
{ test: /\.(csv|tsv)$/, use: ['csv-loader'] },
{ test: /\.xml$/, use: ['xml-loader'] },
{ test: /\.css$/, sideEffects: true, use: ['style-loader', 'css-loader'] },
{
test: /worker\.(ts|js)$/,
use: [
{ loader: 'worker-loader' },
{
loader: 'babel-loader', options: {
"compact": isProd ? true : false,
"presets": presets,
"plugins": [
"@babel/plugin-proposal-class-properties",
"@babel/plugin-transform-runtime"
]
}
}
]
},
{
test: /\.(ts|js)$/, loader: 'babel-loader',
options: {
"compact": isProd ? true : false,
"presets": presets,
"plugins": [
"@babel/plugin-proposal-class-properties",
"@babel/plugin-transform-runtime"
]
},
exclude:
function (modulePath) {
return /node_modules/.test(modulePath) &&
!/igniteui-webcomponents/.test(modulePath) &&
!/lit-html/.test(modulePath);
}
}],
},

plugins: [
new webpack.DefinePlugin({
'process.env.NODE_ENV': JSON.stringify(nodeEnv)
}),
new HtmlWebpackPlugin({
title: 'for-cs',
template: 'index.html'
}),
new ForkTsCheckerWebpackPlugin()
]
};
};
11 changes: 11 additions & 0 deletions samples/inputs/button-group/overview/.prettierrc
Original file line number Diff line number Diff line change
@@ -0,0 +1,11 @@
{
"printWidth": 250,
"tabWidth": 4,
"useTabs": false,
"semi": true,
"singleQuote": false,
"trailingComma": "none",
"bracketSpacing": true,
"jsxBracketSameLine": false,
"fluid": false
}
Loading

0 comments on commit 3fc5c66

Please sign in to comment.