Remove with Text

Remove GetEngineeringSpcReview
Better error message
EnforceCodeStyleInBuild
NginxFileSystem
Remove Reactors and Working Directory
AppSettings
Delete self contained Thunder Tests
Back to .net8.0
api/v4/InfinityQS
ApiExplorerSettings
Wafer Counter
This commit is contained in:
2024-04-15 13:13:55 -07:00
parent 7e16ee7f98
commit 5c9f0d1aff
974 changed files with 205399 additions and 1385 deletions

View File

@ -0,0 +1,51 @@
:root {
--ifx-font-family: "Source Sans 3";
font-family: var(--ifx-font-family, sans-serif);
}
:host {
display: inline-block;
}
.container {
position: relative;
font-family: var(--ifx-font-family);
}
.container .wrapper {
display: inline-flex;
flex-direction: row;
align-items: center;
padding: 8px 16px;
gap: 8px;
background: #FFFFFF;
border: 1px solid #BFBBBB;
border-radius: 100px;
}
.container .wrapper:hover {
cursor: pointer;
border: 1px solid #575352;
}
.container .wrapper:active {
border: 1px solid #0A8276;
}
.container .wrapper .wrapper-label {
font-style: normal;
font-weight: 400;
font-size: 0.875rem;
line-height: 1.25rem;
display: flex;
align-items: center;
color: #1D1D1D;
flex: none;
order: 0;
flex-grow: 0;
}
.container .wrapper .wrapper-close-button ifx-icon {
transition: 0.3s;
width: 12px;
height: 12px;
}
.container .wrapper .wrapper-close-button.show ifx-icon {
transition: 0.3s;
transform: rotate(-180deg);
}

View File

@ -0,0 +1,16 @@
import { newE2EPage } from "@stencil/core/testing";
describe('ifx-chip', () => {
it('renders correctly with default props', async () => {
const page = await newE2EPage();
await page.setContent('<ifx-chip placeholder="Select an option"><ifx-dropdown-menu></ifx-dropdown-menu></ifx-chip>');
const chip = await page.find('ifx-chip');
const chipContainer = await chip.find('.dropdown.container');
const wrapperLabel = await chip.find('.wrapper-label');
const wrapperCloseButton = await chip.find('.wrapper-close-button');
expect(chip).toHaveClass('hydrated');
expect(chipContainer).toBeDefined();
expect(wrapperLabel).toBeDefined();
expect(wrapperCloseButton).toBeDefined();
});
});
//# sourceMappingURL=chip.e2e.js.map

View File

