{"version":3,"file":"app-3b039b30.ad544168b9a452db.bundle.js","mappings":"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","sources":["webpack://client-app/./src/app/components/object/serial-number-tool/serial-number-tool.scss","webpack://client-app/./src/app/components/object/serial-number-tool/serial-number-tool.html","webpack://client-app/./src/app/components/object/serial-number-tool/serial-number-tool.ts"],"sourcesContent":["// Imports\nimport ___CSS_LOADER_API_SOURCEMAP_IMPORT___ from \"../../../../../node_modules/css-loader/dist/runtime/sourceMaps.js\";\nimport ___CSS_LOADER_API_IMPORT___ from \"../../../../../node_modules/css-loader/dist/runtime/api.js\";\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_SOURCEMAP_IMPORT___);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, `.auto-ids{margin:30px 10px 10px;display:flex;flex-direction:column;gap:20px}.auto-ids-settings-bar{display:flex;flex-direction:row;gap:20px;align-items:center}.auto-ids-input-group{width:500px;flex-grow:1}.auto-ids-settings-bar-container{display:flex;flex-direction:column;gap:5px}.auto-id-preview-table{border-style:solid;border-width:1px;border-radius:10px;border-color:#d3d3d3}.auto-id-label{margin-bottom:5px}.auto-id-target-parameter-select{width:150px;flex-grow:1}.auto-id-warning-message{color:#ff8c00}`, \"\",{\"version\":3,\"sources\":[\"webpack://./src/app/components/object/serial-number-tool/serial-number-tool.scss\"],\"names\":[],\"mappings\":\"AAMA,UACC,qBAAA,CACA,YAAA,CACA,qBAAA,CACA,QAAA,CAGD,uBACC,YAAA,CACA,kBAAA,CACA,QAAA,CACA,kBAAA,CAGD,sBACC,WAAA,CACA,WAAA,CAGD,iCACC,YAAA,CACA,qBAAA,CACA,OAAA,CAGD,uBACC,kBAAA,CACA,gBAAA,CACA,kBAAA,CACA,oBAAA,CAGD,eACC,iBAAA,CAGD,iCACE,WAAA,CACD,WAAA,CAGD,yBACC,aAAA\",\"sourcesContent\":[\"\\r\\n// (JG: De har ikke nogern effekt som sådan,\\r\\n// mon det ikke bare er at sikre, at de bliver bundlet..?\\r\\n// Eller, måske gør de, at jeg kan referere til variabler i scope, der kommer fra dem?)\\r\\n@import \\\"./src/resources/customized-styles/variables.scss\\\";\\r\\n\\r\\n.auto-ids {\\r\\n\\tmargin: 30px 10px 10px;\\r\\n\\tdisplay: flex;\\r\\n\\tflex-direction: column;\\r\\n\\tgap: 20px;\\r\\n}\\r\\n\\r\\n.auto-ids-settings-bar {\\r\\n\\tdisplay: flex;\\r\\n\\tflex-direction: row;\\r\\n\\tgap: 20px;\\r\\n\\talign-items: center;\\r\\n}\\r\\n\\r\\n.auto-ids-input-group {\\r\\n\\twidth: 500px;\\r\\n\\tflex-grow: 1;\\r\\n}\\r\\n\\r\\n.auto-ids-settings-bar-container {\\r\\n\\tdisplay: flex;\\r\\n\\tflex-direction: column;\\r\\n\\tgap: 5px;\\r\\n}\\r\\n\\r\\n.auto-id-preview-table {\\r\\n\\tborder-style: solid;\\r\\n\\tborder-width: 1px;\\r\\n\\tborder-radius: 10px;\\r\\n\\tborder-color: lightgray;\\r\\n}\\r\\n\\r\\n.auto-id-label {\\r\\n\\tmargin-bottom: 5px;\\r\\n}\\r\\n\\r\\n.auto-id-target-parameter-select {\\r\\n width: 150px;\\r\\n\\tflex-grow: 1;\\r\\n}\\r\\n\\r\\n.auto-id-warning-message {\\r\\n\\tcolor: darkorange;\\r\\n}\\r\\n\"],\"sourceRoot\":\"\"}]);\n// Exports\nexport default ___CSS_LOADER_EXPORT___;\n","module.exports = \"\\r\\n\";","import {ApiClient} from 'app/services/api-client';\r\nimport {AppContextService} from 'app/services/app-context-service';\r\nimport {DialogController} from 'aurelia-dialog';\r\nimport {autoinject, observable} from 'aurelia-framework';\r\nimport {ObjectFilterService} from \"../../../services/object-services/object-filter-service\";\r\nimport {ValueFilter} from \"../../../models/object-filter\";\r\nimport {AocObjectFilterService} from \"../../../services/object-services/aoc-object-filter-service\";\r\n\r\ninterface SerialNumberSettings {\r\n\tparameter1Id: string | undefined;\r\n\tparameter2Id: string | undefined;\r\n\tprefix: string;\r\n\tstartingNumber: number | null;\r\n\tdigits: number;\r\n\tparameterToTransferToId: string | undefined;\r\n}\r\n@autoinject\r\nexport class SerialNumberTool {\r\n\r\n\tpublic objectFilterService: ObjectFilterService | undefined;\r\n\r\n\tpublic sourceParameters: ValueFilter[] = [];\r\n\tpublic targetParameters: ValueFilter[] = [];\r\n\t@observable({ changeHandler: 'onSettingsChanged' })\r\n\tpublic parameter1: ValueFilter | undefined;\r\n\t@observable({ changeHandler: 'onSettingsChanged' })\r\n\tpublic parameter2: ValueFilter | undefined;\r\n\t@observable({ changeHandler: 'onSettingsChanged' })\r\n\tpublic prefix: string = \"\";\r\n\t@observable({ changeHandler: 'onSettingsChanged' })\r\n\tpublic startingNumber: string | null = null;\r\n\t@observable({ changeHandler: 'onSettingsChanged' })\r\n\tpublic targetParameter: ValueFilter | undefined;\r\n\t\r\n\tpublic previewRows: PreviewRow[] = [];\r\n\t\r\n\tprivate oldSettings: SerialNumberSettings | undefined;\r\n\tprivate showWarning: boolean = false;\r\n\t\r\n\tconstructor(\r\n\t\tprotected dialog: DialogController, \r\n\t\tprivate api: ApiClient,\r\n\t\tprivate ctx: AppContextService,\r\n\t) {\r\n\t\tconsole.log('AutoIDs ctor');\r\n\t}\r\n\r\n\tasync activate(): Promise {\r\n\t\tthis.objectFilterService = new AocObjectFilterService(this.api, this.ctx.projectId);\r\n\t\tawait this.loadFilters();\r\n\t\tawait this.loadSettings()\r\n\t}\r\n\r\n\tprivate async loadFilters() {\r\n\t\tconst allTypeFilters = await this.getAllTypeFilters();\r\n\r\n\t\tlet writeableFilters = allTypeFilters.filter(value => !value.readOnly);\r\n\t\tlet writeableNonClassificationFilters = writeableFilters.filter(value => !value.hasClassification);\r\n\r\n\t\tthis.sourceParameters = writeableFilters;\r\n\t\tthis.targetParameters = writeableNonClassificationFilters;\r\n\t}\r\n\t\r\n\tprivate async getAllTypeFilters() : Promise {\r\n\t\tif (this.objectFilterService == null) {\r\n\t\t\treturn [];\r\n\t\t}\r\n\t\tconst valueFilters = await this.objectFilterService.getAvailableFilters([]);\r\n\r\n\t\tlet onlyTypeParameters = valueFilters.filter(value => value.targetType === 'typeParameter');\r\n\r\n\t\treturn onlyTypeParameters;\r\n\t}\r\n\t\r\n\tasync update() {\r\n\t\tconst settings = this.getCurrentSettings();\r\n\r\n\t\tawait this.api.project(this.ctx.projectId)\r\n\t\t\t.postJson('SerialNumber/GenerateSerialNumbers', settings)\r\n\t\t\t.handleErrorMsgUsingReason(\"Could not generate serial numbers\", \"An error has occured during the creation of the serial numbers.\")\r\n\t\t\t.noResponse();\r\n\r\n\t\tawait this.dialog.ok();\r\n\t}\r\n\t\r\n\tasync createPreview(): Promise {\r\n\t\tconst settings = this.getCurrentSettings();\r\n\t\t\r\n\t\tthis.previewRows = await this.api.project(this.ctx.projectId)\r\n\t\t\t.postJson('SerialNumber/GeneratePreview', settings)\r\n\t\t\t.handleErrorMsgUsingReason(\"Could not generate serial numbers\", \"An error has occured during the creation of the serial numbers.\")\r\n\t\t\t.objectResult();\r\n\t}\r\n\t\r\n\tprivate getCurrentSettings() : SerialNumberSettings {\r\n\t\tlet digits: number | undefined = this.startingNumber?.toString().length;\r\n\t\treturn {\r\n\t\t\tparameter1Id: this.parameter1?.targetId,\r\n\t\t\tparameter2Id: this.parameter2?.targetId,\r\n\t\t\tprefix: this.prefix,\t\t\t\t\t\t\t\t//Will always be a number\r\n\t\t\tstartingNumber: this.startingNumber != undefined ? this.startingNumber : 0,\r\n\t\t\tdigits: digits != undefined ? digits : 0,\r\n\t\t\tparameterToTransferToId: this.targetParameter?.targetId\r\n\t\t};\r\n\t}\r\n\r\n\tprivate async loadSettings() {\r\n\t\t\r\n\t\tlet settings: SerialNumberSettings = await this.api.project(this.ctx.projectId)\r\n\t\t\t.get('SerialNumber/GetSettings')\r\n\t\t\t.handleErrorMsgUsingReason(\"Could not load serial number settings\", \"An error has occured during the retrieval of the serial number settings.\")\r\n\t\t\t.objectResult();\r\n\t\tconsole.log(\"Settings \" , settings);\r\n\t\tthis.oldSettings = settings;\r\n\t\t\r\n\t\tthis.parameter1 = this.sourceParameters.find(param => param.targetId === settings.parameter1Id);\r\n\t\tthis.parameter2 = this.sourceParameters.find(param => param.targetId === settings.parameter2Id);\r\n\t\tthis.targetParameter = this.sourceParameters.find(param => param.targetId === settings.parameterToTransferToId);\r\n\t\tthis.prefix = settings.prefix;\r\n\t\tlet zerosToInsert: number = 0;\r\n\t\tif (settings.startingNumber != undefined && settings.digits > settings.startingNumber?.toString().length) {\r\n\t\t\tzerosToInsert = settings.digits - settings.startingNumber?.toString().length;\r\n\t\t}\r\n\t\tthis.startingNumber = (\"0\".repeat(zerosToInsert)) + settings.startingNumber;\r\n\t}\r\n\t\r\n\tpublic onSettingsChanged() {\r\n\t\tconst settingsIdentical = \r\n\t\t\tthis.oldSettings?.parameterToTransferToId == this.targetParameter?.targetId\r\n\t\t\t&& this.oldSettings?.parameter1Id == this.parameter1?.targetId\r\n\t\t\t&& this.oldSettings?.parameter2Id == this.parameter2?.targetId\r\n\t\t\t&& this.oldSettings?.prefix == this.prefix\r\n\t\t\t&& this.oldSettings?.startingNumber == this.startingNumber;\r\n\t\t\r\n\t\tconsole.log(\"settingsIdentical\", settingsIdentical);\r\n\t\t\r\n\t\tthis.showWarning = !settingsIdentical;\r\n\t}\r\n}\r\n\r\ninterface PreviewRow {\r\n\ttargetParameterValue: string;\r\n\tserialNumberValue: string;\r\n}\r\n"],"names":["___CSS_LOADER_EXPORT___","push","module","id","exports","SerialNumberTool","constructor","dialog","api","ctx","sourceParameters","targetParameters","prefix","startingNumber","previewRows","showWarning","console","log","activate","this","objectFilterService","projectId","loadFilters","loadSettings","writeableFilters","getAllTypeFilters","filter","value","readOnly","writeableNonClassificationFilters","hasClassification","getAvailableFilters","targetType","update","settings","getCurrentSettings","project","postJson","handleErrorMsgUsingReason","noResponse","ok","createPreview","objectResult","digits","toString","length","parameter1Id","parameter1","targetId","parameter2Id","parameter2","undefined","parameterToTransferToId","targetParameter","get","oldSettings","find","param","zerosToInsert","repeat","onSettingsChanged","settingsIdentical","observable","changeHandler","autoinject","DialogController"],"sourceRoot":""}