@srikanthsai27/afrisure-blockly-expression 1.0.0

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.
@@ -0,0 +1 @@
1
+ {"version":3,"file":"srikanthsai27-afrisure-blockly-expression.mjs","sources":["../../../projects/afrisure-blockly-expression/src/lib/services/loader.service.ts","../../../projects/afrisure-blockly-expression/src/lib/components/pop-up-template/pop-up-template.ts","../../../projects/afrisure-blockly-expression/src/lib/components/pop-up-template/pop-up-template.html","../../../projects/afrisure-blockly-expression/src/lib/components/blockly-expression/blockly-expression.ts","../../../projects/afrisure-blockly-expression/src/lib/components/blockly-expression/blockly-expression.html","../../../projects/afrisure-blockly-expression/src/lib/material.module.ts","../../../projects/afrisure-blockly-expression/src/public-api.ts","../../../projects/afrisure-blockly-expression/src/srikanthsai27-afrisure-blockly-expression.ts"],"sourcesContent":["import { Injectable } from '@angular/core';\r\nimport { Subject } from 'rxjs';\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class LoaderService {\r\n private readonly _loading$ = new Subject<boolean>();\r\n loading$ = this._loading$.asObservable();\r\n private readonly _loadingCnt$ = new Subject<boolean>();\r\n loadingCnt$ = this._loadingCnt$.asObservable();\r\n private readonly _excelLoadingCnt$ = new Subject<boolean>();\r\n excelLoadingCnt$ = this._excelLoadingCnt$.asObservable();\r\n show() {\r\n this._loading$.next(true);\r\n }\r\n hide() {\r\n this._loading$.next(false);\r\n }\r\n\r\n\r\n}\r\n","import { Component, Input } from '@angular/core';\r\nimport { MatCardModule } from '@angular/material/card';\r\nimport { MatDividerModule } from '@angular/material/divider';\r\n\r\n@Component({\r\n selector: 'app-pop-up-template',\r\n standalone: true,\r\n imports: [MatCardModule, MatDividerModule],\r\n templateUrl: './pop-up-template.html',\r\n styleUrl: './pop-up-template.scss'\r\n})\r\nexport class PopUpTemplate {\r\n constructor() { }\r\n @Input() isTitle!: boolean;\r\n}\r\n","<mat-card class=\"container-fluid shadow-none \">\r\n <div class=\"p-16 pt-4\">\r\n <div class=\"d-flex align-items-center justify-content-between\">\r\n\r\n <mat-card-title><ng-content select=\"[Ctitle]\"></ng-content></mat-card-title>\r\n\r\n <ng-content select=\"[closeButton]\"></ng-content>\r\n </div>\r\n\r\n </div>\r\n\r\n <mat-divider></mat-divider>\r\n\r\n\r\n\r\n <ng-content select=\"[output]\"></ng-content>\r\n</mat-card>","\r\nimport { Component, EventEmitter, Inject, Output } from '@angular/core';\r\nimport * as Blockly from 'blockly/core';\r\nimport 'blockly/blocks';\r\nimport { javascriptGenerator, Order } from 'blockly/javascript';\r\nimport * as En from 'blockly/msg/en';\r\nimport { ContinuousFlyout, ContinuousMetrics, } from '@blockly/continuous-toolbox';\r\nimport '@blockly/toolbox-search';\r\nimport { MatDialogRef, MAT_DIALOG_DATA } from '@angular/material/dialog';\r\nimport { ZoomToFitControl } from '@blockly/zoom-to-fit';\r\nimport { LoaderService } from '../../services/loader.service';\r\nimport { CommonModule } from '@angular/common';\r\nimport { MatButtonModule } from '@angular/material/button';\r\nimport { MatIconModule } from '@angular/material/icon';\r\nimport { MatDialogModule } from '@angular/material/dialog';\r\nimport { TranslateModule } from '@ngx-translate/core';\r\nimport { PopUpTemplate } from '../pop-up-template/pop-up-template';\r\n@Component({\r\n selector: 'app-blockly-expression',\r\n standalone: true,\r\n imports: [\r\n CommonModule,\r\n MatButtonModule,\r\n MatIconModule,\r\n MatDialogModule,\r\n TranslateModule,\r\n PopUpTemplate\r\n ],\r\n templateUrl: './blockly-expression.html',\r\n styleUrl: './blockly-expression.scss'\r\n})\r\nexport class BlocklyExpression {\r\n\r\n private variableList: Array<any> = [];\r\n blockExpressionJSON: any;\r\n errorMessage: string = '';\r\n exportedExpression: any = '';\r\n generatedCode: string = '';\r\n code: string = '';\r\n private readonly lookupList: Array<any> = [];\r\n workspace: Blockly.WorkspaceSvg | null = null;\r\n InputBlockyExpression: any = [];\r\n @Output() outputResponse = new EventEmitter<any>();\r\n constructor(\r\n private readonly loader: LoaderService,\r\n public dialogRef: MatDialogRef<BlocklyExpression>,\r\n @Inject(MAT_DIALOG_DATA) public data: any\r\n ) {\r\n\r\n\r\n }\r\n ngOnInit() {\r\n console.log(this.data.InputBlockyExpression.lookup)\r\n this.loader.show();\r\n console.log(this.InputBlockyExpression)\r\n this.variableList = this.InputBlockyExpression.lookup || []\r\n\r\n }\r\n private createMaxCountList(maxCount: number): string[][] {\r\n let maxCountList = [];\r\n for (let i = 2; i <= maxCount; i++) {\r\n maxCountList.push([i.toString(), i.toString()]);\r\n }\r\n return maxCountList;\r\n }\r\n\r\n maxCountList: Array<any> = this.createMaxCountList(100);\r\n\r\n generateExpressionFromBlocklyJson(jsonString: string) {\r\n const workspaceState = JSON.parse(jsonString);\r\n const blocks = workspaceState?.blocks?.blocks;\r\n const blockMap = new Map();\r\n\r\n blocks.forEach((block: any) => addBlocksToMap(block));\r\n\r\n function addBlocksToMap(block: { id: any; inputs: any }) {\r\n blockMap.set(block.id, block);\r\n Object.values(block.inputs || {}).forEach((input: any) => {\r\n if (input.block) {\r\n addBlocksToMap(input.block);\r\n }\r\n });\r\n }\r\n\r\n function processBlock(blockId: any): string | number {\r\n const block = blockMap.get(blockId);\r\n if (!block) {\r\n return '';\r\n }\r\n\r\n switch (block.type) {\r\n case 'math_addition':\r\n case 'math_subtraction':\r\n case 'math_division':\r\n case 'math_max':\r\n case 'math_min':\r\n case 'math_multiplication':\r\n return processOperationBlock(block);\r\n case 'variables_get_dynamic':\r\n return block.fields.VAR.id;\r\n case 'example_number':\r\n return block.fields.FIELDNAME ? block.fields.FIELDNAME : '0';\r\n case 'example_string':\r\n return `'${block.fields.FIELDNAME}'`;\r\n case 'controls_if':\r\n return processIfBlock(block);\r\n case 'controls_ifelse':\r\n return processIfElseBlock(block);\r\n case 'logic_compare':\r\n return processLogicCompareBlock(block);\r\n case 'logic_boolean':\r\n return processLogicBooleanBlock(block);\r\n case 'variables_set_dynamic':\r\n return processVariablesSetBlock(block);\r\n default:\r\n return '';\r\n }\r\n }\r\n\r\n function processLogicBooleanBlock(block: { fields: { BOOL: string } }) {\r\n return block.fields.BOOL === 'TRUE' ? 'true' : 'false';\r\n }\r\n\r\n function processIfBlock(block: any) {\r\n let code = '';\r\n const elseifCount = block.extraState ? block.extraState.elseIfCount : 0;\r\n const hasElse = block.extraState ? block.extraState.hasElse : false;\r\n\r\n // Process IF condition\r\n if (block?.inputs != null) {\r\n const ifCondition = processBlock(block?.inputs['IF0'].block?.id);\r\n const ifStatement = processBlock(block?.inputs['DO0'].block?.id);\r\n code += `if (${ifCondition}) { ${ifStatement} }`;\r\n\r\n // Process ELSE-IF conditions\r\n for (let i = 1; i <= elseifCount; i++) {\r\n const elseifCondition = processBlock(\r\n block?.inputs[`IF${i}`].block?.id\r\n );\r\n const elseifStatement = processBlock(\r\n block?.inputs[`DO${i}`].block?.id\r\n );\r\n code += ` else if (${elseifCondition}) { ${elseifStatement} }`;\r\n }\r\n\r\n // Process ELSE condition\r\n if (hasElse) {\r\n const elseStatement = processBlock(block?.inputs['ELSE'].block?.id);\r\n code += ` else { ${elseStatement} }`;\r\n }\r\n }\r\n return code;\r\n }\r\n\r\n function processIfElseBlock(block: any) {\r\n const condition = getBlockInputValue(block, 'IF0');\r\n const doBranch = getBlockStatementValue(block, 'DO0');\r\n const elseBranch = getBlockStatementValue(block, 'ELSE');\r\n return `if (${condition}) { ${doBranch} } else { ${elseBranch} }`;\r\n }\r\n\r\n function processLogicCompareBlock(block: {\r\n inputs: { [x: string]: { block: { id: any } } };\r\n fields: { OP: any };\r\n }) {\r\n const operandA = processBlock(block.inputs['A'].block.id);\r\n const operandB = processBlock(block.inputs['B'].block.id);\r\n\r\n let operatorSymbol;\r\n switch (block.fields.OP) {\r\n case 'EQ':\r\n operatorSymbol = '==';\r\n break;\r\n case 'NEQ':\r\n operatorSymbol = '!=';\r\n break;\r\n case 'LT':\r\n operatorSymbol = '<';\r\n break;\r\n case 'LTE':\r\n operatorSymbol = '<=';\r\n break;\r\n case 'GT':\r\n operatorSymbol = '>';\r\n break;\r\n case 'GTE':\r\n operatorSymbol = '>=';\r\n break;\r\n default:\r\n operatorSymbol = '=='; // Default case or throw an error\r\n }\r\n\r\n return `${operandA} ${operatorSymbol} ${operandB}`;\r\n }\r\n\r\n function processVariablesSetBlock(block: {\r\n fields: { VAR: { id: any } };\r\n inputs: { [x: string]: { block: { id: any } } };\r\n }) {\r\n // Process the variables set block, for example:\r\n const variableName = block.fields.VAR.id; // Adjust based on your Blockly setup\r\n const value = processBlock(block.inputs['VALUE'].block.id);\r\n return `${variableName} = ${value}`;\r\n }\r\n\r\n function getBlockInputValue(\r\n block: { inputs: { [x: string]: { block: { id: any } } } },\r\n inputName: string\r\n ) {\r\n if (block?.inputs[inputName]?.block) {\r\n return processBlock(block.inputs[inputName].block.id);\r\n }\r\n return '';\r\n }\r\n\r\n function getBlockStatementValue(\r\n block: { statements: { [x: string]: { block: { id: any } } } },\r\n statementName: string\r\n ) {\r\n // Check if the block has statements and the specific statement\r\n if (block?.statements[statementName]) {\r\n const statementBlockId = block?.statements[statementName]?.block?.id;\r\n if (statementBlockId) {\r\n return processBlock(statementBlockId);\r\n }\r\n }\r\n return '';\r\n }\r\n\r\n function processStatementInput(\r\n block: { inputs: { [x: string]: { block: { id: any } } } },\r\n statementName: string | number\r\n ) {\r\n if (block?.inputs[statementName]?.block) {\r\n return processBlock(block.inputs[statementName].block.id);\r\n }\r\n return '';\r\n }\r\n\r\n function processOperationBlock(block: {\r\n fields: { NUM_FIELDS: string };\r\n type: any;\r\n inputs: { [x: string]: { block: { id: any } } };\r\n }) {\r\n const numFields = parseInt(block.fields.NUM_FIELDS) || 2; // Default to 2 if not specified\r\n let operationSymbol = '';\r\n let operationFunction = '';\r\n\r\n switch (block.type) {\r\n case 'math_addition':\r\n operationSymbol = ' + ';\r\n break;\r\n case 'math_subtraction':\r\n operationSymbol = ' - ';\r\n break;\r\n case 'math_division':\r\n operationSymbol = ' / ';\r\n break;\r\n case 'math_max':\r\n operationFunction = 'Math.max';\r\n break;\r\n case 'math_min': // Handling math_min operation\r\n operationFunction = 'Math.min';\r\n break;\r\n case 'math_multiplication':\r\n operationSymbol = ' * ';\r\n break;\r\n }\r\n\r\n let inputValues = [];\r\n for (let i = 0; i < numFields; i++) {\r\n const inputName = getInputName(block.type, i);\r\n if (block?.inputs != null) {\r\n const value = block?.inputs[inputName]?.block\r\n ? processBlock(block?.inputs[inputName].block.id)\r\n : '0';\r\n inputValues.push(value);\r\n }\r\n }\r\n\r\n if (operationFunction) {\r\n return `${operationFunction}(${inputValues.join(', ')})`;\r\n } else {\r\n return `(${inputValues.join(operationSymbol)})`;\r\n }\r\n }\r\n\r\n function getInputName(blockType: string | number, index: number) {\r\n const prefixMap: Record<string, string> = {\r\n math_addition: 'ADD',\r\n math_subtraction: 'SUB',\r\n math_division: 'DIV',\r\n math_max: 'NUM',\r\n math_min: 'NUM',\r\n math_multiplication: 'MUL',\r\n };\r\n\r\n return `${prefixMap[blockType as string] || 'INPUT'}${index}`;\r\n }\r\n\r\n if (blocks.length > 0) {\r\n return processBlock(blocks[0].id);\r\n }\r\n return '';\r\n }\r\n\r\n ExtractWorkspace() {\r\n const state = Blockly.serialization.workspaces.save(this.workspace);\r\n const stateStrJSON = JSON.stringify(state);\r\n const code = javascriptGenerator.workspaceToCode(this.workspace);\r\n const lines = code.split('\\n');\r\n if (lines.length > 2) {\r\n lines.splice(0, 2);\r\n }\r\n this.code = lines.join('\\n');\r\n\r\n this.exportedExpression = this.generateExpressionFromBlocklyJson(stateStrJSON);\r\n\r\n }\r\n\r\n LoadBlockExpression() {\r\n const tempJSON = this.blockExpressionJSON.loadexpression;\r\n\r\n\r\n // dont remove this code this is for parameter validation \r\n\r\n // if (tempJSON) {\r\n // let parseTempJSON = tempJSON ? JSON.parse(tempJSON) : []\r\n // let variables = parseTempJSON?.variables ?? [];\r\n // let lookup = this.data.InputBlockyExpression.lookup ?? []\r\n\r\n // let missingVariables = variables.filter(variable =>\r\n // !lookup.some(lookupItem => lookupItem.id === variable.id)\r\n // );\r\n // console.log(missingVariables)\r\n // if (missingVariables.length > 0) {\r\n // let missingDetailsArray = missingVariables.map(variable => ({ id: variable.id, name: variable.name }));\r\n\r\n // console.log(missingDetailsArray);\r\n\r\n // const dialogRef = this.dialog.open(MatDialogComponent, {\r\n // panelClass: ['dialog-responsive'],\r\n // width: '60vw',\r\n // disableClose: true,\r\n // data: {\r\n // yesOrNoPopupBlockly: true, errorMessage: missingDetailsArray\r\n // }\r\n // });\r\n // dialogRef.afterClosed().subscribe((res) => {\r\n // if (!res) {\r\n // // Blockly.serialization.workspaces.load(JSON.parse(tempJSON), this.workspace);\r\n // } else {\r\n // this.goBack()\r\n // }\r\n // });\r\n\r\n // } else {\r\n // Blockly.serialization.workspaces.load(JSON.parse(tempJSON), this.workspace);\r\n // }\r\n // }\r\n if (tempJSON) {\r\n let parseVal = JSON.parse(tempJSON)\r\n // this condition for while edit already send parmeters if not there in new parameter list that will remove here changes by gowtham \r\n let parseValD = parseVal?.variables?.filter(item =>\r\n this.variableList.some(main => main.id === item.id)\r\n );\r\n parseVal['variables'] = parseValD;\r\n Blockly.serialization.workspaces.load(parseVal, this.workspace);\r\n }\r\n }\r\n\r\n ngAfterViewInit() {\r\n window['maxCountList'] = this.maxCountList;\r\n Blockly.setLocale(En);\r\n this.DefineBlocklyCustomBlocks();\r\n this.DefineBlocklyCustomJavascript();\r\n const toolboxCategories = {\r\n kind: 'categoryToolbox',\r\n contents: [\r\n {\r\n 'kind': 'search',\r\n 'name': 'Search',\r\n 'contents': [],\r\n },\r\n /* {\r\n \"kind\": \"category\",\r\n \"name\": \"Control\",\r\n \"contents\": [\r\n {\r\n \"kind\": \"block\",\r\n \"type\": \"controls_if\"\r\n },\r\n ]\r\n }, */\r\n {\r\n kind: 'category',\r\n name: 'Logical',\r\n contents: [\r\n {\r\n kind: 'block',\r\n type: 'controls_if',\r\n },\r\n {\r\n kind: 'block',\r\n type: 'logic_compare',\r\n },\r\n {\r\n kind: 'block',\r\n type: 'logic_operation',\r\n },\r\n {\r\n kind: 'block',\r\n type: 'logic_boolean',\r\n },\r\n {\r\n kind: 'block',\r\n type: 'return_statement',\r\n },\r\n {\r\n kind: 'block',\r\n type: 'math_arithmetic',\r\n },\r\n {\r\n kind: 'block',\r\n type: 'math_number',\r\n },\r\n {\r\n kind: 'block',\r\n type: 'math_single',\r\n },\r\n {\r\n kind: 'block',\r\n type: 'math_constant',\r\n },\r\n {\r\n kind: 'block',\r\n type: 'math_number_property',\r\n },\r\n {\r\n kind: 'block',\r\n type: 'math_change',\r\n },\r\n {\r\n kind: 'block',\r\n type: 'math_round',\r\n },\r\n {\r\n kind: 'block',\r\n type: 'math_on_list',\r\n },\r\n {\r\n kind: 'block',\r\n type: 'math_arithmetic_multiple',\r\n },\r\n ],\r\n },\r\n {\r\n kind: 'category',\r\n name: 'Math',\r\n contents: [\r\n {\r\n kind: 'block',\r\n name: 'Math.Addition',\r\n type: 'math_addition',\r\n },\r\n {\r\n kind: 'block',\r\n name: 'Math.Subtraction',\r\n type: 'math_subtraction',\r\n },\r\n {\r\n kind: 'block',\r\n name: 'Math.Multiplication',\r\n type: 'math_multiplication',\r\n },\r\n {\r\n kind: 'block',\r\n name: 'Math.Division',\r\n type: 'math_division',\r\n },\r\n {\r\n kind: 'block',\r\n name: 'Math.Max',\r\n type: 'math_max',\r\n },\r\n {\r\n kind: 'block',\r\n name: 'Math.Min',\r\n type: 'math_min',\r\n },\r\n ],\r\n },\r\n {\r\n kind: 'category',\r\n name: 'Value',\r\n contents: [\r\n {\r\n kind: 'block',\r\n name: 'example_number',\r\n type: 'example_number',\r\n },\r\n {\r\n kind: 'block',\r\n name: 'example_string',\r\n type: 'example_string',\r\n },\r\n ],\r\n },\r\n /* {\r\n \"kind\": \"category\",\r\n \"name\": \"Variables\",\r\n \"custom\": \"VARIABLE\"\r\n }, */\r\n {\r\n kind: 'category',\r\n name: 'LookUps',\r\n custom: 'VARIABLE_DYNAMIC',\r\n },\r\n\r\n {\r\n kind: 'category',\r\n name: 'Functions',\r\n custom: 'PROCEDURE',\r\n },\r\n // {\r\n // 'kind': 'search',\r\n // 'name': 'Search',\r\n // 'contents': [],\r\n // }\r\n ],\r\n };\r\n this.workspace = Blockly.inject('blocklyDiv', {\r\n plugins: {\r\n // toolbox: ContinuousToolbox,\r\n flyoutsVerticalToolbox: ContinuousFlyout,\r\n metricsManager: ContinuousMetrics\r\n },\r\n toolbox: toolboxCategories,\r\n zoom: {\r\n controls: true,\r\n },\r\n });\r\n // Initialize plugin.\r\n const zoomToFit = new ZoomToFitControl(this.workspace);\r\n zoomToFit.init();\r\n this.loader.show();\r\n setTimeout(() => {\r\n this.InputBlockyExpression = this.data.InputBlockyExpression || []\r\n this.variableList = this.InputBlockyExpression.lookup || []\r\n this.blockExpressionJSON = this.InputBlockyExpression.blockExpressionJSON || [];\r\n\r\n this.createVariables();\r\n\r\n\r\n\r\n this.LoadBlockExpression();\r\n\r\n this.loader.hide();\r\n\r\n });\r\n this.createLookupVariables()\r\n\r\n }\r\n\r\n private DefineBlocklyCustomBlocks() {\r\n Blockly.Blocks['math_add_container'] = {\r\n init: function () {\r\n this.appendDummyInput().appendField('add numbers');\r\n this.appendStatementInput('STACK');\r\n this.setColour(230);\r\n this.contextMenu = false;\r\n },\r\n };\r\n\r\n\r\n\r\n Blockly.Blocks['math_addition'] = {\r\n init: function () {\r\n const maxCountList = window['maxCountList'] || [['2', '2']];\r\n\r\n this.appendDummyInput().appendField('Add');\r\n\r\n // Dropdown to choose the number of addition inputs\r\n this.appendDummyInput().appendField(\r\n new Blockly.FieldDropdown(\r\n maxCountList,\r\n this.updateFields_.bind(this)\r\n ),\r\n 'NUM_FIELDS'\r\n );\r\n\r\n // Initial addition fields\r\n this.appendValueInput('ADD0').setCheck('Number');\r\n this.appendValueInput('ADD1').setCheck('Number');\r\n\r\n this.setInputsInline(true);\r\n this.setOutput(true, 'Number');\r\n this.setColour(230);\r\n this.itemCount_ = 2;\r\n },\r\n\r\n // Function to update the number of input fields\r\n updateFields_: function (newValue: string) {\r\n let newCount = parseInt(newValue);\r\n while (this.itemCount_ < newCount) {\r\n this.appendValueInput('ADD' + this.itemCount_).setCheck('Number');\r\n this.itemCount_++;\r\n }\r\n while (this.itemCount_ > newCount) {\r\n this.removeInput('ADD' + (this.itemCount_ - 1));\r\n this.itemCount_--;\r\n }\r\n },\r\n\r\n mutationToDom: function () {\r\n let container = Blockly.utils.xml.createElement('mutation');\r\n container.setAttribute('items', this.itemCount_);\r\n return container;\r\n },\r\n\r\n domToMutation: function (xmlElement: {\r\n getAttribute: (arg0: string) => string;\r\n }) {\r\n this.itemCount_ = parseInt(xmlElement.getAttribute('items'), 10);\r\n this.updateShape_();\r\n },\r\n\r\n decompose: function (workspace: { newBlock: (arg0: string) => any }) {\r\n let containerBlock = workspace.newBlock('math_add_container');\r\n containerBlock.initSvg();\r\n let connection = containerBlock.getInput('STACK').connection;\r\n for (let i = 0; i < this.itemCount_; i++) {\r\n let itemBlock = workspace.newBlock('math_add_item');\r\n itemBlock.initSvg();\r\n connection.connect(itemBlock.previousConnection);\r\n connection = itemBlock.nextConnection;\r\n }\r\n return containerBlock;\r\n },\r\n\r\n compose: function (containerBlock: {\r\n getInputTargetBlock: (arg0: string) => any;\r\n }) {\r\n let itemBlock = containerBlock.getInputTargetBlock('STACK');\r\n // Count number of inputs.\r\n let connections = [];\r\n while (itemBlock) {\r\n connections.push(itemBlock.valueConnection_);\r\n itemBlock = itemBlock?.nextConnection?.targetBlock();\r\n }\r\n // Disconnect any children that don't belong.\r\n for (let i = 0; i < this.itemCount_; i++) {\r\n let connection = this.getInput('ADD' + i).connection.targetConnection;\r\n if (connection && connections.indexOf(connection) === -1) {\r\n connection.disconnect();\r\n }\r\n }\r\n this.itemCount_ = connections.length;\r\n this.updateShape_();\r\n // Reconnect any child blocks.\r\n for (let i = 0; i < this.itemCount_; i++) {\r\n connections[i].reconnect(this, 'ADD' + i);\r\n }\r\n },\r\n\r\n saveConnections: function (containerBlock: {\r\n getInputTargetBlock: (arg0: string) => any;\r\n }) {\r\n let itemBlock = containerBlock.getInputTargetBlock('STACK');\r\n let i = 0;\r\n while (itemBlock) {\r\n let input = this.getInput('ADD' + i);\r\n itemBlock.valueConnection_ = input?.connection?.targetConnection;\r\n i++;\r\n itemBlock = itemBlock?.nextConnection?.targetBlock();\r\n }\r\n },\r\n\r\n updateShape_: function () {\r\n // Adjust inputs.\r\n // for (let i = 0; i < this.itemCount_; i++) {\r\n // if (!this.getInput('ADD' + i)) {\r\n // this.appendValueInput('ADD' + i).setCheck('Number');\r\n // }\r\n // }\r\n // // Remove deleted inputs.\r\n // while (this.getInput('ADD' + i)) {\r\n // this.removeInput('ADD' + i);\r\n // i++;\r\n // }\r\n for (let i = 0; i < this.itemCount_; i++) {\r\n if (!this.getInput('ADD' + i)) {\r\n this.appendValueInput('ADD' + i).setCheck('Number');\r\n }\r\n }\r\n\r\n // Remove deleted inputs.\r\n let j = this.itemCount_;\r\n while (this.getInput('ADD' + j)) {\r\n this.removeInput('ADD' + j);\r\n j++;\r\n }\r\n\r\n },\r\n };\r\n\r\n Blockly.Blocks['math_subtraction'] = {\r\n init: function () {\r\n const maxCountList = window['maxCountList'] || [['2', '2']];\r\n\r\n this.appendDummyInput().appendField('Subtract');\r\n\r\n this.appendDummyInput().appendField(\r\n new Blockly.FieldDropdown(\r\n maxCountList,\r\n this.updateFields_.bind(this)\r\n ),\r\n 'NUM_FIELDS'\r\n );\r\n\r\n this.appendValueInput('SUB0').setCheck('Number');\r\n this.appendValueInput('SUB1').setCheck('Number');\r\n\r\n this.setInputsInline(true);\r\n this.setOutput(true, 'Number');\r\n this.setColour(230);\r\n this.itemCount_ = 2;\r\n },\r\n\r\n updateFields_: function (newValue: string) {\r\n let newCount = parseInt(newValue);\r\n while (this.itemCount_ < newCount) {\r\n this.appendValueInput('SUB' + this.itemCount_).setCheck('Number');\r\n this.itemCount_++;\r\n }\r\n while (this.itemCount_ > newCount) {\r\n this.removeInput('SUB' + (this.itemCount_ - 1));\r\n this.itemCount_--;\r\n }\r\n },\r\n };\r\n\r\n Blockly.Blocks['math_multiplication'] = {\r\n init: function () {\r\n const maxCountList = window['maxCountList'] || [['2', '2']];\r\n\r\n this.appendDummyInput().appendField('Multiply');\r\n\r\n this.appendDummyInput().appendField(\r\n new Blockly.FieldDropdown(\r\n maxCountList,\r\n this.updateFields_.bind(this)\r\n ),\r\n 'NUM_FIELDS'\r\n );\r\n\r\n this.appendValueInput('MUL0').setCheck('Number');\r\n this.appendValueInput('MUL1').setCheck('Number');\r\n\r\n this.setInputsInline(true);\r\n this.setOutput(true, 'Number');\r\n this.setColour(230);\r\n this.itemCount_ = 2;\r\n },\r\n\r\n updateFields_: function (newValue: string) {\r\n let newCount = parseInt(newValue);\r\n while (this.itemCount_ < newCount) {\r\n this.appendValueInput('MUL' + this.itemCount_).setCheck('Number');\r\n this.itemCount_++;\r\n }\r\n while (this.itemCount_ > newCount) {\r\n this.removeInput('MUL' + (this.itemCount_ - 1));\r\n this.itemCount_--;\r\n }\r\n },\r\n };\r\n\r\n Blockly.Blocks['math_max'] = {\r\n init: function () {\r\n const maxCountList = window['maxCountList'] || [['2', '2']];\r\n\r\n this.appendDummyInput().appendField('Max');\r\n\r\n this.appendDummyInput().appendField(\r\n new Blockly.FieldDropdown(\r\n maxCountList,\r\n this.updateFields_.bind(this)\r\n ),\r\n 'NUM_FIELDS'\r\n );\r\n\r\n this.appendValueInput('NUM0').setCheck('Number');\r\n this.appendValueInput('NUM1').setCheck('Number');\r\n\r\n this.setInputsInline(true);\r\n this.setOutput(true, 'Number');\r\n this.setColour(230);\r\n this.itemCount_ = 2;\r\n },\r\n\r\n updateFields_: function (newValue: string) {\r\n let newCount = parseInt(newValue);\r\n while (this.itemCount_ < newCount) {\r\n this.appendValueInput('NUM' + this.itemCount_).setCheck('Number');\r\n this.itemCount_++;\r\n }\r\n while (this.itemCount_ > newCount) {\r\n this.removeInput('NUM' + (this.itemCount_ - 1));\r\n this.itemCount_--;\r\n }\r\n },\r\n };\r\n\r\n Blockly.Blocks['math_min'] = {\r\n init: function () {\r\n const maxCountList = window['maxCountList'] || [['2', '2']];\r\n\r\n this.appendDummyInput().appendField('Min');\r\n\r\n this.appendDummyInput().appendField(\r\n new Blockly.FieldDropdown(\r\n maxCountList,\r\n this.updateFields_.bind(this)\r\n ),\r\n 'NUM_FIELDS'\r\n );\r\n\r\n this.appendValueInput('NUM0').setCheck('Number');\r\n this.appendValueInput('NUM1').setCheck('Number');\r\n\r\n this.setInputsInline(true);\r\n this.setOutput(true, 'Number');\r\n this.setColour(230);\r\n this.itemCount_ = 2;\r\n },\r\n\r\n updateFields_: function (newValue: string) {\r\n let newCount = parseInt(newValue);\r\n while (this.itemCount_ < newCount) {\r\n this.appendValueInput('NUM' + this.itemCount_).setCheck('Number');\r\n this.itemCount_++;\r\n }\r\n while (this.itemCount_ > newCount) {\r\n this.removeInput('NUM' + (this.itemCount_ - 1));\r\n this.itemCount_--;\r\n }\r\n },\r\n };\r\n\r\n Blockly.Blocks['math_division'] = {\r\n init: function () {\r\n this.appendDummyInput().appendField('Divide');\r\n\r\n // Access the global variable or service\r\n const maxCountList = window['maxCountList'] || [['2', '2']];\r\n\r\n this.appendDummyInput().appendField(\r\n new Blockly.FieldDropdown(\r\n maxCountList,\r\n this.updateFields_.bind(this)\r\n ),\r\n 'NUM_FIELDS'\r\n );\r\n\r\n this.appendValueInput('DIV0').setCheck('Number');\r\n this.appendValueInput('DIV1').setCheck('Number');\r\n\r\n this.setInputsInline(true);\r\n this.setOutput(true, 'Number');\r\n this.setColour(230);\r\n this.itemCount_ = 2;\r\n },\r\n\r\n updateFields_: function (newValue: string) {\r\n let newCount = parseInt(newValue);\r\n while (this.itemCount_ < newCount) {\r\n this.appendValueInput('DIV' + this.itemCount_).setCheck('Number');\r\n this.itemCount_++;\r\n }\r\n while (this.itemCount_ > newCount) {\r\n this.removeInput('DIV' + (this.itemCount_ - 1));\r\n this.itemCount_--;\r\n }\r\n },\r\n };\r\n\r\n Blockly.Blocks['example_number'] = {\r\n init: function () {\r\n this.appendDummyInput()\r\n .appendField('number:')\r\n .appendField(\r\n new Blockly.FieldNumber(100, 0, 999999999999, 0.0000000000001),\r\n 'FIELDNAME'\r\n );\r\n this.setOutput(true, 'Number');\r\n this.setTooltip('Tooltip text.');\r\n },\r\n };\r\n\r\n Blockly.Blocks['example_string'] = {\r\n init: function () {\r\n this.appendDummyInput()\r\n .appendField('string:')\r\n .appendField(new Blockly.FieldTextInput('name'), 'FIELDNAME');\r\n this.setOutput(true, 'String');\r\n this.setTooltip('Tooltip text.');\r\n },\r\n };\r\n\r\n Blockly.Blocks['string_length'] = {\r\n init: function () {\r\n this.appendValueInput('VALUE')\r\n .setCheck('String')\r\n .appendField('length of');\r\n this.setOutput(true, 'Number');\r\n this.setColour(160);\r\n this.setTooltip('Returns number of letters in the provided text.');\r\n this.setHelpUrl(\r\n 'http://www.w3schools.com/jsref/jsref_length_string.asp'\r\n );\r\n },\r\n };\r\n\r\n Blockly.Blocks['string_length2'] = {\r\n init: function () {\r\n this.jsonInit({\r\n message0: 'length of %1',\r\n args0: [\r\n {\r\n type: 'input_value',\r\n name: 'VALUE',\r\n check: 'String',\r\n },\r\n ],\r\n output: 'Number',\r\n colour: 160,\r\n tooltip: 'Returns number of letters in the provided text.',\r\n helpUrl: 'http://www.w3schools.com/jsref/jsref_length_string.asp',\r\n });\r\n },\r\n };\r\n\r\n Blockly.Blocks['return_statement'] = {\r\n init: function () {\r\n this.appendValueInput('VALUE')\r\n .setCheck(null) // You can specify a specific type or leave it as null for any type.\r\n .appendField('return');\r\n this.setPreviousStatement(true, null);\r\n this.setColour(230);\r\n this.setTooltip('Returns a value from a function');\r\n this.setHelpUrl(''); // URL to further documentation if necessary\r\n },\r\n };\r\n\r\n Blockly.Blocks['math_arithmetic_multiple'] = {\r\n init: function () {\r\n this.appendValueInput('NUM0').setCheck('Number');\r\n this.appendValueInput('NUM1').setCheck('Number');\r\n this.setOutput(true, 'Number');\r\n this.setColour(230);\r\n this.setTooltip('');\r\n this.setHelpUrl('');\r\n this.itemCount_ = 2;\r\n this.updateShape_();\r\n },\r\n\r\n mutationToDom: function () {\r\n let container = Blockly.utils.xml.createElement('mutation');\r\n container.setAttribute('items', this.itemCount_);\r\n return container;\r\n },\r\n\r\n domToMutation: function (xmlElement: {\r\n getAttribute: (arg0: string) => string;\r\n }) {\r\n this.itemCount_ = parseInt(xmlElement.getAttribute('items'), 10);\r\n this.updateShape_();\r\n },\r\n\r\n decompose: function (workspace: { newBlock: (arg0: string) => any }) {\r\n let containerBlock = workspace.newBlock('math_arithmetic_container');\r\n containerBlock.initSvg();\r\n let connection = containerBlock.getInput('STACK').connection;\r\n for (let i = 0; i < this.itemCount_; i++) {\r\n let itemBlock = workspace.newBlock('math_arithmetic_input');\r\n itemBlock.initSvg();\r\n connection.connect(itemBlock.previousConnection);\r\n connection = itemBlock.nextConnection;\r\n }\r\n return containerBlock;\r\n },\r\n\r\n compose: function (containerBlock: {\r\n getInputTargetBlock: (arg0: string) => any;\r\n }) {\r\n let itemBlock = containerBlock.getInputTargetBlock('STACK');\r\n\r\n // Collect connections\r\n let connections: any[] = [];\r\n while (itemBlock && !itemBlock.isInsertionMarker()) {\r\n connections.push(itemBlock.valueConnection_);\r\n itemBlock = itemBlock?.nextConnection?.targetBlock();\r\n }\r\n\r\n // Disconnect any children that don't belong\r\n for (let i = 0; i < this.itemCount_; i++) {\r\n const connection = this.getInput('NUM' + i).connection.targetConnection;\r\n if (connection && connections.indexOf(connection) === -1) {\r\n connection.disconnect();\r\n }\r\n }\r\n\r\n this.itemCount_ = connections.length;\r\n this.updateShape_();\r\n\r\n // Reconnect valid child blocks\r\n for (let i = 0; i < this.itemCount_; i++) {\r\n if (connections[i]) {\r\n connections[i].reconnect(this, 'NUM' + i);\r\n }\r\n }\r\n\r\n },\r\n\r\n saveConnections: function (containerBlock: {\r\n getInputTargetBlock: (arg0: string) => any;\r\n }) {\r\n let itemBlock = containerBlock.getInputTargetBlock('STACK');\r\n let i = 0;\r\n while (itemBlock) {\r\n let input = this.getInput('NUM' + i);\r\n itemBlock.valueConnection_ = input?.connection?.targetConnection;\r\n i++;\r\n itemBlock = itemBlock?.nextConnection?.targetBlock();\r\n }\r\n },\r\n\r\n updateShape_: function () {\r\n // Add missing value inputs.\r\n for (let i = 0; i < this.itemCount_; i++) {\r\n if (!this.getInput('NUM' + i)) {\r\n this.appendValueInput('NUM' + i).setCheck('Number');\r\n }\r\n }\r\n\r\n // Remove any extra inputs.\r\n let j = this.itemCount_;\r\n while (this.getInput('NUM' + j)) {\r\n this.removeInput('NUM' + j);\r\n j++;\r\n }\r\n },\r\n };\r\n\r\n Blockly.Blocks['math_arithmetic_container'] = {\r\n init: function () {\r\n this.appendDummyInput().appendField('add numbers');\r\n this.appendStatementInput('STACK');\r\n this.setColour(230);\r\n this.setTooltip('');\r\n this.contextMenu = false;\r\n },\r\n };\r\n\r\n Blockly.Blocks['math_arithmetic_input'] = {\r\n init: function () {\r\n this.appendDummyInput().appendField('number');\r\n this.setPreviousStatement(true);\r\n this.setNextStatement(true);\r\n this.setColour(230);\r\n this.setTooltip('');\r\n this.contextMenu = false;\r\n },\r\n };\r\n }\r\n\r\n private DefineBlocklyCustomJavascript() {\r\n javascriptGenerator.forBlock['math_addition'] = function (\r\n block: { getFieldValue: (arg0: string) => string },\r\n generator: {\r\n valueToCode: (arg0: any, arg1: string, arg2: Order) => string;\r\n }\r\n ) {\r\n const fieldCount = parseInt(block.getFieldValue('NUM_FIELDS'), 10);\r\n let values = [];\r\n\r\n for (let i = 0; i < fieldCount; i++) {\r\n const value =\r\n generator.valueToCode(block, 'ADD' + i, Order.ATOMIC) || '0';\r\n values.push(value);\r\n }\r\n\r\n const code = values.join(' + ');\r\n return ['(' + code + ')', Order.NONE];\r\n };\r\n\r\n javascriptGenerator.forBlock['math_subtraction'] = function (\r\n block: { getFieldValue: (arg0: string) => string },\r\n generator: {\r\n valueToCode: (arg0: any, arg1: string, arg2: Order) => string;\r\n }\r\n ) {\r\n const fieldCount = parseInt(block.getFieldValue('NUM_FIELDS'), 10);\r\n let values = [];\r\n\r\n for (let i = 0; i < fieldCount; i++) {\r\n const value =\r\n generator.valueToCode(block, 'SUB' + i, Order.ATOMIC) || '0';\r\n values.push(value);\r\n }\r\n\r\n const code = values.join(' - ');\r\n return ['(' + code + ')', Order.NONE];\r\n };\r\n\r\n javascriptGenerator.forBlock['math_max'] = function (\r\n block: { getFieldValue: (arg0: string) => string },\r\n generator: {\r\n valueToCode: (arg0: any, arg1: string, arg2: Order) => string;\r\n }\r\n ) {\r\n const fieldCount = parseInt(block.getFieldValue('NUM_FIELDS'), 10);\r\n let values = [];\r\n\r\n for (let i = 0; i < fieldCount; i++) {\r\n const value =\r\n generator.valueToCode(block, 'NUM' + i, Order.ATOMIC) || '0';\r\n values.push(value);\r\n }\r\n\r\n const code = 'Math.max(' + values.join(', ') + ')';\r\n return [code, Order.NONE];\r\n };\r\n\r\n javascriptGenerator.forBlock['math_min'] = function (\r\n block: { getFieldValue: (arg0: string) => string },\r\n generator: {\r\n valueToCode: (arg0: any, arg1: string, arg2: Order) => string;\r\n }\r\n ) {\r\n const fieldCount = parseInt(block.getFieldValue('NUM_FIELDS'), 10);\r\n let values = [];\r\n\r\n for (let i = 0; i < fieldCount; i++) {\r\n const value =\r\n generator.valueToCode(block, 'NUM' + i, Order.ATOMIC) || '0';\r\n values.push(value);\r\n }\r\n\r\n const code = 'Math.min(' + values.join(', ') + ')';\r\n return [code, Order.NONE];\r\n };\r\n\r\n javascriptGenerator.forBlock['math_division'] = function (\r\n block: { getFieldValue: (arg0: string) => string },\r\n generator: {\r\n valueToCode: (arg0: any, arg1: string, arg2: Order) => string;\r\n }\r\n ) {\r\n const fieldCount = parseInt(block.getFieldValue('NUM_FIELDS'), 10);\r\n let values = [];\r\n\r\n for (let i = 0; i < fieldCount; i++) {\r\n const value =\r\n generator.valueToCode(block, 'DIV' + i, Order.ATOMIC) || '0';\r\n values.push(value);\r\n }\r\n\r\n const code = values.join(' / ');\r\n return ['(' + code + ')', Order.NONE];\r\n };\r\n\r\n javascriptGenerator.forBlock['math_multiplication'] = function (\r\n block: { getFieldValue: (arg0: string) => string },\r\n generator: {\r\n valueToCode: (arg0: any, arg1: string, arg2: Order) => string;\r\n }\r\n ) {\r\n const fieldCount = parseInt(block.getFieldValue('NUM_FIELDS'), 10);\r\n let values = [];\r\n\r\n for (let i = 0; i < fieldCount; i++) {\r\n const value =\r\n generator.valueToCode(block, 'MUL' + i, Order.ATOMIC) || '1';\r\n values.push(value);\r\n }\r\n\r\n const code = values.join(' * ');\r\n return ['(' + code + ')', Order.NONE];\r\n };\r\n\r\n javascriptGenerator.forBlock['variables_get_dynamic'] = function (\r\n block: { getFieldValue: (arg0: string) => any },\r\n generator: any\r\n ) {\r\n let variableId = block.getFieldValue('VAR');\r\n let code = `${variableId}`;\r\n return [code, Order.ATOMIC];\r\n };\r\n\r\n javascriptGenerator.forBlock['example_number'] = function (\r\n block: { getFieldValue: (arg0: string) => any },\r\n generator: any\r\n ) {\r\n let variableId = block.getFieldValue('FIELDNAME');\r\n let code = `${variableId}`;\r\n return [code, Order.ATOMIC];\r\n };\r\n\r\n javascriptGenerator.forBlock['example_string'] = function (\r\n block: { getFieldValue: (arg0: string) => any },\r\n generator: any\r\n ) {\r\n let variableId = block.getFieldValue('FIELDNAME');\r\n let code = `'${variableId}'`;\r\n return [code, Order.ATOMIC];\r\n };\r\n\r\n javascriptGenerator.forBlock['return_statement'] = function (\r\n block: any,\r\n generator: {\r\n valueToCode: (arg0: any, arg1: string, arg2: Order) => string;\r\n }\r\n ) {\r\n let value = generator.valueToCode(block, 'VALUE', Order.NONE) || '';\r\n return 'return ' + value + ';\\n';\r\n };\r\n\r\n javascriptGenerator.forBlock['math_arithmetic_multiple'] = function (\r\n block: { itemCount_: number },\r\n generator: {\r\n valueToCode: (arg0: any, arg1: string, arg2: Order) => string;\r\n }\r\n ) {\r\n let code = [];\r\n for (let n = 0; n < block.itemCount_; n++) {\r\n code[n] = generator.valueToCode(block, 'NUM' + n, Order.NONE) || '0';\r\n }\r\n return [code, Order.ATOMIC];\r\n };\r\n }\r\n\r\n private createVariables(): void {\r\n this.loader.show();\r\n this.variableList?.forEach((variableObj) => {\r\n // let varialbleName = variableObj.title? variableObj.name :variableObj.name\r\n // setTimeout(() => {\r\n setTimeout(() => {\r\n this.workspace?.createVariable(\r\n variableObj?.name,\r\n variableObj?.type,\r\n variableObj?.id\r\n );\r\n }, 1);\r\n // });\r\n });\r\n\r\n this.loader.hide();\r\n }\r\n\r\n private createLookupVariables(): void {\r\n this.lookupList.forEach((variableObj) => {\r\n this.workspace?.createVariable(\r\n variableObj?.name,\r\n variableObj?.type,\r\n variableObj?.id\r\n );\r\n });\r\n }\r\n\r\n goBack() {\r\n this.workspace.dispose();\r\n this.dialogRef.close(false);\r\n }\r\n\r\n extractVarIds(blocks: any[], varIds: string[] = []): string[] {\r\n for (const block of blocks) {\r\n // Check if the block has a VAR field and push the id if it exists\r\n if (block?.fields?.VAR?.id) {\r\n varIds.push(block.fields.VAR.id);\r\n }\r\n\r\n // Recursively process all inputs if they exist\r\n if (block.inputs) {\r\n for (const key in block.inputs) {\r\n if (block.inputs[key].block) {\r\n this.extractVarIds([block.inputs[key].block], varIds);\r\n }\r\n }\r\n }\r\n\r\n // If the block is an array, recursively process it\r\n if (Array.isArray(block)) {\r\n this.extractVarIds(block, varIds);\r\n }\r\n }\r\n\r\n return varIds;\r\n }\r\n\r\n\r\n submit() {\r\n const state = Blockly.serialization.workspaces.save(this.workspace);\r\n\r\n\r\n let result = this.extractVarIds(state.blocks.blocks);\r\n let filteredVariable = state?.variables?.filter(item => result?.includes(item.id));\r\n let finalVal = {\r\n variables: filteredVariable,\r\n blocks: state.blocks\r\n }\r\n\r\n const stateStrJSON = JSON.stringify(finalVal);\r\n\r\n\r\n const code = javascriptGenerator.workspaceToCode(this.workspace);\r\n const lines = code.split('\\n');\r\n\r\n if (lines.length > 2) {\r\n lines.splice(0, 2);\r\n }\r\n\r\n // Join the remaining lines to form the modified code\r\n const modifiedCode = lines.filter(item => item !== \"\").join(\"\");\r\n\r\n // Assign the modified code to generatedCode\r\n this.generatedCode = modifiedCode;\r\n\r\n const savedState = JSON.parse(stateStrJSON);\r\n const blocks = savedState?.blocks?.blocks;\r\n this.errorMessage = '';\r\n if (Array.isArray(blocks) && blocks?.length != 0) {\r\n this.loader.show();\r\n this.exportedExpression = this.generateExpressionFromBlocklyJson(stateStrJSON);\r\n\r\n let val = {\r\n expression: this.generatedCode,\r\n javascriptCode: this.generatedCode,\r\n loadexpression: stateStrJSON,\r\n };\r\n\r\n this.loader.hide();\r\n this.outputResponse.emit(val);\r\n\r\n if (val) {\r\n this.receiveOutputResponse(val)\r\n }\r\n\r\n this.workspace.dispose();\r\n } else {\r\n this.loader.hide();\r\n this.errorMessage = 'Please drag and drop the blocks, there is no expression to add.';\r\n }\r\n }\r\n\r\n\r\n receiveOutputResponse(response: any) {\r\n this.outputResponse.emit(response);\r\n this.dialogRef.close(response);\r\n }\r\n\r\n}\r\n","<app-pop-up-template>\r\n\r\n <h5 Ctitle>\r\n {{'Expression Logic' | translate}}\r\n </h5>\r\n <div class=\"ps-1\" closeButton>\r\n <button mat-icon-button (click)=\"goBack()\" class=\"d-flex justify-content-center\">\r\n <span class=\"iconify f-s-24 \" data-icon=\"mdi:close\"></span>\r\n </button>\r\n </div>\r\n <ng-content output>\r\n\r\n\r\n <div id=\"blocklyDiv\" style=\"height: 66vh; width: 100%;\"></div>\r\n\r\n <div class=\"col-12 text-center\">\r\n <button mat-button (click)=\"ExtractWorkspace()\"\r\n class=\"mt-1 btnreset\">{{'Export_Expression'|translate}}&nbsp;<i class=\"fa fa-eye\"></i></button>\r\n <div>\r\n @if(code){\r\n <h5>{{'Expression'|translate}}:</h5>\r\n <div>{{code}}</div>\r\n }\r\n </div>\r\n <div>\r\n @if(errorMessage){\r\n <span class=\"text-danger\">{{errorMessage}}</span>\r\n }\r\n\r\n <div class=\"col-12 text-center mt-4 \">\r\n <button mat-button class=\"btnreset\" type=\"button\" (click)=\"goBack()\">\r\n {{'Close' | translate}}&nbsp;<em class=\"fa fa-times-circle\"></em>\r\n </button> &nbsp;\r\n <button mat-button class=\"btnc\" type=\"button\" (click)=\"submit()\">\r\n {{'next' | translate}}&nbsp;<em class=\"fa fa-arrow-right\"></em>\r\n </button>\r\n\r\n </div>\r\n </div>\r\n </div>\r\n\r\n </ng-content>\r\n</app-pop-up-template>","import { NgModule } from '@angular/core';\r\n// Material Form Controls\r\nimport { MatAutocompleteModule } from '@angular/material/autocomplete';\r\nimport { MatCheckboxModule } from '@angular/material/checkbox';\r\nimport { MatDatepickerModule } from '@angular/material/datepicker';\r\nimport { MatFormFieldModule } from '@angular/material/form-field';\r\nimport { MatInputModule } from '@angular/material/input';\r\nimport { MatRadioModule } from '@angular/material/radio';\r\nimport { MatSelectModule } from '@angular/material/select';\r\nimport { MatSliderModule } from '@angular/material/slider';\r\nimport { MatSlideToggleModule } from '@angular/material/slide-toggle';\r\n// Material Navigation\r\nimport { MatMenuModule } from '@angular/material/menu';\r\nimport { MatSidenavModule } from '@angular/material/sidenav';\r\nimport { MatToolbarModule } from '@angular/material/toolbar';\r\n// Material Layout\r\nimport { MatCardModule } from '@angular/material/card';\r\nimport { MatDividerModule } from '@angular/material/divider';\r\nimport { MatExpansionModule } from '@angular/material/expansion';\r\nimport { MatGridListModule } from '@angular/material/grid-list';\r\nimport { MatListModule } from '@angular/material/list';\r\nimport { MatStepperModule } from '@angular/material/stepper';\r\nimport { MatTabsModule } from '@angular/material/tabs';\r\nimport { MatTreeModule } from '@angular/material/tree';\r\n// Material Buttons & Indicators\r\nimport { MatButtonModule } from '@angular/material/button';\r\nimport { MatButtonToggleModule } from '@angular/material/button-toggle';\r\nimport { MatBadgeModule } from '@angular/material/badge';\r\nimport { MatChipsModule } from '@angular/material/chips';\r\nimport { MatIconModule } from '@angular/material/icon';\r\nimport { MatProgressSpinnerModule } from '@angular/material/progress-spinner';\r\nimport { MatProgressBarModule } from '@angular/material/progress-bar';\r\nimport { MatRippleModule } from '@angular/material/core';\r\n// Material Popups & Modals\r\nimport { MatBottomSheetModule } from '@angular/material/bottom-sheet';\r\nimport { MatDialogModule } from '@angular/material/dialog';\r\nimport { MatSnackBarModule } from '@angular/material/snack-bar';\r\nimport { MatTooltipModule } from '@angular/material/tooltip';\r\n// Material Data tables\r\nimport { MatPaginatorModule } from '@angular/material/paginator';\r\nimport { MatSortModule } from '@angular/material/sort';\r\nimport { MatTableModule } from '@angular/material/table';\r\nimport { MatDatetimepickerModule, MatNativeDatetimeModule } from '@mat-datetimepicker/core';\r\nimport { MatMomentDatetimeModule } from '@mat-datetimepicker/moment';\r\n\r\n@NgModule({\r\n declarations: [],\r\n exports: [\r\n MatAutocompleteModule,\r\n MatCheckboxModule,\r\n MatDatepickerModule,\r\n MatFormFieldModule,\r\n MatInputModule,\r\n MatRadioModule,\r\n MatSelectModule,\r\n MatSliderModule,\r\n MatSlideToggleModule,\r\n MatMenuModule,\r\n MatSidenavModule,\r\n MatToolbarModule,\r\n MatCardModule,\r\n MatDividerModule,\r\n MatExpansionModule,\r\n MatGridListModule,\r\n MatListModule,\r\n MatStepperModule,\r\n MatTabsModule,\r\n MatTreeModule,\r\n MatButtonModule,\r\n MatButtonToggleModule,\r\n MatBadgeModule,\r\n MatChipsModule,\r\n MatIconModule,\r\n MatProgressSpinnerModule,\r\n MatProgressBarModule,\r\n MatRippleModule,\r\n MatBottomSheetModule,\r\n MatDialogModule,\r\n MatSnackBarModule,\r\n MatTooltipModule,\r\n MatPaginatorModule,\r\n MatSortModule,\r\n MatTableModule,\r\n MatTooltipModule,\r\n MatMomentDatetimeModule,\r\n MatDatetimepickerModule,\r\n MatNativeDatetimeModule\r\n\r\n ],\r\n})\r\nexport class MaterialModule { }\r\n","/*\r\n * Public API Surface of afrisure-blockly-expression\r\n */\r\n\r\nexport * from './lib/services/loader.service';\r\nexport * from './lib/components/blockly-expression/blockly-expression';\r\nexport * from './lib/components/pop-up-template/pop-up-template';\r\nexport * from './lib/material.module';\r\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":[],"mappings":"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"}
package/index.d.ts ADDED
@@ -0,0 +1,104 @@
1
+ import * as rxjs from 'rxjs';
2
+ import * as i0 from '@angular/core';
3
+ import { EventEmitter } from '@angular/core';
4
+ import * as Blockly from 'blockly/core';
5
+ import * as i30 from '@angular/material/dialog';
6
+ import { MatDialogRef } from '@angular/material/dialog';
7
+ import * as i1 from '@angular/material/autocomplete';
8
+ import * as i2 from '@angular/material/checkbox';
9
+ import * as i3 from '@angular/material/datepicker';
10
+ import * as i4 from '@angular/material/form-field';
11
+ import * as i5 from '@angular/material/input';
12
+ import * as i6 from '@angular/material/radio';
13
+ import * as i7 from '@angular/material/select';
14
+ import * as i8 from '@angular/material/slider';
15
+ import * as i9 from '@angular/material/slide-toggle';
16
+ import * as i10 from '@angular/material/menu';
17
+ import * as i11 from '@angular/material/sidenav';
18
+ import * as i12 from '@angular/material/toolbar';
19
+ import * as i13 from '@angular/material/card';
20
+ import * as i14 from '@angular/material/divider';
21
+ import * as i15 from '@angular/material/expansion';
22
+ import * as i16 from '@angular/material/grid-list';
23
+ import * as i17 from '@angular/material/list';
24
+ import * as i18 from '@angular/material/stepper';
25
+ import * as i19 from '@angular/material/tabs';
26
+ import * as i20 from '@angular/material/tree';
27
+ import * as i21 from '@angular/material/button';
28
+ import * as i22 from '@angular/material/button-toggle';
29
+ import * as i23 from '@angular/material/badge';
30
+ import * as i24 from '@angular/material/chips';
31
+ import * as i25 from '@angular/material/icon';
32
+ import * as i26 from '@angular/material/progress-spinner';
33
+ import * as i27 from '@angular/material/progress-bar';
34
+ import * as i28 from '@angular/material/core';
35
+ import * as i29 from '@angular/material/bottom-sheet';
36
+ import * as i31 from '@angular/material/snack-bar';
37
+ import * as i32 from '@angular/material/tooltip';
38
+ import * as i33 from '@angular/material/paginator';
39
+ import * as i34 from '@angular/material/sort';
40
+ import * as i35 from '@angular/material/table';
41
+ import * as i36 from '@mat-datetimepicker/moment';
42
+ import * as i37 from '@mat-datetimepicker/core';
43
+
44
+ declare class LoaderService {
45
+ private readonly _loading$;
46
+ loading$: rxjs.Observable<boolean>;
47
+ private readonly _loadingCnt$;
48
+ loadingCnt$: rxjs.Observable<boolean>;
49
+ private readonly _excelLoadingCnt$;
50
+ excelLoadingCnt$: rxjs.Observable<boolean>;
51
+ show(): void;
52
+ hide(): void;
53
+ static ɵfac: i0.ɵɵFactoryDeclaration<LoaderService, never>;
54
+ static ɵprov: i0.ɵɵInjectableDeclaration<LoaderService>;
55
+ }
56
+
57
+ declare class BlocklyExpression {
58
+ private readonly loader;
59
+ dialogRef: MatDialogRef<BlocklyExpression>;
60
+ data: any;
61
+ private variableList;
62
+ blockExpressionJSON: any;
63
+ errorMessage: string;
64
+ exportedExpression: any;
65
+ generatedCode: string;
66
+ code: string;
67
+ private readonly lookupList;
68
+ workspace: Blockly.WorkspaceSvg | null;
69
+ InputBlockyExpression: any;
70
+ outputResponse: EventEmitter<any>;
71
+ constructor(loader: LoaderService, dialogRef: MatDialogRef<BlocklyExpression>, data: any);
72
+ ngOnInit(): void;
73
+ private createMaxCountList;
74
+ maxCountList: Array<any>;
75
+ generateExpressionFromBlocklyJson(jsonString: string): string | number;
76
+ ExtractWorkspace(): void;
77
+ LoadBlockExpression(): void;
78
+ ngAfterViewInit(): void;
79
+ private DefineBlocklyCustomBlocks;
80
+ private DefineBlocklyCustomJavascript;
81
+ private createVariables;
82
+ private createLookupVariables;
83
+ goBack(): void;
84
+ extractVarIds(blocks: any[], varIds?: string[]): string[];
85
+ submit(): void;
86
+ receiveOutputResponse(response: any): void;
87
+ static ɵfac: i0.ɵɵFactoryDeclaration<BlocklyExpression, never>;
88
+ static ɵcmp: i0.ɵɵComponentDeclaration<BlocklyExpression, "app-blockly-expression", never, {}, { "outputResponse": "outputResponse"; }, never, ["*"], true, never>;
89
+ }
90
+
91
+ declare class PopUpTemplate {
92
+ constructor();
93
+ isTitle: boolean;
94
+ static ɵfac: i0.ɵɵFactoryDeclaration<PopUpTemplate, never>;
95
+ static ɵcmp: i0.ɵɵComponentDeclaration<PopUpTemplate, "app-pop-up-template", never, { "isTitle": { "alias": "isTitle"; "required": false; }; }, {}, never, ["[Ctitle]", "[closeButton]", "[output]"], true, never>;
96
+ }
97
+
98
+ declare class MaterialModule {
99
+ static ɵfac: i0.ɵɵFactoryDeclaration<MaterialModule, never>;
100
+ static ɵmod: i0.ɵɵNgModuleDeclaration<MaterialModule, never, never, [typeof i1.MatAutocompleteModule, typeof i2.MatCheckboxModule, typeof i3.MatDatepickerModule, typeof i4.MatFormFieldModule, typeof i5.MatInputModule, typeof i6.MatRadioModule, typeof i7.MatSelectModule, typeof i8.MatSliderModule, typeof i9.MatSlideToggleModule, typeof i10.MatMenuModule, typeof i11.MatSidenavModule, typeof i12.MatToolbarModule, typeof i13.MatCardModule, typeof i14.MatDividerModule, typeof i15.MatExpansionModule, typeof i16.MatGridListModule, typeof i17.MatListModule, typeof i18.MatStepperModule, typeof i19.MatTabsModule, typeof i20.MatTreeModule, typeof i21.MatButtonModule, typeof i22.MatButtonToggleModule, typeof i23.MatBadgeModule, typeof i24.MatChipsModule, typeof i25.MatIconModule, typeof i26.MatProgressSpinnerModule, typeof i27.MatProgressBarModule, typeof i28.MatRippleModule, typeof i29.MatBottomSheetModule, typeof i30.MatDialogModule, typeof i31.MatSnackBarModule, typeof i32.MatTooltipModule, typeof i33.MatPaginatorModule, typeof i34.MatSortModule, typeof i35.MatTableModule, typeof i32.MatTooltipModule, typeof i36.MatMomentDatetimeModule, typeof i37.MatDatetimepickerModule, typeof i37.MatNativeDatetimeModule]>;
101
+ static ɵinj: i0.ɵɵInjectorDeclaration<MaterialModule>;
102
+ }
103
+
104
+ export { BlocklyExpression, LoaderService, MaterialModule, PopUpTemplate };
package/package.json ADDED
@@ -0,0 +1,29 @@
1
+ {
2
+ "name": "@srikanthsai27/afrisure-blockly-expression",
3
+ "version": "1.0.0",
4
+ "peerDependencies": {
5
+ "@angular/common": "^20.0.0",
6
+ "@angular/core": "^20.0.0",
7
+ "@angular/material": "^20.0.0",
8
+ "@ngx-translate/core": "^16.0.0",
9
+ "blockly": "^10.4.3",
10
+ "@blockly/continuous-toolbox": "^5.0.19",
11
+ "@blockly/toolbox-search": "^1.2.11",
12
+ "@blockly/zoom-to-fit": "^5.0.18"
13
+ },
14
+ "dependencies": {
15
+ "tslib": "^2.3.0"
16
+ },
17
+ "sideEffects": false,
18
+ "module": "fesm2022/srikanthsai27-afrisure-blockly-expression.mjs",
19
+ "typings": "index.d.ts",
20
+ "exports": {
21
+ "./package.json": {
22
+ "default": "./package.json"
23
+ },
24
+ ".": {
25
+ "types": "./index.d.ts",
26
+ "default": "./fesm2022/srikanthsai27-afrisure-blockly-expression.mjs"
27
+ }
28
+ }
29
+ }