{ "version": 3, "sources": ["apps/frontend/src/app/production/services/productions.service.ts", "apps/frontend/src/app/events/services/events.service.ts"], "sourcesContent": ["import { Subject } from 'rxjs';\nimport { Injectable } from '@angular/core';\nimport { resourcesConfig } from '@proman/resources';\nimport { FilterService } from '@proman/services/filter.service';\nimport { Entity } from '@proman/services/entity.service';\nimport { ACL } from '@proman/services/acl.service';\nimport { contains, findById, unique } from '@proman/utils';\nimport { values as lodashValues } from '@proman/utils';\nimport { TableField } from '@proman/interfaces/object-interfaces';\nimport {\n Material,\n Order,\n Production,\n ProductionMaterial,\n ProductionOperation,\n} from '@proman/interfaces/entity-interfaces';\nimport { ProductionEntityInterface } from '@proman/resources/production';\nimport { ParametersService } from '@proman/parameters/services/parameters.service';\n\n@Injectable({ providedIn: 'root' })\nexport class ProductionsService {\n activePlanning: Subject = new Subject();\n operationsTimeStamp: Subject = new Subject();\n technologyUpdatedTimestamp: Subject = new Subject();\n productionEntity: ProductionEntityInterface;\n parameterEntity: any;\n\n constructor(\n private ACL: ACL,\n private Entity: Entity,\n private Filter: FilterService,\n private Parameters: ParametersService,\n ) {\n this.productionEntity = Entity.get('production') as ProductionEntityInterface;\n this.parameterEntity = Entity.get('parameter');\n }\n\n setPlanning(id: number) {\n this.activePlanning.next(id);\n }\n\n finishPlanning() {\n this.activePlanning.next(null);\n }\n\n refreshOperations() {\n this.operationsTimeStamp.next(new Date().getTime());\n }\n\n checkActions() {\n this.technologyUpdatedTimestamp.next(new Date().getTime());\n }\n\n async possibleActions(productionIds: number[]) {\n return this.productionEntity.possibleActions({ id: productionIds });\n }\n\n getProductionStatus = (order: Order) => {\n let icons = resourcesConfig.order.params.orderStatusIcons;\n let icon = icons[order.status];\n\n return {\n icon,\n text: this.Filter.translate(order.status)\n };\n };\n\n getLastOperationEndTime = (row: Production) => {\n let endTime = row.deadline;\n let operations = row.operations;\n\n if (operations && operations.length) endTime = operations[operations.length - 1].plannedEnd;\n\n return endTime;\n };\n\n getFields = (): TableField[] => {\n return [\n {\n name: '',\n key: 'color',\n filter: null,\n sortable: false,\n formatter: 'directive',\n formatterConfig: 'pro-entity-table-color'\n },\n {\n name: 'id',\n key: 'id'\n },\n {\n name: 'order_type',\n key: 'order.type.name',\n extraPartialJoins: {\n 'order.type': ['name'],\n }\n },\n {\n name: 'name',\n key: 'name',\n },\n {\n name: 'article',\n key: 'article.altName'\n },\n {\n name: 'manager',\n key: 'order.manager.name',\n extraPartialJoins: {\n 'order.manager': ['name'],\n }\n },\n {\n name: 'created_at',\n key: 'createdAt',\n formatter: 'dateTime',\n formatterConfig: '_datetime_js',\n showTime: true\n },\n {\n name: 'deadline',\n key: 'deadline',\n getValue: this.getLastOperationEndTime,\n formatter: 'dateTime'\n },\n {\n name: 'start_time',\n key: 'start',\n formatter: 'dateTime'\n },\n {\n name: 'order_status',\n key: 'status',\n getValue: this.getProductionStatus,\n formatter: 'compile',\n filter: {\n type: 'dropdown_multi',\n options: [\n {\n name: this.Filter.translate('created_order_status'),\n id: this.productionEntity.CREATED\n },\n {\n name: this.Filter.translate('confirmed_order_status'),\n id: this.productionEntity.CONFIRMED\n },\n {\n name: this.Filter.translate('started_order_status'),\n id: this.productionEntity.STARTED\n },\n {\n name: this.Filter.translate('complete_order_status'),\n id: this.productionEntity.COMPLETE\n },\n {\n name: this.Filter.translate('suspended'),\n id: this.productionEntity.SUSPENDED,\n },\n {\n name: this.Filter.translate('copied'),\n id: this.productionEntity.COPIED,\n }\n ]\n }\n },\n {\n name: 'parameters',\n key: 'parameters',\n filter: {\n type: 'search',\n keys: ['parameters.parameter.name', 'parameters.parameter.alias', 'parameters.value'],\n },\n formatter: 'parameters',\n hidden: true,\n extraJoins: [\n 'parameters',\n 'parameters.parameter',\n 'parameters.children',\n 'parameters.children.parameter'\n ],\n preloadParametersData: true\n },\n {\n name: 'quantity',\n key: 'quantity',\n formatterConfig: 3,\n formatter: 'numeric',\n stats: ['sum']\n },\n {\n name: 'price',\n key: 'price',\n formatter: 'money',\n stats: ['sum'],\n acl: 'production.show_price'\n },\n {\n name: 'cost',\n key: 'cost',\n formatter: 'money',\n stats: ['sum'],\n acl: 'production.show_price'\n },\n {\n name: 'type',\n key: 'type.name',\n extraJoins: ['type'],\n },\n {\n name: 'subtype',\n key: 'subtype.name',\n extraJoins: ['subtype'],\n },\n {\n name: 'tags',\n key: 'tags',\n entityName: 'production',\n formatter: 'directive',\n formatterConfig: 'pro-tags',\n filter: {\n type: 'autocomplete',\n entity: 'tag'\n }\n }\n ];\n };\n\n getExtraParameters = resourcesConfig['production'].params.extraParameters;\n\n canPrint = (production: any) => {\n return new Promise((resolve) => resolve(production.status !== this.productionEntity.CREATED));\n };\n\n canConfirmTechnology = async (production: any, isOrderActive: any) => {\n let status = production.status;\n let result: boolean;\n\n if (!this.ACL.check('production.confirm') || !((status !== this.productionEntity.CREATED) || (status !== this.productionEntity.CONFIRMED) ) || !isOrderActive) {\n result = false;\n } else if (status === this.productionEntity.CONFIRMED) {\n result = true;\n\n } else {\n await this.loadTechnology(production).then(() => {\n let l = production.ungroupedParameters.length;\n for (let i = 0; i < l; i++) {\n if (this.Parameters.empty(production.ungroupedParameters[i])) {\n result = false;\n return;\n }\n }\n\n for (let i in production.groups) {\n let m = production.groups[i].parameters.length;\n for (let j = 0; j < m; j++) {\n let n = production.groups[i].parameters[j].children.length;\n for (let k = 0; k < n; k++) {\n if (this.Parameters.empty(production.groups[i].parameters[j].children[k])) {\n result = false;\n return;\n }\n }\n\n }\n }\n result = true;\n });\n }\n\n return new Promise((resolve) => resolve(result));\n };\n\n canStart = (production: any, isOrderActive: boolean) => {\n return new Promise((resolve) => resolve(\n this.ACL.check('production.update_status') && isOrderActive &&\n (production.status === this.productionEntity.CONFIRMED ||\n production.status === this.productionEntity.SUSPENDED ||\n production.status === this.productionEntity.RESERVED))\n );\n };\n\n canReserve = (production: any, isOrderActive: any) => {\n return new Promise((resolve) => resolve(this.ACL.check('production.update_status') && (production.status === this.productionEntity.CONFIRMED) && isOrderActive));\n };\n\n canCancelReservation = (production: any) => {\n return new Promise((resolve) => resolve(this.ACL.check('production.update_status') && (production.status === this.productionEntity.RESERVED)));\n };\n\n canSuspend = (production: any) => {\n return new Promise((resolve) => resolve(this.ACL.check('production.update_status') && production.status === this.productionEntity.STARTED));\n };\n\n canRemove = () => {\n return new Promise((resolve) => resolve(this.ACL.check('production.remove')));\n };\n\n loadTechnology = async (production: any) => {\n let articlePromise;\n let technologyPromise;\n\n const getMaterialCategoriesInParameters = (materialCategories: any, productionParameters: any) => {\n let output: any = [];\n let l = productionParameters.length;\n let i;\n let productionParameter;\n\n for (i = 0; i < l; i++) {\n productionParameter = productionParameters[i];\n\n if (productionParameter.children && productionParameter.children.length > 0) {\n output = output.concat(getMaterialCategoriesInParameters(materialCategories, productionParameter.children));\n }\n if (productionParameter.parameter.type === 'material_category') {\n output.push(this.Parameters.getMaterialCategoryId(productionParameter));\n }\n }\n return unique(output);\n };\n\n const prepareArticleProductionParameters = (articleProductionParameters: any) => {\n return articleProductionParameters\n .filter((articleProductionParameter: any) => {\n return articleProductionParameter.parameter.type === this.parameterEntity.PARAMETER_GROUP;\n });\n };\n\n const prepareGroupsMetadata = (metaParameters: any) => {\n let groups = {};\n let l = metaParameters.length;\n let metaParameter;\n let groupDefinitionId;\n\n for (let i = 0; i < l; i++) {\n metaParameter = metaParameters[i];\n groupDefinitionId = metaParameter.parameter.id;\n\n if (!groups[groupDefinitionId]) {\n groups[groupDefinitionId] = { metaParameters: [], parameters: [] };\n }\n\n groups[groupDefinitionId].metaParameters.push(metaParameter);\n }\n\n return groups;\n };\n\n if (!production.$parametersInited) {\n // load article\n // get article groups//prepare meta\n let productionParameterEntity = this.Entity.get('production_parameter');\n\n articlePromise = this.productionEntity\n .get({\n id: production.id,\n join: ['article', 'article.files']\n })\n .then((data: any) => production.article = data.article);\n\n await articlePromise\n .then(async () => {\n return await Promise.all([\n this.getMaterials(production),\n productionParameterEntity.QB.aggregate(production).search(),\n this.Entity.get('article_production_parameter').search({\n 'article.id': production.article.id,\n 'join': ['parameter', 'children', 'children.parameter']\n })\n ]);\n })\n .then((values: any) => {\n let materialCategories = values[0];\n let productionParameters = values[1];\n let articleProductionParameters = values[2];\n let metaParameters = prepareArticleProductionParameters(articleProductionParameters);\n let excludeMaterialCategories: any;\n let filteredCategories;\n let parameterCategories;\n\n production.materialCategories = materialCategories;\n production.productionParameters = productionParameters;\n production.articleProductionParameters = articleProductionParameters;\n\n production.groups = prepareGroupsMetadata(metaParameters);\n\n // find all materialCategories, associated with parameters\n excludeMaterialCategories = getMaterialCategoriesInParameters(materialCategories, productionParameters);\n\n filteredCategories = materialCategories\n .filter((materialCategory: any) => !contains(excludeMaterialCategories, materialCategory.id));\n\n parameterCategories = materialCategories\n .filter((materialCategory: any) => contains(excludeMaterialCategories, materialCategory.id));\n\n production.filteredMaterialCategories = filteredCategories;\n production.parameterCategories = parameterCategories;\n\n try {\n this.prepareParameters(production, productionParameters);\n } catch (e) {\n technologyPromise = null;\n throw e;\n }\n\n production.$parametersInited = true;\n });\n } else {\n\n }\n\n technologyPromise = new Promise((resolve: any) => resolve()).then((): any => technologyPromise = null);\n\n return technologyPromise;\n };\n\n getMaterials = async (production: any) => {\n return await Promise.all([\n this.Entity.get('material').search({\n 'articleMaterials.article.id': production.article.id,\n 'join': ['categories' /*, 'categories.rootParent' */]\n }),\n this.Entity.get('production_material').search({ 'production.id': production.id })\n ])\n .then((values: [Material[], ProductionMaterial[]]) => {\n let materials = values[0].map((material: any) => {\n material.enabled = !!findById(values[1], material);\n return material;\n });\n\n let materialCopy;\n\n // group materials by its categories' root parents\n const map = {};\n // for (const material of materials) {\n // for (const category of material.categories) {\n // let root = map[category.rootParent.id];\n // if (!root) {\n // root = category.rootParent;\n // map[root.id] = root;\n // root.materials = [];\n // }\n // materialCopy = {\n // id: material.id,\n // name: material.name,\n // category: { id: category.id, name: category.name }, // avoid recusive structure to fix stack overflow\n // rootCategory: { id: root.id, name: root.name }, // avoid recusive structure to fix stack overflow\n // enabled: material.enabled\n // };\n // root.materials.push(materialCopy);\n // }\n // }\n return lodashValues(map);\n });\n };\n\n prepareParameters = (production: any, productionParameters: any) => {\n // group all parameters into ungrouped (default, any type) and grouped(parameter_group type)\n // group all groups by group definition (productionParameter.parameterId)\n let ungroupedParameters = [];\n let groups = production.groups;\n\n for (let key in groups) {\n groups[key].parameters = [];\n\n }\n\n for (const productionParameter of productionParameters) {\n\n if (productionParameter.parameter.type !== this.parameterEntity.PARAMETER_GROUP) {\n ungroupedParameters.push(productionParameter);\n\n continue;\n\n }\n\n let groupData: any;\n\n try {\n groupData = JSON.parse(productionParameter.value);\n } catch (e) {\n groupData = {};\n }\n\n productionParameter.product = groupData?.product;\n productionParameter.name = groupData?.name;\n\n const groupDefinitionId = productionParameter.parameter.id;\n\n if (groups[groupDefinitionId]) {\n groups[groupDefinitionId].parameters.push(productionParameter);\n\n }\n }\n\n production.ungroupedParameters = ungroupedParameters;\n };\n\n getWithDependencies = (id: number) => {\n return this.productionEntity.get({ id, join: ['article'] })\n .then((production: any) => {\n let request: any = { id: production.id, join: [] };\n let query = this.productionEntity.QB;\n let promise;\n\n if (!production.productionProducts) {\n query.joinProducts();\n }\n if (!production.article) {\n request.join.push('article');\n }\n if (!production.completedArticleOperations) {\n request.join.push('completedArticleOperations');\n request.join.push('completedArticleOperations.operation');\n }\n\n if (!production.productionProducts || request.join.length > 0) {\n promise = query.get(request).then((data: any) => {\n\n if (!production.productionProducts) {\n production.productionProducts = data.productionProducts;\n }\n if (!production.article) {\n production.article = data.article;\n }\n if (!production.completedArticleOperations) {\n production.completedArticleOperations = data.completedArticleOperations;\n }\n\n return new Promise((resolve) => resolve(production));\n });\n } else {\n return new Promise((resolve) => resolve(production));\n }\n\n return promise;\n });\n };\n\n finishProduction = (production: Production) => {\n return this.productionEntity.finish({id: production.id});\n };\n\n finishProductions = (productionsIds: any[]) => {\n return this.productionEntity.finishMultiple({ids: productionsIds});\n };\n\n confirmTechnology = (production: Production) => {\n return this.productionEntity.confirm({id: production.id});\n };\n\n confirmProductions = (productionsIds: any[]) => {\n return this.productionEntity.confirmMultiple({ids: productionsIds});\n };\n\n start = (production: Production | { id: number }) => {\n return this.productionEntity.start({id: production.id});\n };\n\n confirmAndStartProductions = (productionsIds: any[]) => {\n return this.productionEntity.startMultiple({ids: productionsIds});\n };\n\n suspend = (production: Production | { id: number }) => {\n return this.productionEntity.suspend({id: production.id});\n };\n\n sortOperations = (operations: ProductionOperation[]) => {\n const getStart = (operation: ProductionOperation) => operation.realStart || operation.plannedStart;\n\n operations.sort((a, b) => {\n // const aStart = getStart(a);\n // const bStart = getStart(b);\n const aStart = a.id;\n const bStart = b.id;\n\n return aStart < bStart ? -1 : 1;\n })\n };\n\n}\n", "import { forkJoin as observableForkJoin } from 'rxjs';\nimport { Injectable } from '@angular/core';\nimport { Entity } from '@proman/services/entity.service';\nimport { clone } from '@proman/utils';\nimport { ACL } from '@proman/services/acl.service';\nimport { FilterService } from '@proman/services/filter.service';\nimport { ProductionsService } from '../../production/services/productions.service';\nimport {\n MaterialCategory,\n OrderParameter, Employee, ProductionOperation,\n ResourceBooking,\n} from '@proman/interfaces/entity-interfaces';\nimport { OrderEntityInterface } from '@proman/resources/order';\nimport { InputDialogComponent } from '@frontend/shared/components/input-dialog.component';\nimport { Dialog } from '@frontend/shared/services/dialog.service';\n\n@Injectable()\nexport class EventsService {\n orderEntity: OrderEntityInterface;\n eventEntity: any;\n\n constructor(\n private ACL: ACL,\n private Entity: Entity,\n private Filter: FilterService,\n private Dialog: Dialog,\n private Productions: ProductionsService,\n ) {\n this.eventEntity = Entity.get('event');\n this.orderEntity = Entity.get('order') as OrderEntityInterface;\n }\n\n getWorkgroupRestriction = (event: ResourceBooking) => this.ACL.check(undefined, event.workplace && event.workplace.workgroup ? event.workplace.workgroup.id : null);\n\n loadParameters = async (event: any): Promise => {\n if (!event) return;\n const production = event?.production;\n let promise;\n let result: any;\n\n if (production) {\n promise = observableForkJoin([\n this.orderEntity.QB.joinParameters()\n .get({ 'productions.id': production.id })\n .then(null, (): any => null),\n this.Productions.loadTechnology(production),\n ])\n .toPromise();\n } else if (event.order) {\n promise = observableForkJoin([this.orderEntity.QB.joinParameters().get({ id: event.order.id })]).toPromise();\n }\n\n if (promise && promise.then) {\n await promise.then((values: any[]) => {\n const orderParameters: OrderParameter[] = values[0] && values[0].parameters || [];\n const parameters: any = {};\n\n parameters.orderParameters = orderParameters\n .filter((item: any) => this.filterParameters(item, event));\n\n if (production) {\n parameters.productionGroups = this.filterGroups(production.groups, event);\n\n if (production.ungroupedParameters) {\n parameters.productionParameters = production.ungroupedParameters.filter((item: any) => this.filterParameters(item, event));\n\n }\n\n if (production.filteredMaterialCategories) {\n parameters.productionMaterialCategories = production.filteredMaterialCategories.filter((item: any) => this.filterMaterialCategories(item, event));\n\n }\n }\n\n result = parameters;\n });\n\n }\n\n return new Promise((resolve) => resolve(result));\n };\n\n isPersonalEvent = (event: any, employeeId: number) => {\n let isPersonal = false;\n const employees = event.employees || [];\n\n for (let iter = 0; iter < employees.length; iter++) {\n const employee = employees[iter].employee;\n\n if (employee && employeeId === employee.id) {\n isPersonal = true;\n\n break;\n }\n }\n\n return isPersonal;\n };\n\n filterMaterialCategories = (materialCategory: MaterialCategory, event: ProductionOperation) => {\n let isFiltered = false;\n const categories = event.articleOperation.operation.visibleMaterialCategories;\n let category;\n let iter;\n\n for (iter = 0; iter < categories.length; iter++) {\n category = categories[iter];\n\n if (category.id === materialCategory.id) {\n isFiltered = true;\n\n break;\n }\n }\n\n return isFiltered;\n };\n\n filterParameters = (parameterOverride: any, event: any) => {\n let isFiltered = false;\n const parameters = event.articleOperation.operation.parameters;\n\n for (let iter = 0; iter < parameters.length; iter++) {\n const parameter = parameters[iter];\n\n if (parameter.id === parameterOverride.parameter.id) {\n isFiltered = true;\n\n break;\n }\n }\n\n return isFiltered;\n };\n\n filterGroups = (groups: any, event: any) => {\n const filtered = {};\n let parameters;\n let parameterChildren;\n\n const filter = (item: any) => this.filterParameters(item, event);\n\n for (const id in groups) {\n const group = clone(groups[id]);\n let children = group.metaParameters[0].children;\n\n children = children.filter(filter);\n\n if (children.length === 0) {\n continue;\n }\n\n filtered[id] = group;\n\n parameters = group.parameters;\n\n for (let iter = 0; iter < parameters.length; iter++) {\n parameterChildren = parameters[iter].children;\n\n parameterChildren = parameterChildren.filter(filter);\n }\n }\n\n return filtered;\n };\n\n isSupervisedEvent = (event: any, employeeId: number) => {\n return event.supervisor && event.supervisor.id === employeeId;\n };\n\n showOptions = () => {\n return this.ACL.check('event.edit') || this.ACL.check('event.update_status');\n };\n\n canUpdateWorkplace = (event: any) => {\n return this.ACL.check('event.edit') && this.getWorkgroupRestriction(event);\n };\n\n canUpdateEmployees = (event: any) => {\n return this.ACL.check('event.update_status') && this.getWorkgroupRestriction(event);\n };\n\n canUpdateTime = (event: any) => {\n return this.ACL.check('event.update_status') && this.getWorkgroupRestriction(event);\n };\n\n canUpdateSupervisor = (event: any) => {\n return this.ACL.check('event.update_status') && this.getWorkgroupRestriction(event);\n };\n\n canUpdateParameters = (event: any, employeeId: number) => {\n return (this.isPersonalEvent(event, employeeId) || this.ACL.check('event.edit') && this.getWorkgroupRestriction(event)) && event.eventStatus === this.eventEntity.STARTED;\n };\n\n showItemQuantities = (event: any) => {\n return event.articleOperation.productionStoreAccess && (event.eventStatus === this.eventEntity.STARTED || event.eventStatus === this.eventEntity.FINISHED);\n };\n\n canUpdateItemQuantities = (event: any, employeeId: number) => {\n return (this.isPersonalEvent(event, employeeId) || this.ACL.check('event.edit')) && event.articleOperation.operation.productionStoreAccess && (event.eventStatus === this.eventEntity.STARTED || event.eventStatus === this.eventEntity.FINISHED);\n };\n\n canUpdateEvent = (event: any) => {\n return this.ACL.check('event.edit') && this.getWorkgroupRestriction(event);\n };\n\n canStart = (event: any, employeeId: number) => {\n return (this.isPersonalEvent(event, employeeId) || this.isSupervisedEvent(event, employeeId) || this.ACL.check('event.update_status') && this.getWorkgroupRestriction(event)) &&\n (event.eventStatus === this.eventEntity.UNSTARTED || event.eventStatus === this.eventEntity.CANCELED || event.eventStatus === this.eventEntity.WAITING_FOR_PREVIOUS);\n };\n\n canEnd = (event: any, employeeId: number) => {\n return (this.isPersonalEvent(event, employeeId) || this.isSupervisedEvent(event, employeeId) || this.ACL.check('event.update_status') && this.getWorkgroupRestriction(event)) && event.eventStatus === this.eventEntity.STARTED;\n };\n\n canCancel = (event: any, employeeId: number) => {\n return (this.isPersonalEvent(event, employeeId) || this.isSupervisedEvent(event, employeeId) || this.ACL.check('event.update_status') && this.getWorkgroupRestriction(event)) && event.eventStatus === this.eventEntity.STARTED;\n };\n\n canComment = (event: any, employeeId: number) => {\n return this.ACL.check('event.edit') || this.isPersonalEvent(event, employeeId) || this.isSupervisedEvent(event, employeeId);\n };\n\n showComments = (event: any) => {\n return event.eventStatus === this.eventEntity.STARTED || event.eventStatus === this.eventEntity.FINISHED || event.eventStatus === this.eventEntity.CANCELED || event.eventStatus === this.eventEntity.UNCONFIRMED;\n };\n\n canUpdateFiles = (event: any, employeeId: number) => {\n return (this.isPersonalEvent(event, employeeId) && event.articleOperation.fileAccess && this.getWorkgroupRestriction(event)) && event.eventStatus === this.eventEntity.STARTED;\n };\n\n canConfirm = (event: any, employeeId: number) => {\n return event.eventStatus === this.eventEntity.UNCONFIRMED && (this.isSupervisedEvent(event, employeeId) || this.ACL.check('event.edit') && this.getWorkgroupRestriction(event));\n };\n\n setBookingsNames = (bookings: ResourceBooking[]) => {\n const getName = (booking: ResourceBooking) => {\n booking.bookingName = this.Filter.smartDateRange(booking.plannedStart, booking.plannedEnd);\n\n if (booking.realStart) booking.bookingName += ` (${this.Filter.smartDateRange(booking.realStart, booking.realEnd)})`;\n\n };\n\n for (const booking of bookings) {\n getName(booking);\n }\n\n };\n\n createDefectAct(booking: ResourceBooking): Promise {\n const employeeOptions: Employee[] = [];\n\n return this.Entity.get('resource_booking').get({ id: booking.id, join: ['employee', 'confirmedBy', 'event'] }).then((response) => {\n if (response.confirmedBy) {\n employeeOptions.push(response.confirmedBy);\n }\n if (response.employee) {\n employeeOptions.push(response.employee);\n }\n }).then(() => {\n return this.Dialog\n .open(InputDialogComponent,\n {\n header: 'select_template',\n mainField: {\n key: 'template',\n name: 'template',\n type: 'autocomplete',\n config: { label: 'template', entity: 'template', entityParams: { context: 'defect_act' }, autoSelectSingleOption: true },\n },\n parameters: [\n {\n name: 'type',\n key: 'type',\n type: 'select',\n value: { id: 'employee', name: this.Filter.translate('employee') },\n config: {\n options: ['employee', 'material', 'technology', 'workplaces', 'process', 'information'].map((item: any) => ({ id: item, name: this.Filter.translate(item) })),\n disableSearch: true,\n key: 'id'\n }\n },\n {\n name: 'comment',\n key: 'comment',\n type: 'text',\n config: {},\n },\n {\n name: 'employee',\n key: 'employee',\n type: 'select',\n value: booking.employee,\n config: { options: employeeOptions, disableSearch: true },\n }\n ]\n },\n { disableAutoFocus: true })\n .then((result: any) => this.Entity.get('template').defectAct({...result, resourceBooking: booking.id}));\n })\n }\n\n}\n"], "mappings": "mPAoBA,IAAaA,GAAkB,IAAA,CAAzB,MAAOA,CAAkB,CAO3BC,YACYC,EACAC,EACAC,EACAC,EAA6B,CAH7B,KAAAH,IAAAA,EACA,KAAAC,OAAAA,EACA,KAAAC,OAAAA,EACA,KAAAC,WAAAA,EAVZ,KAAAC,eAAuC,IAAIC,EAC3C,KAAAC,oBAAuC,IAAID,EAC3C,KAAAE,2BAA8C,IAAIF,EAkClD,KAAAG,oBAAuBC,IAIZ,CACHC,KAJQC,EAAgBF,MAAMG,OAAOC,iBACxBJ,EAAMK,MAAM,EAIzBC,KAAM,KAAKb,OAAOc,UAAUP,EAAMK,MAAM,IAIhD,KAAAG,wBAA2BC,GAAmB,CAC1C,IAAIC,EAAUD,EAAIE,SACdC,EAAaH,EAAIG,WAErB,OAAIA,GAAcA,EAAWC,SAAQH,EAAUE,EAAWA,EAAWC,OAAS,CAAC,EAAEC,YAE1EJ,CACX,EAEA,KAAAK,UAAY,IACD,CACH,CACIC,KAAM,GACNC,IAAK,QACLC,OAAQ,KACRC,SAAU,GACVC,UAAW,YACXC,gBAAiB,0BAErB,CACIL,KAAM,KACNC,IAAK,MAET,CACID,KAAM,aACNC,IAAK,kBACLK,kBAAmB,CACf,aAAc,CAAC,MAAM,IAG7B,CACIN,KAAM,OACNC,IAAK,QAET,CACID,KAAM,UACNC,IAAK,mBAET,CACID,KAAM,UACNC,IAAK,qBACLK,kBAAmB,CACf,gBAAiB,CAAC,MAAM,IAGhC,CACIN,KAAM,aACNC,IAAK,YACLG,UAAW,WACXC,gBAAiB,eACjBE,SAAU,IAEd,CACIP,KAAM,WACNC,IAAK,WACLO,SAAU,KAAKhB,wBACfY,UAAW,YAEf,CACIJ,KAAM,aACNC,IAAK,QACLG,UAAW,YAEf,CACIJ,KAAM,eACNC,IAAK,SACLO,SAAU,KAAKzB,oBACfqB,UAAW,UACXF,OAAQ,CACJO,KAAM,iBACNC,QAAS,CACL,CACIV,KAAM,KAAKvB,OAAOc,UAAU,sBAAsB,EAClDoB,GAAI,KAAKC,iBAAiBC,SAE9B,CACIb,KAAM,KAAKvB,OAAOc,UAAU,wBAAwB,EACpDoB,GAAI,KAAKC,iBAAiBE,WAE9B,CACId,KAAM,KAAKvB,OAAOc,UAAU,sBAAsB,EAClDoB,GAAI,KAAKC,iBAAiBG,SAE9B,CACIf,KAAM,KAAKvB,OAAOc,UAAU,uBAAuB,EACnDoB,GAAI,KAAKC,iBAAiBI,UAE9B,CACIhB,KAAM,KAAKvB,OAAOc,UAAU,WAAW,EACvCoB,GAAI,KAAKC,iBAAiBK,WAE9B,CACIjB,KAAM,KAAKvB,OAAOc,UAAU,QAAQ,EACpCoB,GAAI,KAAKC,iBAAiBM,OAC7B,IAIb,CACIlB,KAAM,aACNC,IAAK,aACLC,OAAQ,CACJO,KAAM,SACNU,KAAM,CAAC,4BAA6B,6BAA8B,kBAAkB,GAExFf,UAAW,aACXgB,OAAQ,GACRC,WAAY,CACR,aACA,uBACA,sBACA,+BAA+B,EAEnCC,sBAAuB,IAE3B,CACItB,KAAM,WACNC,IAAK,WACLI,gBAAiB,EACjBD,UAAW,UACXmB,MAAO,CAAC,KAAK,GAEjB,CACIvB,KAAM,QACNC,IAAK,QACLG,UAAW,QACXmB,MAAO,CAAC,KAAK,EACbC,IAAK,yBAET,CACIxB,KAAM,OACNC,IAAK,OACLG,UAAW,QACXmB,MAAO,CAAC,KAAK,EACbC,IAAK,yBAET,CACIxB,KAAM,OACNC,IAAK,YACLoB,WAAY,CAAC,MAAM,GAEvB,CACIrB,KAAM,UACNC,IAAK,eACLoB,WAAY,CAAC,SAAS,GAE1B,CACIrB,KAAM,OACNC,IAAK,OACLwB,WAAY,aACZrB,UAAW,YACXC,gBAAiB,WACjBH,OAAQ,CACJO,KAAM,eACNiB,OAAQ,OAEf,EAIT,KAAAC,mBAAqBzC,EAAgB,WAAcC,OAAOyC,gBAE1D,KAAAC,SAAYC,GACD,IAAIC,QAASC,GAAYA,EAAQF,EAAWzC,SAAW,KAAKuB,iBAAiBC,OAAO,CAAC,EAGhG,KAAAoB,qBAAuB,CAAOH,EAAiBI,IAAsBC,EAAA,sBACjE,IAAI9C,EAASyC,EAAWzC,OACpB+C,EAEJ,MAAI,CAAC,KAAK7D,IAAI8D,MAAM,oBAAoB,GAAK,EAAGhD,IAAW,KAAKuB,iBAAiBC,SAAaxB,IAAW,KAAKuB,iBAAiBE,YAAiB,CAACoB,EAC7IE,EAAS,GACF/C,IAAW,KAAKuB,iBAAiBE,UACxCsB,EAAS,GAGT,MAAM,KAAKE,eAAeR,CAAU,EAAES,KAAK,IAAK,CAC5C,IAAIC,EAAIV,EAAWW,oBAAoB5C,OACvC,QAAS6C,EAAI,EAAGA,EAAIF,EAAGE,IACnB,GAAI,KAAKhE,WAAWiE,MAAMb,EAAWW,oBAAoBC,CAAC,CAAC,EAAG,CAC1DN,EAAS,GACT,OAIR,QAASM,KAAKZ,EAAWc,OAAQ,CAC7B,IAAIC,EAAIf,EAAWc,OAAOF,CAAC,EAAEI,WAAWjD,OACxC,QAASkD,EAAI,EAAGA,EAAIF,EAAGE,IAAK,CACxB,IAAIC,EAAIlB,EAAWc,OAAOF,CAAC,EAAEI,WAAWC,CAAC,EAAEE,SAASpD,OACpD,QAASqD,EAAI,EAAGA,EAAIF,EAAGE,IACnB,GAAI,KAAKxE,WAAWiE,MAAMb,EAAWc,OAAOF,CAAC,EAAEI,WAAWC,CAAC,EAAEE,SAASC,CAAC,CAAC,EAAG,CACvEd,EAAS,GACT,SAMhBA,EAAS,EACb,CAAC,EAGE,IAAIL,QAASC,GAAYA,EAAQI,CAAM,CAAC,CACnD,GAEA,KAAAe,SAAW,CAACrB,EAAiBI,IAClB,IAAIH,QAASC,GAAYA,EAC5B,KAAKzD,IAAI8D,MAAM,0BAA0B,GAAKH,IACzCJ,EAAWzC,SAAW,KAAKuB,iBAAiBE,WACzCgB,EAAWzC,SAAW,KAAKuB,iBAAiBK,WAC5Ca,EAAWzC,SAAW,KAAKuB,iBAAiBwC,SAAS,CAAC,EAItE,KAAAC,WAAa,CAACvB,EAAiBI,IACpB,IAAIH,QAASC,GAAYA,EAAQ,KAAKzD,IAAI8D,MAAM,0BAA0B,GAAMP,EAAWzC,SAAW,KAAKuB,iBAAiBE,WAAcoB,CAAa,CAAC,EAGnK,KAAAoB,qBAAwBxB,GACb,IAAIC,QAASC,GAAYA,EAAQ,KAAKzD,IAAI8D,MAAM,0BAA0B,GAAMP,EAAWzC,SAAW,KAAKuB,iBAAiBwC,QAAS,CAAC,EAGjJ,KAAAG,WAAczB,GACH,IAAIC,QAASC,GAAYA,EAAQ,KAAKzD,IAAI8D,MAAM,0BAA0B,GAAKP,EAAWzC,SAAW,KAAKuB,iBAAiBG,OAAO,CAAC,EAG9I,KAAAyC,UAAY,IACD,IAAIzB,QAASC,GAAYA,EAAQ,KAAKzD,IAAI8D,MAAM,mBAAmB,CAAC,CAAC,EAGhF,KAAAC,eAAwBR,GAAmBK,EAAA,sBACvC,IAAIsB,EACAC,EAEEC,EAAoCA,CAACC,EAAyBC,IAA6B,CAC7F,IAAIC,EAAc,CAAA,EACdtB,EAAIqB,EAAqBhE,OACzB6C,EACAqB,EAEJ,IAAKrB,EAAI,EAAGA,EAAIF,EAAGE,IACfqB,EAAsBF,EAAqBnB,CAAC,EAExCqB,EAAoBd,UAAYc,EAAoBd,SAASpD,OAAS,IACtEiE,EAASA,EAAOE,OAAOL,EAAkCC,EAAoBG,EAAoBd,QAAQ,CAAC,GAE1Gc,EAAoBE,UAAUxD,OAAS,qBACvCqD,EAAOI,KAAK,KAAKxF,WAAWyF,sBAAsBJ,CAAmB,CAAC,EAG9E,OAAOK,EAAON,CAAM,CACxB,EAEMO,EAAsCC,GACjCA,EACFpE,OAAQqE,GACEA,EAA2BN,UAAUxD,OAAS,KAAK+D,gBAAgBC,eAC7E,EAGHC,EAAyBC,GAAuB,CAClD,IAAI/B,EAAS,CAAA,EACTJ,EAAImC,EAAe9E,OACnB+E,EACAC,EAEJ,QAASnC,EAAI,EAAGA,EAAIF,EAAGE,IACnBkC,EAAgBD,EAAejC,CAAC,EAChCmC,EAAoBD,EAAcX,UAAUtD,GAEvCiC,EAAOiC,CAAiB,IACzBjC,EAAOiC,CAAiB,EAAI,CAAEF,eAAgB,CAAA,EAAI7B,WAAY,CAAA,CAAE,GAGpEF,EAAOiC,CAAiB,EAAEF,eAAeT,KAAKU,CAAa,EAG/D,OAAOhC,CACX,EAEA,GAAI,CAACd,EAAWgD,kBAAmB,CAG/B,IAAIC,EAA4B,KAAKvG,OAAOwG,IAAI,sBAAsB,EAEtEvB,EAAiB,KAAK7C,iBACjBoE,IAAI,CACDrE,GAAImB,EAAWnB,GACfsE,KAAM,CAAC,UAAW,eAAe,EACpC,EACA1C,KAAM2C,GAAcpD,EAAWqD,QAAUD,EAAKC,OAAO,EAE1D,MAAM1B,EACDlB,KAAK,IAAWJ,EAAA,sBACb,OAAO,MAAMJ,QAAQqD,IAAI,CACjB,KAAKC,aAAavD,CAAU,EAC5BiD,EAA0BO,GAAGC,UAAUzD,CAAU,EAAE0D,OAAM,EACzD,KAAKhH,OAAOwG,IAAI,8BAA8B,EAAEQ,OAAO,CACnD,aAAc1D,EAAWqD,QAAQxE,GACjC,KAAQ,CAAC,YAAa,WAAY,oBAAoB,EACzD,CAAC,CACL,CACL,EAAC,EACA4B,KAAMkD,GAAe,CAClB,IAAI7B,EAAqB6B,EAAO,CAAC,EAC7B5B,EAAuB4B,EAAO,CAAC,EAC/BnB,EAA8BmB,EAAO,CAAC,EACtCd,EAAiBN,EAAmCC,CAA2B,EAC/EoB,EACAC,EACAC,EAEJ9D,EAAW8B,mBAAqBA,EAChC9B,EAAW+B,qBAAuBA,EAClC/B,EAAWwC,4BAA8BA,EAEzCxC,EAAWc,OAAS8B,EAAsBC,CAAc,EAGxDe,EAA4B/B,EAAkCC,EAAoBC,CAAoB,EAEtG8B,EAAqB/B,EAChB1D,OAAQ2F,GAA0B,CAACC,EAASJ,EAA2BG,EAAiBlF,EAAE,CAAC,EAEhGiF,EAAsBhC,EACjB1D,OAAQ2F,GAA0BC,EAASJ,EAA2BG,EAAiBlF,EAAE,CAAC,EAE/FmB,EAAWiE,2BAA6BJ,EACxC7D,EAAW8D,oBAAsBA,EAEjC,GAAI,CACA,KAAKI,kBAAkBlE,EAAY+B,CAAoB,QAClDoC,EAAG,CACRvC,MAAAA,EAAoB,KACduC,EAGVnE,EAAWgD,kBAAoB,EACnC,CAAC,EAKbpB,OAAAA,EAAoB,IAAI3B,QAASC,GAAiBA,EAAO,CAAE,EAAEO,KAAK,IAAWmB,EAAoB,IAAI,EAE9FA,CACX,GAEA,KAAA2B,aAAsBvD,GAAmBK,EAAA,sBACrC,OAAO,MAAMJ,QAAQqD,IAAI,CACjB,KAAK5G,OAAOwG,IAAI,UAAU,EAAEQ,OAAO,CAC/B,8BAA+B1D,EAAWqD,QAAQxE,GAClD,KAAQ,CAAC,YAAa,EACzB,EACD,KAAKnC,OAAOwG,IAAI,qBAAqB,EAAEQ,OAAO,CAAE,gBAAiB1D,EAAWnB,EAAE,CAAE,CAAC,CACpF,EACA4B,KAAMkD,GAA8C,CACrD,IAAIS,EAAYT,EAAO,CAAC,EAAEU,IAAKC,IAC3BA,EAASC,QAAU,CAAC,CAACC,EAASb,EAAO,CAAC,EAAGW,CAAQ,EAC1CA,EACV,EAEGG,EAsBJ,OAAOC,EAnBK,CAAA,CAmBW,CAC3B,CAAC,CACL,GAEA,KAAAR,kBAAoB,CAAClE,EAAiB+B,IAA6B,CAG/D,IAAIpB,EAAsB,CAAA,EACtBG,EAASd,EAAWc,OAExB,QAAS3C,KAAO2C,EACZA,EAAO3C,CAAG,EAAE6C,WAAa,CAAA,EAI7B,QAAWiB,KAAuBF,EAAsB,CAEpD,GAAIE,EAAoBE,UAAUxD,OAAS,KAAK+D,gBAAgBC,gBAAiB,CAC7EhC,EAAoByB,KAAKH,CAAmB,EAE5C,SAIJ,IAAI0C,EAEJ,GAAI,CACAA,EAAYC,KAAKC,MAAM5C,EAAoB6C,KAAK,OACxC,CACRH,EAAY,CAAA,EAGhB1C,EAAoB8C,QAAUJ,GAAWI,QACzC9C,EAAoB/D,KAAOyG,GAAWzG,KAEtC,IAAM6E,EAAoBd,EAAoBE,UAAUtD,GAEpDiC,EAAOiC,CAAiB,GACxBjC,EAAOiC,CAAiB,EAAE/B,WAAWoB,KAAKH,CAAmB,EAKrEjC,EAAWW,oBAAsBA,CACrC,EAEA,KAAAqE,oBAAuBnG,GACZ,KAAKC,iBAAiBoE,IAAI,CAAErE,GAAAA,EAAIsE,KAAM,CAAC,SAAS,CAAC,CAAE,EACrD1C,KAAMT,GAAmB,CACtB,IAAIiF,EAAe,CAAEpG,GAAImB,EAAWnB,GAAIsE,KAAM,CAAA,CAAE,EAC5C+B,EAAQ,KAAKpG,iBAAiB0E,GAC9B2B,EAaJ,GAXKnF,EAAWoF,oBACZF,EAAMG,aAAY,EAEjBrF,EAAWqD,SACZ4B,EAAQ9B,KAAKf,KAAK,SAAS,EAE1BpC,EAAWsF,6BACZL,EAAQ9B,KAAKf,KAAK,4BAA4B,EAC9C6C,EAAQ9B,KAAKf,KAAK,sCAAsC,GAGxD,CAACpC,EAAWoF,oBAAsBH,EAAQ9B,KAAKpF,OAAS,EACxDoH,EAAUD,EAAMhC,IAAI+B,CAAO,EAAExE,KAAM2C,IAE1BpD,EAAWoF,qBACZpF,EAAWoF,mBAAqBhC,EAAKgC,oBAEpCpF,EAAWqD,UACZrD,EAAWqD,QAAUD,EAAKC,SAEzBrD,EAAWsF,6BACZtF,EAAWsF,2BAA6BlC,EAAKkC,4BAG1C,IAAIrF,QAASC,GAAYA,EAAQF,CAAU,CAAC,EACtD,MAED,QAAO,IAAIC,QAASC,GAAYA,EAAQF,CAAU,CAAC,EAGvD,OAAOmF,CACX,CAAC,EAGT,KAAAI,iBAAoBvF,GACT,KAAKlB,iBAAiB0G,OAAO,CAAC3G,GAAImB,EAAWnB,EAAE,CAAC,EAG3D,KAAA4G,kBAAqBC,GACV,KAAK5G,iBAAiB6G,eAAe,CAACC,IAAKF,CAAc,CAAC,EAGrE,KAAAG,kBAAqB7F,GACV,KAAKlB,iBAAiBgH,QAAQ,CAACjH,GAAImB,EAAWnB,EAAE,CAAC,EAG5D,KAAAkH,mBAAsBL,GACX,KAAK5G,iBAAiBkH,gBAAgB,CAACJ,IAAKF,CAAc,CAAC,EAGtE,KAAAO,MAASjG,GACE,KAAKlB,iBAAiBmH,MAAM,CAACpH,GAAImB,EAAWnB,EAAE,CAAC,EAG1D,KAAAqH,2BAA8BR,GACnB,KAAK5G,iBAAiBqH,cAAc,CAACP,IAAKF,CAAc,CAAC,EAGpE,KAAAU,QAAWpG,GACA,KAAKlB,iBAAiBsH,QAAQ,CAACvH,GAAImB,EAAWnB,EAAE,CAAC,EAG5D,KAAAwH,eAAkBvI,GAAqC,CACnD,IAAMwI,EAAYC,GAAmCA,EAAUC,WAAaD,EAAUE,aAEtF3I,EAAW4I,KAAK,CAACC,EAAGC,IAAK,CAGrB,IAAMC,EAASF,EAAE9H,GACXiI,EAASF,EAAE/H,GAEjB,OAAOgI,EAASC,EAAS,GAAK,CAClC,CAAC,CACL,EAhiBI,KAAKhI,iBAAmBpC,EAAOwG,IAAI,YAAY,EAC/C,KAAKR,gBAAkBhG,EAAOwG,IAAI,WAAW,CACjD,CAEA6D,YAAYlI,EAAU,CAClB,KAAKhC,eAAemK,KAAKnI,CAAE,CAC/B,CAEAoI,gBAAc,CACV,KAAKpK,eAAemK,KAAK,IAAI,CACjC,CAEAE,mBAAiB,CACb,KAAKnK,oBAAoBiK,KAAK,IAAIG,KAAI,EAAGC,QAAO,CAAE,CACtD,CAEAC,cAAY,CACR,KAAKrK,2BAA2BgK,KAAK,IAAIG,KAAI,EAAGC,QAAO,CAAE,CAC7D,CAEME,gBAAgBC,EAAuB,QAAAlH,EAAA,sBACzC,OAAO,KAAKvB,iBAAiBwI,gBAAgB,CAAEzI,GAAI0I,CAAa,CAAE,CACtE,mDAnCShL,GAAkBiL,EAAA/K,CAAA,EAAA+K,EAAA9K,CAAA,EAAA8K,EAAAC,CAAA,EAAAD,EAAAE,CAAA,CAAA,CAAA,CAAA,iCAAlBnL,EAAkBoL,QAAlBpL,EAAkBqL,UAAAC,WADL,MAAM,CAAA,CAAA,SACnBtL,CAAkB,GAAA,ECH/B,IAAauL,IAAa,IAAA,CAApB,MAAOA,CAAa,CAItBC,YACYC,EACAC,EACAC,EACAC,EACAC,EAA+B,CAJ/B,KAAAJ,IAAAA,EACA,KAAAC,OAAAA,EACA,KAAAC,OAAAA,EACA,KAAAC,OAAAA,EACA,KAAAC,YAAAA,EAMZ,KAAAC,wBAA2BC,GAA2B,KAAKN,IAAIO,MAAMC,OAAWF,EAAMG,WAAaH,EAAMG,UAAUC,UAAYJ,EAAMG,UAAUC,UAAUC,GAAK,IAAI,EAElK,KAAAC,eAAwBN,GAA4BO,EAAA,sBAChD,GAAI,CAACP,EAAO,OACZ,IAAMQ,EAAaR,GAAOQ,WACtBC,EACAC,EAEJ,OAAIF,EACAC,EAAUE,EAAmB,CACrB,KAAKC,YAAYC,GAAGC,eAAc,EAC7BC,IAAI,CAAE,iBAAkBP,EAAWH,EAAE,CAAE,EACvCW,KAAK,KAAM,IAAW,IAAI,EAC/B,KAAKlB,YAAYmB,eAAeT,CAAU,CAAC,CAC9C,EACAU,UAAS,EACPlB,EAAMmB,QACbV,EAAUE,EAAmB,CAAC,KAAKC,YAAYC,GAAGC,eAAc,EAAGC,IAAI,CAAEV,GAAIL,EAAMmB,MAAMd,EAAE,CAAE,CAAC,CAAC,EAAEa,UAAS,GAG1GT,GAAWA,EAAQO,OACnB,MAAMP,EAAQO,KAAMI,GAAiB,CACjC,IAAMC,EAAoCD,EAAO,CAAC,GAAKA,EAAO,CAAC,EAAEE,YAAc,CAAA,EACzEA,EAAkB,CAAA,EAExBA,EAAWD,gBAAkBA,EACxBE,OAAQC,GAAc,KAAKC,iBAAiBD,EAAMxB,CAAK,CAAC,EAEzDQ,IACAc,EAAWI,iBAAmB,KAAKC,aAAanB,EAAWoB,OAAQ5B,CAAK,EAEpEQ,EAAWqB,sBACXP,EAAWQ,qBAAuBtB,EAAWqB,oBAAoBN,OAAQC,GAAc,KAAKC,iBAAiBD,EAAMxB,CAAK,CAAC,GAIzHQ,EAAWuB,6BACXT,EAAWU,6BAA+BxB,EAAWuB,2BAA2BR,OAAQC,GAAc,KAAKS,yBAAyBT,EAAMxB,CAAK,CAAC,IAKxJU,EAASY,CACb,CAAC,GAIE,IAAIY,QAASC,GAAYA,EAAQzB,CAAM,CAAC,CACnD,GAEA,KAAA0B,gBAAkB,CAACpC,EAAYqC,IAAsB,CACjD,IAAIC,EAAa,GACXC,EAAYvC,EAAMuC,WAAa,CAAA,EAErC,QAASC,EAAO,EAAGA,EAAOD,EAAUE,OAAQD,IAAQ,CAChD,IAAME,EAAWH,EAAUC,CAAI,EAAEE,SAEjC,GAAIA,GAAYL,IAAeK,EAASrC,GAAI,CACxCiC,EAAa,GAEb,OAIR,OAAOA,CACX,EAEA,KAAAL,yBAA2B,CAACU,EAAoC3C,IAA8B,CAC1F,IAAI4C,EAAa,GACXC,EAAa7C,EAAM8C,iBAAiBC,UAAUC,0BAChDC,EACAT,EAEJ,IAAKA,EAAO,EAAGA,EAAOK,EAAWJ,OAAQD,IAGrC,GAFAS,EAAWJ,EAAWL,CAAI,EAEtBS,EAAS5C,KAAOsC,EAAiBtC,GAAI,CACrCuC,EAAa,GAEb,MAIR,OAAOA,CACX,EAEA,KAAAnB,iBAAmB,CAACyB,EAAwBlD,IAAc,CACtD,IAAI4C,EAAa,GACXtB,EAAatB,EAAM8C,iBAAiBC,UAAUzB,WAEpD,QAASkB,EAAO,EAAGA,EAAOlB,EAAWmB,OAAQD,IAGzC,GAFkBlB,EAAWkB,CAAI,EAEnBnC,KAAO6C,EAAkBC,UAAU9C,GAAI,CACjDuC,EAAa,GAEb,MAIR,OAAOA,CACX,EAEA,KAAAjB,aAAe,CAACC,EAAa5B,IAAc,CACvC,IAAMoD,EAAW,CAAA,EACb9B,EACA+B,EAEE9B,EAAUC,GAAc,KAAKC,iBAAiBD,EAAMxB,CAAK,EAE/D,QAAWK,KAAMuB,EAAQ,CACrB,IAAM0B,EAAQC,EAAM3B,EAAOvB,CAAE,CAAC,EAC1BmD,EAAWF,EAAMG,eAAe,CAAC,EAAED,SAIvC,GAFAA,EAAWA,EAASjC,OAAOA,CAAM,EAE7BiC,EAASf,SAAW,EAIxBW,CAAAA,EAAS/C,CAAE,EAAIiD,EAEfhC,EAAagC,EAAMhC,WAEnB,QAASkB,EAAO,EAAGA,EAAOlB,EAAWmB,OAAQD,IACzCa,EAAoB/B,EAAWkB,CAAI,EAAEgB,SAErCH,EAAoBA,EAAkB9B,OAAOA,CAAM,GAI3D,OAAO6B,CACX,EAEA,KAAAM,kBAAoB,CAAC1D,EAAYqC,IACtBrC,EAAM2D,YAAc3D,EAAM2D,WAAWtD,KAAOgC,EAGvD,KAAAuB,YAAc,IACH,KAAKlE,IAAIO,MAAM,YAAY,GAAK,KAAKP,IAAIO,MAAM,qBAAqB,EAG/E,KAAA4D,mBAAsB7D,GACX,KAAKN,IAAIO,MAAM,YAAY,GAAK,KAAKF,wBAAwBC,CAAK,EAG7E,KAAA8D,mBAAsB9D,GACX,KAAKN,IAAIO,MAAM,qBAAqB,GAAK,KAAKF,wBAAwBC,CAAK,EAGtF,KAAA+D,cAAiB/D,GACN,KAAKN,IAAIO,MAAM,qBAAqB,GAAK,KAAKF,wBAAwBC,CAAK,EAGtF,KAAAgE,oBAAuBhE,GACZ,KAAKN,IAAIO,MAAM,qBAAqB,GAAK,KAAKF,wBAAwBC,CAAK,EAGtF,KAAAiE,oBAAsB,CAACjE,EAAYqC,KACvB,KAAKD,gBAAgBpC,EAAOqC,CAAU,GAAK,KAAK3C,IAAIO,MAAM,YAAY,GAAK,KAAKF,wBAAwBC,CAAK,IAAMA,EAAMkE,cAAgB,KAAKC,YAAYC,QAGtK,KAAAC,mBAAsBrE,GACXA,EAAM8C,iBAAiBwB,wBAA0BtE,EAAMkE,cAAgB,KAAKC,YAAYC,SAAWpE,EAAMkE,cAAgB,KAAKC,YAAYI,UAGrJ,KAAAC,wBAA0B,CAACxE,EAAYqC,KAC3B,KAAKD,gBAAgBpC,EAAOqC,CAAU,GAAK,KAAK3C,IAAIO,MAAM,YAAY,IAAMD,EAAM8C,iBAAiBC,UAAUuB,wBAA0BtE,EAAMkE,cAAgB,KAAKC,YAAYC,SAAWpE,EAAMkE,cAAgB,KAAKC,YAAYI,UAG5O,KAAAE,eAAkBzE,GACP,KAAKN,IAAIO,MAAM,YAAY,GAAK,KAAKF,wBAAwBC,CAAK,EAG7E,KAAA0E,SAAW,CAAC1E,EAAYqC,KACZ,KAAKD,gBAAgBpC,EAAOqC,CAAU,GAAK,KAAKqB,kBAAkB1D,EAAOqC,CAAU,GAAK,KAAK3C,IAAIO,MAAM,qBAAqB,GAAK,KAAKF,wBAAwBC,CAAK,KACtKA,EAAMkE,cAAgB,KAAKC,YAAYQ,WAAa3E,EAAMkE,cAAgB,KAAKC,YAAYS,UAAY5E,EAAMkE,cAAgB,KAAKC,YAAYU,sBAGvJ,KAAAC,OAAS,CAAC9E,EAAYqC,KACV,KAAKD,gBAAgBpC,EAAOqC,CAAU,GAAK,KAAKqB,kBAAkB1D,EAAOqC,CAAU,GAAK,KAAK3C,IAAIO,MAAM,qBAAqB,GAAK,KAAKF,wBAAwBC,CAAK,IAAMA,EAAMkE,cAAgB,KAAKC,YAAYC,QAG5N,KAAAW,UAAY,CAAC/E,EAAYqC,KACb,KAAKD,gBAAgBpC,EAAOqC,CAAU,GAAK,KAAKqB,kBAAkB1D,EAAOqC,CAAU,GAAK,KAAK3C,IAAIO,MAAM,qBAAqB,GAAK,KAAKF,wBAAwBC,CAAK,IAAMA,EAAMkE,cAAgB,KAAKC,YAAYC,QAG5N,KAAAY,WAAa,CAAChF,EAAYqC,IACf,KAAK3C,IAAIO,MAAM,YAAY,GAAK,KAAKmC,gBAAgBpC,EAAOqC,CAAU,GAAK,KAAKqB,kBAAkB1D,EAAOqC,CAAU,EAG9H,KAAA4C,aAAgBjF,GACLA,EAAMkE,cAAgB,KAAKC,YAAYC,SAAWpE,EAAMkE,cAAgB,KAAKC,YAAYI,UAAYvE,EAAMkE,cAAgB,KAAKC,YAAYS,UAAY5E,EAAMkE,cAAgB,KAAKC,YAAYe,YAG1M,KAAAC,eAAiB,CAACnF,EAAYqC,IAClB,KAAKD,gBAAgBpC,EAAOqC,CAAU,GAAKrC,EAAM8C,iBAAiBsC,YAAc,KAAKrF,wBAAwBC,CAAK,GAAMA,EAAMkE,cAAgB,KAAKC,YAAYC,QAG3K,KAAAiB,WAAa,CAACrF,EAAYqC,IACfrC,EAAMkE,cAAgB,KAAKC,YAAYe,cAAgB,KAAKxB,kBAAkB1D,EAAOqC,CAAU,GAAK,KAAK3C,IAAIO,MAAM,YAAY,GAAK,KAAKF,wBAAwBC,CAAK,GAGjL,KAAAsF,iBAAoBC,GAA+B,CAC/C,IAAMC,EAAWC,GAA4B,CACzCA,EAAQC,YAAc,KAAK9F,OAAO+F,eAAeF,EAAQG,aAAcH,EAAQI,UAAU,EAErFJ,EAAQK,YAAWL,EAAQC,aAAe,KAAK,KAAK9F,OAAO+F,eAAeF,EAAQK,UAAWL,EAAQM,OAAO,CAAC,IAErH,EAEA,QAAWN,KAAWF,EAClBC,EAAQC,CAAO,CAGvB,EA3NI,KAAKtB,YAAcxE,EAAOoB,IAAI,OAAO,EACrC,KAAKH,YAAcjB,EAAOoB,IAAI,OAAO,CACzC,CA2NAiF,gBAAgBP,EAAwB,CACpC,IAAMQ,EAA8B,CAAA,EAEpC,OAAO,KAAKtG,OAAOoB,IAAI,kBAAkB,EAAEA,IAAI,CAAEV,GAAIoF,EAAQpF,GAAI6F,KAAM,CAAC,WAAY,cAAe,OAAO,CAAC,CAAE,EAAElF,KAAMmF,GAAY,CACzHA,EAASC,aACTH,EAAgBI,KAAKF,EAASC,WAAW,EAEzCD,EAASzD,UACTuD,EAAgBI,KAAKF,EAASzD,QAAQ,CAE9C,CAAC,EAAE1B,KAAK,IACG,KAAKnB,OACPyG,KAAKC,EACF,CACIC,OAAQ,kBACRC,UAAW,CACPC,IAAK,WACLC,KAAM,WACNC,KAAM,eACNC,OAAQ,CAAEC,MAAO,WAAYC,OAAQ,WAAYC,aAAc,CAAEC,QAAS,YAAY,EAAIC,uBAAwB,EAAI,GAE1H5F,WAAY,CACR,CACIqF,KAAM,OACND,IAAK,OACLE,KAAM,SACNO,MAAO,CAAE9G,GAAI,WAAYsG,KAAM,KAAK/G,OAAOwH,UAAU,UAAU,CAAC,EAChEP,OAAQ,CACJQ,QAAS,CAAC,WAAY,WAAY,aAAc,aAAc,UAAW,aAAa,EAAEC,IAAK9F,IAAe,CAAEnB,GAAImB,EAAMmF,KAAM,KAAK/G,OAAOwH,UAAU5F,CAAI,CAAC,EAAG,EAC5J+F,cAAe,GACfb,IAAK,OAGb,CACIC,KAAM,UACND,IAAK,UACLE,KAAM,OACNC,OAAQ,CAAA,GAEZ,CACIF,KAAM,WACND,IAAK,WACLE,KAAM,SACNO,MAAO1B,EAAQ/C,SACfmE,OAAQ,CAAEQ,QAASpB,EAAiBsB,cAAe,EAAI,EAC1D,GAGT,CAAEC,iBAAkB,EAAI,CAAE,EAC7BxG,KAAMN,GAAgB,KAAKf,OAAOoB,IAAI,UAAU,EAAE0G,UAAUC,EAAAC,EAAA,GAAIjH,GAAJ,CAAYkH,gBAAiBnC,EAAQpF,EAAE,EAAC,CAAC,CAC7G,CACL,iDA3RSb,GAAaqI,EAAAnI,CAAA,EAAAmI,EAAAlI,CAAA,EAAAkI,EAAAC,CAAA,EAAAD,EAAAhI,CAAA,EAAAgI,EAAAE,CAAA,CAAA,CAAA,CAAA,iCAAbvI,EAAawI,QAAbxI,EAAayI,SAAA,CAAA,CAAA,SAAbzI,CAAa,GAAA", "names": ["ProductionsService", "constructor", "ACL", "Entity", "Filter", "Parameters", "activePlanning", "Subject", "operationsTimeStamp", "technologyUpdatedTimestamp", "getProductionStatus", "order", "icon", "resourcesConfig", "params", "orderStatusIcons", "status", "text", "translate", "getLastOperationEndTime", "row", "endTime", "deadline", "operations", "length", "plannedEnd", "getFields", "name", "key", "filter", "sortable", "formatter", "formatterConfig", "extraPartialJoins", "showTime", "getValue", "type", "options", "id", "productionEntity", "CREATED", "CONFIRMED", "STARTED", "COMPLETE", "SUSPENDED", "COPIED", "keys", "hidden", "extraJoins", "preloadParametersData", "stats", "acl", "entityName", "entity", "getExtraParameters", "extraParameters", "canPrint", "production", "Promise", "resolve", "canConfirmTechnology", "isOrderActive", "__async", "result", "check", "loadTechnology", "then", "l", "ungroupedParameters", "i", "empty", "groups", "m", "parameters", "j", "n", "children", "k", "canStart", "RESERVED", "canReserve", "canCancelReservation", "canSuspend", "canRemove", "articlePromise", "technologyPromise", "getMaterialCategoriesInParameters", "materialCategories", "productionParameters", "output", "productionParameter", "concat", "parameter", "push", "getMaterialCategoryId", "unique", "prepareArticleProductionParameters", "articleProductionParameters", "articleProductionParameter", "parameterEntity", "PARAMETER_GROUP", "prepareGroupsMetadata", "metaParameters", "metaParameter", "groupDefinitionId", "$parametersInited", "productionParameterEntity", "get", "join", "data", "article", "all", "getMaterials", "QB", "aggregate", "search", "values", "excludeMaterialCategories", "filteredCategories", "parameterCategories", "materialCategory", "contains", "filteredMaterialCategories", "prepareParameters", "e", "materials", "map", "material", "enabled", "findById", "materialCopy", "lodashValues", "groupData", "JSON", "parse", "value", "product", "getWithDependencies", "request", "query", "promise", "productionProducts", "joinProducts", "completedArticleOperations", "finishProduction", "finish", "finishProductions", "productionsIds", "finishMultiple", "ids", "confirmTechnology", "confirm", "confirmProductions", "confirmMultiple", "start", "confirmAndStartProductions", "startMultiple", "suspend", "sortOperations", "getStart", "operation", "realStart", "plannedStart", "sort", "a", "b", "aStart", "bStart", "setPlanning", "next", "finishPlanning", "refreshOperations", "Date", "getTime", "checkActions", "possibleActions", "productionIds", "\u0275\u0275inject", "FilterService", "ParametersService", "factory", "\u0275fac", "providedIn", "EventsService", "constructor", "ACL", "Entity", "Filter", "Dialog", "Productions", "getWorkgroupRestriction", "event", "check", "undefined", "workplace", "workgroup", "id", "loadParameters", "__async", "production", "promise", "result", "observableForkJoin", "orderEntity", "QB", "joinParameters", "get", "then", "loadTechnology", "toPromise", "order", "values", "orderParameters", "parameters", "filter", "item", "filterParameters", "productionGroups", "filterGroups", "groups", "ungroupedParameters", "productionParameters", "filteredMaterialCategories", "productionMaterialCategories", "filterMaterialCategories", "Promise", "resolve", "isPersonalEvent", "employeeId", "isPersonal", "employees", "iter", "length", "employee", "materialCategory", "isFiltered", "categories", "articleOperation", "operation", "visibleMaterialCategories", "category", "parameterOverride", "parameter", "filtered", "parameterChildren", "group", "clone", "children", "metaParameters", "isSupervisedEvent", "supervisor", "showOptions", "canUpdateWorkplace", "canUpdateEmployees", "canUpdateTime", "canUpdateSupervisor", "canUpdateParameters", "eventStatus", "eventEntity", "STARTED", "showItemQuantities", "productionStoreAccess", "FINISHED", "canUpdateItemQuantities", "canUpdateEvent", "canStart", "UNSTARTED", "CANCELED", "WAITING_FOR_PREVIOUS", "canEnd", "canCancel", "canComment", "showComments", "UNCONFIRMED", "canUpdateFiles", "fileAccess", "canConfirm", "setBookingsNames", "bookings", "getName", "booking", "bookingName", "smartDateRange", "plannedStart", "plannedEnd", "realStart", "realEnd", "createDefectAct", "employeeOptions", "join", "response", "confirmedBy", "push", "open", "InputDialogComponent", "header", "mainField", "key", "name", "type", "config", "label", "entity", "entityParams", "context", "autoSelectSingleOption", "value", "translate", "options", "map", "disableSearch", "disableAutoFocus", "defectAct", "__spreadProps", "__spreadValues", "resourceBooking", "\u0275\u0275inject", "FilterService", "ProductionsService", "factory", "\u0275fac"] }