@genexus/genexus-ide-ui 0.0.120 → 0.0.122
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/cjs/genexus-ide-ui.cjs.js +1 -1
- package/dist/cjs/gx-ide-object-selector.cjs.entry.js +21 -9
- package/dist/cjs/gx-ide-object-selector.cjs.entry.js.map +1 -1
- package/dist/cjs/gx-ide-wf-settings.cjs.entry.js +59 -0
- package/dist/cjs/gx-ide-wf-settings.cjs.entry.js.map +1 -0
- package/dist/cjs/loader.cjs.js +1 -1
- package/dist/collection/collection-manifest.json +2 -1
- package/dist/collection/components/object-selector/object-selector.js +21 -9
- package/dist/collection/components/object-selector/object-selector.js.map +1 -1
- package/dist/collection/components/wf-settings/gx-ide-assets/wf-settings/langs/wf-settings.lang.en.json +29 -0
- package/dist/collection/components/wf-settings/gx-ide-assets/wf-settings/langs/wf-settings.lang.ja.json +3 -0
- package/dist/collection/components/wf-settings/gx-ide-assets/wf-settings/langs/wf-settings.lang.zh.json +3 -0
- package/dist/collection/components/wf-settings/wf-settings.css +535 -0
- package/dist/collection/components/wf-settings/wf-settings.js +173 -0
- package/dist/collection/components/wf-settings/wf-settings.js.map +1 -0
- package/dist/components/gx-ide-object-selector.js +21 -9
- package/dist/components/gx-ide-object-selector.js.map +1 -1
- package/dist/components/gx-ide-wf-settings.d.ts +11 -0
- package/dist/components/gx-ide-wf-settings.js +156 -0
- package/dist/components/gx-ide-wf-settings.js.map +1 -0
- package/dist/esm/genexus-ide-ui.js +1 -1
- package/dist/esm/gx-ide-object-selector.entry.js +21 -9
- package/dist/esm/gx-ide-object-selector.entry.js.map +1 -1
- package/dist/esm/gx-ide-wf-settings.entry.js +55 -0
- package/dist/esm/gx-ide-wf-settings.entry.js.map +1 -0
- package/dist/esm/loader.js +1 -1
- package/dist/genexus-ide-ui/genexus-ide-ui.esm.js +1 -1
- package/dist/genexus-ide-ui/genexus-ide-ui.esm.js.map +1 -1
- package/dist/genexus-ide-ui/gx-ide-assets/wf-settings/langs/wf-settings.lang.en.json +29 -0
- package/dist/genexus-ide-ui/gx-ide-assets/wf-settings/langs/wf-settings.lang.ja.json +3 -0
- package/dist/genexus-ide-ui/gx-ide-assets/wf-settings/langs/wf-settings.lang.zh.json +3 -0
- package/dist/genexus-ide-ui/{p-7ed89885.entry.js → p-debee72d.entry.js} +134 -118
- package/dist/genexus-ide-ui/p-debee72d.entry.js.map +1 -0
- package/dist/genexus-ide-ui/p-f19ec1c3.entry.js +100 -0
- package/dist/genexus-ide-ui/p-f19ec1c3.entry.js.map +1 -0
- package/dist/types/components/object-selector/object-selector.d.ts +4 -0
- package/dist/types/components/wf-settings/wf-settings.d.ts +42 -0
- package/dist/types/components.d.ts +66 -0
- package/package.json +1 -1
- package/dist/genexus-ide-ui/p-7ed89885.entry.js.map +0 -1
|
@@ -46,6 +46,7 @@ import { ConfirmCallback as ConfirmCallback5, GridContextMenuCallback, LoadCallb
|
|
|
46
46
|
import { AddCallback, CancelCallback as CancelCallback12, ConfirmCallback as ConfirmCallback6, ObjectData as ObjectData1 } from "./components/team-dev/update-partial-selection/update-partial-selection";
|
|
47
47
|
import { cancelCallbackFn, confirmCallbackFn } from "./components/team-dev/update-to-revision/update-to-revision";
|
|
48
48
|
import { TitleAlignment as TitleAlignment1, TitleType as TitleType1 } from "./components/_helpers/title/title";
|
|
49
|
+
import { ConfigurationType, WFConfigData } from "./components/wf-settings/wf-settings";
|
|
49
50
|
import { ContextMenuCallback, DeleteSelectionCallback, LoadCallback as LoadCallback5, LoadImageItemsCallback, NewObjectCallback as NewObjectCallback1, OpenSelectionCallback as OpenSelectionCallback1, SelectionObjectCallback, SelectModuleCallback as SelectModuleCallback3 } from "./components/ww-images/ww-images";
|
|
50
51
|
export { AiStatus, Message, UserMessageCallback } from "./components/ai-assistant/ai-assistant";
|
|
51
52
|
export { MessageType } from "./components/ai-assistant/ai-assistant";
|
|
@@ -88,6 +89,7 @@ export { ConfirmCallback as ConfirmCallback5, GridContextMenuCallback, LoadCallb
|
|
|
88
89
|
export { AddCallback, CancelCallback as CancelCallback12, ConfirmCallback as ConfirmCallback6, ObjectData as ObjectData1 } from "./components/team-dev/update-partial-selection/update-partial-selection";
|
|
89
90
|
export { cancelCallbackFn, confirmCallbackFn } from "./components/team-dev/update-to-revision/update-to-revision";
|
|
90
91
|
export { TitleAlignment as TitleAlignment1, TitleType as TitleType1 } from "./components/_helpers/title/title";
|
|
92
|
+
export { ConfigurationType, WFConfigData } from "./components/wf-settings/wf-settings";
|
|
91
93
|
export { ContextMenuCallback, DeleteSelectionCallback, LoadCallback as LoadCallback5, LoadImageItemsCallback, NewObjectCallback as NewObjectCallback1, OpenSelectionCallback as OpenSelectionCallback1, SelectionObjectCallback, SelectModuleCallback as SelectModuleCallback3 } from "./components/ww-images/ww-images";
|
|
92
94
|
export namespace Components {
|
|
93
95
|
interface GxIdeAiAssistant {
|
|
@@ -1574,6 +1576,24 @@ export namespace Components {
|
|
|
1574
1576
|
*/
|
|
1575
1577
|
"topBarTitle": string;
|
|
1576
1578
|
}
|
|
1579
|
+
interface GxIdeWfSettings {
|
|
1580
|
+
/**
|
|
1581
|
+
* Callback invoked when the user presses the 'Cancel' button.
|
|
1582
|
+
*/
|
|
1583
|
+
"cancelCallback": () => Promise<void>;
|
|
1584
|
+
/**
|
|
1585
|
+
* The configuration type
|
|
1586
|
+
*/
|
|
1587
|
+
"configurationType": ConfigurationType;
|
|
1588
|
+
/**
|
|
1589
|
+
* If true it displays the component title on the header
|
|
1590
|
+
*/
|
|
1591
|
+
"displayTitle": false;
|
|
1592
|
+
/**
|
|
1593
|
+
* Callback invoked when the user presses the 'OK' button. As a parameter, it receives the data entered by the user
|
|
1594
|
+
*/
|
|
1595
|
+
"saveCallback": (config: WFConfigData) => Promise<void>;
|
|
1596
|
+
}
|
|
1577
1597
|
interface GxIdeWwImages {
|
|
1578
1598
|
/**
|
|
1579
1599
|
* The categories render in the filter category selector
|
|
@@ -1789,6 +1809,10 @@ export interface GxIdeTemplateCustomEvent<T> extends CustomEvent<T> {
|
|
|
1789
1809
|
detail: T;
|
|
1790
1810
|
target: HTMLGxIdeTemplateElement;
|
|
1791
1811
|
}
|
|
1812
|
+
export interface GxIdeWfSettingsCustomEvent<T> extends CustomEvent<T> {
|
|
1813
|
+
detail: T;
|
|
1814
|
+
target: HTMLGxIdeWfSettingsElement;
|
|
1815
|
+
}
|
|
1792
1816
|
export interface GxIdeWwImagesCustomEvent<T> extends CustomEvent<T> {
|
|
1793
1817
|
detail: T;
|
|
1794
1818
|
target: HTMLGxIdeWwImagesElement;
|
|
@@ -2383,6 +2407,23 @@ declare global {
|
|
|
2383
2407
|
prototype: HTMLGxIdeTopBarElement;
|
|
2384
2408
|
new (): HTMLGxIdeTopBarElement;
|
|
2385
2409
|
};
|
|
2410
|
+
interface HTMLGxIdeWfSettingsElementEventMap {
|
|
2411
|
+
"componentDidRenderFirstTime": string;
|
|
2412
|
+
}
|
|
2413
|
+
interface HTMLGxIdeWfSettingsElement extends Components.GxIdeWfSettings, HTMLStencilElement {
|
|
2414
|
+
addEventListener<K extends keyof HTMLGxIdeWfSettingsElementEventMap>(type: K, listener: (this: HTMLGxIdeWfSettingsElement, ev: GxIdeWfSettingsCustomEvent<HTMLGxIdeWfSettingsElementEventMap[K]>) => any, options?: boolean | AddEventListenerOptions): void;
|
|
2415
|
+
addEventListener<K extends keyof DocumentEventMap>(type: K, listener: (this: Document, ev: DocumentEventMap[K]) => any, options?: boolean | AddEventListenerOptions): void;
|
|
2416
|
+
addEventListener<K extends keyof HTMLElementEventMap>(type: K, listener: (this: HTMLElement, ev: HTMLElementEventMap[K]) => any, options?: boolean | AddEventListenerOptions): void;
|
|
2417
|
+
addEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | AddEventListenerOptions): void;
|
|
2418
|
+
removeEventListener<K extends keyof HTMLGxIdeWfSettingsElementEventMap>(type: K, listener: (this: HTMLGxIdeWfSettingsElement, ev: GxIdeWfSettingsCustomEvent<HTMLGxIdeWfSettingsElementEventMap[K]>) => any, options?: boolean | EventListenerOptions): void;
|
|
2419
|
+
removeEventListener<K extends keyof DocumentEventMap>(type: K, listener: (this: Document, ev: DocumentEventMap[K]) => any, options?: boolean | EventListenerOptions): void;
|
|
2420
|
+
removeEventListener<K extends keyof HTMLElementEventMap>(type: K, listener: (this: HTMLElement, ev: HTMLElementEventMap[K]) => any, options?: boolean | EventListenerOptions): void;
|
|
2421
|
+
removeEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | EventListenerOptions): void;
|
|
2422
|
+
}
|
|
2423
|
+
var HTMLGxIdeWfSettingsElement: {
|
|
2424
|
+
prototype: HTMLGxIdeWfSettingsElement;
|
|
2425
|
+
new (): HTMLGxIdeWfSettingsElement;
|
|
2426
|
+
};
|
|
2386
2427
|
interface HTMLGxIdeWwImagesElementEventMap {
|
|
2387
2428
|
"componentDidLoadEvent": boolean;
|
|
2388
2429
|
"componentDidRenderFirstTime": string;
|
|
@@ -2443,6 +2484,7 @@ declare global {
|
|
|
2443
2484
|
"gx-ide-test": HTMLGxIdeTestElement;
|
|
2444
2485
|
"gx-ide-title": HTMLGxIdeTitleElement;
|
|
2445
2486
|
"gx-ide-top-bar": HTMLGxIdeTopBarElement;
|
|
2487
|
+
"gx-ide-wf-settings": HTMLGxIdeWfSettingsElement;
|
|
2446
2488
|
"gx-ide-ww-images": HTMLGxIdeWwImagesElement;
|
|
2447
2489
|
}
|
|
2448
2490
|
}
|
|
@@ -4039,6 +4081,28 @@ declare namespace LocalJSX {
|
|
|
4039
4081
|
*/
|
|
4040
4082
|
"topBarTitle"?: string;
|
|
4041
4083
|
}
|
|
4084
|
+
interface GxIdeWfSettings {
|
|
4085
|
+
/**
|
|
4086
|
+
* Callback invoked when the user presses the 'Cancel' button.
|
|
4087
|
+
*/
|
|
4088
|
+
"cancelCallback"?: () => Promise<void>;
|
|
4089
|
+
/**
|
|
4090
|
+
* The configuration type
|
|
4091
|
+
*/
|
|
4092
|
+
"configurationType"?: ConfigurationType;
|
|
4093
|
+
/**
|
|
4094
|
+
* If true it displays the component title on the header
|
|
4095
|
+
*/
|
|
4096
|
+
"displayTitle"?: false;
|
|
4097
|
+
/**
|
|
4098
|
+
* @description Gets fired when the component has rendered for the first time.
|
|
4099
|
+
*/
|
|
4100
|
+
"onComponentDidRenderFirstTime"?: (event: GxIdeWfSettingsCustomEvent<string>) => void;
|
|
4101
|
+
/**
|
|
4102
|
+
* Callback invoked when the user presses the 'OK' button. As a parameter, it receives the data entered by the user
|
|
4103
|
+
*/
|
|
4104
|
+
"saveCallback"?: (config: WFConfigData) => Promise<void>;
|
|
4105
|
+
}
|
|
4042
4106
|
interface GxIdeWwImages {
|
|
4043
4107
|
/**
|
|
4044
4108
|
* The categories render in the filter category selector
|
|
@@ -4175,6 +4239,7 @@ declare namespace LocalJSX {
|
|
|
4175
4239
|
"gx-ide-test": GxIdeTest;
|
|
4176
4240
|
"gx-ide-title": GxIdeTitle;
|
|
4177
4241
|
"gx-ide-top-bar": GxIdeTopBar;
|
|
4242
|
+
"gx-ide-wf-settings": GxIdeWfSettings;
|
|
4178
4243
|
"gx-ide-ww-images": GxIdeWwImages;
|
|
4179
4244
|
}
|
|
4180
4245
|
}
|
|
@@ -4223,6 +4288,7 @@ declare module "@stencil/core" {
|
|
|
4223
4288
|
"gx-ide-test": LocalJSX.GxIdeTest & JSXBase.HTMLAttributes<HTMLGxIdeTestElement>;
|
|
4224
4289
|
"gx-ide-title": LocalJSX.GxIdeTitle & JSXBase.HTMLAttributes<HTMLGxIdeTitleElement>;
|
|
4225
4290
|
"gx-ide-top-bar": LocalJSX.GxIdeTopBar & JSXBase.HTMLAttributes<HTMLGxIdeTopBarElement>;
|
|
4291
|
+
"gx-ide-wf-settings": LocalJSX.GxIdeWfSettings & JSXBase.HTMLAttributes<HTMLGxIdeWfSettingsElement>;
|
|
4226
4292
|
"gx-ide-ww-images": LocalJSX.GxIdeWwImages & JSXBase.HTMLAttributes<HTMLGxIdeWwImagesElement>;
|
|
4227
4293
|
}
|
|
4228
4294
|
}
|
package/package.json
CHANGED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"names":["objectSelectorCss","GxIdeObjectSelector","this","renderedFirstTime","shortcutsSrc","getAssetPath","loaderCancelCallbackHandler","async","cancelCallbackHandler","getObjects","modified","filterModifiedEl","checked","modifiedAfter","filterAfterTypeEl","value","user","_b","_a","filterUserEl","trim","filters","pattern","_c","filterPatternEl","type","_d","filterTypeEl","category","_e","filterCategoryEl","module","_g","_f","filterModuleEl","id","modifiedBy","modifiedDate","FILTER_AFTER","DATE_TIME","_h","filterModifiedDateEl","loadCallback","loader","loaderEl","show","then","items","objects","selectedObjectsIds","deselectAll","openSelectionCallbackHandler","e","stopPropagation","openSelectionCallback","cancelCallback","selectAll","chGridEl","selectAllRows","newObjectCallbackHandler","newObjectCallback","listenChanges","addEventListener","filterModified","detail","filterAfterType","ev","rowsId","chGridKeyDownHandler","key","hostKeyPressHandler","evaluateObjectsCount","length","_componentLocale","objCount","selected","none","one","many","matching","renderFilter","h","part","class","displayTitle","slot","label","filter","ref","el","patternValue","defaultType","disabled","types","renderComboItems","defaultCategory","categories","defaultModule","defaultValue","selectEntityCallback","selectModuleCallback","NONE","afterNone","IMPORT","LAST_BUILD","dateTime","renderObjects","noBorder","rowSelectionMode","multiSelection","onKeyDown","settingable","size","gridCommon","colSize","auto","tableHead","name","description","common","importDate","sort","a","b","nameA","toLowerCase","nameB","map","obj","rowid","onDblClick","icon","color","formatDate","componentWillLoad","Locale","getComponentStrings","componentDidLoadEvent","emit","componentDidLoad","container","focus","componentDidRender","componentDidRenderFirstTime","componentName","suspendShortcuts","gxgShortcutsEl","suspend","validate","isValid","render","Host","onKeyPress","containerTitle","noContentPadding","noAboveFooterPadding","noHeadingPadding","headingPaddingTop","noHeadingBorder","slimmerFooter","config","gxIdeContainer","textAlign","onClick","footer","btnCancel","btnConfirm","btnNew","btnSelectAll","src","cancelLabel","loaderTitle","title"],"sources":["src/components/object-selector/object-selector.scss?tag=gx-ide-object-selector&encapsulation=shadow","src/components/object-selector/object-selector.tsx"],"sourcesContent":["@import \"../../global/gx-ide-common.scss\";\n@import \"../../global/gx-ide-mixins.scss\";\n\n:host {\n display: block;\n border: 1px solid var(--gxg-border-color--regular);\n background-color: var(--mer-color__surface);\n}\n\n/* Filters */\n.filter-grid {\n display: grid;\n padding: var(--mer-spacing--sm);\n row-gap: var(--gx-ide-grid-row-gap);\n column-gap: var(--gx-ide-grid-column-gap);\n border-block-start: 1px solid var(--gx-ide-container-border-color);\n border-block-end: 1px solid var(--gx-ide-container-border-color);\n\n grid-template-columns: 1fr 1fr;\n grid-template-areas:\n \"pattern type\"\n \"category module-folder\"\n \"modified-row modified-row\";\n .pattern {\n grid-area: pattern;\n }\n .type {\n grid-area: type;\n }\n .category {\n grid-area: category;\n }\n .module-folder {\n grid-area: module-folder;\n }\n .modified-row {\n grid-area: modified-row;\n }\n &--no-title {\n border-top: 0;\n }\n}\n\n/*modified row*/\n.modified-row {\n min-height: 24px;\n display: flex;\n align-items: center;\n gap: var(--gx-ide-grid-column-gap);\n flex: 1;\n &__inner-wrapper {\n display: flex;\n align-items: center;\n gap: var(--gx-ide-grid-column-gap);\n flex: 1;\n .date-time {\n display: flex;\n align-items: center;\n }\n }\n .combo-modified {\n }\n .user {\n max-width: 205px !important;\n }\n .date-time {\n flex: 1;\n }\n}\n\n/*gxg-grid*/\n.grid-container {\n height: 100%;\n}\nch-grid-cell {\n --mer-spacing--xs: var(--mer-spacing--sm);\n}\n/* Objects Table */\n.objects-count {\n display: flex;\n justify-content: space-around;\n > * {\n flex: 1;\n padding: var(--mer-spacing--xxs);\n }\n > :not(:last-child) {\n border-inline-end: 1px solid var(--gx-ide-container-border-color);\n }\n}\n","/* STENCIL IMPORTS */\nimport {\n Component,\n Host,\n h,\n Prop,\n Element,\n Event,\n EventEmitter,\n State,\n Method,\n getAssetPath\n} from \"@stencil/core\";\n/* OTHER LIBRARIES IMPORTS */\n/* CUSTOM IMPORTS */\nimport { Locale } from \"../../common/locale\";\nimport { config } from \"../../common/config\";\nimport { renderComboItems } from \"../../common/render-combo-items\";\nimport { EntityData, GxOption } from \"../../common/types\";\nimport { formatDate } from \"../../common/helpers\";\nimport { gridCommon } from \"../../common/grid\";\nimport { FILTER_AFTER } from \"../../common/constants\";\n\n@Component({\n tag: \"gx-ide-object-selector\",\n styleUrl: \"object-selector.scss\",\n shadow: { delegatesFocus: true },\n assetsDirs: [\"gx-ide-assets/object-selector\"]\n})\nexport class GxIdeObjectSelector {\n /*\nINDEX:\n1.OWN PROPERTIES\n2.REFERENCE TO ELEMENTS\n3.STATE() VARIABLES\n4.PUBLIC PROPERTY API | WATCH'S\n5.EVENTS (EMIT)\n6.COMPONENT LIFECYCLE EVENTS\n7.LISTENERS\n8.PUBLIC METHODS API\n9.LOCAL METHODS\n10.RENDER() FUNCTION\n*/\n\n // 1.OWN PROPERTIES //\n\n /**\n * The component hard-coded strings translations.\n */\n private _componentLocale: any;\n private renderedFirstTime = false;\n private shortcutsSrc = getAssetPath(\n `./gx-ide-assets/object-selector/shortcuts.json`\n );\n\n // 2. REFERENCE TO ELEMENTS //\n\n @Element() el: HTMLGxIdeObjectSelectorElement;\n\n /* References needed to collect data */\n private filterPatternEl!: HTMLGxgFormTextElement;\n private filterTypeEl!: HTMLGxgComboBoxElement;\n private filterCategoryEl!: HTMLGxgComboBoxElement;\n private filterModuleEl!: HTMLGxIdeEntitySelectorElement;\n private filterModifiedEl!: HTMLGxgFormCheckboxElement;\n private filterAfterTypeEl!: HTMLGxgComboBoxElement;\n private filterUserEl!: HTMLGxgFormTextElement;\n private filterModifiedDateEl!: HTMLGxgDatePickerElement;\n private chGridEl!: HTMLChGridElement;\n private gxgShortcutsEl: HTMLGxgShortcutsElement;\n private loaderEl!: HTMLGxgIdeLoaderElement;\n\n // 3.STATE() VARIABLES //\n\n /**\n * The after types render in the after selector\n */\n @State() filterAfterType = \"\";\n\n /**\n * For show or hide the filters relative to modifiers\n */\n @State() filterModified = false;\n\n /**\n * The objects rendered in the table\n */\n @State() objects: ObjectData[] = [];\n\n /**\n * The selected objects in the table of objects\n */\n @State() selectedObjectsIds: string[] = [];\n\n // 4.PUBLIC PROPERTY API //\n\n /**\n * If true it displays the component title on the header\n */\n @Prop() readonly displayTitle = false;\n\n /**\n * If true, it will display a loader when needed.\n */\n @Prop() readonly loader = false;\n\n /**\n * True' if multiple object selection is allowed. Default is 'True'\n */\n @Prop() readonly multiSelection: boolean = true;\n\n /**\n * Current value of the input pattern. It is also used to set the default value when initializing the component\n */\n @Prop() readonly patternValue: string;\n\n /**\n * The types render in the filter type selector\n */\n @Prop() readonly types!: ObjectType[];\n\n /**\n * The default value for the type filter\n */\n @Prop() readonly defaultType: string;\n\n /**\n * The categories render in the filter category selector\n */\n @Prop() readonly categories!: GxOption[];\n\n /**\n * The default id value for the category filter\n */\n @Prop() readonly defaultCategory: string;\n\n /**\n * The default value for the module/folder filter\n */\n @Prop() readonly defaultModule: EntityData;\n\n /**\n * Callback invoked when the action is executed in the Module/Folder filter. It returns the information of the selected object (id and name) or 'undefined' if it was canceled.\n */\n @Prop() readonly selectModuleCallback: SelectModuleCallback;\n\n /**\n * Callback invoked when the user wishes to cancel the selection of objects.\n */\n @Prop() readonly cancelCallback!: CancelCallback;\n\n /**\n * Callback invoked when the component needs to reload the list of attributes.\n */\n @Prop() readonly loadCallback!: LoadCallback;\n\n /**\n * Callback invoked when the user presses the 'New' button.\n */\n @Prop() readonly newObjectCallback!: NewObjectCallback;\n\n /**\n * This is a function provided by the developer for expanded the data of object that is double-clicked or entered.\n */\n @Prop() readonly openSelectionCallback!: OpenSelectionCallback;\n\n // 5.EVENTS (EMIT) //\n\n /**\n * This event is emitted once just after the component is fully loaded and the first render() occurs\n */\n @Event() componentDidRenderFirstTime: EventEmitter<boolean>;\n\n /**\n * This event is emitted once just after the component is fully loaded and the first render() occurs.\n */\n @Event() componentDidLoadEvent: EventEmitter<boolean>;\n\n // 6.COMPONENT LIFECYCLE EVENTS //\n\n async componentWillLoad() {\n this._componentLocale = await Locale.getComponentStrings(this.el);\n this.componentDidLoadEvent.emit(true);\n }\n\n componentDidLoad() {\n this.listenChanges();\n this.loaderEl.container = this.chGridEl;\n this.getObjects();\n this.filterPatternEl.focus();\n }\n\n componentDidRender() {\n if (!this.renderedFirstTime) {\n this.componentDidRenderFirstTime.emit(\n this._componentLocale.componentName\n );\n this.renderedFirstTime = true;\n }\n }\n\n // 7.LISTENERS //\n\n // 8.PUBLIC METHODS API //\n /**\n * Suspends or reactivates the shortcuts\n */\n @Method()\n async suspendShortcuts(suspendShortcuts: boolean) {\n if (suspendShortcuts) {\n this.gxgShortcutsEl.suspend = true;\n } else {\n this.gxgShortcutsEl.suspend = false;\n }\n }\n\n /**\n * Validate necessary data input\n */\n @Method()\n async validate(): Promise<boolean> {\n const isValid = true;\n return isValid;\n }\n\n // 9.LOCAL METHODS //\n\n private loaderCancelCallbackHandler = async () => {\n this.cancelCallbackHandler();\n };\n\n private getObjects = (): void => {\n /* 'modified' checkbox, should only be considered if 'date' || 'user' */\n const modified = this.filterModifiedEl.checked;\n const modifiedAfter = this.filterAfterTypeEl.value;\n const user = this.filterUserEl?.value?.trim();\n const filters: ObjectFiltersData = {\n pattern: this.filterPatternEl?.value,\n type: this.filterTypeEl?.value,\n category: this.filterCategoryEl?.value,\n module: this.filterModuleEl?.value?.id,\n modifiedAfter: modified && modifiedAfter ? modifiedAfter : null,\n modifiedBy: modified && user ? user : null,\n modifiedDate:\n modified && modifiedAfter === FILTER_AFTER.DATE_TIME\n ? (this.filterModifiedDateEl?.value as Date)\n : null\n };\n if (this.loadCallback) {\n if (this.loader) {\n this.loaderEl.show = true;\n }\n this.loadCallback(filters).then((items: ObjectData[]) => {\n if (items) {\n this.objects = items;\n }\n this.selectedObjectsIds = [];\n this.deselectAll();\n if (this.loader) {\n this.loaderEl.show = false;\n }\n });\n }\n };\n\n private openSelectionCallbackHandler = (\n e: MouseEvent | KeyboardEvent\n ): void => {\n e.stopPropagation();\n this.openSelectionCallback(this.selectedObjectsIds);\n };\n\n private cancelCallbackHandler = (): void => {\n this.cancelCallback();\n };\n\n private selectAll = (): void => {\n (this.chGridEl as any).selectAllRows();\n };\n\n private deselectAll = (): void => {\n (this.chGridEl as any).selectAllRows(false);\n };\n\n private newObjectCallbackHandler = (): void => {\n this.newObjectCallback();\n };\n\n private listenChanges = async (): Promise<void> => {\n /* pattern*/\n this.filterPatternEl.addEventListener(\"input\", () => {\n this.getObjects();\n });\n /* type*/\n this.filterTypeEl.addEventListener(\"valueChanged\", () => {\n this.getObjects();\n });\n /* category*/\n this.filterCategoryEl.addEventListener(\"valueChanged\", () => {\n this.getObjects();\n });\n /* module/folder*/\n this.filterModuleEl.addEventListener(\"valueChanged\", () => {\n this.getObjects();\n });\n /* modified */\n this.filterModifiedEl.addEventListener(\"change\", (e: any) => {\n this.filterModified = e.detail.value;\n this.getObjects();\n });\n /* modified after... */\n this.filterAfterTypeEl.addEventListener(\"valueChanged\", () => {\n this.filterAfterType = this.filterAfterTypeEl.value;\n this.getObjects();\n });\n /* user... */\n this.filterUserEl.addEventListener(\"input\", () => {\n this.getObjects();\n });\n /* Date/Time */\n this.filterModifiedDateEl.addEventListener(\"valueChanged\", () => {\n this.getObjects();\n });\n // for grid selection\n this.chGridEl.addEventListener(\"selectionChanged\", (ev: any): void => {\n this.selectedObjectsIds = ev.detail.rowsId;\n });\n };\n\n private chGridKeyDownHandler = (e: KeyboardEvent) => {\n if (e.key === \"Enter\") {\n this.openSelectionCallbackHandler(e);\n }\n };\n\n private hostKeyPressHandler = (e: KeyboardEvent) => {\n // just prevent keypress propagation\n if (e.key === \"Enter\") {\n e.stopPropagation();\n }\n };\n\n private evaluateObjectsCount = (type: \"selected\" | \"matching\"): string => {\n if (type === \"selected\" && this.selectedObjectsIds.length === 0) {\n return this._componentLocale.objCount.selected.none;\n } else if (type === \"selected\" && this.selectedObjectsIds.length === 1) {\n return `1 ${this._componentLocale.objCount.selected.one}`;\n } else if (type === \"selected\" && this.selectedObjectsIds.length > 1) {\n return `${this.selectedObjectsIds.length} ${this._componentLocale.objCount.selected.many}`;\n } else if (type === \"matching\" && this.objects.length === 0) {\n return this._componentLocale.objCount.matching.none;\n } else if (type === \"matching\" && this.objects.length === 1) {\n return `1 ${this._componentLocale.objCount.matching.one}`;\n } else {\n // hopefully: type === \"matching\" && this.objects.length > 1\n return `${this.objects.length} ${this._componentLocale.objCount.matching.many}`;\n }\n };\n\n // 9.LOCAL METHODS -> RENDER//\n\n private renderFilter = (): Element => {\n return (\n <div\n part=\"filters-container\"\n class={{\n \"filter-grid\": true,\n \"filter-grid--no-title\": !this.displayTitle\n }}\n slot=\"header\"\n >\n <gxg-form-text\n label-position=\"above\"\n label={this._componentLocale.filter.pattern}\n ref={(el: HTMLGxgFormTextElement) =>\n (this.filterPatternEl = el as HTMLGxgFormTextElement)\n }\n value={this.patternValue}\n class=\"pattern\"\n part=\"filter-pattern\"\n ></gxg-form-text>\n\n <gxg-combo-box\n disable-filter\n label={this._componentLocale.filter.type}\n value={this.defaultType}\n disabled={!this.types}\n display-validation-styles\n display-validation-message\n ref={(el: HTMLGxgComboBoxElement) =>\n (this.filterTypeEl = el as HTMLGxgComboBoxElement)\n }\n class=\"type\"\n part=\"filter-type\"\n >\n {renderComboItems(this.types ?? [])}\n </gxg-combo-box>\n\n <gxg-combo-box\n disable-filter\n label={this._componentLocale.filter.category}\n value={this.defaultCategory}\n disabled={!this.categories}\n display-validation-styles\n display-validation-message\n ref={(el: HTMLGxgComboBoxElement) =>\n (this.filterCategoryEl = el as HTMLGxgComboBoxElement)\n }\n class=\"category\"\n part=\"filter-category\"\n >\n {renderComboItems(this.categories ?? [])}\n </gxg-combo-box>\n\n <gx-ide-entity-selector\n label={this._componentLocale.filter.module}\n label-position=\"above\"\n value={this.defaultModule}\n defaultValue={this.defaultModule}\n selectEntityCallback={this.selectModuleCallback}\n ref={(el: HTMLGxIdeEntitySelectorElement) =>\n (this.filterModuleEl = el as HTMLGxIdeEntitySelectorElement)\n }\n class=\"module-folder\"\n ></gx-ide-entity-selector>\n\n <div class=\"modified-row\">\n <gxg-form-checkbox\n label={this._componentLocale.filter.modified}\n class=\"align-center\"\n ref={(el: HTMLGxgFormCheckboxElement) =>\n (this.filterModifiedEl = el as HTMLGxgFormCheckboxElement)\n }\n part=\"filter-modified\"\n ></gxg-form-checkbox>\n\n <div class=\"modified-row__inner-wrapper\">\n <gxg-combo-box\n class={{\n \"gxi-hidden\": !this.filterModified,\n \"combo-modified\": true\n }}\n disable-filter\n value={this.filterAfterType}\n display-validation-styles\n display-validation-message\n ref={(el: HTMLGxgComboBoxElement) =>\n (this.filterAfterTypeEl = el as HTMLGxgComboBoxElement)\n }\n part=\"filter-after-type\"\n >\n {renderComboItems([\n {\n id: FILTER_AFTER.NONE,\n label: this._componentLocale.filter.afterNone,\n value: FILTER_AFTER.NONE\n },\n {\n id: FILTER_AFTER.DATE_TIME,\n label: this._componentLocale.filter[FILTER_AFTER.DATE_TIME],\n value: FILTER_AFTER.DATE_TIME\n },\n {\n id: FILTER_AFTER.IMPORT,\n label: this._componentLocale.filter[FILTER_AFTER.IMPORT],\n value: FILTER_AFTER.IMPORT\n },\n {\n id: FILTER_AFTER.LAST_BUILD,\n label: this._componentLocale.filter[FILTER_AFTER.LAST_BUILD],\n value: FILTER_AFTER.LAST_BUILD\n }\n ])}\n </gxg-combo-box>\n\n <gxg-form-text\n class={{\n \"gxi-hidden\": !this.filterModified,\n \"user\": true\n }}\n label-position=\"start\"\n label={this._componentLocale.filter.user}\n max-width=\"150px\"\n ref={(el: HTMLGxgFormTextElement) =>\n (this.filterUserEl = el as HTMLGxgFormTextElement)\n }\n part=\"filter-user\"\n ></gxg-form-text>\n\n <div\n class={{\n \"date-time\": true,\n \"gxi-hidden\":\n !this.filterModified ||\n this.filterAfterType !== FILTER_AFTER.DATE_TIME\n }}\n part=\"filter-datetime\"\n >\n <gxg-label label-position=\"start\">\n {this._componentLocale.filter.dateTime}\n </gxg-label>\n <gxg-date-picker\n ref={(el: HTMLGxgDatePickerElement) =>\n (this.filterModifiedDateEl = el as HTMLGxgDatePickerElement)\n }\n class=\"date-time\"\n ></gxg-date-picker>\n </div>\n </div>\n </div>\n </div>\n );\n };\n\n private renderObjects = (): Element => {\n return (\n <gxg-grid ellipsis-cell-wrapper noBorder>\n <ch-grid\n rowSelectionMode={this.multiSelection ? \"multiple\" : \"single\"}\n ref={(el: HTMLChGridElement) => (this.chGridEl = el)}\n onKeyDown={this.chGridKeyDownHandler}\n part=\"ch-grid-objects\"\n >\n <ch-grid-columnset>\n <ch-grid-column\n column-name-position=\"text\"\n settingable={false}\n size={gridCommon.colSize.auto}\n ></ch-grid-column>\n <ch-grid-column\n column-name={this._componentLocale.tableHead.name}\n column-name-position=\"text\"\n settingable={false}\n size={gridCommon.colSize.auto}\n ></ch-grid-column>\n <ch-grid-column\n column-name={this._componentLocale.tableHead.type}\n column-name-position=\"text\"\n settingable={false}\n size={gridCommon.colSize.auto}\n ></ch-grid-column>\n <ch-grid-column\n column-name={this._componentLocale.tableHead.module}\n column-name-position=\"text\"\n settingable={false}\n size={gridCommon.colSize.auto}\n ></ch-grid-column>\n <ch-grid-column\n column-name={this._componentLocale.tableHead.description}\n column-name-position=\"text\"\n settingable={false}\n size={gridCommon.colSize.common}\n ></ch-grid-column>\n <ch-grid-column\n column-name={this._componentLocale.tableHead.modifiedDate}\n column-name-position=\"text\"\n settingable={false}\n size={gridCommon.colSize.auto}\n ></ch-grid-column>\n <ch-grid-column\n column-name={this._componentLocale.tableHead.importDate}\n column-name-position=\"text\"\n settingable={false}\n size={gridCommon.colSize.auto}\n ></ch-grid-column>\n </ch-grid-columnset>\n {this.objects\n .sort((a, b) => {\n const nameA = a.name.toLowerCase(),\n nameB = b.name.toLowerCase();\n if (nameA < nameB) {\n return -1;\n }\n if (nameA > nameB) {\n return 1;\n }\n return 0;\n })\n .map((obj: ObjectData) => (\n <ch-grid-row\n rowid={obj.id}\n onDblClick={this.openSelectionCallbackHandler}\n >\n <ch-grid-cell>\n <span class=\"cell-wrapper\">\n <gxg-icon\n type={obj.icon}\n color=\"auto\"\n size=\"small\"\n ></gxg-icon>\n </span>\n </ch-grid-cell>\n <ch-grid-cell>\n <span class=\"cell-wrapper\"> {obj.name} </span>\n </ch-grid-cell>\n <ch-grid-cell>\n <span class=\"cell-wrapper\">{obj.type}</span>\n </ch-grid-cell>\n <ch-grid-cell>\n <span class=\"cell-wrapper\">{obj.module}</span>\n </ch-grid-cell>\n <ch-grid-cell>\n <span class=\"cell-wrapper\">{obj.description}</span>\n </ch-grid-cell>\n <ch-grid-cell>\n <span class=\"cell-wrapper\">{`${formatDate(\n obj.modifiedDate,\n \"date-time\"\n )}`}</span>\n </ch-grid-cell>\n <ch-grid-cell>\n <span class=\"cell-wrapper\">{`${formatDate(\n obj.importDate,\n \"date-time\"\n )}`}</span>\n </ch-grid-cell>\n </ch-grid-row>\n ))}\n </ch-grid>\n </gxg-grid>\n );\n };\n\n // 10.RENDER() FUNCTION //\n\n render(): void {\n return (\n <Host class=\"gx-ide-component\" onKeyPress={this.hostKeyPressHandler}>\n <div class=\"gx-ide-main-wrapper\">\n <gx-ide-container\n containerTitle={\n this.displayTitle ? this._componentLocale.componentName : null\n }\n noContentPadding\n noAboveFooterPadding\n noHeadingPadding\n headingPaddingTop\n noHeadingBorder\n slimmerFooter={config.gxIdeContainer.slimmerFooter}\n >\n {this.renderFilter()}\n {this.renderObjects()}\n\n <div class=\"objects-count\" slot=\"footer-above\">\n <gxg-text\n class=\"align-end\"\n part=\"objects-selected\"\n textAlign=\"center\"\n >\n {this.evaluateObjectsCount(\"selected\")}\n </gxg-text>\n <gxg-text\n class=\"align-end\"\n part=\"objects-matching\"\n textAlign=\"center\"\n >\n {this.evaluateObjectsCount(\"matching\")}\n </gxg-text>\n </div>\n\n {/* footer */}\n {/* button cancel */}\n <gxg-button\n type=\"outlined\"\n onClick={this.cancelCallbackHandler}\n part=\"gxg-button gxg-button--cancel\"\n slot=\"footer-end\"\n >\n {this._componentLocale.footer.btnCancel}\n </gxg-button>\n {/* button confirm */}\n <gxg-button\n type=\"primary-text-only\"\n onClick={this.openSelectionCallbackHandler}\n part=\"gxg-button gxg-button--ok\"\n slot=\"footer-end\"\n >\n {this._componentLocale.footer.btnConfirm}\n </gxg-button>\n {/* button new... */}\n <gxg-button\n type=\"secondary-text-icon\"\n icon=\"menus/new-object\"\n onClick={this.newObjectCallbackHandler}\n part=\"gxg-button gxg-button--new\"\n slot=\"footer-start\"\n >\n {this._componentLocale.footer.btnNew}\n </gxg-button>\n {/* button select all */}\n {this.multiSelection ? (\n <gxg-button\n type=\"secondary-text-only\"\n onClick={this.selectAll}\n part=\"gxg-button gxg-button--select-all\"\n slot=\"footer-start\"\n >\n {this._componentLocale.footer.btnSelectAll}\n </gxg-button>\n ) : null}\n </gx-ide-container>\n </div>\n <gxg-shortcuts\n src={this.shortcutsSrc}\n ref={(el: HTMLGxgShortcutsElement) =>\n (this.gxgShortcutsEl = el as HTMLGxgShortcutsElement)\n }\n ></gxg-shortcuts>\n {/* loader*/}\n {this.loader ? (\n <gxg-ide-loader\n cancelLabel={this._componentLocale.loader.cancelLabel}\n loaderTitle={this._componentLocale.loader.title}\n ref={el => (this.loaderEl = el as HTMLGxgIdeLoaderElement)}\n cancelCallback={this.loaderCancelCallbackHandler}\n ></gxg-ide-loader>\n ) : null}\n </Host>\n );\n }\n}\n\nexport type ObjectType = {\n id: string;\n name: string;\n icon?: string;\n};\n\nexport type NewObjectCallback = () => Promise<void>;\n\nexport type CancelCallback = () => Promise<void>;\n\nexport type SelectModuleCallback = () => Promise<EntityData | undefined>;\n\nexport type OpenSelectionCallback = (ids: string[]) => Promise<void>;\n\nexport type LoadCallback = (\n filters: ObjectFiltersData\n) => Promise<ObjectData[]>;\n\nexport type ObjectFiltersData = {\n pattern?: string;\n type: string;\n category?: string;\n module?: string;\n modifiedAfter?: string;\n modifiedBy?: string;\n modifiedDate?: Date;\n};\n\nexport type ObjectData = {\n id: string;\n icon: string;\n name: string;\n type: string;\n description: string;\n module: string;\n modifiedDate?: Date;\n importDate?: Date;\n};\n\nexport type ObjectSelectorFilterAfter =\n | typeof FILTER_AFTER.NONE\n | typeof FILTER_AFTER.DATE_TIME\n | typeof FILTER_AFTER.LAST_BUILD\n | typeof FILTER_AFTER.IMPORT;\n"],"mappings":"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"}
|