@ -0,0 +1 @@
{"version":3,"file":"chip.e2e.js","sourceRoot":"","sources":["../../../src/components/chips/chip.e2e.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,uBAAuB,CAAC;AAEnD,QAAQ,CAAC,UAAU,EAAE,GAAG,EAAE;EACxB,EAAE,CAAC,sCAAsC,EAAE,KAAK,IAAI,EAAE;IACpD,MAAM,IAAI,GAAG,MAAM,UAAU,EAAE,CAAC;IAChC,MAAM,IAAI,CAAC,UAAU,CAAC,6FAA6F,CAAC,CAAC;IAErH,MAAM,IAAI,GAAG,MAAM,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;IACzC,MAAM,aAAa,GAAG,MAAM,IAAI,CAAC,IAAI,CAAC,qBAAqB,CAAC,CAAC;IAC7D,MAAM,YAAY,GAAG,MAAM,IAAI,CAAC,IAAI,CAAC,gBAAgB,CAAC,CAAC;IACvD,MAAM,kBAAkB,GAAG,MAAM,IAAI,CAAC,IAAI,CAAC,uBAAuB,CAAC,CAAC;IAEpE,MAAM,CAAC,IAAI,CAAC,CAAC,WAAW,CAAC,UAAU,CAAC,CAAC;IACrC,MAAM,CAAC,aAAa,CAAC,CAAC,WAAW,EAAE,CAAC;IACpC,MAAM,CAAC,YAAY,CAAC,CAAC,WAAW,EAAE,CAAC;IACnC,MAAM,CAAC,kBAAkB,CAAC,CAAC,WAAW,EAAE,CAAC;EAC3C,CAAC,CAAC,CAAC;AAGL,CAAC,CAAC,CAAC","sourcesContent":["import { newE2EPage } from '@stencil/core/testing';\n\ndescribe('ifx-chip', () => {\n it('renders correctly with default props', async () => {\n const page = await newE2EPage();\n await page.setContent('<ifx-chip placeholder=\"Select an option\"><ifx-dropdown-menu></ifx-dropdown-menu></ifx-chip>');\n\n const chip = await page.find('ifx-chip');\n const chipContainer = await chip.find('.dropdown.container');\n const wrapperLabel = await chip.find('.wrapper-label');\n const wrapperCloseButton = await chip.find('.wrapper-close-button');\n\n expect(chip).toHaveClass('hydrated');\n expect(chipContainer).toBeDefined();\n expect(wrapperLabel).toBeDefined();\n expect(wrapperCloseButton).toBeDefined();\n });\n\n\n});\n"]}

View File

@ -0,0 +1,116 @@
import { h } from "@stencil/core";
export class Chip {
constructor() {
this.placeholder = undefined;
this.selectedValue = "";
}
handleOutsideClick(event) {
const path = event.composedPath();
if (!path.includes(this.el)) {
this.closedMenu();
}
}
handleDropdownItemValueEmission(event) {
this.selectedValue = event.detail;
this.ifxDropdownMenu.emit(event.detail);
this.toggleMenu();
}
getDropdownMenu() {
let dropdownMenuComponent = this.el.querySelector('ifx-dropdown-menu');
return dropdownMenuComponent;
}
closedMenu() {
let dropdownMenuComponent = this.getDropdownMenu();
dropdownMenuComponent.isOpen = false;
}
toggleMenu() {
let dropdownMenuComponent = this.getDropdownMenu();
dropdownMenuComponent.isOpen = !dropdownMenuComponent.isOpen;
this.toggleCloseIcon();
}
toggleCloseIcon() {
const closeIconWrapper = this.el.shadowRoot.querySelector('.wrapper-close-button');
closeIconWrapper.classList.toggle('show');
}
render() {
return (h("div", { "aria-value": this.selectedValue, "aria-label": 'chip with a dropdown menu', class: "dropdown container" }, h("div", { class: "wrapper", onClick: () => this.toggleMenu() }, h("div", { class: "wrapper-label" }, this.selectedValue ? this.selectedValue : this.placeholder), h("div", { class: "wrapper-close-button" }, h("ifx-icon", { icon: "chevrondown12" }))), h("slot", { name: "menu" })));
}
static get is() { return "ifx-chip"; }
static get encapsulation() { return "shadow"; }
static get originalStyleUrls() {
return {
"$": ["chip.scss"]
};
}
static get styleUrls() {
return {
"$": ["chip.css"]
};
}
static get properties() {
return {
"placeholder": {
"type": "string",
"mutable": false,
"complexType": {
"original": "string",
"resolved": "string",
"references": {}
},
"required": false,
"optional": false,
"docs": {
"tags": [],
"text": ""
},
"attribute": "placeholder",
"reflect": false
}
};
}
static get states() {
return {
"selectedValue": {}
};
}
static get events() {
return [{
"method": "ifxDropdownMenu",
"name": "ifxDropdownMenu",
"bubbles": true,
"cancelable": true,
"composed": true,
"docs": {
"tags": [],
"text": ""
},
"complexType": {
"original": "CustomEvent",
"resolved": "CustomEvent<any>",
"references": {
"CustomEvent": {
"location": "global",
"id": "global::CustomEvent"
}
}
}
}];
}
static get elementRef() { return "el"; }
static get listeners() {
return [{
"name": "mousedown",
"method": "handleOutsideClick",
"target": "document",
"capture": false,
"passive": true
}, {
"name": "ifxDropdownItem",
"method": "handleDropdownItemValueEmission",
"target": undefined,
"capture": false,
"passive": false
}];
}
}
//# sourceMappingURL=chip.js.map

View File

@ -0,0 +1 @@
{"version":3,"file":"chip.js","sourceRoot":"","sources":["../../../src/components/chips/chip.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,CAAC,EAAE,OAAO,EAAE,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,KAAK,EAAgB,MAAM,eAAe,CAAC;AAQhG,MAAM,OAAO,IAAI;;;yBAGkB,EAAE;;EAInC,kBAAkB,CAAC,KAAiB;IAClC,MAAM,IAAI,GAAG,KAAK,CAAC,YAAY,EAAE,CAAC;IAClC,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,EAAE,CAAC,EAAE;MAC3B,IAAI,CAAC,UAAU,EAAE,CAAC;KACnB;EACH,CAAC;EAGD,+BAA+B,CAAC,KAAkB;IAChD,IAAI,CAAC,aAAa,GAAG,KAAK,CAAC,MAAM,CAAC;IAClC,IAAI,CAAC,eAAe,CAAC,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC;IACxC,IAAI,CAAC,UAAU,EAAE,CAAA;EACnB,CAAC;EAED,eAAe;IACb,IAAI,qBAAqB,GAAG,IAAI,CAAC,EAAE,CAAC,aAAa,CAAC,mBAAmB,CAAC,CAAC;IACvE,OAAO,qBAAqB,CAAA;EAC9B,CAAC;EAED,UAAU;IACR,IAAI,qBAAqB,GAAG,IAAI,CAAC,eAAe,EAAE,CAAA;IAClD,qBAAqB,CAAC,MAAM,GAAG,KAAK,CAAC;EACvC,CAAC;EAED,UAAU;IACR,IAAI,qBAAqB,GAAG,IAAI,CAAC,eAAe,EAAE,CAAA;IAClD,qBAAqB,CAAC,MAAM,GAAG,CAAC,qBAAqB,CAAC,MAAM,CAAC;IAC7D,IAAI,CAAC,eAAe,EAAE,CAAA;EACxB,CAAC;EAED,eAAe;IACb,MAAM,gBAAgB,GAAG,IAAI,CAAC,EAAE,CAAC,UAAU,CAAC,aAAa,CAAC,uBAAuB,CAAC,CAAA;IAClF,gBAAgB,CAAC,SAAS,CAAC,MAAM,CAAC,MAAM,CAAC,CAAA;EAC3C,CAAC;EAED,MAAM;IACJ,OAAO,CACL,yBAAiB,IAAI,CAAC,aAAa,gBAAa,2BAA2B,EAAC,KAAK,EAAC,oBAAoB;MACpG,WAAK,KAAK,EAAC,SAAS,EAAC,OAAO,EAAE,GAAG,EAAE,CAAC,IAAI,CAAC,UAAU,EAAE;QACnD,WAAK,KAAK,EAAC,eAAe,IACvB,IAAI,CAAC,aAAa,CAAC,CAAC,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC,CAAC,IAAI,CAAC,WAAW,CACvD;QACN,WAAK,KAAK,EAAC,sBAAsB;UAC/B,gBAAU,IAAI,EAAC,eAAe,GAAY,CACtC,CACF;MACN,YAAM,IAAI,EAAC,MAAM,GAAG,CAChB,CACP,CAAC;EACJ,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CACF","sourcesContent":["import { Component, h, Element, Prop, Listen, State, Event, EventEmitter } from '@stencil/core';\n\n@Component({\n tag: 'ifx-chip',\n styleUrl: 'chip.scss',\n shadow: true\n})\n\nexport class Chip {\n @Element() el;\n @Prop() placeholder: string;\n @State() selectedValue: string = \"\";\n @Event() ifxDropdownMenu: EventEmitter<CustomEvent>;\n\n @Listen('mousedown', { target: 'document' })\n handleOutsideClick(event: MouseEvent) {\n const path = event.composedPath();\n if (!path.includes(this.el)) {\n this.closedMenu();\n }\n }\n\n @Listen('ifxDropdownItem')\n handleDropdownItemValueEmission(event: CustomEvent) {\n this.selectedValue = event.detail;\n this.ifxDropdownMenu.emit(event.detail);\n this.toggleMenu()\n }\n\n getDropdownMenu() { \n let dropdownMenuComponent = this.el.querySelector('ifx-dropdown-menu');\n return dropdownMenuComponent\n }\n\n closedMenu() {\n let dropdownMenuComponent = this.getDropdownMenu()\n dropdownMenuComponent.isOpen = false;\n }\n\n toggleMenu() { \n let dropdownMenuComponent = this.getDropdownMenu()\n dropdownMenuComponent.isOpen = !dropdownMenuComponent.isOpen;\n this.toggleCloseIcon()\n }\n\n toggleCloseIcon() { \n const closeIconWrapper = this.el.shadowRoot.querySelector('.wrapper-close-button')\n closeIconWrapper.classList.toggle('show')\n }\n\n render() {\n return (\n <div aria-value={this.selectedValue} aria-label='chip with a dropdown menu' class=\"dropdown container\">\n <div class=\"wrapper\" onClick={() => this.toggleMenu()}>\n <div class=\"wrapper-label\">\n {this.selectedValue ? this.selectedValue : this.placeholder}\n </div>\n <div class=\"wrapper-close-button\">\n <ifx-icon icon=\"chevrondown12\"></ifx-icon>\n </div>\n </div>\n <slot name=\"menu\" />\n </div>\n );\n }\n}"]}

View File

@ -0,0 +1,38 @@
import { action } from "@storybook/addon-actions";
export default {
title: "Components/Chip",
tags: ['autodocs'],
args: {
placeholder: 'Placeholder',
},
argTypes: {
ifxDropdownMenu: {
action: 'ifxDropdownMenu',
description: 'Custom event emitted when menu item selected',
table: {
type: {
summary: 'Framework integration',
detail: 'React: onIfxDropdownMenu={handleChange}\nVue:@ifxDropdownMenu="handleChange"\nAngular:(ifxDropdownMenu)="handleChange()"\nVanillaJs:.addEventListener("ifxDropdownMenu", (event) => {//handle change});',
},
},
}
},
};
const DefaultTemplate = (args) => {
const wrapper = document.createElement('div');
wrapper.innerHTML = `<ifx-chip placeholder="${args.placeholder}">
<ifx-dropdown-menu size="m" slot="menu">
<ifx-dropdown-item icon="" target="_self" href="">Menu Item 1</ifx-dropdown-item>
<ifx-dropdown-item icon="" target="_self" href="">Menu Item 2</ifx-dropdown-item>
<ifx-dropdown-item icon="" target="_self" href="">Menu Item 3</ifx-dropdown-item>
<ifx-dropdown-item icon="" target="_self" href="">Menu Item 4</ifx-dropdown-item>
<ifx-dropdown-item icon="" target="_self" href="">Menu Item 5</ifx-dropdown-item>
</ifx-dropdown-menu>
</ifx-chip>`;
const chip = wrapper.querySelector('ifx-chip');
const dropdownMenu = chip.querySelector('ifx-dropdown-menu');
dropdownMenu.addEventListener('ifxDropdownMenuItem', action('ifxDropdownMenuItem'));
return wrapper;
};
export const Default = DefaultTemplate.bind({});
//# sourceMappingURL=chip.stories.js.map

View File

@ -0,0 +1 @@
{"version":3,"file":"chip.stories.js","sourceRoot":"","sources":["../../../src/components/chips/chip.stories.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,0BAA0B,CAAC;AAElD,eAAe;EACb,KAAK,EAAE,iBAAiB;EACxB,IAAI,EAAE,CAAC,UAAU,CAAC;EAElB,IAAI,EAAE;IACJ,WAAW,EAAE,aAAa;GAC3B;EACD,QAAQ,EAAE;IACR,eAAe,EAAE;MACf,MAAM,EAAE,iBAAiB;MACzB,WAAW,EAAE,8CAA8C;MAC3D,KAAK,EAAE;QACL,IAAI,EAAE;UACJ,OAAO,EAAE,uBAAuB;UAChC,MAAM,EAAE,yMAAyM;SAClN;OACF;KACF;GACF;CACF,CAAC;AAGF,MAAM,eAAe,GAAG,CAAC,IAAI,EAAE,EAAE;EAC/B,MAAM,OAAO,GAAG,QAAQ,CAAC,aAAa,CAAC,KAAK,CAAC,CAAC;EAC9C,OAAO,CAAC,SAAS,GAAG,0BAA0B,IAAI,CAAC,WAAW;;;;;;;;YAQpD,CAAC;EAEX,MAAM,IAAI,GAAG,OAAO,CAAC,aAAa,CAAC,UAAU,CAAgB,CAAC;EAC9D,MAAM,YAAY,GAAG,IAAI,CAAC,aAAa,CAAC,mBAAmB,CAAC,CAAC;EAE7D,YAAY,CAAC,gBAAgB,CAAC,qBAAqB,EAAE,MAAM,CAAC,qBAAqB,CAAC,CAAC,CAAC;EACpF,OAAO,OAAO,CAAC;AACjB,CAAC,CAAA;AAED,MAAM,CAAC,MAAM,OAAO,GAAG,eAAe,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC","sourcesContent":["import { action } from '@storybook/addon-actions';\n\nexport default {\n title: \"Components/Chip\",\n tags: ['autodocs'],\n\n args: {\n placeholder: 'Placeholder',\n },\n argTypes: {\n ifxDropdownMenu: {\n action: 'ifxDropdownMenu',\n description: 'Custom event emitted when menu item selected',\n table: {\n type: {\n summary: 'Framework integration',\n detail: 'React: onIfxDropdownMenu={handleChange}\\nVue:@ifxDropdownMenu=\"handleChange\"\\nAngular:(ifxDropdownMenu)=\"handleChange()\"\\nVanillaJs:.addEventListener(\"ifxDropdownMenu\", (event) => {//handle change});',\n },\n },\n }\n },\n};\n\n\nconst DefaultTemplate = (args) => {\n const wrapper = document.createElement('div');\n wrapper.innerHTML = `<ifx-chip placeholder=\"${args.placeholder}\">\n <ifx-dropdown-menu size=\"m\" slot=\"menu\">\n <ifx-dropdown-item icon=\"\" target=\"_self\" href=\"\">Menu Item 1</ifx-dropdown-item>\n <ifx-dropdown-item icon=\"\" target=\"_self\" href=\"\">Menu Item 2</ifx-dropdown-item>\n <ifx-dropdown-item icon=\"\" target=\"_self\" href=\"\">Menu Item 3</ifx-dropdown-item>\n <ifx-dropdown-item icon=\"\" target=\"_self\" href=\"\">Menu Item 4</ifx-dropdown-item>\n <ifx-dropdown-item icon=\"\" target=\"_self\" href=\"\">Menu Item 5</ifx-dropdown-item>\n</ifx-dropdown-menu>\n</ifx-chip>`;\n\n const chip = wrapper.querySelector('ifx-chip') as HTMLElement;\n const dropdownMenu = chip.querySelector('ifx-dropdown-menu');\n\n dropdownMenu.addEventListener('ifxDropdownMenuItem', action('ifxDropdownMenuItem'));\n return wrapper;\n}\n\nexport const Default = DefaultTemplate.bind({});\n\n\n"]}