@genexus/genexus-ide-ui 1.0.4 → 1.0.6

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.
Files changed (96) hide show
  1. package/dist/cjs/assets-manager-64c42a1e.js.map +1 -1
  2. package/dist/cjs/genexus-ide-ui.cjs.js +1 -1
  3. package/dist/cjs/gx-ide-empty-state.cjs.entry.js +3 -2
  4. package/dist/cjs/gx-ide-empty-state.cjs.entry.js.map +1 -1
  5. package/dist/cjs/gx-ide-kb-manager-export.cjs.entry.js +272 -293
  6. package/dist/cjs/gx-ide-kb-manager-export.cjs.entry.js.map +1 -1
  7. package/dist/cjs/gx-ide-loader.cjs.entry.js +1 -1
  8. package/dist/cjs/gx-ide-loader.cjs.entry.js.map +1 -1
  9. package/dist/cjs/gx-ide-object-selector.cjs.entry.js +38 -5
  10. package/dist/cjs/gx-ide-object-selector.cjs.entry.js.map +1 -1
  11. package/dist/cjs/gx-ide-recent-news.cjs.entry.js +1 -1
  12. package/dist/cjs/gx-ide-recent-news.cjs.entry.js.map +1 -1
  13. package/dist/cjs/gx-ide-start-page.cjs.entry.js +4 -3
  14. package/dist/cjs/gx-ide-start-page.cjs.entry.js.map +1 -1
  15. package/dist/cjs/loader.cjs.js +1 -1
  16. package/dist/collection/collection-manifest.json +1 -1
  17. package/dist/collection/components/_helpers/empty-state/gx-ide-empty-state.css +5 -1
  18. package/dist/collection/components/_helpers/empty-state/gx-ide-empty-state.js +20 -1
  19. package/dist/collection/components/_helpers/empty-state/gx-ide-empty-state.js.map +1 -1
  20. package/dist/collection/components/_helpers/ide-loader/ide-loader.css +2 -2
  21. package/dist/collection/components/kb-manager-export/gx-ide-assets/kb-manager-export/langs/kb-manager-export.lang.en.json +3 -3
  22. package/dist/collection/components/kb-manager-export/gx-ide-assets/kb-manager-export/langs/kb-manager-export.lang.ja.json +4 -4
  23. package/dist/collection/components/kb-manager-export/helpers.js +64 -105
  24. package/dist/collection/components/kb-manager-export/helpers.js.map +1 -1
  25. package/dist/collection/components/kb-manager-export/kb-manager-export.css +14 -620
  26. package/dist/collection/components/kb-manager-export/kb-manager-export.js +345 -377
  27. package/dist/collection/components/kb-manager-export/kb-manager-export.js.map +1 -1
  28. package/dist/collection/components/kb-manager-export/types.js +2 -0
  29. package/dist/collection/components/kb-manager-export/types.js.map +1 -0
  30. package/dist/collection/components/object-selector/object-selector.css +4 -598
  31. package/dist/collection/components/object-selector/object-selector.js +37 -4
  32. package/dist/collection/components/object-selector/object-selector.js.map +1 -1
  33. package/dist/collection/components/start-page/recent-news.js +1 -1
  34. package/dist/collection/components/start-page/recent-news.js.map +1 -1
  35. package/dist/collection/components/start-page/start-page.js +4 -3
  36. package/dist/collection/components/start-page/start-page.js.map +1 -1
  37. package/dist/components/assets-manager.js.map +1 -1
  38. package/dist/components/gx-ide-empty-state2.js +4 -2
  39. package/dist/components/gx-ide-empty-state2.js.map +1 -1
  40. package/dist/components/gx-ide-kb-manager-export.js +294 -314
  41. package/dist/components/gx-ide-kb-manager-export.js.map +1 -1
  42. package/dist/components/gx-ide-object-selector.js +38 -5
  43. package/dist/components/gx-ide-object-selector.js.map +1 -1
  44. package/dist/components/gx-ide-start-page.js +4 -3
  45. package/dist/components/gx-ide-start-page.js.map +1 -1
  46. package/dist/components/ide-loader.js +1 -1
  47. package/dist/components/ide-loader.js.map +1 -1
  48. package/dist/components/recent-news.js +1 -1
  49. package/dist/components/recent-news.js.map +1 -1
  50. package/dist/esm/assets-manager-120996e9.js.map +1 -1
  51. package/dist/esm/genexus-ide-ui.js +1 -1
  52. package/dist/esm/gx-ide-empty-state.entry.js +3 -2
  53. package/dist/esm/gx-ide-empty-state.entry.js.map +1 -1
  54. package/dist/esm/gx-ide-kb-manager-export.entry.js +273 -294
  55. package/dist/esm/gx-ide-kb-manager-export.entry.js.map +1 -1
  56. package/dist/esm/gx-ide-loader.entry.js +1 -1
  57. package/dist/esm/gx-ide-loader.entry.js.map +1 -1
  58. package/dist/esm/gx-ide-object-selector.entry.js +38 -5
  59. package/dist/esm/gx-ide-object-selector.entry.js.map +1 -1
  60. package/dist/esm/gx-ide-recent-news.entry.js +1 -1
  61. package/dist/esm/gx-ide-recent-news.entry.js.map +1 -1
  62. package/dist/esm/gx-ide-start-page.entry.js +4 -3
  63. package/dist/esm/gx-ide-start-page.entry.js.map +1 -1
  64. package/dist/esm/loader.js +1 -1
  65. package/dist/genexus-ide-ui/genexus-ide-ui.css +7 -0
  66. package/dist/genexus-ide-ui/genexus-ide-ui.esm.js +1 -1
  67. package/dist/genexus-ide-ui/genexus-ide-ui.esm.js.map +1 -1
  68. package/dist/genexus-ide-ui/gx-ide-assets/kb-manager-export/langs/kb-manager-export.lang.en.json +3 -3
  69. package/dist/genexus-ide-ui/gx-ide-assets/kb-manager-export/langs/kb-manager-export.lang.ja.json +4 -4
  70. package/dist/genexus-ide-ui/p-3824978b.entry.js +525 -0
  71. package/dist/genexus-ide-ui/p-3824978b.entry.js.map +1 -0
  72. package/dist/genexus-ide-ui/{p-f924f02a.entry.js → p-64101478.entry.js} +2 -2
  73. package/dist/genexus-ide-ui/p-64101478.entry.js.map +1 -0
  74. package/dist/genexus-ide-ui/p-69e879be.entry.js +495 -0
  75. package/dist/genexus-ide-ui/p-69e879be.entry.js.map +1 -0
  76. package/dist/genexus-ide-ui/p-6df9fab1.js.map +1 -1
  77. package/dist/genexus-ide-ui/{p-f220c75a.entry.js → p-885302c2.entry.js} +11 -6
  78. package/dist/genexus-ide-ui/p-885302c2.entry.js.map +1 -0
  79. package/dist/genexus-ide-ui/{p-eb49e4f1.entry.js → p-8ff5da93.entry.js} +36 -31
  80. package/dist/genexus-ide-ui/p-8ff5da93.entry.js.map +1 -0
  81. package/dist/genexus-ide-ui/{p-dd07e68a.entry.js → p-a6b76120.entry.js} +2 -2
  82. package/dist/genexus-ide-ui/p-a6b76120.entry.js.map +1 -0
  83. package/dist/types/components/_helpers/empty-state/gx-ide-empty-state.d.ts +4 -0
  84. package/dist/types/components/kb-manager-export/helpers.d.ts +33 -5
  85. package/dist/types/components/kb-manager-export/kb-manager-export.d.ts +36 -98
  86. package/dist/types/components/kb-manager-export/types.d.ts +21 -0
  87. package/dist/types/components.d.ts +16 -40
  88. package/package.json +6 -6
  89. package/dist/genexus-ide-ui/p-b3baa3d2.entry.js +0 -491
  90. package/dist/genexus-ide-ui/p-b3baa3d2.entry.js.map +0 -1
  91. package/dist/genexus-ide-ui/p-b7384b06.entry.js +0 -507
  92. package/dist/genexus-ide-ui/p-b7384b06.entry.js.map +0 -1
  93. package/dist/genexus-ide-ui/p-dd07e68a.entry.js.map +0 -1
  94. package/dist/genexus-ide-ui/p-eb49e4f1.entry.js.map +0 -1
  95. package/dist/genexus-ide-ui/p-f220c75a.entry.js.map +0 -1
  96. package/dist/genexus-ide-ui/p-f924f02a.entry.js.map +0 -1
