From cf0af07104a09b54c95f10c66aee5913956552ad Mon Sep 17 00:00:00 2001 From: Gaurav Kumar Date: Wed, 5 Nov 2025 18:48:27 +0530 Subject: [PATCH] data lake --- .../Data_lake/Data_lake.component.html | 50 +++++++++ .../Data_lake/Data_lake.component.scss | 100 ++++++++++++++++++ .../Data_lake/Data_lake.component.ts | 32 ++++++ 3 files changed, 182 insertions(+) diff --git a/frontend/angular-clarity-master/src/app/modules/main/builder/dashboardnew/Data_lake/Data_lake.component.html b/frontend/angular-clarity-master/src/app/modules/main/builder/dashboardnew/Data_lake/Data_lake.component.html index 5bfc217..3f5c25d 100644 --- a/frontend/angular-clarity-master/src/app/modules/main/builder/dashboardnew/Data_lake/Data_lake.component.html +++ b/frontend/angular-clarity-master/src/app/modules/main/builder/dashboardnew/Data_lake/Data_lake.component.html @@ -1002,4 +1002,54 @@ + + + + + + + \ No newline at end of file diff --git a/frontend/angular-clarity-master/src/app/modules/main/builder/dashboardnew/Data_lake/Data_lake.component.scss b/frontend/angular-clarity-master/src/app/modules/main/builder/dashboardnew/Data_lake/Data_lake.component.scss index e220708..fa985e5 100644 --- a/frontend/angular-clarity-master/src/app/modules/main/builder/dashboardnew/Data_lake/Data_lake.component.scss +++ b/frontend/angular-clarity-master/src/app/modules/main/builder/dashboardnew/Data_lake/Data_lake.component.scss @@ -499,3 +499,103 @@ margin-top: 10px; text-align: right; } + +/* Blending Configuration Modal Styles */ +.blending-config-container { + display: flex; + flex-direction: column; + gap: 20px; +} + +.section-title { + color: #0072a0; + font-weight: 600; + margin-bottom: 15px; + display: flex; + align-items: center; +} + +.section-icon { + margin-right: 10px; +} + +.keys-section { + padding: 15px; + border-radius: 8px; + background-color: #f9f9f9; + box-shadow: 0 2px 4px rgba(0,0,0,0.05); +} + +.key-card { + background-color: white; + border: 1px solid #e0e0e0; + border-radius: 6px; + padding: 15px; + margin-bottom: 15px; + box-shadow: 0 1px 3px rgba(0,0,0,0.1); +} + +.key-header h5 { + margin: 0 0 10px 0; + color: #333; + font-weight: 500; +} + +.headers-container { + display: flex; + flex-wrap: wrap; + gap: 8px; +} + +.header-tag { + display: inline-flex; + align-items: center; + background-color: #e3f2fd; + border: 1px solid #bbdefb; + border-radius: 20px; + padding: 6px 12px; + margin: 4px; + font-size: 13px; + font-family: monospace; + cursor: pointer; + transition: all 0.2s; +} + +.header-tag:hover { + background-color: #bbdefb; + transform: translateY(-2px); + box-shadow: 0 2px 4px rgba(0,0,0,0.1); +} + +.sql-editor-section { + padding: 15px; + border-radius: 8px; + background-color: #f9f9f9; + box-shadow: 0 2px 4px rgba(0,0,0,0.05); +} + +.sql-editor-container { + background-color: white; + border: 1px solid #e0e0e0; + border-radius: 6px; + padding: 15px; +} + +.sql-textarea { + width: 100%; + font-family: 'Courier New', monospace; + font-size: 14px; + min-height: 150px; +} + +.editor-hint { + margin-top: 10px; +} + +.modal-footer { + display: flex; + justify-content: flex-end; + gap: 10px; + padding: 15px; + border-top: 1px solid #eee; +} diff --git a/frontend/angular-clarity-master/src/app/modules/main/builder/dashboardnew/Data_lake/Data_lake.component.ts b/frontend/angular-clarity-master/src/app/modules/main/builder/dashboardnew/Data_lake/Data_lake.component.ts index d5b0a6e..d5a9b97 100644 --- a/frontend/angular-clarity-master/src/app/modules/main/builder/dashboardnew/Data_lake/Data_lake.component.ts +++ b/frontend/angular-clarity-master/src/app/modules/main/builder/dashboardnew/Data_lake/Data_lake.component.ts @@ -1320,12 +1320,44 @@ export class Data_lakeComponent implements OnInit { item.blending_lakeids.trim() !== ''; } + // Method to insert header into SQL query at cursor position + insertHeaderIntoQuery(header: string) { + const textarea = document.querySelector('.sql-textarea') as HTMLTextAreaElement; + if (textarea) { + const start = textarea.selectionStart; + const end = textarea.selectionEnd; + const text = textarea.value; + const before = text.substring(0, start); + const after = text.substring(end, text.length); + + // Insert the header at cursor position + this.sqlQueryText = before + header + after; + + // Set cursor position after the inserted text + setTimeout(() => { + textarea.selectionStart = start + header.length; + textarea.selectionEnd = start + header.length; + textarea.focus(); + }, 0); + } else { + // Fallback: append to end of text + this.sqlQueryText += header; + } + } + // Method to fetch blending keys fetchBlendingKeys(item: any) { this.selectedBlendingItem = item; this.blendingKeysData = []; this.showBlendingKeys = true; + // Initialize SQL query text from existing data + if (item.sqlquery_json) { + this.sqlQueryText = item.sqlquery_json; + } else { + this.sqlQueryText = ''; + } + // Parse blending_lakeids string to array const lakeIds = item.blending_lakeids.split(',').map(id => id.trim()).filter(id => id !== '');