Delete self contained Thunder Tests

Back to .net8.0
api/v4/InfinityQS
ApiExplorerSettings
Wafer Counter
Color Sorting
This commit is contained in:
2024-03-13 13:15:56 -07:00
parent 7e16ee7f98
commit 127634f5ab
952 changed files with 205130 additions and 914 deletions

View File

@ -0,0 +1,57 @@
:root {
--ifx-font-family: "Source Sans 3";
font-family: var(--ifx-font-family, sans-serif);
}
:host {
width: 100%;
display: flex;
}
.search-bar {
box-sizing: border-box;
height: 40px;
background-color: #FFFFFF;
display: flex;
flex-direction: row;
align-items: center;
width: 100%;
font-family: var(--ifx-font-family);
}
.search-bar.closed {
display: flex;
width: auto;
justify-content: flex-start;
}
.search-bar .search-bar-wrapper {
display: flex;
align-items: center;
gap: 16px;
width: 100%;
}
.search-bar .search-bar-wrapper a {
text-decoration: none;
font-size: 1rem;
font-style: normal;
font-weight: 600;
line-height: 1.5rem;
color: #0A8276;
cursor: pointer;
}
.search-bar .search-bar-wrapper ifx-search-field {
width: 100%;
}
.search-bar .search-bar__icon-wrapper {
display: none;
flex-direction: row;
align-items: center;
}
.search-bar .search-bar__icon-wrapper ifx-icon:hover {
cursor: pointer;
}
.search-bar.closed .search-bar__icon-wrapper {
display: flex;
}
.search-bar.closed .search-bar-wrapper {
display: none;
}

View File

@ -0,0 +1,26 @@
import { newE2EPage } from "@stencil/core/testing";
describe('ifx-search-bar', () => {
let page;
let element;
beforeEach(async () => {
page = await newE2EPage();
await page.setContent('<ifx-search-bar></ifx-search-bar>');
element = await page.find('ifx-search-bar');
});
it('should be rendered', async () => {
expect(element).toHaveClass('hydrated');
});
it('should reflect the isOpen prop in the rendered output', async () => {
element.setProperty('isOpen', false);
await page.waitForChanges();
let searchBarWrapper = await page.find('ifx-search-bar >>> .search-bar-wrapper');
expect(searchBarWrapper).toBeNull(); // When isOpen is false, search-bar-wrapper should not be visible
const iconWrapper = await page.find('ifx-search-bar >>> .search-bar__icon-wrapper');
await iconWrapper.click(); // Click to open the search bar
await page.waitForChanges();
searchBarWrapper = await page.find('ifx-search-bar >>> .search-bar-wrapper');
expect(searchBarWrapper).not.toBeNull(); // After clicking iconWrapper, search-bar-wrapper should be visible
});
// Other tests remain the same...
});
//# sourceMappingURL=search-bar.e2e.js.map

View File