@@ -1 +0,0 @@
1
- {"version":3,"names":["KB_PROPERTY","KB_OBJECT","getPropertyIcon","typeId","kbPropertiesTypes","propertyType","find","id","icon","undefined","convertObjectTypeToTreeItem","objectType","caption","name","startImgSrc","leaf","parts","expanded","items","convertObjectToTreeItem","object","objectTypes","get","metadata","findObjectInTree","actualTreeState","objectTreeItemInfo","objectExists","objectTypeIndex","objectTypeTreeItemIndex","findIndex","objectTypeTreeItem","objectFound","_a","objectTreeItem","findPropertyInTree","property","updatedTreeData","found","node","convertPropertyToTreeItem","updateTreeModelWithObjects","objects","forEach","push","objectAsTreeItem","convertKbPropertiesDataToTreeItemData","properties","propertyAlreadyExists","propertyTreeItem","unshift","clearKbPropertiesFromTree","kBPropertiesData","length","kBPropertiesDataIds","map","treeModelWithoutKbProperties","filter","item","includes","kbManagerExportCss","CSS_BUNDLES","GxIdeKbManagerExport","this","checkedPropertiesIds","renderedFirstTime","flattenedObjectTypes","Map","evaluateObjects","noObjects","treeModel","optionsCallbackHandler","optionsCallback","addKBPropertiesCallbackHandler","async","e","checked","detail","value","addKbPropertiesIsChecked","addKBPropertiesCallback","newTreeModel","objectsWithoutProperties","addObjectsCallbackHandler","addObjectsCallback","updateObjects","addReferencesCallbackHandler","addReferencesCallback","checkedObjectsIds","objectsTreeCheckedItemsChangedHandler","event","allItemsWithCheckbox","values","exportCallbackHandler","exportCallback","exportingIsInProcess","exportAllChecked","exportAllCheckboxEl","fileName","fileNameEl","checkedKbPropertiesIds","checkedObjectIds","then","cancelCallbackHandler","cancelCallback","cancelled","clearButtonHandler","objectsTreeEl","updateAllItemsProperties","exportAllChangedHandler","exportAllIsChecked","evaluateTreeViewFilters","evaluateContentToDisplay","renderMessage","h","model","dragDisabled","dropDisabled","toggleCheckboxes","checkbox","filterType","onCheckedItemsChange","ref","el","class","nothingToDisplay","textAlign","config","gxgMessage","common","padding","type","maxWidth","part","_componentLocale","main","noObjectsToDisplay","onClick","beginByADdingSomeObjects","exportAllMessage","clearButtonDisabledConditions","checkedItems","loaderCancelCallbackHandler","onClickCancelCallbackHandler","watchTreeModelHandler","newState","watchExportingIsInProcessHandler","isExporting","loader","loaderEl","show","watchObjectTypesHandler","flattenObjectTypes","componentWillLoad","Locale","getComponentStrings","componentDidLoadEvent","emit","componentDidLoad","focus","componentDidRender","componentDidRenderFirstTime","componentName","set","render","Host","noContentPadding","noHeadingPadding","headingPaddingTop","containerTitle","displayTitle","slimmerFooter","gxIdeContainer","slot","label","header","exportFileName","iconPosition","reduced","disabled","exportButton","cancelButton","optionsButton","addKnowledgeBaseDescription","onChange","exportAll","footer","clearButton","referencesButton","addButton","cancelLabel","container","loaderTitle","title"],"sources":["src/components/kb-manager-export/helpers.ts","src/components/kb-manager-export/kb-manager-export.scss?tag=gx-ide-kb-manager-export&encapsulation=shadow","src/components/kb-manager-export/kb-manager-export.tsx"],"sourcesContent":["// /* Tree View */\nimport { TreeViewItemModel } from \"@genexus/chameleon-controls-library\";\nimport {\n ObjectData,\n KBPropertyData,\n KBPropertyType\n} from \"./kb-manager-export\";\nimport { ObjectType } from \"../../common/types\";\nexport const KB_PROPERTY = \"property\";\nexport const KB_OBJECT = \"object\";\n\n/*\nINDEX:\n1. getObjectIcon\n2. convertObjectTypeToTreeItem\n3. convertObjectToTreeItem\n4. getObjectType\n5. findObjectInTree\n6. findPropertyInTree\n7. convertPropertyToTreeItem\n8. updateTreeModelWithObjects\n9. convertKbPropertiesDataToTreeItemData\n10. clearKbPropertiesFromTree\n*/\n\n/* 1.2 getIcon (for properties)*/\nconst getPropertyIcon = (\n typeId: string,\n kbPropertiesTypes: KBPropertyType[]\n): string => {\n // The object icon has to be retrieved from the ObjetTypes array, by matching the ObjectData typeId with the ObjectType id.\n const propertyType = kbPropertiesTypes.find(\n propertyType => propertyType.id === typeId\n );\n if (propertyType) {\n return propertyType.icon;\n } else {\n return undefined;\n }\n};\n\n/* 2. convertObjectTypeToTreeItem*/\nconst convertObjectTypeToTreeItem = (\n objectType: ObjectType\n): TreeViewItemModel => ({\n caption: objectType.name,\n id: objectType.id,\n startImgSrc: objectType.icon,\n leaf: false,\n parts: \"object-type tree-view-item\",\n expanded: true,\n items: []\n});\n\n/* 3. convertObjectToTreeItem*/\nconst convertObjectToTreeItem = (\n object: ObjectData,\n objectTypes: Map<string, ObjectType>\n): TreeViewItemModel => ({\n caption: object.name,\n id: object.id,\n startImgSrc: objectTypes.get(object.typeId).icon,\n parts: \"object tree-view-item\",\n metadata: KB_OBJECT,\n leaf: true\n});\n\n/* 5. findObjectInTree*/\nconst findObjectInTree = (\n object: ObjectData,\n actualTreeState: TreeViewItemModel[]\n): ObjectTreeInfo => {\n const objectTreeItemInfo = {\n objectExists: false,\n objectTypeIndex: -1\n };\n if (actualTreeState) {\n const objectTypeTreeItemIndex = actualTreeState.findIndex(\n objectTypeTreeItem => {\n return objectTypeTreeItem.id === object.typeId;\n }\n );\n if (objectTypeTreeItemIndex !== -1) {\n objectTreeItemInfo.objectTypeIndex = objectTypeTreeItemIndex;\n // objectType exists as a node in the actual tree.\n // Now try to find the object\n const objectFound = actualTreeState[objectTypeTreeItemIndex].items?.find(\n objectTreeItem => {\n return objectTreeItem.id === object.id;\n }\n );\n if (objectFound) {\n objectTreeItemInfo.objectExists = true;\n }\n }\n }\n return objectTreeItemInfo;\n};\n\n/* 6. findPropertyInTree */\nconst findPropertyInTree = (\n property: KBPropertyData,\n updatedTreeData: TreeViewItemModel[]\n): boolean => {\n const found = updatedTreeData.find(node => {\n return node.id === property.id;\n });\n if (found) {\n return true;\n }\n return false;\n};\n\n/* 7. convertPropertyToTreeItem */\nconst convertPropertyToTreeItem = (\n property: KBPropertyData,\n kbPropertiesTypes: KBPropertyType[]\n): TreeViewItemModel => ({\n caption: property.name,\n id: property.id,\n startImgSrc: getPropertyIcon(property.typeId, kbPropertiesTypes),\n parts: \"property tree-view-item\",\n metadata: KB_PROPERTY,\n leaf: true\n});\n\n/* 8. updateTreeModelWithObjects*/\nexport const updateTreeModelWithObjects = (\n objects: ObjectData[] | undefined,\n objectTypes: Map<string, ObjectType>,\n actualTreeState: TreeViewItemModel[]\n): TreeViewItemModel[] => {\n const updatedTreeData: TreeViewItemModel[] = [...actualTreeState];\n if (!objects) {\n // nothing to do\n return updatedTreeData;\n }\n objects.forEach(object => {\n // objects that already exists in the actual actualTreeState should not be added.\n // We can find the object in the actual actualTreeState.\n const objectTreeItemInfo: ObjectTreeInfo = findObjectInTree(\n object,\n updatedTreeData\n );\n if (!objectTreeItemInfo.objectExists) {\n // object does not exists in actualTreeState\n // if the objectType tree node exists, insert inside.\n // if the objectType tree node does not exists, create object type node first.\n if (objectTreeItemInfo.objectTypeIndex === -1) {\n const objectType: ObjectType = objectTypes.get(object.typeId);\n if (objectType !== undefined) {\n const objectTypeTreeItem = convertObjectTypeToTreeItem(objectType);\n objectTreeItemInfo.objectTypeIndex =\n updatedTreeData.push(objectTypeTreeItem) - 1;\n }\n }\n const objectAsTreeItem: TreeViewItemModel = convertObjectToTreeItem(\n object,\n objectTypes\n );\n // insert object in tree (under the object type tree node)\n updatedTreeData[objectTreeItemInfo.objectTypeIndex].items.push(\n objectAsTreeItem\n );\n }\n });\n return updatedTreeData;\n};\n\n/* 9. convertKbPropertiesDataToTreeItemData*/\nexport const convertKbPropertiesDataToTreeItemData = (\n properties: KBPropertyData[],\n kbPropertiesTypes: KBPropertyType[],\n actualTreeState: TreeViewItemModel[]\n): TreeViewItemModel[] => {\n const updatedTreeData: TreeViewItemModel[] = [...actualTreeState];\n if (!properties) {\n // nothing to do\n return updatedTreeData;\n }\n properties.forEach(property => {\n // properties have no parent node, and they should be added at the beginning of the tree\n const propertyAlreadyExists = findPropertyInTree(property, updatedTreeData);\n if (!propertyAlreadyExists) {\n const propertyTreeItem = convertPropertyToTreeItem(\n property,\n kbPropertiesTypes\n );\n updatedTreeData.unshift(propertyTreeItem);\n }\n });\n return updatedTreeData;\n};\n\ntype ObjectTreeInfo = {\n objectExists: boolean;\n objectTypeIndex: number;\n};\n\n/* 10. clearKbPropertiesFromTree*/\nexport const clearKbPropertiesFromTree = (\n kBPropertiesData: KBPropertyData[],\n actualTreeState: TreeViewItemModel[]\n): TreeViewItemModel[] => {\n if (!(actualTreeState.length > 0)) {\n // nothing to do.\n return [];\n }\n const kBPropertiesDataIds: string[] = kBPropertiesData.map(property => {\n return property.id;\n });\n\n const treeModelWithoutKbProperties: TreeViewItemModel[] =\n actualTreeState.filter(item => {\n return !kBPropertiesDataIds.includes(item.id);\n });\n\n return treeModelWithoutKbProperties;\n};\n","@import \"../../global/gx-ide-common.scss\";\n@import \"../../global/gx-ide-mixins.scss\";\n\n/*general*/\n.tree-view-container {\n display: flex;\n}\n\n/*Header*/\n.header {\n &__top {\n border-top: 1px solid var(--gx-ide-container-border-color);\n //border-bottom: 1px solid var(--gx-ide-container-border-color);\n display: grid;\n padding: var(--gx-ide-container__padding) var(--gx-ide-container__padding) 0\n var(--gx-ide-container__padding);\n gap: var(--gx-ide-grid-column-gap);\n grid-template-columns: 1fr auto;\n grid-template-areas: \"select-directory export-cancel-buttons-group options-btn\";\n\n .select-directory {\n grid-area: select-directory;\n }\n .export-cancel-buttons-group {\n grid-area: export-cancel-buttons-group;\n }\n .options-btn {\n grid-area: options-btn;\n }\n }\n &__bottom {\n .checkboxes-wrapper {\n padding: var(--gx-ide-grid-column-gap);\n display: flex;\n flex-wrap: wrap;\n gap: var(--gx-ide-grid-column-gap);\n\n .add-checkbox {\n display: flex;\n }\n }\n }\n}\n\n/*Main*/\n.tree-container {\n block-size: 100%;\n padding: var(--tree-container-padding);\n &--empty {\n align-items: center;\n justify-content: center;\n }\n @include gx-ide-message(\"tall\");\n}\n\ngxg-text {\n block-size: 100%;\n}\n\n// @keyframes toggleTreeObjectsVisibility {\n// 0% {\n// opacity: 1;\n// }\n// 100% {\n// opacity: 0;\n// }\n// }\n","/* STENCIL IMPORTS */\nimport {\n Component,\n Host,\n h,\n Prop,\n Event,\n Element,\n State,\n EventEmitter,\n Watch\n} from \"@stencil/core\";\n/* OTHER LIBRARIES IMPORTS */\n/* Tree View */\nimport { TreeViewItemModel } from \"@genexus/chameleon-controls-library\";\nimport { TreeViewItemModelExtended } from \"@genexus/chameleon-controls-library\";\nimport { MercuryBundles } from \"@genexus/mercury\";\nimport {\n TextAlign,\n TextPadding,\n TextType\n} from \"@genexus/gemini/dist/types/components/text/text\";\nimport { CheckboxInfo } from \"@genexus/gemini/dist/types/components/form-checkbox/form-checkbox\";\n/* CUSTOM IMPORTS */\nimport { Locale } from \"../../common/locale\";\nimport { config } from \"../../common/config\";\nimport {\n updateTreeModelWithObjects,\n convertKbPropertiesDataToTreeItemData,\n clearKbPropertiesFromTree\n} from \"./helpers\";\nimport { ObjectType } from \"../../common/types\";\n\nimport { KB_PROPERTY, KB_OBJECT } 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@Component({\n tag: \"gx-ide-kb-manager-export\",\n styleUrl: \"kb-manager-export.scss\",\n shadow: true,\n assetsDirs: [\"gx-ide-assets/kb-manager-export\"]\n})\nexport class GxIdeKbManagerExport {\n // 1.OWN PROPERTIES //\n\n /**\n * The component hard-coded strings translations.\n */\n private _componentLocale: any;\n private checkedPropertiesIds: string[] = [];\n private renderedFirstTime = false;\n private flattenedObjectTypes: Map<string, ObjectType> = new Map();\n\n // 2. REFERENCE TO ELEMENTS //\n\n @Element() el: HTMLGxIdeKbManagerExportElement;\n\n private fileNameEl!: HTMLGxgFormTextElement;\n private exportAllCheckboxEl!: HTMLGxgFormCheckboxElement;\n private objectsTreeEl!: HTMLChTreeViewRenderElement;\n private loaderEl!: HTMLGxgIdeLoaderElement;\n private kBPropertiesData!: KBPropertyData[];\n\n // 3.STATE() VARIABLES //\n\n @State() exportAllIsChecked = false;\n @State() addKbPropertiesIsChecked = false;\n @State() checkedObjectsIds: string[] = [];\n @State() noObjects: boolean;\n\n @State() treeModel: TreeViewItemModel[] = [];\n @Watch(\"treeModel\")\n watchTreeModelHandler(newState: TreeViewItemModel[]) {\n this.noObjects = !!(newState.length === 0 || !newState);\n }\n\n @State() exportingIsInProcess = false;\n @Watch(\"exportingIsInProcess\")\n watchExportingIsInProcessHandler(isExporting: boolean) {\n if (isExporting && this.loader) {\n this.loaderEl.show = true;\n } else if (!isExporting && this.loader) {\n this.loaderEl.show = false;\n }\n }\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 * It allows defining the default Export File Name\n */\n @Prop() readonly fileName: string;\n\n /**\n * If true, it will display a loader when needed.\n */\n @Prop() readonly loader = false;\n\n /**\n * Array with the possible types of KB properties\n */\n @Prop() readonly kbPropertiesTypes: KBPropertyType[];\n\n /**\n * Array of possible object types\n */\n @Prop() readonly objectTypes: ObjectType[];\n @Watch(\"objectTypes\")\n watchObjectTypesHandler(newState: ObjectType[]) {\n this.flattenObjectTypes(newState);\n }\n\n /**\n * Callback invoked when the user wants to access the export options.\n */\n @Prop() readonly exportFileDirectoryCallback: ExportFileDirectoryCallback;\n\n /**\n * Callback invoked when the user wants to access the export options.\n */\n @Prop() readonly optionsCallback: OptionsCallback;\n\n /**\n * Callback invoked when the user wants to include KB properties.\n */\n @Prop() readonly addKBPropertiesCallback: KBPropertiesCallback;\n\n /**\n *Callback invoked when the user wants to add all the references for the selected objects.\n *@param itemIds:string[] The selected item ids\n *@returns : Returns an object with the items and its references\n */\n @Prop() readonly addReferencesCallback: AddReferencesCallback;\n\n /**\n * Callback invoked when the user wants to add objects.\n */\n @Prop() readonly addObjectsCallback: AddObjectsCallback;\n\n /**\n *Callback invoked when the user wants to initiate the export process.\n *@param fileName:string\n *@param itemIds:string[] The selected item ids\n *@returns : It returns a boolean indicating whether the process was successful\n */\n @Prop() readonly exportCallback: ExportCallback;\n\n /**\n * Callback invoked when the user wants to cancel the export process.\n * @returns It returns a boolean indicating whether the process could be canceled or not.\n */\n @Prop() readonly cancelCallback: CancelCallback;\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() componentDidLoadEvent: 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() componentDidRenderFirstTime: 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 this.evaluateObjects();\n this.flattenObjectTypes(this.objectTypes);\n }\n\n componentDidLoad() {\n this.fileNameEl.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 evaluateObjects = () => {\n this.noObjects = !!(this.treeModel?.length === 0 || !this.treeModel);\n };\n\n private optionsCallbackHandler = () => {\n if (this.optionsCallback) {\n this.optionsCallback();\n // returns Promise<void>\n }\n };\n\n private addKBPropertiesCallbackHandler = async (e: CustomEvent) => {\n const checked = e.detail.value;\n this.addKbPropertiesIsChecked = checked;\n if (checked && this.addKBPropertiesCallback) {\n this.kBPropertiesData = await this.addKBPropertiesCallback();\n if (this.kBPropertiesData.length === 0) {\n // nothing to do\n } else {\n // 'convertObjectDataToTreeItemData' can be used for converting KBPropertiesData as well, because the two types share the same properties\n const newTreeModel = convertKbPropertiesDataToTreeItemData(\n this.kBPropertiesData,\n this.kbPropertiesTypes,\n this.treeModel\n );\n this.treeModel = newTreeModel;\n }\n } else if (!checked) {\n // previous properties (if any) should be removed\n const objectsWithoutProperties = clearKbPropertiesFromTree(\n this.kBPropertiesData,\n this.treeModel\n );\n this.treeModel = objectsWithoutProperties;\n }\n };\n\n private addObjectsCallbackHandler = async () => {\n if (this.addObjectsCallback) {\n const objects: ObjectData[] = await this.addObjectsCallback();\n this.updateObjects(objects);\n }\n };\n\n private addReferencesCallbackHandler = async () => {\n if (this.addReferencesCallback) {\n const objects: ObjectData[] = await this.addReferencesCallback(\n this.checkedObjectsIds\n );\n this.updateObjects(objects);\n }\n };\n\n /*\n * Used to update objects. Objects are updated when calling the 'addObjectsCallback' or 'addReferencesCallback'\n */\n private updateObjects = (objects: ObjectData[]) => {\n if (objects.length) {\n const newTreeModel = updateTreeModelWithObjects(\n objects,\n this.flattenedObjectTypes,\n this.treeModel\n );\n this.treeModel = newTreeModel;\n }\n };\n\n /*\n * Update checked objects 'checkedObjectsArray' array. Used for the 'addReferencesCallback'\n */\n private objectsTreeCheckedItemsChangedHandler = (\n event: CustomEvent<Map<string, TreeViewItemModelExtended>>\n ) => {\n // filter 'checked objects' and 'checked properties' ids\n const checkedObjectsIds: string[] = [];\n const checkedPropertiesIds: string[] = [];\n const allItemsWithCheckbox = [...event.detail.values()];\n allItemsWithCheckbox.forEach(node => {\n if (node.item.checked && node.item.metadata === KB_OBJECT) {\n checkedObjectsIds.push(node.item.id);\n } else if (node.item.checked && node.item.metadata === KB_PROPERTY) {\n checkedPropertiesIds.push(node.item.id);\n }\n });\n this.checkedObjectsIds = checkedObjectsIds;\n this.checkedPropertiesIds = checkedPropertiesIds;\n };\n\n private exportCallbackHandler = async () => {\n if (this.exportCallback) {\n this.exportingIsInProcess = true;\n const exportAllChecked = this.exportAllCheckboxEl.checked;\n const fileName: string = this.fileNameEl.value;\n const checkedKbPropertiesIds = this.addKbPropertiesIsChecked\n ? this.checkedPropertiesIds\n : [];\n const checkedObjectIds = exportAllChecked\n ? undefined\n : this.checkedObjectsIds;\n this.exportCallback(\n fileName,\n checkedKbPropertiesIds,\n checkedObjectIds\n ).then(() => {\n this.exportingIsInProcess = false;\n });\n // returns Promise<boolean> but no procedure was detailed on the spec.\n }\n };\n\n private cancelCallbackHandler = async () => {\n if (this.cancelCallback) {\n const cancelled = await this.cancelCallback();\n if (cancelled) {\n this.exportingIsInProcess = false;\n }\n }\n };\n\n private clearButtonHandler = () => {\n /* revisar*/\n this.objectsTreeEl.updateAllItemsProperties({ checked: false });\n };\n\n private exportAllChangedHandler = (event: CustomEvent<CheckboxInfo>) => {\n this.exportAllIsChecked = event.detail.value;\n };\n\n private flattenObjectTypes(newState: ObjectType[]) {\n newState.forEach(objectType => {\n this.flattenedObjectTypes.set(objectType.id, objectType);\n });\n }\n\n private evaluateTreeViewFilters = (): string => {\n if (this.addKbPropertiesIsChecked && this.exportAllIsChecked) {\n // only show properties\n return KB_PROPERTY;\n } else if (!this.addKbPropertiesIsChecked && !this.exportAllIsChecked) {\n // only show objects\n return KB_OBJECT;\n }\n return \"none\"; // Applies if !this.addKbPropertiesIsChecked && this.exportAllIsChecked\n };\n\n private evaluateContentToDisplay = () => {\n // Nothing to display on the tree-view\n if (this.noObjects) {\n return this.renderMessage(true);\n }\n\n // The tree should be empty, because all filters are being applied.\n // Display a message to prevent a white screen.\n if (!this.addKbPropertiesIsChecked && this.exportAllIsChecked) {\n return this.renderMessage(false);\n }\n\n return (\n <ch-tree-view-render\n model={this.treeModel}\n dragDisabled={true}\n dropDisabled={true}\n toggleCheckboxes={true}\n checked={true}\n checkbox={true}\n filter={this.evaluateTreeViewFilters()}\n filterType={\n this.addKbPropertiesIsChecked && !this.exportAllIsChecked\n ? \"none\"\n : \"metadata\"\n }\n onCheckedItemsChange={this.objectsTreeCheckedItemsChangedHandler}\n ref={el => (this.objectsTreeEl = el as HTMLChTreeViewRenderElement)}\n show-lines=\"last\"\n class=\"tree-view\"\n ></ch-tree-view-render>\n );\n };\n\n private renderMessage = (nothingToDisplay: boolean) => {\n return (\n <gxg-text\n textAlign={config.gxgMessage.common.textAlign as TextAlign}\n padding={config.gxgMessage.common.textAlign as TextPadding}\n type={config.gxgMessage.common.type as TextType}\n maxWidth={config.gxgMessage.common.maxWidth}\n class=\"gx-ide-message gx-ide-message--short\"\n part=\"referenced-by-empty-status-message\"\n >\n {nothingToDisplay ? (\n [\n <span>{this._componentLocale.main.noObjectsToDisplay}</span>,\n <gxg-text\n type=\"text-link-no-line\"\n textAlign=\"center\"\n onClick={this.addObjectsCallbackHandler}\n >\n {this._componentLocale.main.beginByADdingSomeObjects}\n </gxg-text>\n ]\n ) : (\n <span>{this._componentLocale.main.exportAllMessage}</span>\n )}\n </gxg-text>\n );\n };\n\n private clearButtonDisabledConditions = (): boolean => {\n const checkedItems = this.treeModel.filter(item => {\n return item.checked;\n });\n return checkedItems.length === 0;\n };\n\n private loaderCancelCallbackHandler = async () => {\n this.cancelCallbackHandler();\n };\n\n private onClickCancelCallbackHandler = async () => {\n this.cancelCallbackHandler();\n };\n\n // 10.RENDER() FUNCTION //\n\n render(): void {\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 noHeadingPadding\n headingPaddingTop\n containerTitle={\n this.displayTitle ? this._componentLocale.componentName : null\n }\n slimmerFooter={config.gxIdeContainer.slimmerFooter}\n >\n <header slot=\"header\" class=\"header\">\n {/* header top */}\n <div class=\"header__top\">\n {/* export file name*/}\n <gxg-form-text\n class={{ \"select-file-input\": true }}\n value={this.fileName}\n part=\"xpz-file\"\n label={this._componentLocale.header.exportFileName}\n ref={el => (this.fileNameEl = el as HTMLGxgFormTextElement)}\n icon=\"gemini-tools/file\"\n iconPosition=\"start\"\n ></gxg-form-text>\n {/* export button / cancel button*/}\n <gxg-buttons-container\n reduced\n class=\"export-cancel-buttons-group\"\n >\n <gxg-button\n id=\"export-kb-btn\"\n part=\"export-btn\"\n onClick={this.exportCallbackHandler}\n disabled={this.noObjects}\n >\n {this._componentLocale.header.exportButton}\n </gxg-button>\n <gxg-button\n id=\"cancel-kb-export-btn\"\n part=\"cancel-button\"\n onClick={this.onClickCancelCallbackHandler}\n disabled={!this.exportingIsInProcess || this.noObjects}\n >\n {this._componentLocale.header.cancelButton}\n </gxg-button>\n </gxg-buttons-container>\n {/* settings/options button*/}\n <gxg-button\n type=\"secondary-icon-only\"\n icon=\"gemini-tools/settings\"\n part=\"select-kb-btn\"\n class={{ \"options-btn\": true }}\n onClick={this.optionsCallbackHandler}\n >\n {this._componentLocale.header.optionsButton}\n </gxg-button>\n </div>\n {/* header bottom */}\n <div class=\"header__bottom\">\n <div class={{ \"checkboxes-wrapper\": true }}>\n {/* checkboxes */}\n <gxg-form-checkbox\n label={\n this._componentLocale.main.addKnowledgeBaseDescription\n }\n onChange={this.addKBPropertiesCallbackHandler}\n part=\"add-kb-checkbox\"\n ></gxg-form-checkbox>\n <gxg-form-checkbox\n label={this._componentLocale.main.exportAll}\n part=\"export-all-checkbox\"\n ref={el =>\n (this.exportAllCheckboxEl =\n el as HTMLGxgFormCheckboxElement)\n }\n onChange={this.exportAllChangedHandler}\n ></gxg-form-checkbox>\n </div>\n </div>\n </header>\n\n {/* main */}\n\n <div\n class={{\n \"tree-container\": true,\n \"tree-container--empty\":\n this.noObjects ||\n (!this.noObjects &&\n this.exportAllIsChecked &&\n !this.addKbPropertiesIsChecked)\n // \"tree-container--export-all\": this.exportAllIsChecked\n }}\n >\n {this.evaluateContentToDisplay()}\n </div>\n\n {/* footer */}\n {/* clear 'button' */}\n <gxg-text\n type=\"button-like\"\n part=\"export-button\"\n slot=\"footer-start\"\n onClick={this.clearButtonHandler}\n disabled={this.clearButtonDisabledConditions()}\n >\n {this._componentLocale.footer.clearButton}\n </gxg-text>\n {/* references button */}\n <gxg-button\n onClick={this.addReferencesCallbackHandler}\n type=\"outlined-text-icon\"\n icon=\"general/references\"\n part=\"export-button\"\n class={{ \"cancel-btn\": true }}\n disabled={this.exportAllIsChecked}\n slot=\"footer-end\"\n >\n {this._componentLocale.footer.referencesButton}\n </gxg-button>\n {/* add button */}\n <gxg-button\n type=\"primary-text-icon\"\n icon=\"menus/new-object\"\n part=\"export-button\"\n class={{ \"cancel-btn\": true }}\n onClick={this.addObjectsCallbackHandler}\n disabled={this.exportAllIsChecked}\n slot=\"footer-end\"\n >\n {this._componentLocale.footer.addButton}\n </gxg-button>\n </gx-ide-container>\n </div>\n {this.loader && false ? (\n <gxg-ide-loader\n cancelLabel={this._componentLocale.loader.cancelLabel}\n container={this.el}\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\n/* Kb Property*/\nexport type KBPropertiesCallback = () => Promise<KBPropertyData[]>;\nexport type KBPropertyData = {\n typeId: string;\n id: string;\n name: string;\n};\nexport type KBPropertyType = {\n id: string;\n icon: string;\n};\n\n/* Objects */\nexport type ObjectData = {\n typeId: string;\n id: string;\n name: string;\n};\n\n/* Callbacks*/\nexport type ExportFileDirectoryCallback = () => Promise<string>;\n\nexport type OptionsCallback = () => Promise<void>;\n\nexport type AddObjectsCallback = () => Promise<ObjectData[]>;\n\nexport type ExportCallback = (\n fileName: string,\n checkedKbPropertiesIds: string[],\n checkedObjectIds: string[]\n) => Promise<boolean>;\n\nexport type AddReferencesCallback = (\n objectIds: string[]\n) => Promise<ObjectData[]>;\n\nexport type CancelCallback = () => Promise<boolean>;\n"],"mappings":"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"}
@@ -1,507 +0,0 @@
1
- import { r as t, a as e, h as a, H as i, g as r } from "./p-aaed592c.js";
2
-
3
- import { g as o } from "./p-6df9fab1.js";
4
-
5
- import { L as s } from "./p-74d59062.js";
6
-
7
- import { c as l } from "./p-8cf892b5.js";
8
-
9
- import { a as n } from "./p-14e6ef41.js";
10
-
11
- import { F as c } from "./p-13feb5cf.js";
12
-
13
- // - - - - - - - - - - - -
14
- // Data Mappings
15
- // - - - - - - - - - - - -
16
- // ch-combo-box-render
17
- const mapObjectTypeToComboBoxItemModel = t => t.map((t => ({
18
- value: t.id,
19
- caption: t.name
20
- })));
21
-
22
- const mapCategoryToComboBoxItemModel = t => t.map((t => ({
23
- value: t.id,
24
- caption: t.label
25
- })));
26
-
27
- const d = ':root{--ui-animaton-speed:0.2s}.gxg-title-01{font-family:var(--ds-base-font-family-primary);font-weight:var(--ds-title-01-font-weight);font-size:var(--ds-title-01-font-size);letter-spacing:var(--ds-base-font-letter-spacing--comfortable);color:var(--ds-base-font-color);text-align:start;line-height:var(--ds-base-font-line-height--comfortable)}.gxg-title-01--negative{font-family:var(--ds-base-font-family-primary);font-weight:var(--ds-title-01-font-weight);font-size:var(--ds-title-01-font-size);letter-spacing:var(--ds-base-font-letter-spacing--comfortable);color:var(--ds-base-font-color);text-align:start;line-height:var(--ds-base-font-line-height--comfortable);color:var(--ds-base-font-color--negative)}.gxg-title-02{font-family:var(--ds-base-font-family-primary);font-weight:var(--ds-title-02-font-weight);font-size:var(--ds-title-02-font-size);letter-spacing:var(--ds-base-font-letter-spacing--regular);color:var(--ds-base-font-color);text-align:start;text-transform:uppercase;line-height:var(--ds-base-font-line-height--comfortable)}.gxg-title-02--negative{font-family:var(--ds-base-font-family-primary);font-weight:var(--ds-title-02-font-weight);font-size:var(--ds-title-02-font-size);letter-spacing:var(--ds-base-font-letter-spacing--regular);color:var(--ds-base-font-color);text-align:start;text-transform:uppercase;line-height:var(--ds-base-font-line-height--comfortable);color:var(--color-on-primary)}.gxg-title-03{font-family:var(--ds-base-font-family-primary);font-weight:var(--ds-title-03-font-weight);font-size:var(--ds-title-03-font-size);letter-spacing:var(--ds-base-font-letter-spacing--regular);color:var(--ds-base-font-color);text-align:start;text-transform:uppercase;line-height:var(--ds-base-font-line-height--comfortable)}.gxg-title-03--negative{font-family:var(--ds-base-font-family-primary);font-weight:var(--ds-title-03-font-weight);font-size:var(--ds-title-03-font-size);letter-spacing:var(--ds-base-font-letter-spacing--regular);color:var(--ds-base-font-color);text-align:start;text-transform:uppercase;line-height:var(--ds-base-font-line-height--comfortable);color:var(--ds-base-font-color--negative)}.gxg-title-04{font-family:var(--ds-base-font-family-primary);font-weight:var(--ds-title-04-font-weight);font-size:var(--ds-title-04-font-size);letter-spacing:var(--ds-base-font-letter-spacing--comfortable);color:var(--ds-base-font-color);text-align:start;line-height:var(--ds-base-font-line-height--comfortable)}.gxg-title-04--negative{font-family:var(--ds-base-font-family-primary);font-weight:var(--ds-title-04-font-weight);font-size:var(--ds-title-04-font-size);letter-spacing:var(--ds-base-font-letter-spacing--comfortable);color:var(--ds-base-font-color);text-align:start;line-height:var(--ds-base-font-line-height--comfortable);color:var(--ds-base-font-color--negative)}.gxg-title-05{font-family:var(--ds-base-font-family-primary);font-weight:var(--ds-title-05-font-weight);font-size:var(--ds-title-05-font-size);letter-spacing:var(--ds-base-font-letter-spacing--regular);color:var(--ds-base-font-color);text-align:start;line-height:var(--ds-base-font-line-height--comfortable)}.gxg-title-05--negative{font-family:var(--ds-base-font-family-primary);font-weight:var(--ds-title-05-font-weight);font-size:var(--ds-title-05-font-size);letter-spacing:var(--ds-base-font-letter-spacing--regular);color:var(--ds-base-font-color);text-align:start;line-height:var(--ds-base-font-line-height--comfortable);color:var(--ds-base-font-color--negative)}.gxg-text{font-family:var(--ds-base-font-family-primary);font-size:var(--ds-base-font-size);color:var(--ds-base-font-size-color);font-weight:var(--ds-base-font-size-weight);line-height:var(--ds-base-font-line-height--comfortable)}.gxg-text--negative{font-family:var(--ds-base-font-family-primary);font-size:var(--ds-base-font-size);color:var(--ds-base-font-size-color);font-weight:var(--ds-base-font-size-weight);line-height:var(--ds-base-font-line-height--comfortable);color:var(--ds-base-font-color--negative)}.gxg-text--gray{font-family:var(--ds-base-font-family-primary);font-size:var(--ds-base-font-size);color:var(--ds-base-font-size-color);font-weight:var(--ds-base-font-size-weight);line-height:var(--ds-base-font-line-height--comfortable);color:var(--ds-base-font-color--dimmed)}.gxg-quote{font-family:var(--ds-base-font-family-primary);font-size:var(--ds-base-font-size);color:var(--ds-base-font-size-color);font-weight:var(--ds-base-font-size-weight);line-height:var(--ds-base-font-line-height--comfortable);font-style:italic}.gxg-quote--negative{color:var(--ds-base-font-color--negative)}.gxg-link{line-height:unset;font-family:var(--ds-base-font-family-primary);font-size:var(--ds-base-font-size);color:var(--ds-base-font-size-color);font-weight:var(--ds-base-font-size-weight);line-height:var(--ds-base-font-line-height--comfortable);color:var(--ds-base-font-color--link);text-decoration:underline;cursor:pointer;display:inline-block}.gxg-link:hover{color:var(--ds-base-font-color--link-hover)}.gxg-link:active{color:var(--ds-base-font-color--link-active)}.gxg-link-gray{line-height:unset;font-family:var(--ds-base-font-family-primary);font-size:var(--ds-base-font-size);color:var(--ds-base-font-size-color);font-weight:var(--ds-base-font-size-weight);line-height:var(--ds-base-font-line-height--comfortable);color:var(--ds-base-font-color--link);text-decoration:underline;cursor:pointer;display:inline-block;color:var(--ds-base-font-color--dimmed)}.gxg-link-gray:hover{line-height:unset;font-family:var(--ds-base-font-family-primary);font-size:var(--ds-base-font-size);color:var(--ds-base-font-size-color);font-weight:var(--ds-base-font-size-weight);line-height:var(--ds-base-font-line-height--comfortable);color:var(--ds-base-font-color--link);text-decoration:underline;cursor:pointer;display:inline-block;color:var(--ds-base-font-color--dimmed);filter:brightness(1.4)}.gxg-alert-error{font-family:var(--ds-base-font-family-primary);font-size:var(--ds-base-font-size);color:var(--ds-base-font-size-color);font-weight:var(--ds-base-font-size-weight);line-height:var(--ds-base-font-line-height--comfortable);color:var(--ds-base-font-color--error);display:inline-block}.gxg-alert-warning{font-family:var(--ds-base-font-family-primary);font-size:var(--ds-base-font-size);color:var(--ds-base-font-size-color);font-weight:var(--ds-base-font-size-weight);line-height:var(--ds-base-font-line-height--comfortable);color:var(--ds-base-font-color--warning);display:inline-block}.gxg-alert-success{font-family:var(--ds-base-font-family-primary);font-size:var(--ds-base-font-size);color:var(--ds-base-font-size-color);font-weight:var(--ds-base-font-size-weight);line-height:var(--ds-base-font-line-height--comfortable);color:var(--ds-base-font-color--success);display:inline-block}.gxg-tab--disabled{color:var(--color-primary-disabled);pointer-events:none}.gxg-tab--disabled[disabled]{color:var(--color-primary-disabled);pointer-events:none}.gxg-label{font-family:var(--ds-base-font-family-primary);font-weight:var(--gxg-label-font-weight);font-size:var(--gxg-label-font-size);color:var(--gxg-label-color);text-align:center;line-height:1.455em;display:flex;align-items:center}.gxg-label:hover{color:var(--color-primary-hover)}.gxg-label:focus{color:var(--color-primary-active)}.gxg-label:active{color:var(--color-primary-active)}.gxg-label[disabled]{color:var(--color-primary-disabled)}.gxg-label--negative{color:var(--color-on-primary)}.gxg-label--negative[disabled]{color:var(--color-on-disabled)}.gxg-scrollbar{}.gxg-scrollbar::-webkit-scrollbar{width:var(--gxg-scrollbar-width);height:var(--gxg-scrollbar-width)}.gxg-scrollbar::-webkit-scrollbar-track{background-color:var(--gxg-scrollbar-track-background);border-radius:var(--gxg-scrollbar-track-border-radius)}.gxg-scrollbar::-webkit-scrollbar-thumb{background-color:var(--gxg-scrollbar-track-thumb-background);border-radius:var(--gxg-scrollbar-track-thumb-radius)}.gxg-scrollbar::-webkit-scrollbar-thumb:hover{background-color:var(--gxg-scrollbar-track-thumb-hover-background)}.gxg-scrollbar::-webkit-scrollbar-corner{background:rgba(0, 0, 0, 0)}:host{display:grid;block-size:100%}.card-regular{background-color:var(--mer-surface__elevation--01);border:var(--mer-border__width--sm) solid var(--mer-border-color__on-elevation--01);border-radius:var(--mer-border__radius--md);padding:var(--mer-spacing--md) var(--mer-spacing--md);display:grid}.card-small{background-color:var(--mer-surface__elevation--02);border-radius:var(--mer-border__radius--sm);padding:var(--mer-spacing--sm) var(--mer-spacing--sm)}.card-small--actionable:hover{background-color:var(--mer-color__neutral-gray--600)}.card-small--actionable:active{background-color:var(--mer-color__neutral-gray--650)}.card-small:focus-visible{outline:var(--focus__outline-width) var(--focus__outline-style) var(--focus__outline-color);outline-offset:var(--focus__outline-offset)}.empty-state{block-size:100%;display:flex;align-items:center;justify-content:center;flex-direction:column;gap:var(--mer-spacing--sm);text-align:center}.empty-state__title,.empty-state__button,.empty-state__link{max-inline-size:300px}.opacity-0{opacity:0}.opacity-1{opacity:1}.display-contents{display:contents}.gxi-hidden{display:none !important}.gxi-full-height{height:100%}.gxi-overflow-auto{overflow:auto}.gxi-display-flex{display:flex}.align-start{display:flex;align-items:start}.align-center{display:flex;align-items:center}.align-end{display:flex;align-items:end}.overflow-auto{overflow:auto}.justify-start{display:flex;justify-content:start}.justify-center{display:flex;justify-content:center}.justify-end{display:flex;justify-content:end}.grid{display:grid;grid-row-gap:var(--gx-ide-grid-row-gap);grid-column-gap:var(--gx-ide-grid-column-gap);grid-template-rows:auto}ch-grid-cell{display:flex}ch-grid{overflow:auto;height:100%}ch-grid-column{z-index:99;border-bottom:1px solid var(--mer-color__neutral-gray--800)}ch-grid-column:first-child{padding-inline-start:var(--gx-ide-container__padding) !important}ch-grid-column:last-child{padding-inline-end:var(--gx-ide-container__padding) !important}ch-grid-cell{--mer-spacing--xs:var(--gx-ide-container__padding)}.layout{display:grid;gap:var(--mer-spacing--lg);box-sizing:border-box}.layout--two-cols{grid-template-columns:1fr 1fr}.layout--space-above{padding-block-start:var(--mer-spacing--lg)}gxg-tabs{box-shadow:none}:host(.gx-ide-component){height:100% !important;display:flex !important;flex-direction:column !important}:host(:focus-within) gx-ide-top-bar::part(wrapper){background-color:var(--color-secondary-enabled)}.gx-ide-main-wrapper{color:var(--gx-ide-component-text-color);font-weight:var(--mer-font__weight--regular);font-size:var(--mer-font__size--xs);font-family:var(--mer-font-family--primary);height:100%;background-color:var(--gx-ide-component-background-color);display:flex;flex-direction:column;flex-grow:1;box-sizing:border-box}.gx-ide-main{flex-grow:1;overflow-y:auto;}.gx-ide-main::-webkit-scrollbar{width:var(--gxg-scrollbar-width);height:var(--gxg-scrollbar-width)}.gx-ide-main::-webkit-scrollbar-track{background-color:var(--gxg-scrollbar-track-background);border-radius:var(--gxg-scrollbar-track-border-radius)}.gx-ide-main::-webkit-scrollbar-thumb{background-color:var(--gxg-scrollbar-track-thumb-background);border-radius:var(--gxg-scrollbar-track-thumb-radius)}.gx-ide-main::-webkit-scrollbar-thumb:hover{background-color:var(--gxg-scrollbar-track-thumb-hover-background)}.gx-ide-main::-webkit-scrollbar-corner{background:rgba(0, 0, 0, 0)}.gx-ide-overflow{overflow-y:auto;}.gx-ide-overflow::-webkit-scrollbar{width:var(--gxg-scrollbar-width);height:var(--gxg-scrollbar-width)}.gx-ide-overflow::-webkit-scrollbar-track{background-color:var(--gxg-scrollbar-track-background);border-radius:var(--gxg-scrollbar-track-border-radius)}.gx-ide-overflow::-webkit-scrollbar-thumb{background-color:var(--gxg-scrollbar-track-thumb-background);border-radius:var(--gxg-scrollbar-track-thumb-radius)}.gx-ide-overflow::-webkit-scrollbar-thumb:hover{background-color:var(--gxg-scrollbar-track-thumb-hover-background)}.gx-ide-overflow::-webkit-scrollbar-corner{background:rgba(0, 0, 0, 0)}.tree-view-primary{font-size:var(--mer-font__size--2xs)}p{margin:0;font-size:var(--mer-font__size--xxs)}.buttons-container{display:flex;gap:var(--mer-spacing--xs)}:host{block-size:100%;display:grid;grid-template-rows:auto 1fr auto;overflow:auto}.filter-layout{grid-template:"pattern type" "category module" "modified modified";grid-template-columns:1fr 1fr}.pattern{grid-area:pattern}.type{grid-area:type}.category{grid-area:category}.module{grid-area:module}.modified-accordion{grid-area:modified;display:flex;flex-direction:column}.field-group-modified{grid-template-columns:1fr 1fr 1fr}gx-ide-container::part(content){display:grid}ch-tabular-grid{overflow:auto;max-width:100%}.tabular-grid-object-selector ch-tabular-grid-cell:is(:nth-child(5)){padding-block:var(--grid-cell__padding-block);padding-inline:var(--grid-cell__padding-inline);align-items:start;justify-content:start;display:inline-block;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.objects-count{display:grid;grid-template-columns:1fr 1fr;border-block-start:var(--mer-border__width--sm) solid var(--mer-color__elevation--04)}.objects-selected{text-align:start}.objects-matching{text-align:end}.objects-selected,.objects-matching{padding:var(--mer-spacing--xs) var(--mer-spacing--md)}div.buttons-footer{justify-content:space-between}ch-tabular-grid-rowset-empty{position:relative}ch-tabular-grid.empty-result::part(main){overflow:hidden}input::-webkit-datetime-edit-fields-wrapper{padding:none}';
28
-
29
- var f = undefined && undefined.__classPrivateFieldGet || function(t, e, a, i) {
30
- if (a === "a" && !i) throw new TypeError("Private accessor was defined without a getter");
31
- if (typeof e === "function" ? t !== e || !i : !e.has(t)) throw new TypeError("Cannot read private member from an object whose class did not declare it");
32
- return a === "m" ? i : a === "a" ? i.call(t) : i ? i.value : e.get(t);
33
- };
34
-
35
- var g = undefined && undefined.__classPrivateFieldSet || function(t, e, a, i, r) {
36
- if (i === "m") throw new TypeError("Private method is not writable");
37
- if (i === "a" && !r) throw new TypeError("Private accessor was defined without a setter");
38
- if (typeof e === "function" ? t !== e || !r : !e.has(t)) throw new TypeError("Cannot write private member to an object whose class did not declare it");
39
- return i === "a" ? r.call(t, a) : r ? r.value = a : e.set(t, a), a;
40
- };
41
-
42
- var h, b, m, u, v, p, y, x, w, k, z, _, j, M, W, T, C, D, $, E, F, I, P, S, N, L, q, K, V, A;
43
-
44
- const B = [ "resets/box-sizing", "utils/form--full", "components/accordion", "components/tabular-grid", "utils/typography", "utils/layout" ];
45
-
46
- const H = o({
47
- category: "window-tools",
48
- name: "filter",
49
- colorType: "on-elevation"
50
- });
51
-
52
- const R = o({
53
- category: "system",
54
- name: "user",
55
- colorType: "on-elevation"
56
- });
57
-
58
- const G = [ {
59
- id: "modified",
60
- caption: "Modified",
61
- expanded: false
62
- } ];
63
-
64
- let J = null;
65
-
66
- const O = class {
67
- constructor(i) {
68
- t(this, i);
69
- h.set(this, void 0);
70
- b.set(this, e(`./gx-ide-assets/object-selector/shortcuts.json`));
71
- m.set(this, null);
72
- /* References needed to collect data */ u.set(this, void 0);
73
- v.set(this, void 0);
74
- p.set(this, void 0);
75
- y.set(this, void 0);
76
- x.set(this, void 0);
77
- w.set(this, void 0);
78
- k.set(this, void 0);
79
- z.set(this, void 0);
80
- _.set(this, void 0);
81
- j.set(this, (() => {
82
- this.cancelCallback();
83
- }));
84
- M.set(this, (t => {
85
- if (t.key === "Enter") {
86
- f(this, I, "f").call(this, t);
87
- }
88
- }));
89
- W.set(this, (() => {
90
- f(this, z, "f").selectAllRows(false);
91
- }));
92
- T.set(this, (t => {
93
- const e = f(this, h, "f");
94
- if (t === "selected") {
95
- if (this.selectedObjectsIdsArray.length === 0) {
96
- return e.objCount.selected.none;
97
- }
98
- if (this.selectedObjectsIdsArray.length === 1) {
99
- return `1 ${e.objCount.selected.one}`;
100
- }
101
- return `${this.selectedObjectsIdsArray.length} ${e.objCount.selected.many}`;
102
- }
103
- // type === "matching"
104
- if (this.objects.length === 0) {
105
- return e.objCount.matching.none;
106
- }
107
- if (this.objects.length === 1) {
108
- return `1 ${e.objCount.matching.one}`;
109
- }
110
- return `${this.objects.length} ${e.objCount.matching.many}`;
111
- }));
112
- C.set(this, (() => {
113
- const t = new Date;
114
- const e = t.toISOString().split("T")[0];
115
- const a = t.toISOString().split("T")[1].slice(0, 5);
116
- // Only take 'HH:MM' part
117
- return `${e}T${a}`;
118
- }));
119
- D.set(this, (t => {
120
- this.modifiedAfterValue = t.detail;
121
- if (this.modifiedAfterValue !== c.DATE_TIME || this.modifiedAfterValue === c.DATE_TIME && f(this, k, "f").value) {
122
- // if "modified" is "after date/time" only refresh ui if date/time is valid.
123
- f(this, P, "f").call(this);
124
- }
125
- }));
126
- $.set(this, (t => {
127
- this.selectedObjectsIdsArray = t.detail.rowsId;
128
- }));
129
- E.set(this, (t => {
130
- // just prevent keypress propagation
131
- if (t.key === "Enter") {
132
- t.stopPropagation();
133
- }
134
- }));
135
- F.set(this, (() => {
136
- this.newObjectCallback();
137
- }));
138
- I.set(this, (t => {
139
- t.stopPropagation();
140
- this.openSelectionCallback(this.selectedObjectsIdsArray);
141
- }));
142
- P.set(this, (() => {
143
- var t, e, a, i, r, o;
144
- /* 'modified' checkbox, should only be considered if 'date' || 'user' */ const s = f(this, x, "f").value;
145
- const l = (e = (t = f(this, w, "f")) === null || t === void 0 ? void 0 : t.value) === null || e === void 0 ? void 0 : e.trim();
146
- const n = {
147
- pattern: (a = f(this, u, "f")) === null || a === void 0 ? void 0 : a.value,
148
- type: f(this, v, "f").value,
149
- category: f(this, p, "f").value,
150
- module: (r = (i = f(this, y, "f")) === null || i === void 0 ? void 0 : i.value) === null || r === void 0 ? void 0 : r.id,
151
- modifiedAfter: s ? s : null,
152
- modifiedBy: l ? l : null,
153
- modifiedDate: s === c.DATE_TIME ? new Date((o = f(this, k, "f")) === null || o === void 0 ? void 0 : o.value) : null
154
- };
155
- this.loading = true;
156
- this.objects = [];
157
- this.loadCallback(n).then((t => {
158
- if (t) {
159
- this.objects = f(this, A, "f").call(this, t);
160
- }
161
- this.selectedObjectsIdsArray = [];
162
- f(this, W, "f").call(this);
163
- this.loading = false;
164
- }));
165
- }));
166
- S.set(this, (() => a("form", {
167
- class: "field-group filter-layout spacing-body"
168
- }, a("div", {
169
- class: "field field-block pattern"
170
- }, a("label", {
171
- class: "label",
172
- htmlFor: "pattern"
173
- }, f(this, h, "f").filter.pattern), a("ch-edit", {
174
- accessibleName: f(this, h, "f").filter.pattern,
175
- debounce: l.inputDebounce,
176
- class: "form-input",
177
- part: "filter-pattern",
178
- id: "pattern",
179
- name: "pattern",
180
- value: this.patternValue,
181
- mode: "text",
182
- ref: t => g(this, u, t, "f"),
183
- onInput: f(this, P, "f")
184
- })), a("div", {
185
- class: "field field-block type"
186
- }, a("label", {
187
- class: "label",
188
- htmlFor: "type"
189
- }, f(this, h, "f").filter.type), a("ch-combo-box-render", {
190
- accessibleName: f(this, h, "f").filter.type,
191
- class: "combo-box",
192
- disabled: !this.types,
193
- value: this.defaultType,
194
- part: "filter-type",
195
- id: "type",
196
- model: mapObjectTypeToComboBoxItemModel(this.types),
197
- ref: t => g(this, v, t, "f"),
198
- onInput: f(this, P, "f")
199
- })), a("div", {
200
- class: "field field-block category"
201
- }, a("label", {
202
- class: "label",
203
- htmlFor: "category"
204
- }, f(this, h, "f").filter.category), a("ch-combo-box-render", {
205
- id: "category",
206
- class: "combo-box",
207
- accessibleName: f(this, h, "f").filter.category,
208
- disabled: !this.categories,
209
- model: mapCategoryToComboBoxItemModel(this.categories),
210
- value: this.defaultCategory,
211
- part: "filter-category",
212
- onInput: this.categories && f(this, P, "f"),
213
- ref: t => g(this, p, t, "f")
214
- })), a("gx-ide-entity-selector", {
215
- class: "module",
216
- id: "module",
217
- value: this.defaultModule,
218
- ref: t => g(this, y, t, "f"),
219
- labelCaption: f(this, h, "f").filter.module,
220
- labelPosition: "block-start",
221
- onValueChanged: f(this, P, "f"),
222
- defaultValue: this.defaultModule,
223
- selectEntityCallback: this.selectModuleCallback
224
- }), a("ch-accordion-render", {
225
- class: "accordion-outlined modified-accordion",
226
- model: G
227
- }, a("div", {
228
- slot: "modified",
229
- class: "spacing-body"
230
- }, a("div", {
231
- class: "field-group field-group-modified"
232
- }, a("div", {
233
- class: "field field-block after"
234
- }, a("label", {
235
- class: "label",
236
- htmlFor: "after-type"
237
- }, f(this, h, "f").filter.after), a("ch-combo-box-render", {
238
- class: "combo-box",
239
- value: this.modifiedAfterValue,
240
- part: "filter-after-type",
241
- id: "after-type",
242
- model: f(this, m, "f"),
243
- ref: t => g(this, x, t, "f"),
244
- onInput: f(this, D, "f")
245
- })), a("div", {
246
- class: "field field-block"
247
- }, a("label", {
248
- class: "label",
249
- htmlFor: "user-name"
250
- }, f(this, h, "f").filter.user), a("ch-edit", {
251
- class: "form-input",
252
- part: "filter-user",
253
- value: this.patternValue,
254
- ref: t => g(this, w, t, "f"),
255
- id: "user-name",
256
- name: "userName",
257
- startImgSrc: R,
258
- onInput: f(this, P, "f")
259
- })), a("div", {
260
- class: "field field-block"
261
- }, a("label", {
262
- class: {
263
- label: true,
264
- "label--disabled": this.modifiedAfterValue !== "afterDateTime"
265
- },
266
- htmlFor: "modified-date"
267
- }, f(this, h, "f").filter.dateTime), a("input", {
268
- type: "datetime-local",
269
- class: "form-input input-date-time",
270
- id: "modified-date",
271
- name: "modifiedDate",
272
- part: "filter-pattern",
273
- value: this.patternValue,
274
- max: J,
275
- ref: t => g(this, k, t, "f"),
276
- disabled: this.modifiedAfterValue !== "afterDateTime",
277
- onInput: f(this, P, "f")
278
- }))))))));
279
- N.set(this, (() => a("footer", null, a("div", {
280
- class: "objects-count",
281
- slot: "footer-above"
282
- }, a("p", {
283
- class: "text-body-regular-s objects-selected",
284
- part: "objects-selected"
285
- }, f(this, T, "f").call(this, "selected")), a("p", {
286
- class: "text-body-regular-s objects-matching",
287
- part: "objects-matching"
288
- }, f(this, T, "f").call(this, "matching"))), a("div", {
289
- class: "buttons-footer control-footer-with-border"
290
- }, a("button", {
291
- class: "button-secondary",
292
- part: "button button-new",
293
- onClick: !this.loading ? f(this, F, "f") : undefined,
294
- disabled: this.loading
295
- }, f(this, h, "f").footer.btnNew), a("div", {
296
- class: "end buttons-container"
297
- }, a("button", {
298
- class: "button-secondary",
299
- part: "button button-cancel",
300
- onClick: f(this, j, "f")
301
- }, f(this, h, "f").footer.btnCancel), a("button", {
302
- class: "button-primary",
303
- part: "button button-confirm",
304
- onClick: f(this, I, "f"),
305
- disabled: this.loading
306
- }, f(this, h, "f").footer.btnConfirm), this.multiSelection ? a("button", {
307
- class: "button-secondary",
308
- onClick: f(this, q, "f"),
309
- part: "button button-select-all"
310
- }, f(this, h, "f").footer.btnSelectAll) : null)))));
311
- L.set(this, (() => a("ch-tabular-grid", {
312
- class: {
313
- "tabular-grid": true,
314
- "tabular-grid-object-selector": true,
315
- "empty-result": this.objects.length === 0
316
- },
317
- rowSelectionMode: this.multiSelection ? "multiple" : "single",
318
- ref: t => g(this, z, t, "f"),
319
- part: "ch-grid-objects",
320
- onKeyDown: f(this, M, "f"),
321
- onSelectionChanged: f(this, $, "f"),
322
- onDblClick: f(this, I, "f")
323
- }, a("ch-tabular-grid-columnset", {
324
- class: "tabular-grid-column-set"
325
- }, a("ch-tabular-grid-column", {
326
- "column-name-position": "text",
327
- settingable: false,
328
- size: l.tabularGrid.colSize.maxContent,
329
- class: "tabular-grid-column"
330
- }), a("ch-tabular-grid-column", {
331
- "column-name": f(this, h, "f").tableHead.name,
332
- "column-name-position": "text",
333
- settingable: false,
334
- size: l.tabularGrid.colSize.maxContent,
335
- class: "tabular-grid-column"
336
- }), a("ch-tabular-grid-column", {
337
- "column-name": f(this, h, "f").tableHead.type,
338
- "column-name-position": "text",
339
- settingable: false,
340
- size: l.tabularGrid.colSize.maxContent,
341
- class: "tabular-grid-column"
342
- }), a("ch-tabular-grid-column", {
343
- "column-name": f(this, h, "f").tableHead.module,
344
- "column-name-position": "text",
345
- settingable: false,
346
- size: l.tabularGrid.colSize.maxContent,
347
- class: "tabular-grid-column"
348
- }), a("ch-tabular-grid-column", {
349
- "column-name": f(this, h, "f").tableHead.description,
350
- "column-name-position": "text",
351
- settingable: false,
352
- size: l.tabularGrid.colSize.commonDouble,
353
- class: "tabular-grid-column"
354
- }), a("ch-tabular-grid-column", {
355
- "column-name": f(this, h, "f").tableHead.modifiedDate,
356
- "column-name-position": "text",
357
- settingable: false,
358
- size: l.tabularGrid.colSize.maxContent,
359
- class: "tabular-grid-column"
360
- }), a("ch-tabular-grid-column", {
361
- "column-name": f(this, h, "f").tableHead.importDate,
362
- "column-name-position": "text",
363
- settingable: false,
364
- size: l.tabularGrid.colSize.maxContent,
365
- class: "tabular-grid-column"
366
- })), this.objects.length ? a("ch-tabular-grid-rowset", {
367
- class: "tabular-grid-rowset"
368
- }, this.objects.map((t => a("ch-tabular-grid-row", {
369
- rowid: t.id,
370
- key: t.id,
371
- class: "tabular-grid-row"
372
- }, a("ch-tabular-grid-cell", {
373
- class: "tabular-grid-cell"
374
- }, a("ch-image", {
375
- src: t.icon,
376
- class: "icon-md"
377
- })), a("ch-tabular-grid-cell", {
378
- class: "tabular-grid-cell"
379
- }, t.name), a("ch-tabular-grid-cell", {
380
- class: "tabular-grid-cell"
381
- }, t.type), a("ch-tabular-grid-cell", {
382
- class: "tabular-grid-cell"
383
- }, t.module), a("ch-tabular-grid-cell", {
384
- class: "tabular-grid-cell"
385
- }, t.description), a("ch-tabular-grid-cell", {
386
- class: "tabular-grid-cell"
387
- }, `${n(t.modifiedDate, "date-time")}`), a("ch-tabular-grid-cell", {
388
- class: "tabular-grid-cell"
389
- }, `${n(t.importDate, "date-time")}`))))) : a("ch-tabular-grid-rowset", {
390
- class: "tabular-grid-rowset"
391
- }, a("ch-tabular-grid-rowset-empty", null, this.loader && this.loading ? a("gx-ide-loader", {
392
- loaderTitle: f(this, h, "f").loader.title,
393
- show: true
394
- }) : a("gx-ide-empty-state", {
395
- stateIconSrc: H,
396
- stateTitle: f(this, h, "f").emptyState.title
397
- }))))));
398
- q.set(this, (() => {
399
- f(this, z, "f").selectAllRows();
400
- }));
401
- K.set(this, (() => {
402
- this.modifiedAfterValue = c.NONE;
403
- }));
404
- V.set(this, (() => {
405
- g(this, m, [ {
406
- caption: f(this, h, "f").filter.afterNone,
407
- value: c.NONE
408
- }, {
409
- caption: f(this, h, "f").filter[c.DATE_TIME],
410
- value: c.DATE_TIME
411
- }, {
412
- caption: f(this, h, "f").filter[c.IMPORT],
413
- value: c.IMPORT
414
- }, {
415
- caption: f(this, h, "f").filter[c.LAST_BUILD],
416
- value: c.LAST_BUILD
417
- } ], "f");
418
- }));
419
- A.set(this, (t => t.sort(((t, e) => {
420
- const a = t.name.toLowerCase(), i = e.name.toLowerCase();
421
- if (a < i) {
422
- return -1;
423
- }
424
- if (a > i) {
425
- return 1;
426
- }
427
- return 0;
428
- }))));
429
- this.filterModified = false;
430
- this.loading = false;
431
- this.modifiedAfterValue = undefined;
432
- this.objects = [];
433
- this.selectedObjectsIdsArray = [];
434
- this.cancelCallback = undefined;
435
- this.categories = undefined;
436
- this.defaultCategory = undefined;
437
- this.defaultModule = undefined;
438
- this.defaultType = undefined;
439
- this.loader = false;
440
- this.loadCallback = undefined;
441
- this.multiSelection = false;
442
- this.newObjectCallback = undefined;
443
- this.openSelectionCallback = undefined;
444
- this.patternValue = undefined;
445
- this.selectModuleCallback = undefined;
446
- this.types = undefined;
447
- }
448
- async connectedCallback() {
449
- J = f(this, C, "f").call(this);
450
- }
451
- async componentWillLoad() {
452
- g(this, h, await s.getComponentStrings(this.el), "f");
453
- f(this, V, "f").call(this);
454
- f(this, K, "f").call(this);
455
- }
456
- componentDidLoad() {
457
- f(this, P, "f").call(this);
458
- f(this, u, "f").focus();
459
- }
460
- componentDidRender() {}
461
- /**
462
- * Suspends or reactivates the shortcuts
463
- */ async suspendShortcuts(t) {
464
- if (t) {
465
- f(this, _, "f").suspend = true;
466
- } else {
467
- f(this, _, "f").suspend = false;
468
- }
469
- }
470
- /**
471
- * Validate necessary data input
472
- */ async validate() {
473
- const t = true;
474
- return t;
475
- }
476
- render() {
477
- return a(i, {
478
- onKeyPress: f(this, E, "f")
479
- }, a("ch-theme", {
480
- model: B
481
- }), f(this, S, "f").call(this), f(this, L, "f").call(this), f(this, N, "f").call(this), a("ch-shortcuts", {
482
- src: f(this, b, "f"),
483
- ref: t => g(this, _, t, "f")
484
- }));
485
- }
486
- static get delegatesFocus() {
487
- return true;
488
- }
489
- static get assetsDirs() {
490
- return [ "gx-ide-assets/object-selector" ];
491
- }
492
- get el() {
493
- return r(this);
494
- }
495
- };
496
-
497
- h = new WeakMap, b = new WeakMap, m = new WeakMap, u = new WeakMap, v = new WeakMap,
498
- p = new WeakMap, y = new WeakMap, x = new WeakMap, w = new WeakMap, k = new WeakMap,
499
- z = new WeakMap, _ = new WeakMap, j = new WeakMap, M = new WeakMap, W = new WeakMap,
500
- T = new WeakMap, C = new WeakMap, D = new WeakMap, $ = new WeakMap, E = new WeakMap,
501
- F = new WeakMap, I = new WeakMap, P = new WeakMap, S = new WeakMap, N = new WeakMap,
502
- L = new WeakMap, q = new WeakMap, K = new WeakMap, V = new WeakMap, A = new WeakMap;
503
-
504
- O.style = d;
505
-
506
- export { O as gx_ide_object_selector };
507
- //# sourceMappingURL=p-b7384b06.entry.js.map