@genexus/genexus-ide-ui 1.0.60 → 1.0.61
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-bpm-app-declaration.cjs.entry.js +22 -2
- package/dist/cjs/gx-ide-bpm-app-declaration.cjs.entry.js.map +1 -1
- package/dist/cjs/gx-ide-references.cjs.entry.js +171 -146
- package/dist/cjs/gx-ide-references.cjs.entry.js.map +1 -1
- package/dist/cjs/loader.cjs.js +1 -1
- package/dist/collection/components/references/gx-ide-assets/references/langs/references.lang.en.json +8 -3
- package/dist/collection/components/references/gx-ide-assets/references/langs/references.lang.ja.json +7 -2
- package/dist/collection/components/references/gx-ide-assets/references/langs/references.lang.zh.json +7 -2
- package/dist/collection/components/references/helpers.js +26 -24
- package/dist/collection/components/references/helpers.js.map +1 -1
- package/dist/collection/components/references/references.css +32 -44
- package/dist/collection/components/references/references.js +197 -198
- package/dist/collection/components/references/references.js.map +1 -1
- package/dist/components/gx-ide-bpm-app-declaration.js +22 -2
- package/dist/components/gx-ide-bpm-app-declaration.js.map +1 -1
- package/dist/components/gx-ide-references.js +181 -163
- package/dist/components/gx-ide-references.js.map +1 -1
- package/dist/esm/genexus-ide-ui.js +1 -1
- package/dist/esm/gx-ide-bpm-app-declaration.entry.js +22 -2
- package/dist/esm/gx-ide-bpm-app-declaration.entry.js.map +1 -1
- package/dist/esm/gx-ide-references.entry.js +172 -147
- package/dist/esm/gx-ide-references.entry.js.map +1 -1
- 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/references/langs/references.lang.en.json +8 -3
- package/dist/genexus-ide-ui/gx-ide-assets/references/langs/references.lang.ja.json +7 -2
- package/dist/genexus-ide-ui/gx-ide-assets/references/langs/references.lang.zh.json +7 -2
- package/dist/genexus-ide-ui/{p-e3f234a8.entry.js → p-3d2bdcb9.entry.js} +249 -226
- package/dist/genexus-ide-ui/p-3d2bdcb9.entry.js.map +1 -0
- package/dist/genexus-ide-ui/{p-fce76974.entry.js → p-4fcde4d0.entry.js} +74 -57
- package/dist/genexus-ide-ui/p-4fcde4d0.entry.js.map +1 -0
- package/dist/types/components/references/helpers.d.ts +4 -7
- package/dist/types/components/references/references.d.ts +23 -71
- package/dist/types/components.d.ts +4 -31
- package/package.json +1 -1
- package/dist/cjs/render-suggest-4a569cbe.js +0 -28
- package/dist/cjs/render-suggest-4a569cbe.js.map +0 -1
- package/dist/components/render-suggest.js +0 -26
- package/dist/components/render-suggest.js.map +0 -1
- package/dist/esm/render-suggest-dac35d72.js +0 -26
- package/dist/esm/render-suggest-dac35d72.js.map +0 -1
- package/dist/genexus-ide-ui/p-5545d58d.js +0 -23
- package/dist/genexus-ide-ui/p-5545d58d.js.map +0 -1
- package/dist/genexus-ide-ui/p-e3f234a8.entry.js.map +0 -1
- package/dist/genexus-ide-ui/p-fce76974.entry.js.map +0 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"references.js","sourceRoot":"","sources":["../../../src/components/references/references.tsx"],"names":[],"mappings":"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","sourcesContent":["/* STENCIL IMPORTS */\nimport {\n Component,\n Host,\n h,\n Prop,\n Element,\n Event,\n EventEmitter,\n State,\n Watch,\n getAssetPath\n} from \"@stencil/core\";\n/* OTHER LIBRARIES IMPORTS */\nimport { TreeViewItemModel } from \"@genexus/chameleon-controls-library\";\nimport { TreeViewItemModelExtended } from \"@genexus/chameleon-controls-library\";\nimport {\n TextAlign,\n TextPadding,\n TextType\n} from \"@genexus/gemini/dist/types/components/text/text\";\nimport { MercuryBundles } from \"@genexus/mercury\";\n/* CUSTOM IMPORTS */\nimport { Locale } from \"../../common/locale\";\nimport { config } from \"../../common/config\";\nimport { SuggestItemSelectedEvent } from \"@genexus/chameleon-controls-library/dist/types/deprecated-components/suggest/suggest-list-item/ch-suggest-list-item\";\nimport { SuggestData } from \"@genexus/chameleon-controls-library/dist/types/deprecated-components/suggest/ch-suggest\";\nimport { renderSuggestLists } from \"../../common/render-suggest\";\nimport {\n convertObjectDataToSuggestData,\n convertReferenceDataToTreeViewData\n} from \"./helpers\";\n\nconst CSS_BUNDLES: MercuryBundles = [\n \"resets/box-sizing\",\n \"utils/form\",\n \"utils/layout\",\n \"utils/typography\",\n \"components/button\",\n \"components/checkbox\",\n \"components/edit\",\n \"components/tree-view\"\n];\n\n@Component({\n tag: \"gx-ide-references\",\n styleUrl: \"references.scss\",\n shadow: true,\n assetsDirs: [\"gx-ide-assets/references\"]\n})\nexport class GxIdeReferences {\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/references/shortcuts.json`\n );\n\n /**\n * The last SelectorCategoryData[] returned by selectorSourceCallback\n */\n private selectorCategoryData: SelectorCategoryData[] = [];\n\n // 2. REFERENCE TO ELEMENTS //\n\n @Element() el: HTMLGxIdeReferencesElement;\n private selectObjectSuggestEl!: HTMLChSuggestElement;\n\n // 3.STATE() VARIABLES //\n\n @State() referencedByTreeData: TreeViewItemModel[];\n @State() referencesToTreeData: TreeViewItemModel[];\n\n /**\n * Displays or hides the header-bottom section\n */\n @State() barHidden = false;\n\n /**\n * The objects suggestions that will appear on the suggest\n */\n @State() objectsSuggestions: SuggestData;\n\n // 4.PUBLIC PROPERTY API | WATCH'S //\n\n /**\n * If true it displays the component title on the header\n */\n @Prop() readonly displayTitle = false;\n\n /**\n * Currently selected object\n */\n @Prop({ mutable: true }) selectedObject?: ObjectData;\n @Watch(\"selectedObject\")\n selectedObjectHandler(newSelectedObject: ObjectData) {\n if (newSelectedObject.id) {\n /* update \"is referenced by*/\n this.loadReferencesHandler(newSelectedObject.id, false);\n /* update \"has references to*/\n this.loadReferencesHandler(newSelectedObject.id, true);\n }\n }\n\n /**\n * Callback invoked when user writes on object selector input, return possible options to show in autocomplete list\n */\n @Prop() readonly selectorSourceCallback?: SelectorSourceCallback;\n\n /**\n * Callback invoked when a node is expanded in any of the references panels\n */\n @Prop() readonly loadReferencesCallback?: LoadReferencesCallback;\n\n /**\n * Callback invoked when user wants to open an object\n */\n @Prop() readonly openObjectCallback?: OpenObjectCallback;\n\n /**\n * Callback invoked when user wants to show object selection dialog\n */\n @Prop() readonly openSelectorDialogCallback?: OpenSelectorDialogCallback;\n\n /**\n * Callback invoked when any item from the references panels is selected\n */\n @Prop() readonly selectReferenceCallback?: SelectReferenceCallback;\n\n // 5.EVENTS (EMIT) //\n\n /**\n * Gets fired when the component has rendered for the first time.\n */\n @Event() componentDidRenderFirstTime: EventEmitter<string>;\n\n // 6.COMPONENT LIFECYCLE EVENTS //\n\n async componentWillLoad() {\n this._componentLocale = await Locale.getComponentStrings(this.el);\n this.evaluateInitialReferenceData();\n }\n\n componentDidLoad() {\n this.selectObjectSuggestEl.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 // 9.LOCAL METHODS //\n\n /**\n * It attaches on the ch-suggest, the \"itemSelected\" event triggered by the ch-suggest-list-item. This helps set the new 'selectedObject'.\n */\n private selectObjectSelectionChanged = (\n e: CustomEvent<SuggestItemSelectedEvent>\n ) => {\n const categoryIndex = e.detail.indexes.listIndex;\n const itemIndex = e.detail.indexes.itemIndex;\n this.selectedObject =\n this.selectorCategoryData[categoryIndex].items[itemIndex];\n };\n\n /**\n * This handler gets fired every time the value of the 'Select Object' ch-suggest changes.\n */\n private selectObjectValueChangedHandler = async (e: CustomEvent<string>) => {\n const value = e.detail;\n this.selectorSourceCallback(value)\n .then(result => {\n this.selectorCategoryData = result;\n /* show suggestions*/\n this.objectsSuggestions = convertObjectDataToSuggestData(result);\n })\n .catch(() => {\n // to do\n });\n };\n\n private openObjectCallbackHandler = async () => {\n this.openObjectCallback(this.selectedObject.id);\n /* Returns an empty Promise*/\n };\n\n /**\n * handler that gets fired when the use clicks on the ch-suggest button (...)\n */\n private openSelectorDialogCallbackHandler = async () => {\n this.openSelectorDialogCallback()\n .then(result => {\n this.selectedObject = result;\n })\n .catch(() => {\n /* to do */\n });\n };\n\n /**\n * It evaluates if loadReferencesCallback should be called, depending wether there is or not an actual selected object.\n */\n private evaluateInitialReferenceData = () => {\n if (this.selectedObject) {\n this.selectedObjectHandler(this.selectedObject);\n }\n };\n\n /**\n * This method invokes 'loadReferencesCallback' callback for 'Is Referenced By' and 'Has References To' panels. The second parameter \"to\" indicates if loadReferencesCallback callback should be called for \"has references to\" or \"is references by\"\n */\n private loadReferencesHandler = async (id: string, to = false) => {\n if (this.loadReferencesCallback) {\n this.loadReferencesCallback(id, to).then(result => {\n if (to) {\n this.referencesToTreeData =\n convertReferenceDataToTreeViewData(result);\n } else {\n this.referencedByTreeData =\n convertReferenceDataToTreeViewData(result);\n }\n });\n }\n };\n\n /**\n * It hides/show the bar (The header bottom section).\n */\n private hideBarButtonClickedHandler = () => {\n this.barHidden = !this.barHidden;\n };\n\n private referencesLazyLoadCallbackHandler =\n (ref: \"references-to\" | \"referenced-by\") =>\n async (treeItemId: string): Promise<TreeViewItemModel[]> => {\n if (this.loadReferencesCallback) {\n const to = ref === \"references-to\";\n const referencesLazyChildren = await this.loadReferencesCallback(\n treeItemId,\n to\n );\n const treeLazyChildren = convertReferenceDataToTreeViewData(\n referencesLazyChildren\n );\n return new Promise(resolve => {\n resolve(treeLazyChildren);\n });\n }\n return new Promise(resolve => {\n resolve([]);\n });\n };\n\n private referenceSelectedHandler = (\n event: CustomEvent<TreeViewItemModelExtended[]>\n ) => {\n if (this.selectReferenceCallback) {\n const selectedItems: string[] = event.detail.map(item => item.item.id);\n this.selectReferenceCallback(selectedItems[0]);\n // returns void\n }\n };\n\n private referencesItemOpenReferenceCallback = (\n itemOpened: CustomEvent<{ id: string; leaf: boolean; metadata: string }>\n ) => {\n const itemId = itemOpened.detail.id;\n if (this.openObjectCallback) {\n this.openObjectCallback(itemId);\n // returns void\n }\n };\n\n // 10.RENDER() FUNCTION //\n\n render() {\n return (\n <Host class=\"gx-ide-component\">\n <ch-theme model={CSS_BUNDLES}></ch-theme>\n <div class=\"gx-ide-main-wrapper\">\n <gx-ide-container\n displayBorderBottom\n noContentPadding\n containerTitle={\n this.displayTitle ? this._componentLocale.componentName : null\n }\n >\n <header class=\"header\" slot=\"header\">\n <div class=\"header__top grid\">\n {/* select object */}\n <gxg-button\n icon=\"navigation/arrow-down\"\n type=\"secondary-icon-only\"\n class=\"hide-bar-button\"\n onClick={this.hideBarButtonClickedHandler}\n part=\"toggle-bar-button\"\n ></gxg-button>\n <gxg-label\n labelPosition=\"start\"\n class=\"suggest-label\"\n part=\"select-object-label\"\n >\n {this._componentLocale.header.selectObject}\n </gxg-label>\n <gxg-suggest>\n <ch-suggest\n value={this.selectedObject.name}\n onValueChanged={this.selectObjectValueChangedHandler}\n onSelectionChanged={this.selectObjectSelectionChanged}\n part=\"object-selector-suggest\"\n exportparts=\"dropdown:select-object-dropdown\"\n ref={el =>\n (this.selectObjectSuggestEl = el as HTMLChSuggestElement)\n }\n >\n {renderSuggestLists(this.objectsSuggestions)}\n </ch-suggest>\n </gxg-suggest>\n <gxg-button\n type=\"secondary-icon-only\"\n icon=\"gemini-tools/show-more-horizontal\"\n onClick={this.openSelectorDialogCallbackHandler}\n class=\"selector-dialog-button\"\n part=\"open-selector-dialog-button\"\n ></gxg-button>\n </div>\n <div\n class={{\n \"header__bottom\": true,\n \"header__bottom--hidden\": this.barHidden\n }}\n >\n <div class=\"outer-wrapper\">\n <div class=\"inner-wrapper\">\n <div class=\"inner-wrapper__left\">\n <gxg-icon\n type={this.selectedObject.icon}\n color=\"auto\"\n ></gxg-icon>\n <gxg-text\n padding=\"s\"\n type=\"text-link\"\n part=\"open-object-text-link\"\n onClick={this.openObjectCallbackHandler}\n >\n {`${this.selectedObject.name} : ${this.selectedObject.description}`}\n </gxg-text>\n </div>\n <div class=\"inner-wrapper__right gxi-hidden\">\n <gxg-form-checkbox\n id=\"references-by-type\"\n label=\"Group references by type\"\n required\n display-validation-styles\n part=\"references-type-checkbox\"\n ></gxg-form-checkbox>\n </div>\n </div>\n </div>\n </div>\n </header>\n\n <main class=\"main\">\n <gx-ide-container\n containerTitle={this._componentLocale.main.isReferencedBy}\n noContentPadding\n part=\"referenced-by-container\"\n contentBorderEnd\n titleType=\"secondary\"\n >\n {/* is referenced by*/}\n <div\n class={{\n \"reference-container\": true,\n \"reference-container--no-references\":\n !this.referencedByTreeData?.length\n }}\n >\n <ch-tree-view-render\n class={{\n \"gxi-hidden\": !this.referencedByTreeData?.length,\n \"tree-view\": true\n }}\n part=\"referenced-by-tree\"\n model={this.referencedByTreeData}\n lazyLoadTreeItemsCallback={this.referencesLazyLoadCallbackHandler(\n \"referenced-by\"\n )}\n onSelectedItemsChange={this.referenceSelectedHandler}\n dragDisabled={true}\n dropDisabled={true}\n onItemOpenReference={\n this.referencesItemOpenReferenceCallback\n }\n showLines=\"last\"\n ></ch-tree-view-render>\n {!this.referencedByTreeData?.length && (\n <gxg-text\n textAlign={\n config.gxgMessage.common.textAlign as TextAlign\n }\n padding={\n config.gxgMessage.common.textAlign as TextPadding\n }\n type={config.gxgMessage.common.type as TextType}\n maxWidth={config.gxgMessage.common.maxWidth}\n part=\"referenced-by-text\"\n class=\"gx-ide-message\"\n >\n {this.referencedByTreeData?.length === 0\n ? this._componentLocale.main.isReferencedByEmpty\n : this._componentLocale.main.isReferencedByError}\n </gxg-text>\n )}\n </div>\n </gx-ide-container>\n <gx-ide-container\n noContentPadding\n containerTitle={this._componentLocale.main.hasReferencesTo}\n part=\"references-to-container\"\n titleType=\"secondary\"\n >\n {/* has references to*/}\n <div\n class={{\n \"reference-container\": true,\n \"reference-container--no-references\":\n !this.referencesToTreeData?.length\n }}\n >\n <ch-tree-view-render\n class={{\n \"gxi-hidden\": !this.referencesToTreeData?.length,\n \"tree-view\": true\n }}\n part=\"referenced-to-tree\"\n model={this.referencesToTreeData}\n lazyLoadTreeItemsCallback={this.referencesLazyLoadCallbackHandler(\n \"references-to\"\n )}\n onSelectedItemsChange={this.referenceSelectedHandler}\n dragDisabled={true}\n dropDisabled={true}\n onItemOpenReference={\n this.referencesItemOpenReferenceCallback\n }\n showLines=\"last\"\n ></ch-tree-view-render>\n {!this.referencesToTreeData?.length && (\n <gxg-text\n textAlign={\n config.gxgMessage.common.textAlign as TextAlign\n }\n padding={\n config.gxgMessage.common.textAlign as TextPadding\n }\n type={config.gxgMessage.common.type as TextType}\n maxWidth={config.gxgMessage.common.maxWidth}\n part=\"references-to-text\"\n class=\"gx-ide-message\"\n >\n {this.referencesToTreeData?.length === 0\n ? this._componentLocale.main.hasReferencesEmpty\n : this._componentLocale.main.hasReferencesToError}\n </gxg-text>\n )}\n </div>\n </gx-ide-container>\n </main>\n </gx-ide-container>\n </div>\n <gxg-shortcuts src={this.shortcutsSrc}></gxg-shortcuts>\n </Host>\n );\n }\n}\n\nexport type SelectorCategoryData = {\n name: string;\n items: ObjectData[];\n};\n\nexport type ObjectData = {\n id: string;\n typeName: string;\n icon: string;\n name: string;\n description?: string;\n};\n\nexport type ReferenceData = ObjectData & {\n hasChildren: boolean;\n items?: ReferenceData[];\n};\n\nexport type SelectorSourceCallback = (\n prefix: string\n) => Promise<SelectorCategoryData[]>;\n\nexport type LoadReferencesCallback = (\n id: string,\n to: boolean\n) => Promise<ReferenceData[]>;\n\nexport type OpenObjectCallback = (id: string) => Promise<void>;\nexport type OpenSelectorDialogCallback = () => Promise<ObjectData | undefined>;\nexport type SelectReferenceCallback = (id: string) => Promise<void>;\n"]}
|
|
1
|
+
{"version":3,"file":"references.js","sourceRoot":"","sources":["../../../src/components/references/references.tsx"],"names":[],"mappings":"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","sourcesContent":["/* eslint-disable @stencil-community/own-props-must-be-private */\n/* STENCIL IMPORTS */\nimport {\n Component,\n Element,\n getAssetPath,\n Host,\n h,\n Prop,\n State,\n Watch\n} from \"@stencil/core\";\n/* OTHER LIBRARIES IMPORTS */\nimport { getIconPath, MercuryBundles } from \"@genexus/mercury\";\nimport {\n ChComboBoxRenderCustomEvent,\n ComboBoxModel,\n TreeViewItemModel,\n TreeViewItemModelExtended\n} from \"@genexus/chameleon-controls-library\";\n/* CUSTOM IMPORTS */\nimport { Locale } from \"../../common/locale\";\nimport {\n convertReferenceDataToTreeViewData,\n mapSelectorCategoryDataToComboBoxModel\n} from \"./helpers\";\n\nconst CSS_BUNDLES: MercuryBundles = [\n \"resets/box-sizing\",\n \"components/button\",\n \"components/pills\",\n \"components/combo-box\",\n \"components/icon\",\n \"components/checkbox\",\n \"components/tree-view\",\n \"utils/spacing\",\n \"utils/layout\",\n \"utils/form\",\n \"utils/typography\"\n];\n\nconst GEMINI_TOOLS_SHOW_MORE_HORIZONTAL = getIconPath({\n category: \"gemini-tools\",\n name: \"show-more-horizontal\",\n colorType: \"primary\"\n});\nconst NAVIGATION_ARROW_DOWN_SKY_BLUE = getIconPath({\n category: \"navigation\",\n name: \"arrow-down-skyblue\",\n colorType: \"primary\"\n});\n\nconst SUGGEST_OPTIONS = {\n alreadyProcessed: true,\n autoExpand: false,\n hideMatchesAndShowNonMatches: false,\n highlightMatchedItems: false,\n matchCase: false,\n regularExpression: false,\n strict: false,\n renderActiveItemIconOnExpand: true\n};\n\n@Component({\n tag: \"gx-ide-references\",\n styleUrl: \"references.scss\",\n shadow: true,\n assetsDirs: [\"gx-ide-assets/references\"]\n})\nexport class GxIdeReferences {\n #objectDataMap: objectDataMap = new Map();\n #shortcutsSrc = getAssetPath(`./gx-ide-assets/references/shortcuts.json`);\n #_componentLocale: any;\n\n @Element() el: HTMLGxIdeReferencesElement;\n #selectObjectSuggestEl!: HTMLChComboBoxRenderElement;\n\n /**\n * Displays or hides the header-bottom section\n */\n @State() barHidden = false;\n\n /**\n * Objects suggestions that will appear on the suggest\n */\n @State() objectsSuggestions: ComboBoxModel;\n\n @State() referencedByTreeData: TreeViewItemModel[];\n\n @State() referencesToTreeData: TreeViewItemModel[];\n\n /**\n * Callback invoked when a node is expanded in any references panels\n */\n @Prop() readonly loadReferencesCallback?: LoadReferencesCallback;\n\n /**\n * Callback invoked when user wants to open an object\n */\n @Prop() readonly openObjectCallback?: OpenObjectCallback;\n\n /**\n * Callback invoked when user wants to show object selection dialog\n */\n @Prop() readonly openSelectorDialogCallback?: OpenSelectorDialogCallback;\n\n /**\n * Callback invoked when any item from the references panels is selected\n */\n @Prop() readonly selectReferenceCallback?: SelectReferenceCallback;\n\n /**\n * Callback invoked when user writes on object selector input\n */\n @Prop() readonly selectorSourceCallback?: SelectorSourceCallback;\n\n /**\n * Currently selected object\n */\n @Prop({ mutable: true }) selectedObject?: ObjectData;\n\n @Watch(\"selectedObject\")\n selectedObjectChanged(newSelectedObject: ObjectData) {\n if (newSelectedObject?.id) {\n /* update \"is referenced by*/\n this.#loadReferencesHandler(newSelectedObject.id, false);\n /* update \"has references to*/\n this.#loadReferencesHandler(newSelectedObject.id, true);\n }\n }\n\n componentDidLoad() {\n this.#selectObjectSuggestEl.focus();\n }\n\n async componentWillLoad() {\n this.#_componentLocale = await Locale.getComponentStrings(this.el);\n this.#evaluateInitialReferenceData();\n }\n\n /**\n * Evaluates whether to call loadReferencesCallback based on the presence of a selected object.\n */\n #evaluateInitialReferenceData = () => {\n if (this.selectedObject) {\n this.selectedObjectChanged(this.selectedObject);\n }\n };\n\n /**\n * Hides or shows the bar (the bottom section of the header).\n */\n #hideBarButtonClickedHandler = () => {\n this.barHidden = !this.barHidden;\n };\n\n /**\n * Invokes 'loadReferencesCallback' for 'Is Referenced By' and 'Has References To' panels.\n */\n #loadReferencesHandler = async (id: string, to = false) => {\n if (this.loadReferencesCallback) {\n this.loadReferencesCallback(id, to).then(result => {\n if (to) {\n this.referencesToTreeData =\n convertReferenceDataToTreeViewData(result);\n } else {\n this.referencedByTreeData =\n convertReferenceDataToTreeViewData(result);\n }\n });\n }\n };\n\n #openObjectCallbackHandler = () => {\n // Returns an empty Promise\n this.openObjectCallback(this.selectedObject?.id);\n };\n\n /**\n * Fired when user clicks the ch-suggest button (...)\n */\n #openSelectorDialogCallbackHandler = async () => {\n const objectDataResult = await this.openSelectorDialogCallback();\n if (objectDataResult) {\n this.selectedObject = objectDataResult;\n }\n };\n\n #referenceSelectedHandler = (\n event: CustomEvent<TreeViewItemModelExtended[]>\n ) => {\n if (this.selectReferenceCallback) {\n const selectedItems: string[] = event.detail.map(item => item.item.id);\n this.selectReferenceCallback(selectedItems[0]);\n // returns void\n }\n };\n\n #referencesItemOpenReferenceCallback = (\n itemOpened: CustomEvent<{ id: string; leaf: boolean; metadata: string }>\n ) => {\n const itemId = itemOpened.detail.id;\n if (this.openObjectCallback) {\n this.openObjectCallback(itemId);\n // returns void\n }\n };\n\n #referencesLazyLoadCallbackHandler =\n (ref: \"references-to\" | \"referenced-by\") =>\n async (treeItemId: string): Promise<TreeViewItemModel[]> => {\n if (this.loadReferencesCallback) {\n const to = ref === \"references-to\";\n const referencesLazyChildren = await this.loadReferencesCallback(\n treeItemId,\n to\n );\n const treeLazyChildren = convertReferenceDataToTreeViewData(\n referencesLazyChildren\n );\n return new Promise(resolve => {\n resolve(treeLazyChildren);\n });\n }\n return new Promise(resolve => {\n resolve([]);\n });\n };\n\n #selectObjectChangedHandler = (\n event: ChComboBoxRenderCustomEvent<string> | InputEvent\n ) => {\n const newSelectedValue = event.detail as string;\n\n const objectData = this.#objectDataMap.get(newSelectedValue);\n if (objectData) {\n this.selectedObject = objectData;\n }\n };\n\n #selectObjectInputHandler = (\n event: ChComboBoxRenderCustomEvent<string> | InputEvent\n ) => {\n // WA to know if the event was from searching on the input or an item selection.\n // const partValue = (e.target as HTMLElement).getAttribute(\"part\");\n const typedValue = event.detail as string;\n if (this.selectorSourceCallback) {\n this.selectorSourceCallback(typedValue).then(\n selectorCategoryDataArray => {\n // update map\n this.#objectDataMap.clear();\n selectorCategoryDataArray?.forEach(selectorCategoryData => {\n selectorCategoryData.items.forEach(objectData => {\n this.#objectDataMap.set(objectData.description, {\n id: objectData.id,\n typeName: objectData.typeName,\n icon: objectData.icon,\n name: objectData.name,\n description: objectData.description\n });\n });\n });\n\n this.objectsSuggestions = mapSelectorCategoryDataToComboBoxModel(\n selectorCategoryDataArray\n );\n }\n );\n }\n };\n\n render() {\n return (\n <Host class=\"widget\">\n <ch-theme model={CSS_BUNDLES}></ch-theme>\n\n <section class=\"section\">\n <header class=\"header control-header-with-border spacing-body-inline spacing-body-block-start\">\n <div class=\"header__top field-group\">\n <button\n type=\"button\"\n class=\"button-tertiary button-icon-only\"\n aria-label={this.#_componentLocale.header.toggleBar}\n part=\"toggle-bar-button\"\n onClick={this.#hideBarButtonClickedHandler}\n >\n <ch-image\n class=\"icon-md\"\n src={NAVIGATION_ARROW_DOWN_SKY_BLUE}\n containerRef={this.el}\n ></ch-image>\n </button>\n\n <div class=\"field field-inline\">\n <label\n // select object\n class=\"label\"\n part=\"select-object-label\"\n htmlFor=\"object-selector-suggest\"\n >\n {this.#_componentLocale.header.selectObject}\n </label>\n <ch-combo-box-render\n accessibleName={this.#_componentLocale.header.selectObject}\n class=\"combo-box\"\n model={this.objectsSuggestions}\n suggest\n onInput={this.#selectObjectInputHandler}\n onChange={this.#selectObjectChangedHandler}\n value={this.selectedObject?.name}\n part=\"object-selector-suggest\"\n suggestOptions={SUGGEST_OPTIONS}\n ref={el =>\n (this.#selectObjectSuggestEl =\n el as HTMLChComboBoxRenderElement)\n }\n ></ch-combo-box-render>\n </div>\n\n <button\n type=\"button\"\n class=\"button-tertiary button-icon-only\"\n aria-label={this.#_componentLocale.header.openSelectorButton}\n onClick={this.#openSelectorDialogCallbackHandler}\n part=\"open-selector-dialog-button\"\n >\n <ch-image\n class=\"icon-md\"\n src={GEMINI_TOOLS_SHOW_MORE_HORIZONTAL}\n containerRef={this.el}\n ></ch-image>\n </button>\n </div>\n\n <div\n class={{\n \"header__bottom\": true,\n \"header__bottom--hidden\": this.barHidden\n }}\n >\n <div class=\"outer-wrapper\">\n <div class=\"inner-wrapper\">\n <div class=\"inner-wrapper__left\">\n <ch-image\n class=\"icon-md\"\n src={this.selectedObject.icon}\n containerRef={this.el}\n ></ch-image>\n <a\n class=\"text-link\"\n onClick={this.#openObjectCallbackHandler}\n part=\"open-object-text-link\"\n aria-label={\n this.#_componentLocale.main.selectedObjectLink\n }\n >\n {`${this.selectedObject?.name} : ${this.selectedObject?.description}`}\n </a>\n </div>\n {/* <div class=\"inner-wrapper__right\">\n TODO: Add this feature \"Group References by Type\".\n <ch-checkbox\n class=\"checkbox\"\n id=\"references-by-type\"\n part=\"references-type-checkbox\"\n checkedValue=\"referencesByType\"\n caption=\"Group references by type\"\n ></ch-checkbox>\n </div> */}\n </div>\n </div>\n </div>\n </header>\n <div class=\"main\">\n <section class=\"section__referenced-by\">\n <h2 class=\"control-header control-header-with-border control-header__referenced-by heading-5 text-align-center spacing-body-inline\">\n {this.#_componentLocale.main.isReferencedBy}\n </h2>\n\n <div\n // is referenced by\n class=\"main__referenced-by spacing-body-block-start spacing-body-block-end\"\n >\n <ch-tree-view-render\n class={{\n \"gxi-hidden\": !this.referencedByTreeData?.length,\n \"tree-view\": true\n }}\n part=\"referenced-by-tree\"\n model={this.referencedByTreeData}\n aria-label={\n this.#_componentLocale.main.referencedByTreeAccessible\n }\n lazyLoadTreeItemsCallback={this.#referencesLazyLoadCallbackHandler(\n \"referenced-by\"\n )}\n onSelectedItemsChange={this.#referenceSelectedHandler}\n dragDisabled={true}\n dropDisabled={true}\n onItemOpenReference={\n this.#referencesItemOpenReferenceCallback\n }\n showLines=\"last\"\n ></ch-tree-view-render>\n {!this.referencedByTreeData?.length && (\n <gx-ide-empty-state\n stateTitle={\n this.referencedByTreeData?.length === 0\n ? this.#_componentLocale.main.isReferencedByEmpty\n : this.#_componentLocale.main.isReferencedByError\n }\n ></gx-ide-empty-state>\n )}\n </div>\n </section>\n\n <section class=\"section__references-to\">\n <h2 class=\"control-header control-header-with-border control-header__references-to heading-5 text-align-center spacing-body-inline\">\n {this.#_componentLocale.main.hasReferencesTo}\n </h2>\n\n <div\n // has references to\n class=\"main__references-to spacing-body-block-start spacing-body-block-end\"\n >\n <ch-tree-view-render\n class={{\n \"gxi-hidden\": !this.referencesToTreeData?.length,\n \"tree-view\": true\n }}\n part=\"referenced-to-tree\"\n model={this.referencesToTreeData}\n aria-label={\n this.#_componentLocale.main.referencesToTreeAccessible\n }\n lazyLoadTreeItemsCallback={this.#referencesLazyLoadCallbackHandler(\n \"references-to\"\n )}\n onSelectedItemsChange={this.#referenceSelectedHandler}\n dragDisabled={true}\n dropDisabled={true}\n onItemOpenReference={\n this.#referencesItemOpenReferenceCallback\n }\n showLines=\"last\"\n ></ch-tree-view-render>\n {!this.referencesToTreeData?.length && (\n <gx-ide-empty-state\n stateTitle={\n this.referencesToTreeData?.length === 0\n ? this.#_componentLocale.main.hasReferencesEmpty\n : this.#_componentLocale.main.hasReferencesToError\n }\n ></gx-ide-empty-state>\n )}\n </div>\n </section>\n </div>\n </section>\n\n <ch-shortcuts src={this.#shortcutsSrc}></ch-shortcuts>\n </Host>\n );\n }\n}\n\nexport type LoadReferencesCallback = (\n id: string,\n to: boolean\n) => Promise<ReferenceData[]>;\n\nexport type ObjectData = {\n id: string;\n typeName: string;\n icon: string;\n name: string;\n description?: string;\n};\n\nexport type OpenObjectCallback = (id: string) => Promise<void>;\n\nexport type OpenSelectorDialogCallback = () => Promise<ObjectData | undefined>;\n\nexport type ReferenceData = ObjectData & {\n hasChildren: boolean;\n items?: ReferenceData[];\n};\n\nexport type SelectReferenceCallback = (id: string) => Promise<void>;\n\nexport type SelectorCategoryData = {\n name: string;\n items: ObjectData[];\n};\n\nexport type SelectorSourceCallback = (\n prefix: string\n) => Promise<SelectorCategoryData[]>;\n\nexport type objectDataMap = Map<string, ObjectData>;\n"]}
|
|
@@ -1,11 +1,31 @@
|
|
|
1
|
-
import { proxyCustomElement, HTMLElement, createEvent, getAssetPath,
|
|
1
|
+
import { h, proxyCustomElement, HTMLElement, createEvent, getAssetPath, Host } from '@stencil/core/internal/client';
|
|
2
2
|
import { L as Locale } from './locale.js';
|
|
3
3
|
import { c as config } from './config.js';
|
|
4
|
-
import { r as renderSuggestLists } from './render-suggest.js';
|
|
5
4
|
import { r as renderComboItems } from './render-combo-items.js';
|
|
6
5
|
import { d as defineCustomElement$3 } from './container.js';
|
|
7
6
|
import { d as defineCustomElement$2 } from './title.js';
|
|
8
7
|
|
|
8
|
+
/* eslint-disable @typescript-eslint/no-use-before-define */
|
|
9
|
+
const renderSuggestLists = (suggestData) => {
|
|
10
|
+
if (suggestData === null || suggestData === void 0 ? void 0 : suggestData.suggestLists.length) {
|
|
11
|
+
return suggestData.suggestLists.map((list) => {
|
|
12
|
+
return (h("ch-suggest-list", { label: list.label }, list.items.map((item) => {
|
|
13
|
+
return renderSuggestListsItem(item);
|
|
14
|
+
})));
|
|
15
|
+
});
|
|
16
|
+
}
|
|
17
|
+
return [];
|
|
18
|
+
};
|
|
19
|
+
const renderSuggestListsItem = (suggestItem) => {
|
|
20
|
+
return (h("ch-suggest-list-item", { value: suggestItem.value }, [
|
|
21
|
+
suggestItem.description || suggestItem.value,
|
|
22
|
+
suggestItem.icon && renderIcon(suggestItem.icon)
|
|
23
|
+
]));
|
|
24
|
+
};
|
|
25
|
+
const renderIcon = (iconName) => {
|
|
26
|
+
return h("gxg-icon", { color: "auto", type: iconName, slot: "icon" });
|
|
27
|
+
};
|
|
28
|
+
|
|
9
29
|
/* References Types*/
|
|
10
30
|
/**
|
|
11
31
|
* @description This function converts string[] to SuggestItemData[]
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"file":"gx-ide-bpm-app-declaration.js","mappings":"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","names":["GxIdeBpmAppDeclaration"],"sources":["src/components/bpm/application-declaration/helpers.ts","src/components/bpm/application-declaration/bpm-app-declaration.scss?tag=gx-ide-bpm-app-declaration&encapsulation=shadow","src/components/bpm/application-declaration/bpm-app-declaration.tsx"],"sourcesContent":["/* Ch Suggest*/\nimport { SuggestItemData } from \"@genexus/chameleon-controls-library/dist/types/deprecated-components/suggest/suggest-list-item/ch-suggest-list-item\";\nimport { SuggestListData } from \"@genexus/chameleon-controls-library/dist/types/deprecated-components/suggest/suggest-list/ch-suggest-list\";\nimport { SuggestData } from \"@genexus/chameleon-controls-library/dist/types/deprecated-components/suggest/ch-suggest\";\n\n/* References Types*/\n\n/**\n * @description This function converts string[] to SuggestItemData[]\n */\nexport const convertSuggestedApplicationsToSuggestItems = (\n suggestedApplications: string[]\n): SuggestData => {\n const suggestData: SuggestData = {\n suggestItems: null,\n suggestLists: []\n };\n if (suggestedApplications.length) {\n const suggestList: SuggestListData = {\n label: \"Applications\",\n items: []\n };\n suggestedApplications.forEach((suggestedApplication: string) => {\n const suggestItem: SuggestItemData = {\n value: suggestedApplication,\n description: null,\n icon: null\n };\n suggestList.items.push(suggestItem);\n });\n suggestData.suggestLists.push(suggestList);\n }\n return suggestData;\n};\n","@import \"../../../global/gx-ide-common.scss\";\n@import \"../../../global/gx-ide-mixins.scss\";\n@import \"../../../../node_modules/@genexus/mercury/dist/mercury.scss\";\n\n:host {\n display: block;\n .header {\n display: flex;\n flex-direction: column;\n gap: var(--gx-ide-grid-row-gap);\n &__first-row {\n display: flex;\n flex-direction: row;\n gap: var(--gx-ide-grid-column-gap);\n .application-suggest {\n flex: 1;\n }\n }\n }\n /*data mappings*/\n .data-mappings {\n display: grid;\n }\n .row-button {\n display: flex;\n align-items: center;\n }\n}\n\n@include tabular-grid-cell-layout(\n $tabular-grid-selector: \".tabular-grid-application-declaration\",\n $tabular-grid-cell-node-type: \"element\",\n $tabular-grid-affected-columns-nth-list: (\n 2\n )\n);\n\n// temporary styles until que update controls with chameleon + mercury:\n\ngx-ide-container::part(content) {\n display: grid;\n}\n\ngxg-combo-box::part(input-input) {\n border: none;\n background-color: transparent;\n top: 2px;\n}\n\n// WA\n.tabular-grid-cell:nth-child(2) {\n padding: 0 !important;\n display: grid;\n align-items: stretch;\n justify-content: stretch;\n --ds-focus-border-width: none;\n}\n.tabular-grid-cell:nth-child(3) {\n padding: 0 !important;\n align-items: center !important;\n justify-content: center !important;\n}\n.tabular-grid {\n overflow: auto;\n}\n","/* STENCIL IMPORTS */\nimport {\n Component,\n Host,\n h,\n Prop,\n State,\n Element,\n Event,\n EventEmitter,\n Watch,\n getAssetPath\n} from \"@stencil/core\";\n/* OTHER LIBRARIES IMPORTS */\nimport { MercuryBundles } from \"@genexus/mercury\";\n/* CUSTOM IMPORTS */\nimport { Locale } from \"../../../common/locale\";\nimport { config } from \"../../../common/config\";\nimport { SuggestData } from \"@genexus/chameleon-controls-library/dist/types/deprecated-components/suggest/ch-suggest\";\nimport { renderSuggestLists } from \"../../../common/render-suggest\";\nimport { renderComboItems } from \"../../../common/render-combo-items\";\nimport { convertSuggestedApplicationsToSuggestItems } from \"./helpers\";\nimport { GxOption } from \"../../../common/types\";\n\nconst CSS_BUNDLES: MercuryBundles = [\n \"resets/box-sizing\",\n // \"utils/form\",\n // \"utils/layout\",\n // \"utils/typography\",\n // \"components/button\",\n // \"components/checkbox\",\n // \"components/edit\",\n \"components/tabular-grid\"\n];\n\n@Component({\n tag: \"gx-ide-bpm-app-declaration\",\n styleUrl: \"bpm-app-declaration.scss\",\n shadow: true,\n assetsDirs: [\"gx-ide-assets/bpm-app-declaration\"]\n})\nexport class GxIdeBpmAppDeclaration {\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/bpm-app-declaration/shortcuts.json`\n );\n\n /**\n * The state of the actual application. Used to add a new 'Relevant data' option on 'selectMappingCallback', and update the application with the new option\n */\n private applicationState: ApplicationDeclarationData;\n\n // 2. REFERENCE TO ELEMENTS //\n\n @Element() el: HTMLGxIdeBpmAppDeclarationElement;\n private applicationSuggestEl: HTMLChSuggestElement;\n\n // 3.STATE() VARIABLES //\n\n /**\n * Possible suggestions for the applications\n */\n @State() suggestedApplications: SuggestData;\n\n // 4.PUBLIC PROPERTY API | WATCH'S //\n\n /**\n * If true it displays the component title on the header\n */\n @Prop() readonly displayTitle = false;\n\n /**\n * Current application value\n */\n @Prop({ mutable: true }) application: ApplicationDeclarationData;\n\n @Watch(\"application\")\n watchApplicationHandler(newApplication: ApplicationDeclarationData) {\n this.applicationState = newApplication;\n }\n\n /**\n * Callback invoked to get options for application input suggest\n */\n @Prop() readonly suggestApplicationsCallback: SuggestApplicationsCallback;\n\n /**\n * Callback invoked to get access to selection application dialog\n */\n @Prop() readonly selectApplicationCallback: SelectApplicationCallback;\n\n /**\n * Callback invoked when user press mapping auto-def button\n */\n @Prop() readonly selectMappingCallback: SelectMappingCallback;\n\n /**\n * Callback invoked when user confirms application declaration\n */\n @Prop() readonly confirmCallback: ConfirmCallback;\n\n /**\n * Callback invoked when user cancels application declaration\n */\n @Prop() readonly cancelCallback: CancelCallback;\n\n /**\n * Callback invoked when user select one of the options provided by the suggest\n */\n @Prop() readonly getDataMappingCallback: GetDataMappingCallback;\n\n // 5.EVENTS (EMIT) //\n\n /**\n * @description Gets fired when the component has rendered for the first time.\n */\n @Event() componentDidRenderFirstTime: EventEmitter<string>;\n\n // 6.COMPONENT LIFECYCLE METHODS //\n\n async componentWillLoad() {\n this._componentLocale = await Locale.getComponentStrings(this.el);\n this.applicationState = this.application;\n }\n\n async componentDidLoad() {\n /* this.applicationSuggestValueChangedHandler(this.applicationText); */\n this.listenApplicationSelected();\n this.applicationSuggestEl.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 // 9.LOCAL METHODS //\n\n private listenApplicationSelected = async () => {\n this.applicationSuggestEl.addEventListener(\"itemSelected\", (e: any) => {\n this.getDataMappingCallbackHandler(e.detail.value);\n });\n };\n\n private applicationSuggestValueChangedHandler = async (\n e: CustomEvent<string>\n ) => {\n const value = e.detail;\n this.suggestApplicationsCallback(value)\n .then(result => {\n this.suggestedApplications =\n convertSuggestedApplicationsToSuggestItems(result);\n })\n .catch(() => {\n // to do\n });\n };\n\n private getDataMappingCallbackHandler = async (applicationName: string) => {\n this.application = await this.getDataMappingCallback(applicationName);\n };\n\n private selectApplicationCallbackHandler = async () => {\n const callbackResult = await this.selectApplicationCallback();\n if (callbackResult) {\n this.application = callbackResult;\n }\n };\n\n private confirmCallbackHandler = async () => {\n await this.confirmCallback(this.application);\n };\n\n private cancelCallbackHandler = async () => {\n await this.cancelCallback();\n };\n\n private selectMappingCallbackHandler = (parameter: string) => async () => {\n if (this.selectMappingCallback) {\n const newRelevantData = await this.selectMappingCallback(parameter);\n if (newRelevantData) {\n // update actual application with new relevant data option\n // first find mapping index\n const dataIndex: number = this.applicationState.mappings.findIndex(\n mapping => {\n return mapping.parameter === parameter;\n }\n );\n if (dataIndex !== -1) {\n // new relevant data could be new, or already existent.\n const found = this.applicationState.mappings[\n dataIndex\n ].relevantDataOptions.find(option => {\n return option === newRelevantData;\n });\n if (!found) {\n // new. add.\n this.applicationState.mappings[dataIndex].relevantDataOptions.push(\n newRelevantData\n );\n }\n // always set this data as selected\n this.applicationState.mappings[dataIndex].relevantData =\n newRelevantData;\n // update\n this.application = { ...this.applicationState };\n }\n }\n }\n };\n\n private dataOptionsToComboItems = (\n relevantDataOptions: string[]\n ): GxOption[] => {\n const gxOptions: GxOption[] = [\n { id: this._componentLocale.dataMappings.emptyOption }\n ];\n relevantDataOptions.forEach(relevantOption => {\n const gxOption: GxOption = { id: relevantOption };\n gxOptions.push(gxOption);\n });\n return gxOptions;\n };\n\n private clearApplicationHandler = () => {\n this.application = {\n application: undefined,\n mappings: []\n };\n };\n\n private renderDataMappingsGrid = (): Element => {\n return (\n <ch-tabular-grid\n class=\"tabular-grid tabular-grid-application-declaration\"\n part=\"ch-grid-data-mappings\"\n >\n <ch-tabular-grid-columnset class=\"tabular-grid-column-set\">\n <ch-tabular-grid-column\n class=\"tabular-grid-column\"\n columnName={\n this.application.application?.typeIcon === \"objects/transaction\"\n ? this._componentLocale.dataMappings.firstColName\n : this._componentLocale.dataMappings.firstColNameParameter\n }\n settingable={false}\n size={config.tabularGrid.colSize.common}\n ></ch-tabular-grid-column>\n\n <ch-tabular-grid-column\n class=\"tabular-grid-column\"\n columnName={this._componentLocale.dataMappings.secondColName}\n settingable={false}\n sortable={false}\n size={config.tabularGrid.colSize.common}\n ></ch-tabular-grid-column>\n <ch-tabular-grid-column\n class=\"tabular-grid-column\"\n settingable={false}\n sortable={false}\n size={config.tabularGrid.colSize.auto}\n ></ch-tabular-grid-column>\n </ch-tabular-grid-columnset>\n\n {this.application.mappings.map((obj: DataMappingData, index) => (\n <ch-tabular-grid-row\n class=\"tabular-grid-row\"\n rowId={index + obj.parameter}\n >\n <ch-tabular-grid-cell class=\"tabular-grid-cell\">\n {`${obj.access}: ${obj.parameter}`}\n </ch-tabular-grid-cell>\n <ch-tabular-grid-cell class=\"tabular-grid-cell\">\n <gxg-combo-box disableFilter value={obj.relevantData}>\n {renderComboItems(\n this.dataOptionsToComboItems(obj.relevantDataOptions) ?? []\n )}\n </gxg-combo-box>\n {/* <div class=\"row-button\">{obj.relevantData}</div> */}\n </ch-tabular-grid-cell>\n <ch-tabular-grid-cell class=\"tabular-grid-cell\">\n <gxg-button\n data-index={index}\n type=\"secondary-icon-only\"\n icon=\"gemini-tools/add\"\n onClick={this.selectMappingCallbackHandler(obj.parameter)}\n class=\"select-mapping-callback-button\"\n ></gxg-button>\n </ch-tabular-grid-cell>\n </ch-tabular-grid-row>\n ))}\n </ch-tabular-grid>\n );\n };\n\n // 10.RENDER() FUNCTION //\n\n render() {\n return (\n <Host class=\"gx-ide-component\">\n <ch-theme model={CSS_BUNDLES}></ch-theme>\n <div class=\"gx-ide-main-wrapper\">\n <gx-ide-container\n noContentPadding\n noAboveFooterPadding\n noHeadingBorder\n slimmerFooter={config.gxIdeContainer.slimmerFooter}\n containerTitle={\n this.displayTitle ? this._componentLocale.componentName : null\n }\n >\n <header slot=\"header\" class=\"header\">\n <div class=\"header__first-row\">\n <gxg-suggest class=\"application-suggest\">\n <ch-suggest\n value={this.application.application?.name || null}\n onValueChanged={this.applicationSuggestValueChangedHandler}\n ref={el =>\n (this.applicationSuggestEl = el as HTMLChSuggestElement)\n }\n part=\"application-suggest\"\n >\n {renderSuggestLists(this.suggestedApplications)}\n </ch-suggest>\n </gxg-suggest>\n <gxg-button\n type=\"secondary-icon-only\"\n icon=\"gemini-tools/show-more-horizontal\"\n onClick={this.selectApplicationCallbackHandler}\n class=\"selector-dialog-button\"\n part=\"open-selector-dialog-button\"\n ></gxg-button>\n <gxg-button\n type=\"outlined\"\n part=\"clear-application-button\"\n onClick={this.clearApplicationHandler}\n >\n Clear\n </gxg-button>\n </div>\n <div class=\"header__second-row\">\n <gx-ide-title type=\"secondary\">\n {this._componentLocale.dataMappings.title}\n </gx-ide-title>\n </div>\n </header>\n\n {this.renderDataMappingsGrid()}\n <gxg-button\n type=\"secondary-text-only\"\n slot=\"footer-end\"\n onClick={this.cancelCallbackHandler}\n part=\"cancel-button\"\n >\n {this._componentLocale.buttons.cancelButton}\n </gxg-button>\n <gxg-button\n type=\"primary-text-only\"\n slot=\"footer-end\"\n icon=\"general/datastore\"\n onClick={this.confirmCallbackHandler}\n part=\"confirm-button\"\n >\n {this._componentLocale.buttons.confirmButton}\n </gxg-button>\n </gx-ide-container>\n </div>\n <gxg-shortcuts src={this.shortcutsSrc}></gxg-shortcuts>\n </Host>\n );\n }\n}\n\nexport type ApplicationDeclarationData = {\n application?: ApplicationData;\n mappings: DataMappingData[];\n};\nexport type ApplicationData = {\n name: string;\n typeIcon: string;\n};\n\nexport type DataMappingData = {\n parameter: string;\n access: \"in\" | \"out\" | \"in-out\";\n relevantDataOptions: string[];\n relevantData?: string;\n};\n\nexport type SuggestApplicationsCallback = (\n prefix: string\n) => Promise<string[] | undefined>;\n\nexport type SelectApplicationCallback = () => Promise<\n ApplicationDeclarationData | undefined\n>;\n\nexport type SelectMappingCallback = (parameter: string) => Promise<string>;\n\nexport type ConfirmCallback = (\n data: ApplicationDeclarationData\n) => Promise<void>;\n\nexport type CancelCallback = () => Promise<void>;\n\nexport type GetDataMappingCallback = (\n applicationName: string\n) => Promise<ApplicationDeclarationData>;\n"],"version":3}
|
|
1
|
+
{"file":"gx-ide-bpm-app-declaration.js","mappings":"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","names":["GxIdeBpmAppDeclaration"],"sources":["src/common/render-suggest.tsx","src/components/bpm/application-declaration/helpers.ts","src/components/bpm/application-declaration/bpm-app-declaration.scss?tag=gx-ide-bpm-app-declaration&encapsulation=shadow","src/components/bpm/application-declaration/bpm-app-declaration.tsx"],"sourcesContent":["/* eslint-disable @typescript-eslint/no-use-before-define */\nimport { h } from \"@stencil/core\";\nimport { SuggestItemData } from \"@genexus/chameleon-controls-library/dist/types/deprecated-components/suggest/suggest-list-item/ch-suggest-list-item\";\nimport { SuggestListData } from \"@genexus/chameleon-controls-library/dist/types/deprecated-components/suggest/suggest-list/ch-suggest-list\";\nimport { SuggestData } from \"@genexus/chameleon-controls-library/dist/types/deprecated-components/suggest/ch-suggest\";\n\nexport const renderSuggestLists = (\n suggestData: SuggestData\n): HTMLChSuggestListElement[] => {\n if (suggestData?.suggestLists.length) {\n return suggestData.suggestLists.map(\n (list: SuggestListData): HTMLChSuggestListElement => {\n return (\n <ch-suggest-list label={list.label}>\n {list.items.map((item: SuggestItemData) => {\n return renderSuggestListsItem(item);\n })}\n </ch-suggest-list>\n );\n }\n );\n }\n return [];\n};\n\nconst renderSuggestListsItem = (\n suggestItem: SuggestItemData\n): HTMLChSuggestListItemElement => {\n return (\n <ch-suggest-list-item value={suggestItem.value}>\n {[\n suggestItem.description || suggestItem.value,\n suggestItem.icon && renderIcon(suggestItem.icon)\n ]}\n </ch-suggest-list-item>\n );\n};\n\nconst renderIcon = (iconName: string): HTMLGxgIconElement => {\n return <gxg-icon color=\"auto\" type={iconName} slot=\"icon\"></gxg-icon>;\n};\n","/* Ch Suggest*/\nimport { SuggestItemData } from \"@genexus/chameleon-controls-library/dist/types/deprecated-components/suggest/suggest-list-item/ch-suggest-list-item\";\nimport { SuggestListData } from \"@genexus/chameleon-controls-library/dist/types/deprecated-components/suggest/suggest-list/ch-suggest-list\";\nimport { SuggestData } from \"@genexus/chameleon-controls-library/dist/types/deprecated-components/suggest/ch-suggest\";\n\n/* References Types*/\n\n/**\n * @description This function converts string[] to SuggestItemData[]\n */\nexport const convertSuggestedApplicationsToSuggestItems = (\n suggestedApplications: string[]\n): SuggestData => {\n const suggestData: SuggestData = {\n suggestItems: null,\n suggestLists: []\n };\n if (suggestedApplications.length) {\n const suggestList: SuggestListData = {\n label: \"Applications\",\n items: []\n };\n suggestedApplications.forEach((suggestedApplication: string) => {\n const suggestItem: SuggestItemData = {\n value: suggestedApplication,\n description: null,\n icon: null\n };\n suggestList.items.push(suggestItem);\n });\n suggestData.suggestLists.push(suggestList);\n }\n return suggestData;\n};\n","@import \"../../../global/gx-ide-common.scss\";\n@import \"../../../global/gx-ide-mixins.scss\";\n@import \"../../../../node_modules/@genexus/mercury/dist/mercury.scss\";\n\n:host {\n display: block;\n .header {\n display: flex;\n flex-direction: column;\n gap: var(--gx-ide-grid-row-gap);\n &__first-row {\n display: flex;\n flex-direction: row;\n gap: var(--gx-ide-grid-column-gap);\n .application-suggest {\n flex: 1;\n }\n }\n }\n /*data mappings*/\n .data-mappings {\n display: grid;\n }\n .row-button {\n display: flex;\n align-items: center;\n }\n}\n\n@include tabular-grid-cell-layout(\n $tabular-grid-selector: \".tabular-grid-application-declaration\",\n $tabular-grid-cell-node-type: \"element\",\n $tabular-grid-affected-columns-nth-list: (\n 2\n )\n);\n\n// temporary styles until que update controls with chameleon + mercury:\n\ngx-ide-container::part(content) {\n display: grid;\n}\n\ngxg-combo-box::part(input-input) {\n border: none;\n background-color: transparent;\n top: 2px;\n}\n\n// WA\n.tabular-grid-cell:nth-child(2) {\n padding: 0 !important;\n display: grid;\n align-items: stretch;\n justify-content: stretch;\n --ds-focus-border-width: none;\n}\n.tabular-grid-cell:nth-child(3) {\n padding: 0 !important;\n align-items: center !important;\n justify-content: center !important;\n}\n.tabular-grid {\n overflow: auto;\n}\n","/* STENCIL IMPORTS */\nimport {\n Component,\n Host,\n h,\n Prop,\n State,\n Element,\n Event,\n EventEmitter,\n Watch,\n getAssetPath\n} from \"@stencil/core\";\n/* OTHER LIBRARIES IMPORTS */\nimport { MercuryBundles } from \"@genexus/mercury\";\n/* CUSTOM IMPORTS */\nimport { Locale } from \"../../../common/locale\";\nimport { config } from \"../../../common/config\";\nimport { SuggestData } from \"@genexus/chameleon-controls-library/dist/types/deprecated-components/suggest/ch-suggest\";\nimport { renderSuggestLists } from \"../../../common/render-suggest\";\nimport { renderComboItems } from \"../../../common/render-combo-items\";\nimport { convertSuggestedApplicationsToSuggestItems } from \"./helpers\";\nimport { GxOption } from \"../../../common/types\";\n\nconst CSS_BUNDLES: MercuryBundles = [\n \"resets/box-sizing\",\n // \"utils/form\",\n // \"utils/layout\",\n // \"utils/typography\",\n // \"components/button\",\n // \"components/checkbox\",\n // \"components/edit\",\n \"components/tabular-grid\"\n];\n\n@Component({\n tag: \"gx-ide-bpm-app-declaration\",\n styleUrl: \"bpm-app-declaration.scss\",\n shadow: true,\n assetsDirs: [\"gx-ide-assets/bpm-app-declaration\"]\n})\nexport class GxIdeBpmAppDeclaration {\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/bpm-app-declaration/shortcuts.json`\n );\n\n /**\n * The state of the actual application. Used to add a new 'Relevant data' option on 'selectMappingCallback', and update the application with the new option\n */\n private applicationState: ApplicationDeclarationData;\n\n // 2. REFERENCE TO ELEMENTS //\n\n @Element() el: HTMLGxIdeBpmAppDeclarationElement;\n private applicationSuggestEl: HTMLChSuggestElement;\n\n // 3.STATE() VARIABLES //\n\n /**\n * Possible suggestions for the applications\n */\n @State() suggestedApplications: SuggestData;\n\n // 4.PUBLIC PROPERTY API | WATCH'S //\n\n /**\n * If true it displays the component title on the header\n */\n @Prop() readonly displayTitle = false;\n\n /**\n * Current application value\n */\n @Prop({ mutable: true }) application: ApplicationDeclarationData;\n\n @Watch(\"application\")\n watchApplicationHandler(newApplication: ApplicationDeclarationData) {\n this.applicationState = newApplication;\n }\n\n /**\n * Callback invoked to get options for application input suggest\n */\n @Prop() readonly suggestApplicationsCallback: SuggestApplicationsCallback;\n\n /**\n * Callback invoked to get access to selection application dialog\n */\n @Prop() readonly selectApplicationCallback: SelectApplicationCallback;\n\n /**\n * Callback invoked when user press mapping auto-def button\n */\n @Prop() readonly selectMappingCallback: SelectMappingCallback;\n\n /**\n * Callback invoked when user confirms application declaration\n */\n @Prop() readonly confirmCallback: ConfirmCallback;\n\n /**\n * Callback invoked when user cancels application declaration\n */\n @Prop() readonly cancelCallback: CancelCallback;\n\n /**\n * Callback invoked when user select one of the options provided by the suggest\n */\n @Prop() readonly getDataMappingCallback: GetDataMappingCallback;\n\n // 5.EVENTS (EMIT) //\n\n /**\n * @description Gets fired when the component has rendered for the first time.\n */\n @Event() componentDidRenderFirstTime: EventEmitter<string>;\n\n // 6.COMPONENT LIFECYCLE METHODS //\n\n async componentWillLoad() {\n this._componentLocale = await Locale.getComponentStrings(this.el);\n this.applicationState = this.application;\n }\n\n async componentDidLoad() {\n /* this.applicationSuggestValueChangedHandler(this.applicationText); */\n this.listenApplicationSelected();\n this.applicationSuggestEl.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 // 9.LOCAL METHODS //\n\n private listenApplicationSelected = async () => {\n this.applicationSuggestEl.addEventListener(\"itemSelected\", (e: any) => {\n this.getDataMappingCallbackHandler(e.detail.value);\n });\n };\n\n private applicationSuggestValueChangedHandler = async (\n e: CustomEvent<string>\n ) => {\n const value = e.detail;\n this.suggestApplicationsCallback(value)\n .then(result => {\n this.suggestedApplications =\n convertSuggestedApplicationsToSuggestItems(result);\n })\n .catch(() => {\n // to do\n });\n };\n\n private getDataMappingCallbackHandler = async (applicationName: string) => {\n this.application = await this.getDataMappingCallback(applicationName);\n };\n\n private selectApplicationCallbackHandler = async () => {\n const callbackResult = await this.selectApplicationCallback();\n if (callbackResult) {\n this.application = callbackResult;\n }\n };\n\n private confirmCallbackHandler = async () => {\n await this.confirmCallback(this.application);\n };\n\n private cancelCallbackHandler = async () => {\n await this.cancelCallback();\n };\n\n private selectMappingCallbackHandler = (parameter: string) => async () => {\n if (this.selectMappingCallback) {\n const newRelevantData = await this.selectMappingCallback(parameter);\n if (newRelevantData) {\n // update actual application with new relevant data option\n // first find mapping index\n const dataIndex: number = this.applicationState.mappings.findIndex(\n mapping => {\n return mapping.parameter === parameter;\n }\n );\n if (dataIndex !== -1) {\n // new relevant data could be new, or already existent.\n const found = this.applicationState.mappings[\n dataIndex\n ].relevantDataOptions.find(option => {\n return option === newRelevantData;\n });\n if (!found) {\n // new. add.\n this.applicationState.mappings[dataIndex].relevantDataOptions.push(\n newRelevantData\n );\n }\n // always set this data as selected\n this.applicationState.mappings[dataIndex].relevantData =\n newRelevantData;\n // update\n this.application = { ...this.applicationState };\n }\n }\n }\n };\n\n private dataOptionsToComboItems = (\n relevantDataOptions: string[]\n ): GxOption[] => {\n const gxOptions: GxOption[] = [\n { id: this._componentLocale.dataMappings.emptyOption }\n ];\n relevantDataOptions.forEach(relevantOption => {\n const gxOption: GxOption = { id: relevantOption };\n gxOptions.push(gxOption);\n });\n return gxOptions;\n };\n\n private clearApplicationHandler = () => {\n this.application = {\n application: undefined,\n mappings: []\n };\n };\n\n private renderDataMappingsGrid = (): Element => {\n return (\n <ch-tabular-grid\n class=\"tabular-grid tabular-grid-application-declaration\"\n part=\"ch-grid-data-mappings\"\n >\n <ch-tabular-grid-columnset class=\"tabular-grid-column-set\">\n <ch-tabular-grid-column\n class=\"tabular-grid-column\"\n columnName={\n this.application.application?.typeIcon === \"objects/transaction\"\n ? this._componentLocale.dataMappings.firstColName\n : this._componentLocale.dataMappings.firstColNameParameter\n }\n settingable={false}\n size={config.tabularGrid.colSize.common}\n ></ch-tabular-grid-column>\n\n <ch-tabular-grid-column\n class=\"tabular-grid-column\"\n columnName={this._componentLocale.dataMappings.secondColName}\n settingable={false}\n sortable={false}\n size={config.tabularGrid.colSize.common}\n ></ch-tabular-grid-column>\n <ch-tabular-grid-column\n class=\"tabular-grid-column\"\n settingable={false}\n sortable={false}\n size={config.tabularGrid.colSize.auto}\n ></ch-tabular-grid-column>\n </ch-tabular-grid-columnset>\n\n {this.application.mappings.map((obj: DataMappingData, index) => (\n <ch-tabular-grid-row\n class=\"tabular-grid-row\"\n rowId={index + obj.parameter}\n >\n <ch-tabular-grid-cell class=\"tabular-grid-cell\">\n {`${obj.access}: ${obj.parameter}`}\n </ch-tabular-grid-cell>\n <ch-tabular-grid-cell class=\"tabular-grid-cell\">\n <gxg-combo-box disableFilter value={obj.relevantData}>\n {renderComboItems(\n this.dataOptionsToComboItems(obj.relevantDataOptions) ?? []\n )}\n </gxg-combo-box>\n {/* <div class=\"row-button\">{obj.relevantData}</div> */}\n </ch-tabular-grid-cell>\n <ch-tabular-grid-cell class=\"tabular-grid-cell\">\n <gxg-button\n data-index={index}\n type=\"secondary-icon-only\"\n icon=\"gemini-tools/add\"\n onClick={this.selectMappingCallbackHandler(obj.parameter)}\n class=\"select-mapping-callback-button\"\n ></gxg-button>\n </ch-tabular-grid-cell>\n </ch-tabular-grid-row>\n ))}\n </ch-tabular-grid>\n );\n };\n\n // 10.RENDER() FUNCTION //\n\n render() {\n return (\n <Host class=\"gx-ide-component\">\n <ch-theme model={CSS_BUNDLES}></ch-theme>\n <div class=\"gx-ide-main-wrapper\">\n <gx-ide-container\n noContentPadding\n noAboveFooterPadding\n noHeadingBorder\n slimmerFooter={config.gxIdeContainer.slimmerFooter}\n containerTitle={\n this.displayTitle ? this._componentLocale.componentName : null\n }\n >\n <header slot=\"header\" class=\"header\">\n <div class=\"header__first-row\">\n <gxg-suggest class=\"application-suggest\">\n <ch-suggest\n value={this.application.application?.name || null}\n onValueChanged={this.applicationSuggestValueChangedHandler}\n ref={el =>\n (this.applicationSuggestEl = el as HTMLChSuggestElement)\n }\n part=\"application-suggest\"\n >\n {renderSuggestLists(this.suggestedApplications)}\n </ch-suggest>\n </gxg-suggest>\n <gxg-button\n type=\"secondary-icon-only\"\n icon=\"gemini-tools/show-more-horizontal\"\n onClick={this.selectApplicationCallbackHandler}\n class=\"selector-dialog-button\"\n part=\"open-selector-dialog-button\"\n ></gxg-button>\n <gxg-button\n type=\"outlined\"\n part=\"clear-application-button\"\n onClick={this.clearApplicationHandler}\n >\n Clear\n </gxg-button>\n </div>\n <div class=\"header__second-row\">\n <gx-ide-title type=\"secondary\">\n {this._componentLocale.dataMappings.title}\n </gx-ide-title>\n </div>\n </header>\n\n {this.renderDataMappingsGrid()}\n <gxg-button\n type=\"secondary-text-only\"\n slot=\"footer-end\"\n onClick={this.cancelCallbackHandler}\n part=\"cancel-button\"\n >\n {this._componentLocale.buttons.cancelButton}\n </gxg-button>\n <gxg-button\n type=\"primary-text-only\"\n slot=\"footer-end\"\n icon=\"general/datastore\"\n onClick={this.confirmCallbackHandler}\n part=\"confirm-button\"\n >\n {this._componentLocale.buttons.confirmButton}\n </gxg-button>\n </gx-ide-container>\n </div>\n <gxg-shortcuts src={this.shortcutsSrc}></gxg-shortcuts>\n </Host>\n );\n }\n}\n\nexport type ApplicationDeclarationData = {\n application?: ApplicationData;\n mappings: DataMappingData[];\n};\nexport type ApplicationData = {\n name: string;\n typeIcon: string;\n};\n\nexport type DataMappingData = {\n parameter: string;\n access: \"in\" | \"out\" | \"in-out\";\n relevantDataOptions: string[];\n relevantData?: string;\n};\n\nexport type SuggestApplicationsCallback = (\n prefix: string\n) => Promise<string[] | undefined>;\n\nexport type SelectApplicationCallback = () => Promise<\n ApplicationDeclarationData | undefined\n>;\n\nexport type SelectMappingCallback = (parameter: string) => Promise<string>;\n\nexport type ConfirmCallback = (\n data: ApplicationDeclarationData\n) => Promise<void>;\n\nexport type CancelCallback = () => Promise<void>;\n\nexport type GetDataMappingCallback = (\n applicationName: string\n) => Promise<ApplicationDeclarationData>;\n"],"version":3}
|