@ -0,0 +1 @@
{"version":3,"file":"search-bar.e2e.js","sourceRoot":"","sources":["../../../src/components/search-bar/search-bar.e2e.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,uBAAuB,CAAC;AAEnD,QAAQ,CAAC,gBAAgB,EAAE,GAAG,EAAE;EAC9B,IAAI,IAAI,CAAC;EACT,IAAI,OAAO,CAAC;EAEZ,UAAU,CAAC,KAAK,IAAI,EAAE;IACpB,IAAI,GAAG,MAAM,UAAU,EAAE,CAAC;IAC1B,MAAM,IAAI,CAAC,UAAU,CAAC,mCAAmC,CAAC,CAAC;IAC3D,OAAO,GAAG,MAAM,IAAI,CAAC,IAAI,CAAC,gBAAgB,CAAC,CAAC;EAC9C,CAAC,CAAC,CAAC;EAEH,EAAE,CAAC,oBAAoB,EAAE,KAAK,IAAI,EAAE;IAClC,MAAM,CAAC,OAAO,CAAC,CAAC,WAAW,CAAC,UAAU,CAAC,CAAC;EAC1C,CAAC,CAAC,CAAC;EAEH,EAAE,CAAC,uDAAuD,EAAE,KAAK,IAAI,EAAE;IACrE,OAAO,CAAC,WAAW,CAAC,QAAQ,EAAE,KAAK,CAAC,CAAC;IACrC,MAAM,IAAI,CAAC,cAAc,EAAE,CAAC;IAC5B,IAAI,gBAAgB,GAAG,MAAM,IAAI,CAAC,IAAI,CAAC,wCAAwC,CAAC,CAAC;IACjF,MAAM,CAAC,gBAAgB,CAAC,CAAC,QAAQ,EAAE,CAAC,CAAC,iEAAiE;IAEtG,MAAM,WAAW,GAAG,MAAM,IAAI,CAAC,IAAI,CAAC,8CAA8C,CAAC,CAAC;IACpF,MAAM,WAAW,CAAC,KAAK,EAAE,CAAC,CAAC,+BAA+B;IAC1D,MAAM,IAAI,CAAC,cAAc,EAAE,CAAC;IAC5B,gBAAgB,GAAG,MAAM,IAAI,CAAC,IAAI,CAAC,wCAAwC,CAAC,CAAC;IAC7E,MAAM,CAAC,gBAAgB,CAAC,CAAC,GAAG,CAAC,QAAQ,EAAE,CAAC,CAAC,mEAAmE;EAC9G,CAAC,CAAC,CAAC;EAEH,iCAAiC;AACnC,CAAC,CAAC,CAAC","sourcesContent":["import { newE2EPage } from '@stencil/core/testing';\n\ndescribe('ifx-search-bar', () => {\n let page;\n let element;\n\n beforeEach(async () => {\n page = await newE2EPage();\n await page.setContent('<ifx-search-bar></ifx-search-bar>');\n element = await page.find('ifx-search-bar');\n });\n\n it('should be rendered', async () => {\n expect(element).toHaveClass('hydrated');\n });\n\n it('should reflect the isOpen prop in the rendered output', async () => {\n element.setProperty('isOpen', false);\n await page.waitForChanges();\n let searchBarWrapper = await page.find('ifx-search-bar >>> .search-bar-wrapper');\n expect(searchBarWrapper).toBeNull(); // When isOpen is false, search-bar-wrapper should not be visible\n\n const iconWrapper = await page.find('ifx-search-bar >>> .search-bar__icon-wrapper');\n await iconWrapper.click(); // Click to open the search bar\n await page.waitForChanges();\n searchBarWrapper = await page.find('ifx-search-bar >>> .search-bar-wrapper');\n expect(searchBarWrapper).not.toBeNull(); // After clicking iconWrapper, search-bar-wrapper should be visible\n });\n\n // Other tests remain the same...\n});\n"]}

View File

@ -0,0 +1,145 @@
import { h } from "@stencil/core";
export class SearchBar {
constructor() {
this.handleCloseButton = () => {
this.internalState = !this.internalState;
this.ifxSearchBarIsOpen.emit(this.internalState);
};
this.handleFocus = () => {
this.internalState = true;
};
this.isOpen = true;
this.disabled = false;
this.internalState = undefined;
this.value = undefined;
}
handlePropChange() {
this.internalState = this.isOpen;
}
setInitialState() {
this.internalState = this.isOpen;
}
componentWillLoad() {
this.setInitialState();
}
handleInput(event) {
this.value = event.detail;
}
render() {
return (h("div", { "aria-label": 'a search bar', "aria-disabled": this.disabled, class: `search-bar ${this.internalState ? 'open' : 'closed'}` }, this.internalState ? (h("div", { class: "search-bar-wrapper" }, h("ifx-search-field", { disabled: this.disabled, value: this.value, onIfxInput: this.handleInput.bind(this) }, h("ifx-icon", { icon: "search-16", slot: "search-icon" })), h("a", { tabindex: "-1", href: 'javascript:void(0)', onClick: this.handleCloseButton }, "Close"))) : (h("div", { class: "search-bar__icon-wrapper", onClick: this.handleCloseButton }, h("ifx-icon", { icon: "search-16" })))));
}
static get is() { return "ifx-search-bar"; }
static get encapsulation() { return "shadow"; }
static get originalStyleUrls() {
return {
"$": ["search-bar.scss"]
};
}
static get styleUrls() {
return {
"$": ["search-bar.css"]
};
}
static get properties() {
return {
"isOpen": {
"type": "boolean",
"mutable": false,
"complexType": {
"original": "boolean",
"resolved": "boolean",
"references": {}
},
"required": false,
"optional": false,
"docs": {
"tags": [],
"text": ""
},
"attribute": "is-open",
"reflect": false,
"defaultValue": "true"
},
"disabled": {
"type": "boolean",
"mutable": false,
"complexType": {
"original": "boolean",
"resolved": "boolean",
"references": {}
},
"required": false,
"optional": false,
"docs": {
"tags": [],
"text": ""
},
"attribute": "disabled",
"reflect": false,
"defaultValue": "false"
},
"value": {
"type": "string",
"mutable": true,
"complexType": {
"original": "string",
"resolved": "string",
"references": {}
},
"required": false,
"optional": false,
"docs": {
"tags": [],
"text": ""
},
"attribute": "value",
"reflect": false
}
};
}
static get states() {
return {
"internalState": {}
};
}
static get events() {
return [{
"method": "ifxInput",
"name": "ifxInput",
"bubbles": true,
"cancelable": true,
"composed": true,
"docs": {
"tags": [],
"text": ""
},
"complexType": {
"original": "any",
"resolved": "any",
"references": {}
}
}, {
"method": "ifxSearchBarIsOpen",
"name": "ifxSearchBarIsOpen",
"bubbles": true,
"cancelable": true,
"composed": true,
"docs": {
"tags": [],
"text": ""
},
"complexType": {
"original": "any",
"resolved": "any",
"references": {}
}
}];
}
static get watchers() {
return [{
"propName": "isOpen",
"methodName": "handlePropChange"
}];
}
}
//# sourceMappingURL=search-bar.js.map

View File

@ -0,0 +1 @@
{"version":3,"file":"search-bar.js","sourceRoot":"","sources":["../../../src/components/search-bar/search-bar.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,CAAC,EAAE,IAAI,EAAE,KAAK,EAAgB,KAAK,EAAE,KAAK,EAAE,MAAM,eAAe,CAAC;AAOtF,MAAM,OAAO,SAAS;;IAcpB,sBAAiB,GAAG,GAAG,EAAE;MACvB,IAAI,CAAC,aAAa,GAAG,CAAC,IAAI,CAAC,aAAa,CAAC;MACzC,IAAI,CAAC,kBAAkB,CAAC,IAAI,CAAC,IAAI,CAAC,aAAa,CAAC,CAAA;IAClD,CAAC,CAAA;IAcD,gBAAW,GAAG,GAAG,EAAE;MACjB,IAAI,CAAC,aAAa,GAAG,IAAI,CAAC;IAC5B,CAAC,CAAA;kBAhCyB,IAAI;oBACF,KAAK;;;;EAQjC,gBAAgB;IACd,IAAI,CAAC,aAAa,GAAG,IAAI,CAAC,MAAM,CAAC;EACnC,CAAC;EAOD,eAAe;IACb,IAAI,CAAC,aAAa,GAAG,IAAI,CAAC,MAAM,CAAC;EACnC,CAAC;EAED,iBAAiB;IACf,IAAI,CAAC,eAAe,EAAE,CAAC;EACzB,CAAC;EAED,WAAW,CAAC,KAAkB;IAC5B,IAAI,CAAC,KAAK,GAAG,KAAK,CAAC,MAAM,CAAC;EAC5B,CAAC;EAOD,MAAM;IACJ,OAAO,CACL,yBAAgB,cAAc,mBAAgB,IAAI,CAAC,QAAQ,EAAE,KAAK,EAAE,cAAc,IAAI,CAAC,aAAa,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,QAAQ,EAAE,IACvH,IAAI,CAAC,aAAa,CAAC,CAAC,CAAC,CACpB,WAAK,KAAK,EAAC,oBAAoB;MAC7B,wBAAkB,QAAQ,EAAE,IAAI,CAAC,QAAQ,EAAE,KAAK,EAAE,IAAI,CAAC,KAAK,EAAE,UAAU,EAAE,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,IAAI,CAAC;QACnG,gBAAU,IAAI,EAAC,WAAW,EAAC,IAAI,EAAC,aAAa,GAAY,CACxC;MAEnB,SAAG,QAAQ,EAAC,IAAI,EAAC,IAAI,EAAC,oBAAoB,EAAC,OAAO,EAAE,IAAI,CAAC,iBAAiB,YAAW,CACjF,CACP,CAAC,CAAC,CAAC,CACF,WAAK,KAAK,EAAC,0BAA0B,EAAC,OAAO,EAAE,IAAI,CAAC,iBAAiB;MACnE,gBAAU,IAAI,EAAC,WAAW,GAAY,CAClC,CACP,CACG,CACP,CAAC;EACJ,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CACF","sourcesContent":["import { Component, h, Prop, Event, EventEmitter, State, Watch } from '@stencil/core';\n\n@Component({\n tag: 'ifx-search-bar',\n styleUrl: 'search-bar.scss',\n shadow: true,\n})\nexport class SearchBar {\n @Prop() isOpen: boolean = true;\n @Prop() disabled: boolean = false;\n @State() internalState: boolean;\n @Prop({ mutable: true }) value: string;\n @Event() ifxInput: EventEmitter;\n @Event() ifxSearchBarIsOpen: EventEmitter;\n\n\n @Watch('isOpen')\n handlePropChange() {\n this.internalState = this.isOpen;\n }\n\n handleCloseButton = () => {\n this.internalState = !this.internalState;\n this.ifxSearchBarIsOpen.emit(this.internalState)\n }\n\n setInitialState() {\n this.internalState = this.isOpen;\n }\n\n componentWillLoad() {\n this.setInitialState();\n }\n\n handleInput(event: CustomEvent) {\n this.value = event.detail;\n }\n\n handleFocus = () => {\n this.internalState = true;\n }\n\n\n render() {\n return (\n <div aria-label='a search bar' aria-disabled={this.disabled} class={`search-bar ${this.internalState ? 'open' : 'closed'}`}>\n {this.internalState ? (\n <div class=\"search-bar-wrapper\">\n <ifx-search-field disabled={this.disabled} value={this.value} onIfxInput={this.handleInput.bind(this)}>\n <ifx-icon icon=\"search-16\" slot=\"search-icon\"></ifx-icon>\n </ifx-search-field>\n\n <a tabindex=\"-1\" href='javascript:void(0)' onClick={this.handleCloseButton}>Close</a>\n </div>\n ) : (\n <div class=\"search-bar__icon-wrapper\" onClick={this.handleCloseButton}>\n <ifx-icon icon=\"search-16\"></ifx-icon>\n </div>\n )}\n </div>\n );\n }\n}\n"]}

View File

@ -0,0 +1,35 @@
import { action } from "@storybook/addon-actions";
export default {
title: 'Components/Search Bar',
// tags: ['autodocs'],
args: {
disabled: false,
isOpen: true,
},
argTypes: {
ifxInput: {
action: 'ifxInput',
description: 'Custom event emitted on input\n\n(see below for Two Way Data Binding in different JS frameworks)',
},
ifxSearchBarIsOpen: {
action: 'ifxInput',
description: 'Custom event',
table: {
type: {
summary: 'Framework integration',
detail: 'React: onIfxInput={handleInput}\nVue:@ifxInput="handleInput"\nAngular:(ifxInput)="handleInput()"\nVanillaJs:.addEventListener("ifxInput", (event) => {//handle input});',
},
},
},
},
};
const DefaultTemplate = ({ isOpen, disabled }) => {
const element = document.createElement('ifx-search-bar');
element.setAttribute('is-open', isOpen);
element.setAttribute('disabled', disabled);
element.addEventListener('ifxInput', action('ifxInput'));
return element;
};
export const Default = DefaultTemplate.bind({});
Default.args = {};
//# sourceMappingURL=search-bar.stories.js.map

View File

@ -0,0 +1 @@
{"version":3,"file":"search-bar.stories.js","sourceRoot":"","sources":["../../../src/components/search-bar/search-bar.stories.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,0BAA0B,CAAC;AAGlD,eAAe;EACb,KAAK,EAAE,uBAAuB;EAC9B,sBAAsB;EAEtB,IAAI,EAAE;IACJ,QAAQ,EAAE,KAAK;IACf,MAAM,EAAE,IAAI;GAEb;EACD,QAAQ,EAAE;IACR,QAAQ,EAAE;MACR,MAAM,EAAE,UAAU;MAClB,WAAW,EAAE,kGAAkG;KAChH;IACD,kBAAkB,EAAE;MAClB,MAAM,EAAE,UAAU;MAClB,WAAW,EAAE,cAAc;MAC3B,KAAK,EAAE;QACL,IAAI,EAAE;UACJ,OAAO,EAAE,uBAAuB;UAChC,MAAM,EAAE,yKAAyK;SAClL;OACF;KACF;GACF;CACF,CAAC;AAIF,MAAM,eAAe,GAAG,CAAC,EAAE,MAAM,EAAE,QAAQ,EAAE,EAAE,EAAE;EAC/C,MAAM,OAAO,GAAG,QAAQ,CAAC,aAAa,CAAC,gBAAgB,CAAC,CAAC;EACzD,OAAO,CAAC,YAAY,CAAC,SAAS,EAAE,MAAM,CAAC,CAAC;EACxC,OAAO,CAAC,YAAY,CAAC,UAAU,EAAE,QAAQ,CAAC,CAAC;EAC3C,OAAO,CAAC,gBAAgB,CAAC,UAAU,EAAE,MAAM,CAAC,UAAU,CAAC,CAAC,CAAC;EAEzD,OAAO,OAAO,CAAC;AACjB,CAAC,CAAC;AAEF,MAAM,CAAC,MAAM,OAAO,GAAG,eAAe,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;AAChD,OAAO,CAAC,IAAI,GAAG,EACd,CAAC","sourcesContent":["import { action } from \"@storybook/addon-actions\";\n\n\nexport default {\n title: 'Components/Search Bar',\n // tags: ['autodocs'],\n\n args: {\n disabled: false,\n isOpen: true,\n\n },\n argTypes: {\n ifxInput: {\n action: 'ifxInput',\n description: 'Custom event emitted on input\\n\\n(see below for Two Way Data Binding in different JS frameworks)',\n },\n ifxSearchBarIsOpen: {\n action: 'ifxInput',\n description: 'Custom event',\n table: {\n type: {\n summary: 'Framework integration',\n detail: 'React: onIfxInput={handleInput}\\nVue:@ifxInput=\"handleInput\"\\nAngular:(ifxInput)=\"handleInput()\"\\nVanillaJs:.addEventListener(\"ifxInput\", (event) => {//handle input});',\n },\n },\n },\n },\n};\n\n\n\nconst DefaultTemplate = ({ isOpen, disabled }) => {\n const element = document.createElement('ifx-search-bar');\n element.setAttribute('is-open', isOpen);\n element.setAttribute('disabled', disabled);\n element.addEventListener('ifxInput', action('ifxInput'));\n\n return element;\n};\n\nexport const Default = DefaultTemplate.bind({});\nDefault.args = {\n};"]}