{"version":3,"sources":["node_modules/@vendasta/task/fesm2020/vendasta-task.mjs","libs/project-tracker/src/lib/project-tracker-interface.ts","libs/project-tracker/src/lib/ask-question-dialog/ask-question-dialog-interface.ts","libs/galaxy/comment/src/comment.component.ts","libs/galaxy/comment/src/comment.component.html","libs/galaxy/comment/src/comment.module.ts","libs/project-tracker/src/lib/assets/i18n/en_devel.json","libs/project-tracker/src/lib/shared/constants.ts","libs/project-tracker/src/lib/fulfillment-tracker/subtasks/subtasks-uploader/subtasks-uploader.service.ts","libs/project-tracker/src/lib/fulfillment-tracker/subtasks/subtasks-uploader/subtasks-uploader.component.ts","libs/project-tracker/src/lib/fulfillment-tracker/subtasks/subtasks-uploader/subtasks-uploader.component.html","libs/project-tracker/src/lib/fulfillment-tracker/subtasks/fulfillment-subtasks.pipes.ts","libs/project-tracker/src/lib/fulfillment-tracker/subtasks/fulfillment-subtasks.component.ts","libs/project-tracker/src/lib/fulfillment-tracker/subtasks/fulfillment-subtasks.component.html","libs/project-tracker/src/lib/fulfillment-tracker/fulfillment-tracker.component.ts","libs/project-tracker/src/lib/fulfillment-tracker/fulfillment-tracker.component.html","libs/project-tracker/src/lib/project-comments/project-comments.directives.ts","libs/project-tracker/src/lib/shared/pipes/name-initials.pipe.ts","libs/project-tracker/src/lib/project-comments/project-comments.component.ts","libs/project-tracker/src/lib/project-comments/project-comments.component.html","libs/project-tracker/src/lib/shared/services/sidenav.service.ts","libs/project-tracker/src/lib/shared/utils.ts","libs/project-tracker/src/lib/project-tracker-comments/project-tracker-comments.component.ts","libs/project-tracker/src/lib/project-tracker-comments/project-tracker-comments.component.html","libs/project-tracker/src/lib/project-tracker-sidenav-container.component.ts","libs/project-tracker/src/lib/project-tracker-sidenav-container.component.html","libs/project-tracker/src/lib/shared/tracker-subtasks/tracker-subtasks.component.ts","libs/project-tracker/src/lib/shared/tracker-subtasks/tracker-subtasks.component.html","libs/project-tracker/src/lib/shared/services/projects-and-subtasks-by-products.service.ts","libs/project-tracker/src/lib/simple-project-tracker/simple-project-tracker.component.ts","libs/project-tracker/src/lib/simple-project-tracker/simple-project-tracker.component.html","libs/project-tracker/src/lib/project-tracker.module.ts","libs/project-tracker/src/lib/shared/interfaces.ts","libs/project-tracker/src/lib/send-message-dialog/send-message-dialog.service.ts","libs/project-tracker/src/lib/send-message-dialog/send-message-dialog.component.ts","libs/project-tracker/src/lib/send-message-dialog/send-message-dialog.component.html","libs/project-tracker/src/lib/send-message-dialog/send-message-dialog.module.ts","libs/project-tracker/src/lib/project-list-card/project-list-card.service.ts","libs/project-tracker/src/lib/project-list-card/pipes/overdue.pipe.ts","libs/project-tracker/src/lib/project-list-card/pipes/project-status.pipe.ts","libs/project-tracker/src/lib/project-list-card/project-list-card.component.ts","libs/project-tracker/src/lib/project-list-card/project-list-card.component.html","libs/project-tracker/src/lib/project-list-card/project-list-card.module.ts"],"sourcesContent":["import * as i0 from '@angular/core';\nimport { Injectable, InjectionToken, Inject } from '@angular/core';\nimport { map, mapTo, filter, take, switchMap, retry } from 'rxjs/operators';\nimport * as uuid from 'uuid';\nimport * as i1 from '@angular/common/http';\nimport { HttpHeaders } from '@angular/common/http';\nimport * as i4 from 'rxjs';\nimport { throwError, forkJoin } from 'rxjs';\n\n// *********************************\n// Code generated by sdkgen\n// DO NOT EDIT!.\n//\n// Enums.\n// *********************************\nvar PersonaType = /*#__PURE__*/function (PersonaType) {\n PersonaType[PersonaType[\"PERSONA_TYPE_UNSET\"] = 0] = \"PERSONA_TYPE_UNSET\";\n PersonaType[PersonaType[\"PERSONA_TYPE_PARTNER\"] = 1] = \"PERSONA_TYPE_PARTNER\";\n PersonaType[PersonaType[\"PERSONA_TYPE_SALES_PERSON\"] = 2] = \"PERSONA_TYPE_SALES_PERSON\";\n PersonaType[PersonaType[\"PERSONA_TYPE_DIGITAL_AGENT\"] = 3] = \"PERSONA_TYPE_DIGITAL_AGENT\";\n PersonaType[PersonaType[\"PERSONA_TYPE_SMB\"] = 4] = \"PERSONA_TYPE_SMB\";\n return PersonaType;\n}(PersonaType || {});\n// *********************************\n// Code generated by sdkgen\n// DO NOT EDIT!.\n//\n// Enums.\n// *********************************\nvar KeyValueField = /*#__PURE__*/function (KeyValueField) {\n KeyValueField[KeyValueField[\"KEY_VALUE_FIELD_UNSET\"] = 0] = \"KEY_VALUE_FIELD_UNSET\";\n KeyValueField[KeyValueField[\"KEY_VALUE_FIELD_DATA\"] = 1] = \"KEY_VALUE_FIELD_DATA\";\n KeyValueField[KeyValueField[\"KEY_VALUE_FIELD_METADATA\"] = 2] = \"KEY_VALUE_FIELD_METADATA\";\n return KeyValueField;\n}(KeyValueField || {});\nvar Metric = /*#__PURE__*/function (Metric) {\n Metric[Metric[\"METRIC_NAMESPACE\"] = 0] = \"METRIC_NAMESPACE\";\n Metric[Metric[\"METRIC_TYPE\"] = 1] = \"METRIC_TYPE\";\n Metric[Metric[\"METRIC_TAG\"] = 2] = \"METRIC_TAG\";\n Metric[Metric[\"METRIC_STATUS\"] = 3] = \"METRIC_STATUS\";\n Metric[Metric[\"METRIC_ASSIGNEE\"] = 4] = \"METRIC_ASSIGNEE\";\n Metric[Metric[\"METRIC_OLDEST_DUE_DATE\"] = 5] = \"METRIC_OLDEST_DUE_DATE\";\n Metric[Metric[\"METRIC_STATUS_PER_TYPE\"] = 6] = \"METRIC_STATUS_PER_TYPE\";\n Metric[Metric[\"METRIC_TYPE_PER_ASSIGNEE\"] = 7] = \"METRIC_TYPE_PER_ASSIGNEE\";\n Metric[Metric[\"METRIC_STATUS_PER_ASSIGNEE_PER_TYPE\"] = 8] = \"METRIC_STATUS_PER_ASSIGNEE_PER_TYPE\";\n Metric[Metric[\"METRIC_UNUSED\"] = 9] = \"METRIC_UNUSED\";\n Metric[Metric[\"METRIC_STATUS_PER_ASSIGNEE\"] = 10] = \"METRIC_STATUS_PER_ASSIGNEE\";\n Metric[Metric[\"METRIC_PARTNER\"] = 11] = \"METRIC_PARTNER\";\n Metric[Metric[\"METRIC_PER_DAY\"] = 12] = \"METRIC_PER_DAY\";\n Metric[Metric[\"METRIC_FULFILLING_PARTNER\"] = 13] = \"METRIC_FULFILLING_PARTNER\";\n Metric[Metric[\"METRIC_TYPE_PER_DAY\"] = 14] = \"METRIC_TYPE_PER_DAY\";\n Metric[Metric[\"METRIC_TAG_PER_DAY\"] = 15] = \"METRIC_TAG_PER_DAY\";\n Metric[Metric[\"METRIC_COUNT_BY_DATE_RANGE\"] = 16] = \"METRIC_COUNT_BY_DATE_RANGE\";\n Metric[Metric[\"METRIC_TASKS_COMPLETED_BY_DELAY\"] = 17] = \"METRIC_TASKS_COMPLETED_BY_DELAY\";\n Metric[Metric[\"METRIC_TASKS_OVERDUE_BY_DELAY\"] = 18] = \"METRIC_TASKS_OVERDUE_BY_DELAY\";\n return Metric;\n}(Metric || {});\nvar RangeField = /*#__PURE__*/function (RangeField) {\n RangeField[RangeField[\"RANGE_FIELD_DUE_DATE\"] = 0] = \"RANGE_FIELD_DUE_DATE\";\n RangeField[RangeField[\"RANGE_FIELD_COMPLETION_DATE\"] = 1] = \"RANGE_FIELD_COMPLETION_DATE\";\n RangeField[RangeField[\"RANGE_FIELD_CREATED_DATE\"] = 2] = \"RANGE_FIELD_CREATED_DATE\";\n return RangeField;\n}(RangeField || {});\nvar SortDirection = /*#__PURE__*/function (SortDirection) {\n SortDirection[SortDirection[\"SORT_DIRECTION_DESCENDING\"] = 0] = \"SORT_DIRECTION_DESCENDING\";\n SortDirection[SortDirection[\"SORT_DIRECTION_ASCENDING\"] = 1] = \"SORT_DIRECTION_ASCENDING\";\n return SortDirection;\n}(SortDirection || {});\n// *********************************\n\nfunction enumStringToValue$2(enumRef, value) {\n if (typeof value === 'number') {\n return value;\n }\n return enumRef[value];\n}\nclass AccessPermissions {\n static fromProto(proto) {\n let m = new AccessPermissions();\n m = Object.assign(m, proto);\n return m;\n }\n constructor(kwargs) {\n if (!kwargs) {\n return;\n }\n Object.assign(this, kwargs);\n }\n toApiJson() {\n const toReturn = {};\n if (typeof this.read !== 'undefined') {\n toReturn['read'] = this.read;\n }\n if (typeof this.write !== 'undefined') {\n toReturn['write'] = this.write;\n }\n if (typeof this.delete !== 'undefined') {\n toReturn['delete'] = this.delete;\n }\n return toReturn;\n }\n}\nclass Attachment {\n static fromProto(proto) {\n let m = new Attachment();\n m = Object.assign(m, proto);\n if (proto.filePermissions) {\n m.filePermissions = AccessPermissions.fromProto(proto.filePermissions);\n }\n return m;\n }\n constructor(kwargs) {\n if (!kwargs) {\n return;\n }\n Object.assign(this, kwargs);\n }\n toApiJson() {\n const toReturn = {};\n if (typeof this.name !== 'undefined') {\n toReturn['name'] = this.name;\n }\n if (typeof this.url !== 'undefined') {\n toReturn['url'] = this.url;\n }\n if (typeof this.contentType !== 'undefined') {\n toReturn['contentType'] = this.contentType;\n }\n if (typeof this.uploadingPersonaType !== 'undefined') {\n toReturn['uploadingPersonaType'] = this.uploadingPersonaType;\n }\n if (typeof this.filePermissions !== 'undefined' && this.filePermissions !== null) {\n toReturn['filePermissions'] = 'toApiJson' in this.filePermissions ? this.filePermissions.toApiJson() : this.filePermissions;\n }\n return toReturn;\n }\n}\nclass Conversation {\n static fromProto(proto) {\n let m = new Conversation();\n m = Object.assign(m, proto);\n if (proto.created) {\n m.created = new Date(proto.created);\n }\n if (proto.persona) {\n m.persona = enumStringToValue$2(PersonaType, proto.persona);\n }\n return m;\n }\n constructor(kwargs) {\n if (!kwargs) {\n return;\n }\n Object.assign(this, kwargs);\n }\n toApiJson() {\n const toReturn = {};\n if (typeof this.sendFrom !== 'undefined') {\n toReturn['sendFrom'] = this.sendFrom;\n }\n if (typeof this.sendTo !== 'undefined') {\n toReturn['sendTo'] = this.sendTo;\n }\n if (typeof this.message !== 'undefined') {\n toReturn['message'] = this.message;\n }\n if (typeof this.created !== 'undefined' && this.created !== null) {\n toReturn['created'] = 'toApiJson' in this.created ? this.created.toApiJson() : this.created;\n }\n if (typeof this.source !== 'undefined') {\n toReturn['source'] = this.source;\n }\n if (typeof this.isPublic !== 'undefined') {\n toReturn['isPublic'] = this.isPublic;\n }\n if (typeof this.persona !== 'undefined') {\n toReturn['persona'] = this.persona;\n }\n return toReturn;\n }\n}\nclass History {\n static fromProto(proto) {\n let m = new History();\n m = Object.assign(m, proto);\n if (proto.date) {\n m.date = new Date(proto.date);\n }\n return m;\n }\n constructor(kwargs) {\n if (!kwargs) {\n return;\n }\n Object.assign(this, kwargs);\n }\n toApiJson() {\n const toReturn = {};\n if (typeof this.date !== 'undefined' && this.date !== null) {\n toReturn['date'] = 'toApiJson' in this.date ? this.date.toApiJson() : this.date;\n }\n if (typeof this.user !== 'undefined') {\n toReturn['user'] = this.user;\n }\n if (typeof this.message !== 'undefined') {\n toReturn['message'] = this.message;\n }\n return toReturn;\n }\n}\nclass KeyValuesKeyValue {\n static fromProto(proto) {\n let m = new KeyValuesKeyValue();\n m = Object.assign(m, proto);\n if (proto.values) {\n m.values = proto.values.map(KeyValuesKeyValueValue.fromProto);\n }\n return m;\n }\n constructor(kwargs) {\n if (!kwargs) {\n return;\n }\n Object.assign(this, kwargs);\n }\n toApiJson() {\n const toReturn = {};\n if (typeof this.values !== 'undefined' && this.values !== null) {\n toReturn['values'] = 'toApiJson' in this.values ? this.values.toApiJson() : this.values;\n }\n if (typeof this.key !== 'undefined') {\n toReturn['key'] = this.key;\n }\n return toReturn;\n }\n}\nclass KeyValues {\n static fromProto(proto) {\n let m = new KeyValues();\n m = Object.assign(m, proto);\n if (proto.keyValues) {\n m.keyValues = proto.keyValues.map(KeyValuesKeyValue.fromProto);\n }\n return m;\n }\n constructor(kwargs) {\n if (!kwargs) {\n return;\n }\n Object.assign(this, kwargs);\n }\n toApiJson() {\n const toReturn = {};\n if (typeof this.keyValues !== 'undefined' && this.keyValues !== null) {\n toReturn['keyValues'] = 'toApiJson' in this.keyValues ? this.keyValues.toApiJson() : this.keyValues;\n }\n return toReturn;\n }\n}\nclass Task {\n static fromProto(proto) {\n let m = new Task();\n m = Object.assign(m, proto);\n if (proto.version) {\n m.version = parseInt(proto.version, 10);\n }\n if (proto.identity) {\n m.identity = TaskIdentity.fromProto(proto.identity);\n }\n if (proto.dueDate) {\n m.dueDate = new Date(proto.dueDate);\n }\n if (proto.history) {\n m.history = proto.history.map(History.fromProto);\n }\n if (proto.created) {\n m.created = new Date(proto.created);\n }\n if (proto.modified) {\n m.modified = new Date(proto.modified);\n }\n if (proto.completionDate) {\n m.completionDate = new Date(proto.completionDate);\n }\n if (proto.subtasks) {\n m.subtasks = proto.subtasks.map(TaskIdentity.fromProto);\n }\n if (proto.data) {\n m.data = KeyValues.fromProto(proto.data);\n }\n if (proto.metadata) {\n m.metadata = KeyValues.fromProto(proto.metadata);\n }\n if (proto.conversations) {\n m.conversations = proto.conversations.map(Conversation.fromProto);\n }\n if (proto.deleted) {\n m.deleted = new Date(proto.deleted);\n }\n if (proto.attachment) {\n m.attachment = proto.attachment.map(Attachment.fromProto);\n }\n return m;\n }\n constructor(kwargs) {\n if (!kwargs) {\n return;\n }\n Object.assign(this, kwargs);\n }\n toApiJson() {\n const toReturn = {};\n if (typeof this.version !== 'undefined') {\n toReturn['version'] = this.version;\n }\n if (typeof this.identity !== 'undefined' && this.identity !== null) {\n toReturn['identity'] = 'toApiJson' in this.identity ? this.identity.toApiJson() : this.identity;\n }\n if (typeof this.title !== 'undefined') {\n toReturn['title'] = this.title;\n }\n if (typeof this.status !== 'undefined') {\n toReturn['status'] = this.status;\n }\n if (typeof this.dueDate !== 'undefined' && this.dueDate !== null) {\n toReturn['dueDate'] = 'toApiJson' in this.dueDate ? this.dueDate.toApiJson() : this.dueDate;\n }\n if (typeof this.assignees !== 'undefined') {\n toReturn['assignees'] = this.assignees;\n }\n if (typeof this.notes !== 'undefined') {\n toReturn['notes'] = this.notes;\n }\n if (typeof this.description !== 'undefined') {\n toReturn['description'] = this.description;\n }\n if (typeof this.tags !== 'undefined') {\n toReturn['tags'] = this.tags;\n }\n if (typeof this.history !== 'undefined' && this.history !== null) {\n toReturn['history'] = 'toApiJson' in this.history ? this.history.toApiJson() : this.history;\n }\n if (typeof this.created !== 'undefined' && this.created !== null) {\n toReturn['created'] = 'toApiJson' in this.created ? this.created.toApiJson() : this.created;\n }\n if (typeof this.modified !== 'undefined' && this.modified !== null) {\n toReturn['modified'] = 'toApiJson' in this.modified ? this.modified.toApiJson() : this.modified;\n }\n if (typeof this.completionDate !== 'undefined' && this.completionDate !== null) {\n toReturn['completionDate'] = 'toApiJson' in this.completionDate ? this.completionDate.toApiJson() : this.completionDate;\n }\n if (typeof this.subtasks !== 'undefined' && this.subtasks !== null) {\n toReturn['subtasks'] = 'toApiJson' in this.subtasks ? this.subtasks.toApiJson() : this.subtasks;\n }\n if (typeof this.taskType !== 'undefined') {\n toReturn['taskType'] = this.taskType;\n }\n if (typeof this.data !== 'undefined' && this.data !== null) {\n toReturn['data'] = 'toApiJson' in this.data ? this.data.toApiJson() : this.data;\n }\n if (typeof this.metadata !== 'undefined' && this.metadata !== null) {\n toReturn['metadata'] = 'toApiJson' in this.metadata ? this.metadata.toApiJson() : this.metadata;\n }\n if (typeof this.conversations !== 'undefined' && this.conversations !== null) {\n toReturn['conversations'] = 'toApiJson' in this.conversations ? this.conversations.toApiJson() : this.conversations;\n }\n if (typeof this.deleted !== 'undefined' && this.deleted !== null) {\n toReturn['deleted'] = 'toApiJson' in this.deleted ? this.deleted.toApiJson() : this.deleted;\n }\n if (typeof this.attachment !== 'undefined' && this.attachment !== null) {\n toReturn['attachment'] = 'toApiJson' in this.attachment ? this.attachment.toApiJson() : this.attachment;\n }\n if (typeof this.customTags !== 'undefined') {\n toReturn['customTags'] = this.customTags;\n }\n return toReturn;\n }\n}\nclass TaskIdentity {\n static fromProto(proto) {\n let m = new TaskIdentity();\n m = Object.assign(m, proto);\n return m;\n }\n constructor(kwargs) {\n if (!kwargs) {\n return;\n }\n Object.assign(this, kwargs);\n }\n toApiJson() {\n const toReturn = {};\n if (typeof this.namespace !== 'undefined') {\n toReturn['namespace'] = this.namespace;\n }\n if (typeof this.parentPath !== 'undefined') {\n toReturn['parentPath'] = this.parentPath;\n }\n if (typeof this.taskId !== 'undefined') {\n toReturn['taskId'] = this.taskId;\n }\n return toReturn;\n }\n}\nclass TaskTree {\n static fromProto(proto) {\n let m = new TaskTree();\n m = Object.assign(m, proto);\n if (proto.version) {\n m.version = parseInt(proto.version, 10);\n }\n if (proto.identity) {\n m.identity = TaskIdentity.fromProto(proto.identity);\n }\n if (proto.dueDate) {\n m.dueDate = new Date(proto.dueDate);\n }\n if (proto.history) {\n m.history = proto.history.map(History.fromProto);\n }\n if (proto.created) {\n m.created = new Date(proto.created);\n }\n if (proto.modified) {\n m.modified = new Date(proto.modified);\n }\n if (proto.completionDate) {\n m.completionDate = new Date(proto.completionDate);\n }\n if (proto.subtasks) {\n m.subtasks = proto.subtasks.map(TaskTree.fromProto);\n }\n if (proto.data) {\n m.data = KeyValues.fromProto(proto.data);\n }\n if (proto.metadata) {\n m.metadata = KeyValues.fromProto(proto.metadata);\n }\n if (proto.conversations) {\n m.conversations = proto.conversations.map(Conversation.fromProto);\n }\n if (proto.deleted) {\n m.deleted = new Date(proto.deleted);\n }\n if (proto.attachment) {\n m.attachment = proto.attachment.map(Attachment.fromProto);\n }\n return m;\n }\n constructor(kwargs) {\n if (!kwargs) {\n return;\n }\n Object.assign(this, kwargs);\n }\n toApiJson() {\n const toReturn = {};\n if (typeof this.version !== 'undefined') {\n toReturn['version'] = this.version;\n }\n if (typeof this.identity !== 'undefined' && this.identity !== null) {\n toReturn['identity'] = 'toApiJson' in this.identity ? this.identity.toApiJson() : this.identity;\n }\n if (typeof this.title !== 'undefined') {\n toReturn['title'] = this.title;\n }\n if (typeof this.status !== 'undefined') {\n toReturn['status'] = this.status;\n }\n if (typeof this.dueDate !== 'undefined' && this.dueDate !== null) {\n toReturn['dueDate'] = 'toApiJson' in this.dueDate ? this.dueDate.toApiJson() : this.dueDate;\n }\n if (typeof this.assignees !== 'undefined') {\n toReturn['assignees'] = this.assignees;\n }\n if (typeof this.notes !== 'undefined') {\n toReturn['notes'] = this.notes;\n }\n if (typeof this.description !== 'undefined') {\n toReturn['description'] = this.description;\n }\n if (typeof this.tags !== 'undefined') {\n toReturn['tags'] = this.tags;\n }\n if (typeof this.history !== 'undefined' && this.history !== null) {\n toReturn['history'] = 'toApiJson' in this.history ? this.history.toApiJson() : this.history;\n }\n if (typeof this.created !== 'undefined' && this.created !== null) {\n toReturn['created'] = 'toApiJson' in this.created ? this.created.toApiJson() : this.created;\n }\n if (typeof this.modified !== 'undefined' && this.modified !== null) {\n toReturn['modified'] = 'toApiJson' in this.modified ? this.modified.toApiJson() : this.modified;\n }\n if (typeof this.completionDate !== 'undefined' && this.completionDate !== null) {\n toReturn['completionDate'] = 'toApiJson' in this.completionDate ? this.completionDate.toApiJson() : this.completionDate;\n }\n if (typeof this.subtasks !== 'undefined' && this.subtasks !== null) {\n toReturn['subtasks'] = 'toApiJson' in this.subtasks ? this.subtasks.toApiJson() : this.subtasks;\n }\n if (typeof this.taskType !== 'undefined') {\n toReturn['taskType'] = this.taskType;\n }\n if (typeof this.data !== 'undefined' && this.data !== null) {\n toReturn['data'] = 'toApiJson' in this.data ? this.data.toApiJson() : this.data;\n }\n if (typeof this.metadata !== 'undefined' && this.metadata !== null) {\n toReturn['metadata'] = 'toApiJson' in this.metadata ? this.metadata.toApiJson() : this.metadata;\n }\n if (typeof this.conversations !== 'undefined' && this.conversations !== null) {\n toReturn['conversations'] = 'toApiJson' in this.conversations ? this.conversations.toApiJson() : this.conversations;\n }\n if (typeof this.deleted !== 'undefined' && this.deleted !== null) {\n toReturn['deleted'] = 'toApiJson' in this.deleted ? this.deleted.toApiJson() : this.deleted;\n }\n if (typeof this.attachment !== 'undefined' && this.attachment !== null) {\n toReturn['attachment'] = 'toApiJson' in this.attachment ? this.attachment.toApiJson() : this.attachment;\n }\n if (typeof this.customTags !== 'undefined') {\n toReturn['customTags'] = this.customTags;\n }\n return toReturn;\n }\n}\nclass KeyValuesKeyValueValue {\n static fromProto(proto) {\n let m = new KeyValuesKeyValueValue();\n m = Object.assign(m, proto);\n if (proto.int64Value) {\n m.int64Value = parseInt(proto.int64Value, 10);\n }\n if (proto.timeValue) {\n m.timeValue = new Date(proto.timeValue);\n }\n return m;\n }\n constructor(kwargs) {\n if (!kwargs) {\n return;\n }\n Object.assign(this, kwargs);\n }\n toApiJson() {\n const toReturn = {};\n if (typeof this.stringValue !== 'undefined') {\n toReturn['stringValue'] = this.stringValue;\n }\n if (typeof this.int64Value !== 'undefined') {\n toReturn['int64Value'] = this.int64Value;\n }\n if (typeof this.boolValue !== 'undefined') {\n toReturn['boolValue'] = this.boolValue;\n }\n if (typeof this.doubleValue !== 'undefined') {\n toReturn['doubleValue'] = this.doubleValue;\n }\n if (typeof this.timeValue !== 'undefined' && this.timeValue !== null) {\n toReturn['timeValue'] = 'toApiJson' in this.timeValue ? this.timeValue.toApiJson() : this.timeValue;\n }\n if (typeof this.type !== 'undefined') {\n toReturn['type'] = this.type;\n }\n return toReturn;\n }\n}\nfunction enumStringToValue$1(enumRef, value) {\n if (typeof value === 'number') {\n return value;\n }\n return enumRef[value];\n}\nclass AddAssigneeRequest {\n static fromProto(proto) {\n let m = new AddAssigneeRequest();\n m = Object.assign(m, proto);\n if (proto.version) {\n m.version = parseInt(proto.version, 10);\n }\n if (proto.identity) {\n m.identity = TaskIdentity.fromProto(proto.identity);\n }\n return m;\n }\n constructor(kwargs) {\n if (!kwargs) {\n return;\n }\n Object.assign(this, kwargs);\n }\n toApiJson() {\n const toReturn = {};\n if (typeof this.version !== 'undefined') {\n toReturn['version'] = this.version;\n }\n if (typeof this.identity !== 'undefined' && this.identity !== null) {\n toReturn['identity'] = 'toApiJson' in this.identity ? this.identity.toApiJson() : this.identity;\n }\n if (typeof this.assignee !== 'undefined') {\n toReturn['assignee'] = this.assignee;\n }\n if (typeof this.callerSubjectId !== 'undefined') {\n toReturn['callerSubjectId'] = this.callerSubjectId;\n }\n return toReturn;\n }\n}\nclass AddAttachmentRequest {\n static fromProto(proto) {\n let m = new AddAttachmentRequest();\n m = Object.assign(m, proto);\n if (proto.version) {\n m.version = parseInt(proto.version, 10);\n }\n if (proto.identity) {\n m.identity = TaskIdentity.fromProto(proto.identity);\n }\n if (proto.attachment) {\n m.attachment = Attachment.fromProto(proto.attachment);\n }\n return m;\n }\n constructor(kwargs) {\n if (!kwargs) {\n return;\n }\n Object.assign(this, kwargs);\n }\n toApiJson() {\n const toReturn = {};\n if (typeof this.version !== 'undefined') {\n toReturn['version'] = this.version;\n }\n if (typeof this.identity !== 'undefined' && this.identity !== null) {\n toReturn['identity'] = 'toApiJson' in this.identity ? this.identity.toApiJson() : this.identity;\n }\n if (typeof this.attachment !== 'undefined' && this.attachment !== null) {\n toReturn['attachment'] = 'toApiJson' in this.attachment ? this.attachment.toApiJson() : this.attachment;\n }\n if (typeof this.callerSubjectId !== 'undefined') {\n toReturn['callerSubjectId'] = this.callerSubjectId;\n }\n return toReturn;\n }\n}\nclass AddConversationRequest {\n static fromProto(proto) {\n let m = new AddConversationRequest();\n m = Object.assign(m, proto);\n if (proto.version) {\n m.version = parseInt(proto.version, 10);\n }\n if (proto.identity) {\n m.identity = TaskIdentity.fromProto(proto.identity);\n }\n if (proto.persona) {\n m.persona = enumStringToValue$1(PersonaType, proto.persona);\n }\n return m;\n }\n constructor(kwargs) {\n if (!kwargs) {\n return;\n }\n Object.assign(this, kwargs);\n }\n toApiJson() {\n const toReturn = {};\n if (typeof this.version !== 'undefined') {\n toReturn['version'] = this.version;\n }\n if (typeof this.identity !== 'undefined' && this.identity !== null) {\n toReturn['identity'] = 'toApiJson' in this.identity ? this.identity.toApiJson() : this.identity;\n }\n if (typeof this.message !== 'undefined') {\n toReturn['message'] = this.message;\n }\n if (typeof this.sendFrom !== 'undefined') {\n toReturn['sendFrom'] = this.sendFrom;\n }\n if (typeof this.sendTo !== 'undefined') {\n toReturn['sendTo'] = this.sendTo;\n }\n if (typeof this.source !== 'undefined') {\n toReturn['source'] = this.source;\n }\n if (typeof this.callerSubjectId !== 'undefined') {\n toReturn['callerSubjectId'] = this.callerSubjectId;\n }\n if (typeof this.isPublic !== 'undefined') {\n toReturn['isPublic'] = this.isPublic;\n }\n if (typeof this.persona !== 'undefined') {\n toReturn['persona'] = this.persona;\n }\n return toReturn;\n }\n}\nclass AddCustomTagsRequest {\n static fromProto(proto) {\n let m = new AddCustomTagsRequest();\n m = Object.assign(m, proto);\n if (proto.version) {\n m.version = parseInt(proto.version, 10);\n }\n if (proto.identity) {\n m.identity = TaskIdentity.fromProto(proto.identity);\n }\n return m;\n }\n constructor(kwargs) {\n if (!kwargs) {\n return;\n }\n Object.assign(this, kwargs);\n }\n toApiJson() {\n const toReturn = {};\n if (typeof this.version !== 'undefined') {\n toReturn['version'] = this.version;\n }\n if (typeof this.identity !== 'undefined' && this.identity !== null) {\n toReturn['identity'] = 'toApiJson' in this.identity ? this.identity.toApiJson() : this.identity;\n }\n if (typeof this.customTags !== 'undefined') {\n toReturn['customTags'] = this.customTags;\n }\n if (typeof this.callerSubjectId !== 'undefined') {\n toReturn['callerSubjectId'] = this.callerSubjectId;\n }\n return toReturn;\n }\n}\nclass AddHistoryRequest {\n static fromProto(proto) {\n let m = new AddHistoryRequest();\n m = Object.assign(m, proto);\n if (proto.version) {\n m.version = parseInt(proto.version, 10);\n }\n if (proto.identity) {\n m.identity = TaskIdentity.fromProto(proto.identity);\n }\n return m;\n }\n constructor(kwargs) {\n if (!kwargs) {\n return;\n }\n Object.assign(this, kwargs);\n }\n toApiJson() {\n const toReturn = {};\n if (typeof this.version !== 'undefined') {\n toReturn['version'] = this.version;\n }\n if (typeof this.identity !== 'undefined' && this.identity !== null) {\n toReturn['identity'] = 'toApiJson' in this.identity ? this.identity.toApiJson() : this.identity;\n }\n if (typeof this.message !== 'undefined') {\n toReturn['message'] = this.message;\n }\n if (typeof this.callerSubjectId !== 'undefined') {\n toReturn['callerSubjectId'] = this.callerSubjectId;\n }\n return toReturn;\n }\n}\nclass AddMultiAssigneeRequest {\n static fromProto(proto) {\n let m = new AddMultiAssigneeRequest();\n m = Object.assign(m, proto);\n if (proto.addRequests) {\n m.addRequests = proto.addRequests.map(AddAssigneeRequest.fromProto);\n }\n return m;\n }\n constructor(kwargs) {\n if (!kwargs) {\n return;\n }\n Object.assign(this, kwargs);\n }\n toApiJson() {\n const toReturn = {};\n if (typeof this.addRequests !== 'undefined' && this.addRequests !== null) {\n toReturn['addRequests'] = 'toApiJson' in this.addRequests ? this.addRequests.toApiJson() : this.addRequests;\n }\n return toReturn;\n }\n}\nclass AddMultipleSubtasksRequest {\n static fromProto(proto) {\n let m = new AddMultipleSubtasksRequest();\n m = Object.assign(m, proto);\n if (proto.version) {\n m.version = parseInt(proto.version, 10);\n }\n if (proto.subtaskRequests) {\n m.subtaskRequests = proto.subtaskRequests.map(AddSubtaskRequest.fromProto);\n }\n return m;\n }\n constructor(kwargs) {\n if (!kwargs) {\n return;\n }\n Object.assign(this, kwargs);\n }\n toApiJson() {\n const toReturn = {};\n if (typeof this.version !== 'undefined') {\n toReturn['version'] = this.version;\n }\n if (typeof this.subtaskRequests !== 'undefined' && this.subtaskRequests !== null) {\n toReturn['subtaskRequests'] = 'toApiJson' in this.subtaskRequests ? this.subtaskRequests.toApiJson() : this.subtaskRequests;\n }\n return toReturn;\n }\n}\nclass AddSubtaskRequest {\n static fromProto(proto) {\n let m = new AddSubtaskRequest();\n m = Object.assign(m, proto);\n if (proto.version) {\n m.version = parseInt(proto.version, 10);\n }\n if (proto.identity) {\n m.identity = TaskIdentity.fromProto(proto.identity);\n }\n if (proto.dueDate) {\n m.dueDate = new Date(proto.dueDate);\n }\n if (proto.data) {\n m.data = KeyValues.fromProto(proto.data);\n }\n if (proto.metadata) {\n m.metadata = KeyValues.fromProto(proto.metadata);\n }\n if (proto.attachments) {\n m.attachments = proto.attachments.map(Attachment.fromProto);\n }\n return m;\n }\n constructor(kwargs) {\n if (!kwargs) {\n return;\n }\n Object.assign(this, kwargs);\n }\n toApiJson() {\n const toReturn = {};\n if (typeof this.version !== 'undefined') {\n toReturn['version'] = this.version;\n }\n if (typeof this.identity !== 'undefined' && this.identity !== null) {\n toReturn['identity'] = 'toApiJson' in this.identity ? this.identity.toApiJson() : this.identity;\n }\n if (typeof this.taskId !== 'undefined') {\n toReturn['taskId'] = this.taskId;\n }\n if (typeof this.title !== 'undefined') {\n toReturn['title'] = this.title;\n }\n if (typeof this.status !== 'undefined') {\n toReturn['status'] = this.status;\n }\n if (typeof this.dueDate !== 'undefined' && this.dueDate !== null) {\n toReturn['dueDate'] = 'toApiJson' in this.dueDate ? this.dueDate.toApiJson() : this.dueDate;\n }\n if (typeof this.assignees !== 'undefined') {\n toReturn['assignees'] = this.assignees;\n }\n if (typeof this.description !== 'undefined') {\n toReturn['description'] = this.description;\n }\n if (typeof this.tags !== 'undefined') {\n toReturn['tags'] = this.tags;\n }\n if (typeof this.notes !== 'undefined') {\n toReturn['notes'] = this.notes;\n }\n if (typeof this.taskType !== 'undefined') {\n toReturn['taskType'] = this.taskType;\n }\n if (typeof this.data !== 'undefined' && this.data !== null) {\n toReturn['data'] = 'toApiJson' in this.data ? this.data.toApiJson() : this.data;\n }\n if (typeof this.metadata !== 'undefined' && this.metadata !== null) {\n toReturn['metadata'] = 'toApiJson' in this.metadata ? this.metadata.toApiJson() : this.metadata;\n }\n if (typeof this.attachments !== 'undefined' && this.attachments !== null) {\n toReturn['attachments'] = 'toApiJson' in this.attachments ? this.attachments.toApiJson() : this.attachments;\n }\n if (typeof this.customTags !== 'undefined') {\n toReturn['customTags'] = this.customTags;\n }\n if (typeof this.callerSubjectId !== 'undefined') {\n toReturn['callerSubjectId'] = this.callerSubjectId;\n }\n return toReturn;\n }\n}\nclass AddTagsRequest {\n static fromProto(proto) {\n let m = new AddTagsRequest();\n m = Object.assign(m, proto);\n if (proto.version) {\n m.version = parseInt(proto.version, 10);\n }\n if (proto.identity) {\n m.identity = TaskIdentity.fromProto(proto.identity);\n }\n return m;\n }\n constructor(kwargs) {\n if (!kwargs) {\n return;\n }\n Object.assign(this, kwargs);\n }\n toApiJson() {\n const toReturn = {};\n if (typeof this.version !== 'undefined') {\n toReturn['version'] = this.version;\n }\n if (typeof this.identity !== 'undefined' && this.identity !== null) {\n toReturn['identity'] = 'toApiJson' in this.identity ? this.identity.toApiJson() : this.identity;\n }\n if (typeof this.tags !== 'undefined') {\n toReturn['tags'] = this.tags;\n }\n if (typeof this.callerSubjectId !== 'undefined') {\n toReturn['callerSubjectId'] = this.callerSubjectId;\n }\n return toReturn;\n }\n}\nclass CommandResponse {\n static fromProto(proto) {\n let m = new CommandResponse();\n m = Object.assign(m, proto);\n if (proto.version) {\n m.version = parseInt(proto.version, 10);\n }\n return m;\n }\n constructor(kwargs) {\n if (!kwargs) {\n return;\n }\n Object.assign(this, kwargs);\n }\n toApiJson() {\n const toReturn = {};\n if (typeof this.version !== 'undefined') {\n toReturn['version'] = this.version;\n }\n return toReturn;\n }\n}\nclass CountMetricResponse {\n static fromProto(proto) {\n let m = new CountMetricResponse();\n m = Object.assign(m, proto);\n if (proto.count) {\n m.count = parseInt(proto.count, 10);\n }\n return m;\n }\n constructor(kwargs) {\n if (!kwargs) {\n return;\n }\n Object.assign(this, kwargs);\n }\n toApiJson() {\n const toReturn = {};\n if (typeof this.key !== 'undefined') {\n toReturn['key'] = this.key;\n }\n if (typeof this.count !== 'undefined') {\n toReturn['count'] = this.count;\n }\n return toReturn;\n }\n}\nclass DeleteMultiTaskRequest {\n static fromProto(proto) {\n let m = new DeleteMultiTaskRequest();\n m = Object.assign(m, proto);\n if (proto.deleteRequests) {\n m.deleteRequests = proto.deleteRequests.map(DeleteTaskRequest.fromProto);\n }\n return m;\n }\n constructor(kwargs) {\n if (!kwargs) {\n return;\n }\n Object.assign(this, kwargs);\n }\n toApiJson() {\n const toReturn = {};\n if (typeof this.deleteRequests !== 'undefined' && this.deleteRequests !== null) {\n toReturn['deleteRequests'] = 'toApiJson' in this.deleteRequests ? this.deleteRequests.toApiJson() : this.deleteRequests;\n }\n return toReturn;\n }\n}\nclass DeleteTaskRequest {\n static fromProto(proto) {\n let m = new DeleteTaskRequest();\n m = Object.assign(m, proto);\n if (proto.version) {\n m.version = parseInt(proto.version, 10);\n }\n if (proto.identity) {\n m.identity = TaskIdentity.fromProto(proto.identity);\n }\n return m;\n }\n constructor(kwargs) {\n if (!kwargs) {\n return;\n }\n Object.assign(this, kwargs);\n }\n toApiJson() {\n const toReturn = {};\n if (typeof this.version !== 'undefined') {\n toReturn['version'] = this.version;\n }\n if (typeof this.identity !== 'undefined' && this.identity !== null) {\n toReturn['identity'] = 'toApiJson' in this.identity ? this.identity.toApiJson() : this.identity;\n }\n if (typeof this.callerSubjectId !== 'undefined') {\n toReturn['callerSubjectId'] = this.callerSubjectId;\n }\n return toReturn;\n }\n}\nclass MultiCommandRequestEvent {\n static fromProto(proto) {\n let m = new MultiCommandRequestEvent();\n m = Object.assign(m, proto);\n if (proto.generate) {\n m.generate = GenerateTaskRequest.fromProto(proto.generate);\n }\n if (proto.addSubtask) {\n m.addSubtask = AddSubtaskRequest.fromProto(proto.addSubtask);\n }\n if (proto.setTitle) {\n m.setTitle = SetTitleRequest.fromProto(proto.setTitle);\n }\n if (proto.setType) {\n m.setType = SetTypeRequest.fromProto(proto.setType);\n }\n if (proto.addAssignee) {\n m.addAssignee = AddAssigneeRequest.fromProto(proto.addAssignee);\n }\n if (proto.removeAssignee) {\n m.removeAssignee = RemoveAssigneeRequest.fromProto(proto.removeAssignee);\n }\n if (proto.setDueDate) {\n m.setDueDate = SetDueDateRequest.fromProto(proto.setDueDate);\n }\n if (proto.setStatus) {\n m.setStatus = SetStatusRequest.fromProto(proto.setStatus);\n }\n if (proto.setKeyValue) {\n m.setKeyValue = SetKeyValue.fromProto(proto.setKeyValue);\n }\n if (proto.addHistory) {\n m.addHistory = AddHistoryRequest.fromProto(proto.addHistory);\n }\n if (proto.addConversation) {\n m.addConversation = AddConversationRequest.fromProto(proto.addConversation);\n }\n if (proto.addTags) {\n m.addTags = AddTagsRequest.fromProto(proto.addTags);\n }\n if (proto.removeTags) {\n m.removeTags = RemoveTagsRequest.fromProto(proto.removeTags);\n }\n if (proto.setNotes) {\n m.setNotes = SetNotesRequest.fromProto(proto.setNotes);\n }\n if (proto.setDescription) {\n m.setDescription = SetDescriptionRequest.fromProto(proto.setDescription);\n }\n if (proto.delete) {\n m.delete = DeleteTaskRequest.fromProto(proto.delete);\n }\n if (proto.restore) {\n m.restore = RestoreTaskRequest.fromProto(proto.restore);\n }\n if (proto.reorder) {\n m.reorder = ReorderSubtaskRequest.fromProto(proto.reorder);\n }\n if (proto.addAttachment) {\n m.addAttachment = AddAttachmentRequest.fromProto(proto.addAttachment);\n }\n if (proto.removeAttachment) {\n m.removeAttachment = RemoveAttachmentRequest.fromProto(proto.removeAttachment);\n }\n if (proto.addCustomTags) {\n m.addCustomTags = AddCustomTagsRequest.fromProto(proto.addCustomTags);\n }\n if (proto.removeCustomTags) {\n m.removeCustomTags = RemoveCustomTagsRequest.fromProto(proto.removeCustomTags);\n }\n return m;\n }\n constructor(kwargs) {\n if (!kwargs) {\n return;\n }\n Object.assign(this, kwargs);\n }\n toApiJson() {\n const toReturn = {};\n if (typeof this.generate !== 'undefined' && this.generate !== null) {\n toReturn['generate'] = 'toApiJson' in this.generate ? this.generate.toApiJson() : this.generate;\n }\n if (typeof this.addSubtask !== 'undefined' && this.addSubtask !== null) {\n toReturn['addSubtask'] = 'toApiJson' in this.addSubtask ? this.addSubtask.toApiJson() : this.addSubtask;\n }\n if (typeof this.setTitle !== 'undefined' && this.setTitle !== null) {\n toReturn['setTitle'] = 'toApiJson' in this.setTitle ? this.setTitle.toApiJson() : this.setTitle;\n }\n if (typeof this.setType !== 'undefined' && this.setType !== null) {\n toReturn['setType'] = 'toApiJson' in this.setType ? this.setType.toApiJson() : this.setType;\n }\n if (typeof this.addAssignee !== 'undefined' && this.addAssignee !== null) {\n toReturn['addAssignee'] = 'toApiJson' in this.addAssignee ? this.addAssignee.toApiJson() : this.addAssignee;\n }\n if (typeof this.removeAssignee !== 'undefined' && this.removeAssignee !== null) {\n toReturn['removeAssignee'] = 'toApiJson' in this.removeAssignee ? this.removeAssignee.toApiJson() : this.removeAssignee;\n }\n if (typeof this.setDueDate !== 'undefined' && this.setDueDate !== null) {\n toReturn['setDueDate'] = 'toApiJson' in this.setDueDate ? this.setDueDate.toApiJson() : this.setDueDate;\n }\n if (typeof this.setStatus !== 'undefined' && this.setStatus !== null) {\n toReturn['setStatus'] = 'toApiJson' in this.setStatus ? this.setStatus.toApiJson() : this.setStatus;\n }\n if (typeof this.setKeyValue !== 'undefined' && this.setKeyValue !== null) {\n toReturn['setKeyValue'] = 'toApiJson' in this.setKeyValue ? this.setKeyValue.toApiJson() : this.setKeyValue;\n }\n if (typeof this.addHistory !== 'undefined' && this.addHistory !== null) {\n toReturn['addHistory'] = 'toApiJson' in this.addHistory ? this.addHistory.toApiJson() : this.addHistory;\n }\n if (typeof this.addConversation !== 'undefined' && this.addConversation !== null) {\n toReturn['addConversation'] = 'toApiJson' in this.addConversation ? this.addConversation.toApiJson() : this.addConversation;\n }\n if (typeof this.addTags !== 'undefined' && this.addTags !== null) {\n toReturn['addTags'] = 'toApiJson' in this.addTags ? this.addTags.toApiJson() : this.addTags;\n }\n if (typeof this.removeTags !== 'undefined' && this.removeTags !== null) {\n toReturn['removeTags'] = 'toApiJson' in this.removeTags ? this.removeTags.toApiJson() : this.removeTags;\n }\n if (typeof this.setNotes !== 'undefined' && this.setNotes !== null) {\n toReturn['setNotes'] = 'toApiJson' in this.setNotes ? this.setNotes.toApiJson() : this.setNotes;\n }\n if (typeof this.setDescription !== 'undefined' && this.setDescription !== null) {\n toReturn['setDescription'] = 'toApiJson' in this.setDescription ? this.setDescription.toApiJson() : this.setDescription;\n }\n if (typeof this.delete !== 'undefined' && this.delete !== null) {\n toReturn['delete'] = 'toApiJson' in this.delete ? this.delete.toApiJson() : this.delete;\n }\n if (typeof this.restore !== 'undefined' && this.restore !== null) {\n toReturn['restore'] = 'toApiJson' in this.restore ? this.restore.toApiJson() : this.restore;\n }\n if (typeof this.reorder !== 'undefined' && this.reorder !== null) {\n toReturn['reorder'] = 'toApiJson' in this.reorder ? this.reorder.toApiJson() : this.reorder;\n }\n if (typeof this.addAttachment !== 'undefined' && this.addAttachment !== null) {\n toReturn['addAttachment'] = 'toApiJson' in this.addAttachment ? this.addAttachment.toApiJson() : this.addAttachment;\n }\n if (typeof this.removeAttachment !== 'undefined' && this.removeAttachment !== null) {\n toReturn['removeAttachment'] = 'toApiJson' in this.removeAttachment ? this.removeAttachment.toApiJson() : this.removeAttachment;\n }\n if (typeof this.addCustomTags !== 'undefined' && this.addCustomTags !== null) {\n toReturn['addCustomTags'] = 'toApiJson' in this.addCustomTags ? this.addCustomTags.toApiJson() : this.addCustomTags;\n }\n if (typeof this.removeCustomTags !== 'undefined' && this.removeCustomTags !== null) {\n toReturn['removeCustomTags'] = 'toApiJson' in this.removeCustomTags ? this.removeCustomTags.toApiJson() : this.removeCustomTags;\n }\n return toReturn;\n }\n}\nclass GenerateTaskRequest {\n static fromProto(proto) {\n let m = new GenerateTaskRequest();\n m = Object.assign(m, proto);\n if (proto.dueDate) {\n m.dueDate = new Date(proto.dueDate);\n }\n if (proto.data) {\n m.data = KeyValues.fromProto(proto.data);\n }\n if (proto.metadata) {\n m.metadata = KeyValues.fromProto(proto.metadata);\n }\n if (proto.attachments) {\n m.attachments = proto.attachments.map(Attachment.fromProto);\n }\n return m;\n }\n constructor(kwargs) {\n if (!kwargs) {\n return;\n }\n Object.assign(this, kwargs);\n }\n toApiJson() {\n const toReturn = {};\n if (typeof this.namespace !== 'undefined') {\n toReturn['namespace'] = this.namespace;\n }\n if (typeof this.taskId !== 'undefined') {\n toReturn['taskId'] = this.taskId;\n }\n if (typeof this.title !== 'undefined') {\n toReturn['title'] = this.title;\n }\n if (typeof this.status !== 'undefined') {\n toReturn['status'] = this.status;\n }\n if (typeof this.dueDate !== 'undefined' && this.dueDate !== null) {\n toReturn['dueDate'] = 'toApiJson' in this.dueDate ? this.dueDate.toApiJson() : this.dueDate;\n }\n if (typeof this.assignees !== 'undefined') {\n toReturn['assignees'] = this.assignees;\n }\n if (typeof this.description !== 'undefined') {\n toReturn['description'] = this.description;\n }\n if (typeof this.tags !== 'undefined') {\n toReturn['tags'] = this.tags;\n }\n if (typeof this.notes !== 'undefined') {\n toReturn['notes'] = this.notes;\n }\n if (typeof this.taskType !== 'undefined') {\n toReturn['taskType'] = this.taskType;\n }\n if (typeof this.data !== 'undefined' && this.data !== null) {\n toReturn['data'] = 'toApiJson' in this.data ? this.data.toApiJson() : this.data;\n }\n if (typeof this.metadata !== 'undefined' && this.metadata !== null) {\n toReturn['metadata'] = 'toApiJson' in this.metadata ? this.metadata.toApiJson() : this.metadata;\n }\n if (typeof this.attachments !== 'undefined' && this.attachments !== null) {\n toReturn['attachments'] = 'toApiJson' in this.attachments ? this.attachments.toApiJson() : this.attachments;\n }\n if (typeof this.customTags !== 'undefined') {\n toReturn['customTags'] = this.customTags;\n }\n if (typeof this.callerSubjectId !== 'undefined') {\n toReturn['callerSubjectId'] = this.callerSubjectId;\n }\n return toReturn;\n }\n}\nclass GetMetricsFilters {\n static fromProto(proto) {\n let m = new GetMetricsFilters();\n m = Object.assign(m, proto);\n if (proto.rangeStart) {\n m.rangeStart = new Date(proto.rangeStart);\n }\n if (proto.rangeEnd) {\n m.rangeEnd = new Date(proto.rangeEnd);\n }\n if (proto.metadata) {\n m.metadata = KeyValues.fromProto(proto.metadata);\n }\n if (proto.dateRangeField) {\n m.dateRangeField = enumStringToValue$1(RangeField, proto.dateRangeField);\n }\n if (proto.metadataGroups) {\n m.metadataGroups = GroupedMetadata.fromProto(proto.metadataGroups);\n }\n return m;\n }\n constructor(kwargs) {\n if (!kwargs) {\n return;\n }\n Object.assign(this, kwargs);\n }\n toApiJson() {\n const toReturn = {};\n if (typeof this.namespace !== 'undefined') {\n toReturn['namespace'] = this.namespace;\n }\n if (typeof this.parentPathFuzzy !== 'undefined') {\n toReturn['parentPathFuzzy'] = this.parentPathFuzzy;\n }\n if (typeof this.parentPathExact !== 'undefined') {\n toReturn['parentPathExact'] = this.parentPathExact;\n }\n if (typeof this.titleFuzzy !== 'undefined') {\n toReturn['titleFuzzy'] = this.titleFuzzy;\n }\n if (typeof this.titleExact !== 'undefined') {\n toReturn['titleExact'] = this.titleExact;\n }\n if (typeof this.assignees !== 'undefined') {\n toReturn['assignees'] = this.assignees;\n }\n if (typeof this.rangeStart !== 'undefined' && this.rangeStart !== null) {\n toReturn['rangeStart'] = 'toApiJson' in this.rangeStart ? this.rangeStart.toApiJson() : this.rangeStart;\n }\n if (typeof this.rangeEnd !== 'undefined' && this.rangeEnd !== null) {\n toReturn['rangeEnd'] = 'toApiJson' in this.rangeEnd ? this.rangeEnd.toApiJson() : this.rangeEnd;\n }\n if (typeof this.types !== 'undefined') {\n toReturn['types'] = this.types;\n }\n if (typeof this.status !== 'undefined') {\n toReturn['status'] = this.status;\n }\n if (typeof this.tags !== 'undefined') {\n toReturn['tags'] = this.tags;\n }\n if (typeof this.metadata !== 'undefined' && this.metadata !== null) {\n toReturn['metadata'] = 'toApiJson' in this.metadata ? this.metadata.toApiJson() : this.metadata;\n }\n if (typeof this.dateRangeField !== 'undefined') {\n toReturn['dateRangeField'] = this.dateRangeField;\n }\n if (typeof this.access !== 'undefined') {\n toReturn['access'] = this.access;\n }\n if (typeof this.metadataGroups !== 'undefined' && this.metadataGroups !== null) {\n toReturn['metadataGroups'] = 'toApiJson' in this.metadataGroups ? this.metadataGroups.toApiJson() : this.metadataGroups;\n }\n return toReturn;\n }\n}\nclass GetMetricsRequest {\n static fromProto(proto) {\n let m = new GetMetricsRequest();\n m = Object.assign(m, proto);\n if (proto.requests) {\n m.requests = proto.requests.map(GetMetricsRequestMetricRequest.fromProto);\n }\n return m;\n }\n constructor(kwargs) {\n if (!kwargs) {\n return;\n }\n Object.assign(this, kwargs);\n }\n toApiJson() {\n const toReturn = {};\n if (typeof this.requests !== 'undefined' && this.requests !== null) {\n toReturn['requests'] = 'toApiJson' in this.requests ? this.requests.toApiJson() : this.requests;\n }\n return toReturn;\n }\n}\nclass GetMetricsResponse {\n static fromProto(proto) {\n let m = new GetMetricsResponse();\n m = Object.assign(m, proto);\n if (proto.metrics) {\n m.metrics = proto.metrics.map(v => enumStringToValue$1(Metric, v));\n }\n if (proto.responses) {\n m.responses = proto.responses.map(MetricResponses.fromProto);\n }\n return m;\n }\n constructor(kwargs) {\n if (!kwargs) {\n return;\n }\n Object.assign(this, kwargs);\n }\n toApiJson() {\n const toReturn = {};\n if (typeof this.metrics !== 'undefined') {\n toReturn['metrics'] = this.metrics;\n }\n if (typeof this.responses !== 'undefined' && this.responses !== null) {\n toReturn['responses'] = 'toApiJson' in this.responses ? this.responses.toApiJson() : this.responses;\n }\n if (typeof this.names !== 'undefined') {\n toReturn['names'] = this.names;\n }\n return toReturn;\n }\n}\nclass GetTaskRequest {\n static fromProto(proto) {\n let m = new GetTaskRequest();\n m = Object.assign(m, proto);\n if (proto.identity) {\n m.identity = TaskIdentity.fromProto(proto.identity);\n }\n return m;\n }\n constructor(kwargs) {\n if (!kwargs) {\n return;\n }\n Object.assign(this, kwargs);\n }\n toApiJson() {\n const toReturn = {};\n if (typeof this.identity !== 'undefined' && this.identity !== null) {\n toReturn['identity'] = 'toApiJson' in this.identity ? this.identity.toApiJson() : this.identity;\n }\n if (typeof this.returnDeleted !== 'undefined') {\n toReturn['returnDeleted'] = this.returnDeleted;\n }\n return toReturn;\n }\n}\nclass GetTaskResponse {\n static fromProto(proto) {\n let m = new GetTaskResponse();\n m = Object.assign(m, proto);\n if (proto.task) {\n m.task = Task.fromProto(proto.task);\n }\n return m;\n }\n constructor(kwargs) {\n if (!kwargs) {\n return;\n }\n Object.assign(this, kwargs);\n }\n toApiJson() {\n const toReturn = {};\n if (typeof this.task !== 'undefined' && this.task !== null) {\n toReturn['task'] = 'toApiJson' in this.task ? this.task.toApiJson() : this.task;\n }\n return toReturn;\n }\n}\nclass GetTasksRequest {\n static fromProto(proto) {\n let m = new GetTasksRequest();\n m = Object.assign(m, proto);\n if (proto.identities) {\n m.identities = proto.identities.map(TaskIdentity.fromProto);\n }\n return m;\n }\n constructor(kwargs) {\n if (!kwargs) {\n return;\n }\n Object.assign(this, kwargs);\n }\n toApiJson() {\n const toReturn = {};\n if (typeof this.identities !== 'undefined' && this.identities !== null) {\n toReturn['identities'] = 'toApiJson' in this.identities ? this.identities.toApiJson() : this.identities;\n }\n if (typeof this.returnDeleted !== 'undefined') {\n toReturn['returnDeleted'] = this.returnDeleted;\n }\n if (typeof this.excludeDeleted !== 'undefined') {\n toReturn['excludeDeleted'] = this.excludeDeleted;\n }\n return toReturn;\n }\n}\nclass GetTasksResponse {\n static fromProto(proto) {\n let m = new GetTasksResponse();\n m = Object.assign(m, proto);\n if (proto.tasks) {\n m.tasks = proto.tasks.map(Task.fromProto);\n }\n return m;\n }\n constructor(kwargs) {\n if (!kwargs) {\n return;\n }\n Object.assign(this, kwargs);\n }\n toApiJson() {\n const toReturn = {};\n if (typeof this.tasks !== 'undefined' && this.tasks !== null) {\n toReturn['tasks'] = 'toApiJson' in this.tasks ? this.tasks.toApiJson() : this.tasks;\n }\n return toReturn;\n }\n}\nclass GetTreeRequest {\n static fromProto(proto) {\n let m = new GetTreeRequest();\n m = Object.assign(m, proto);\n if (proto.identity) {\n m.identity = TaskIdentity.fromProto(proto.identity);\n }\n return m;\n }\n constructor(kwargs) {\n if (!kwargs) {\n return;\n }\n Object.assign(this, kwargs);\n }\n toApiJson() {\n const toReturn = {};\n if (typeof this.identity !== 'undefined' && this.identity !== null) {\n toReturn['identity'] = 'toApiJson' in this.identity ? this.identity.toApiJson() : this.identity;\n }\n return toReturn;\n }\n}\nclass GetTreeResponse {\n static fromProto(proto) {\n let m = new GetTreeResponse();\n m = Object.assign(m, proto);\n if (proto.tasks) {\n m.tasks = TaskTree.fromProto(proto.tasks);\n }\n return m;\n }\n constructor(kwargs) {\n if (!kwargs) {\n return;\n }\n Object.assign(this, kwargs);\n }\n toApiJson() {\n const toReturn = {};\n if (typeof this.tasks !== 'undefined' && this.tasks !== null) {\n toReturn['tasks'] = 'toApiJson' in this.tasks ? this.tasks.toApiJson() : this.tasks;\n }\n return toReturn;\n }\n}\nclass GroupedMetadata {\n static fromProto(proto) {\n let m = new GroupedMetadata();\n m = Object.assign(m, proto);\n if (proto.metadataGroup) {\n m.metadataGroup = proto.metadataGroup.map(KeyValues.fromProto);\n }\n return m;\n }\n constructor(kwargs) {\n if (!kwargs) {\n return;\n }\n Object.assign(this, kwargs);\n }\n toApiJson() {\n const toReturn = {};\n if (typeof this.metadataGroup !== 'undefined' && this.metadataGroup !== null) {\n toReturn['metadataGroup'] = 'toApiJson' in this.metadataGroup ? this.metadataGroup.toApiJson() : this.metadataGroup;\n }\n return toReturn;\n }\n}\nclass GroupedTags {\n static fromProto(proto) {\n let m = new GroupedTags();\n m = Object.assign(m, proto);\n if (proto.groups) {\n m.groups = proto.groups.map(TagGroup.fromProto);\n }\n return m;\n }\n constructor(kwargs) {\n if (!kwargs) {\n return;\n }\n Object.assign(this, kwargs);\n }\n toApiJson() {\n const toReturn = {};\n if (typeof this.groups !== 'undefined' && this.groups !== null) {\n toReturn['groups'] = 'toApiJson' in this.groups ? this.groups.toApiJson() : this.groups;\n }\n return toReturn;\n }\n}\nclass GetMetricsRequestMetricRequest {\n static fromProto(proto) {\n let m = new GetMetricsRequestMetricRequest();\n m = Object.assign(m, proto);\n if (proto.metric) {\n m.metric = enumStringToValue$1(Metric, proto.metric);\n }\n if (proto.filters) {\n m.filters = GetMetricsFilters.fromProto(proto.filters);\n }\n return m;\n }\n constructor(kwargs) {\n if (!kwargs) {\n return;\n }\n Object.assign(this, kwargs);\n }\n toApiJson() {\n const toReturn = {};\n if (typeof this.metric !== 'undefined') {\n toReturn['metric'] = this.metric;\n }\n if (typeof this.filters !== 'undefined' && this.filters !== null) {\n toReturn['filters'] = 'toApiJson' in this.filters ? this.filters.toApiJson() : this.filters;\n }\n if (typeof this.name !== 'undefined') {\n toReturn['name'] = this.name;\n }\n return toReturn;\n }\n}\nclass MetricResponsesMetricResponse {\n static fromProto(proto) {\n let m = new MetricResponsesMetricResponse();\n m = Object.assign(m, proto);\n if (proto.count) {\n m.count = CountMetricResponse.fromProto(proto.count);\n }\n if (proto.value) {\n m.value = ValueMetricResponse.fromProto(proto.value);\n }\n if (proto.subMetricResponses) {\n m.subMetricResponses = proto.subMetricResponses.map(MetricResponses.fromProto);\n }\n return m;\n }\n constructor(kwargs) {\n if (!kwargs) {\n return;\n }\n Object.assign(this, kwargs);\n }\n toApiJson() {\n const toReturn = {};\n if (typeof this.count !== 'undefined' && this.count !== null) {\n toReturn['count'] = 'toApiJson' in this.count ? this.count.toApiJson() : this.count;\n }\n if (typeof this.value !== 'undefined' && this.value !== null) {\n toReturn['value'] = 'toApiJson' in this.value ? this.value.toApiJson() : this.value;\n }\n if (typeof this.subMetricResponses !== 'undefined' && this.subMetricResponses !== null) {\n toReturn['subMetricResponses'] = 'toApiJson' in this.subMetricResponses ? this.subMetricResponses.toApiJson() : this.subMetricResponses;\n }\n return toReturn;\n }\n}\nclass MetricResponses {\n static fromProto(proto) {\n let m = new MetricResponses();\n m = Object.assign(m, proto);\n if (proto.metricResponses) {\n m.metricResponses = proto.metricResponses.map(MetricResponsesMetricResponse.fromProto);\n }\n return m;\n }\n constructor(kwargs) {\n if (!kwargs) {\n return;\n }\n Object.assign(this, kwargs);\n }\n toApiJson() {\n const toReturn = {};\n if (typeof this.metricResponses !== 'undefined' && this.metricResponses !== null) {\n toReturn['metricResponses'] = 'toApiJson' in this.metricResponses ? this.metricResponses.toApiJson() : this.metricResponses;\n }\n return toReturn;\n }\n}\nclass MultiCommandRequest {\n static fromProto(proto) {\n let m = new MultiCommandRequest();\n m = Object.assign(m, proto);\n if (proto.events) {\n m.events = proto.events.map(MultiCommandRequestEvent.fromProto);\n }\n return m;\n }\n constructor(kwargs) {\n if (!kwargs) {\n return;\n }\n Object.assign(this, kwargs);\n }\n toApiJson() {\n const toReturn = {};\n if (typeof this.events !== 'undefined' && this.events !== null) {\n toReturn['events'] = 'toApiJson' in this.events ? this.events.toApiJson() : this.events;\n }\n if (typeof this.callerSubjectId !== 'undefined') {\n toReturn['callerSubjectId'] = this.callerSubjectId;\n }\n return toReturn;\n }\n}\nclass MultiCommandResponsesMultiCommandResponse {\n static fromProto(proto) {\n let m = new MultiCommandResponsesMultiCommandResponse();\n m = Object.assign(m, proto);\n if (proto.version) {\n m.version = parseInt(proto.version, 10);\n }\n if (proto.identity) {\n m.identity = TaskIdentity.fromProto(proto.identity);\n }\n return m;\n }\n constructor(kwargs) {\n if (!kwargs) {\n return;\n }\n Object.assign(this, kwargs);\n }\n toApiJson() {\n const toReturn = {};\n if (typeof this.version !== 'undefined') {\n toReturn['version'] = this.version;\n }\n if (typeof this.identity !== 'undefined' && this.identity !== null) {\n toReturn['identity'] = 'toApiJson' in this.identity ? this.identity.toApiJson() : this.identity;\n }\n return toReturn;\n }\n}\nclass MultiCommandResponses {\n static fromProto(proto) {\n let m = new MultiCommandResponses();\n m = Object.assign(m, proto);\n if (proto.responses) {\n m.responses = proto.responses.map(MultiCommandResponsesMultiCommandResponse.fromProto);\n }\n return m;\n }\n constructor(kwargs) {\n if (!kwargs) {\n return;\n }\n Object.assign(this, kwargs);\n }\n toApiJson() {\n const toReturn = {};\n if (typeof this.responses !== 'undefined' && this.responses !== null) {\n toReturn['responses'] = 'toApiJson' in this.responses ? this.responses.toApiJson() : this.responses;\n }\n return toReturn;\n }\n}\nclass MultiSearchTaskRequest {\n static fromProto(proto) {\n let m = new MultiSearchTaskRequest();\n m = Object.assign(m, proto);\n if (proto.searchRequests) {\n m.searchRequests = proto.searchRequests.map(SearchTaskRequest.fromProto);\n }\n return m;\n }\n constructor(kwargs) {\n if (!kwargs) {\n return;\n }\n Object.assign(this, kwargs);\n }\n toApiJson() {\n const toReturn = {};\n if (typeof this.searchRequests !== 'undefined' && this.searchRequests !== null) {\n toReturn['searchRequests'] = 'toApiJson' in this.searchRequests ? this.searchRequests.toApiJson() : this.searchRequests;\n }\n return toReturn;\n }\n}\nclass RemoveAssigneeRequest {\n static fromProto(proto) {\n let m = new RemoveAssigneeRequest();\n m = Object.assign(m, proto);\n if (proto.version) {\n m.version = parseInt(proto.version, 10);\n }\n if (proto.identity) {\n m.identity = TaskIdentity.fromProto(proto.identity);\n }\n return m;\n }\n constructor(kwargs) {\n if (!kwargs) {\n return;\n }\n Object.assign(this, kwargs);\n }\n toApiJson() {\n const toReturn = {};\n if (typeof this.version !== 'undefined') {\n toReturn['version'] = this.version;\n }\n if (typeof this.identity !== 'undefined' && this.identity !== null) {\n toReturn['identity'] = 'toApiJson' in this.identity ? this.identity.toApiJson() : this.identity;\n }\n if (typeof this.assignee !== 'undefined') {\n toReturn['assignee'] = this.assignee;\n }\n if (typeof this.callerSubjectId !== 'undefined') {\n toReturn['callerSubjectId'] = this.callerSubjectId;\n }\n return toReturn;\n }\n}\nclass RemoveAttachmentRequest {\n static fromProto(proto) {\n let m = new RemoveAttachmentRequest();\n m = Object.assign(m, proto);\n if (proto.version) {\n m.version = parseInt(proto.version, 10);\n }\n if (proto.identity) {\n m.identity = TaskIdentity.fromProto(proto.identity);\n }\n if (proto.attachment) {\n m.attachment = Attachment.fromProto(proto.attachment);\n }\n return m;\n }\n constructor(kwargs) {\n if (!kwargs) {\n return;\n }\n Object.assign(this, kwargs);\n }\n toApiJson() {\n const toReturn = {};\n if (typeof this.version !== 'undefined') {\n toReturn['version'] = this.version;\n }\n if (typeof this.identity !== 'undefined' && this.identity !== null) {\n toReturn['identity'] = 'toApiJson' in this.identity ? this.identity.toApiJson() : this.identity;\n }\n if (typeof this.attachment !== 'undefined' && this.attachment !== null) {\n toReturn['attachment'] = 'toApiJson' in this.attachment ? this.attachment.toApiJson() : this.attachment;\n }\n if (typeof this.callerSubjectId !== 'undefined') {\n toReturn['callerSubjectId'] = this.callerSubjectId;\n }\n return toReturn;\n }\n}\nclass RemoveCustomTagsRequest {\n static fromProto(proto) {\n let m = new RemoveCustomTagsRequest();\n m = Object.assign(m, proto);\n if (proto.version) {\n m.version = parseInt(proto.version, 10);\n }\n if (proto.identity) {\n m.identity = TaskIdentity.fromProto(proto.identity);\n }\n return m;\n }\n constructor(kwargs) {\n if (!kwargs) {\n return;\n }\n Object.assign(this, kwargs);\n }\n toApiJson() {\n const toReturn = {};\n if (typeof this.version !== 'undefined') {\n toReturn['version'] = this.version;\n }\n if (typeof this.identity !== 'undefined' && this.identity !== null) {\n toReturn['identity'] = 'toApiJson' in this.identity ? this.identity.toApiJson() : this.identity;\n }\n if (typeof this.customTags !== 'undefined') {\n toReturn['customTags'] = this.customTags;\n }\n if (typeof this.callerSubjectId !== 'undefined') {\n toReturn['callerSubjectId'] = this.callerSubjectId;\n }\n return toReturn;\n }\n}\nclass RemoveMultiAssigneeRequest {\n static fromProto(proto) {\n let m = new RemoveMultiAssigneeRequest();\n m = Object.assign(m, proto);\n if (proto.removeRequests) {\n m.removeRequests = proto.removeRequests.map(RemoveAssigneeRequest.fromProto);\n }\n return m;\n }\n constructor(kwargs) {\n if (!kwargs) {\n return;\n }\n Object.assign(this, kwargs);\n }\n toApiJson() {\n const toReturn = {};\n if (typeof this.removeRequests !== 'undefined' && this.removeRequests !== null) {\n toReturn['removeRequests'] = 'toApiJson' in this.removeRequests ? this.removeRequests.toApiJson() : this.removeRequests;\n }\n return toReturn;\n }\n}\nclass RemoveTagsRequest {\n static fromProto(proto) {\n let m = new RemoveTagsRequest();\n m = Object.assign(m, proto);\n if (proto.version) {\n m.version = parseInt(proto.version, 10);\n }\n if (proto.identity) {\n m.identity = TaskIdentity.fromProto(proto.identity);\n }\n return m;\n }\n constructor(kwargs) {\n if (!kwargs) {\n return;\n }\n Object.assign(this, kwargs);\n }\n toApiJson() {\n const toReturn = {};\n if (typeof this.version !== 'undefined') {\n toReturn['version'] = this.version;\n }\n if (typeof this.identity !== 'undefined' && this.identity !== null) {\n toReturn['identity'] = 'toApiJson' in this.identity ? this.identity.toApiJson() : this.identity;\n }\n if (typeof this.tags !== 'undefined') {\n toReturn['tags'] = this.tags;\n }\n if (typeof this.callerSubjectId !== 'undefined') {\n toReturn['callerSubjectId'] = this.callerSubjectId;\n }\n return toReturn;\n }\n}\nclass ReorderSubtaskRequest {\n static fromProto(proto) {\n let m = new ReorderSubtaskRequest();\n m = Object.assign(m, proto);\n if (proto.version) {\n m.version = parseInt(proto.version, 10);\n }\n if (proto.identity) {\n m.identity = TaskIdentity.fromProto(proto.identity);\n }\n if (proto.currentPosition) {\n m.currentPosition = parseInt(proto.currentPosition, 10);\n }\n if (proto.newPosition) {\n m.newPosition = parseInt(proto.newPosition, 10);\n }\n return m;\n }\n constructor(kwargs) {\n if (!kwargs) {\n return;\n }\n Object.assign(this, kwargs);\n }\n toApiJson() {\n const toReturn = {};\n if (typeof this.version !== 'undefined') {\n toReturn['version'] = this.version;\n }\n if (typeof this.identity !== 'undefined' && this.identity !== null) {\n toReturn['identity'] = 'toApiJson' in this.identity ? this.identity.toApiJson() : this.identity;\n }\n if (typeof this.currentPosition !== 'undefined') {\n toReturn['currentPosition'] = this.currentPosition;\n }\n if (typeof this.newPosition !== 'undefined') {\n toReturn['newPosition'] = this.newPosition;\n }\n if (typeof this.callerSubjectId !== 'undefined') {\n toReturn['callerSubjectId'] = this.callerSubjectId;\n }\n return toReturn;\n }\n}\nclass RestoreMultiTaskRequest {\n static fromProto(proto) {\n let m = new RestoreMultiTaskRequest();\n m = Object.assign(m, proto);\n if (proto.restoreRequests) {\n m.restoreRequests = proto.restoreRequests.map(RestoreTaskRequest.fromProto);\n }\n return m;\n }\n constructor(kwargs) {\n if (!kwargs) {\n return;\n }\n Object.assign(this, kwargs);\n }\n toApiJson() {\n const toReturn = {};\n if (typeof this.restoreRequests !== 'undefined' && this.restoreRequests !== null) {\n toReturn['restoreRequests'] = 'toApiJson' in this.restoreRequests ? this.restoreRequests.toApiJson() : this.restoreRequests;\n }\n return toReturn;\n }\n}\nclass RestoreTaskRequest {\n static fromProto(proto) {\n let m = new RestoreTaskRequest();\n m = Object.assign(m, proto);\n if (proto.version) {\n m.version = parseInt(proto.version, 10);\n }\n if (proto.identity) {\n m.identity = TaskIdentity.fromProto(proto.identity);\n }\n return m;\n }\n constructor(kwargs) {\n if (!kwargs) {\n return;\n }\n Object.assign(this, kwargs);\n }\n toApiJson() {\n const toReturn = {};\n if (typeof this.version !== 'undefined') {\n toReturn['version'] = this.version;\n }\n if (typeof this.identity !== 'undefined' && this.identity !== null) {\n toReturn['identity'] = 'toApiJson' in this.identity ? this.identity.toApiJson() : this.identity;\n }\n if (typeof this.callerSubjectId !== 'undefined') {\n toReturn['callerSubjectId'] = this.callerSubjectId;\n }\n return toReturn;\n }\n}\nclass SearchTaskRequest {\n static fromProto(proto) {\n let m = new SearchTaskRequest();\n m = Object.assign(m, proto);\n if (proto.rangeStart) {\n m.rangeStart = new Date(proto.rangeStart);\n }\n if (proto.rangeEnd) {\n m.rangeEnd = new Date(proto.rangeEnd);\n }\n if (proto.metadata) {\n m.metadata = KeyValues.fromProto(proto.metadata);\n }\n if (proto.pageSize) {\n m.pageSize = parseInt(proto.pageSize, 10);\n }\n if (proto.sortDirection) {\n m.sortDirection = enumStringToValue$1(SortDirection, proto.sortDirection);\n }\n if (proto.dateRangeField) {\n m.dateRangeField = enumStringToValue$1(RangeField, proto.dateRangeField);\n }\n if (proto.sorts) {\n m.sorts = proto.sorts.map(Sort.fromProto);\n }\n if (proto.tagGroups) {\n m.tagGroups = GroupedTags.fromProto(proto.tagGroups);\n }\n if (proto.metadataGroups) {\n m.metadataGroups = GroupedMetadata.fromProto(proto.metadataGroups);\n }\n return m;\n }\n constructor(kwargs) {\n if (!kwargs) {\n return;\n }\n Object.assign(this, kwargs);\n }\n toApiJson() {\n const toReturn = {};\n if (typeof this.namespace !== 'undefined') {\n toReturn['namespace'] = this.namespace;\n }\n if (typeof this.parentPathFuzzy !== 'undefined') {\n toReturn['parentPathFuzzy'] = this.parentPathFuzzy;\n }\n if (typeof this.parentPathExact !== 'undefined') {\n toReturn['parentPathExact'] = this.parentPathExact;\n }\n if (typeof this.titleFuzzy !== 'undefined') {\n toReturn['titleFuzzy'] = this.titleFuzzy;\n }\n if (typeof this.titleExact !== 'undefined') {\n toReturn['titleExact'] = this.titleExact;\n }\n if (typeof this.assignees !== 'undefined') {\n toReturn['assignees'] = this.assignees;\n }\n if (typeof this.rangeStart !== 'undefined' && this.rangeStart !== null) {\n toReturn['rangeStart'] = 'toApiJson' in this.rangeStart ? this.rangeStart.toApiJson() : this.rangeStart;\n }\n if (typeof this.rangeEnd !== 'undefined' && this.rangeEnd !== null) {\n toReturn['rangeEnd'] = 'toApiJson' in this.rangeEnd ? this.rangeEnd.toApiJson() : this.rangeEnd;\n }\n if (typeof this.types !== 'undefined') {\n toReturn['types'] = this.types;\n }\n if (typeof this.status !== 'undefined') {\n toReturn['status'] = this.status;\n }\n if (typeof this.tags !== 'undefined') {\n toReturn['tags'] = this.tags;\n }\n if (typeof this.metadata !== 'undefined' && this.metadata !== null) {\n toReturn['metadata'] = 'toApiJson' in this.metadata ? this.metadata.toApiJson() : this.metadata;\n }\n if (typeof this.cursor !== 'undefined') {\n toReturn['cursor'] = this.cursor;\n }\n if (typeof this.pageSize !== 'undefined') {\n toReturn['pageSize'] = this.pageSize;\n }\n if (typeof this.sortField !== 'undefined') {\n toReturn['sortField'] = this.sortField;\n }\n if (typeof this.sortDirection !== 'undefined') {\n toReturn['sortDirection'] = this.sortDirection;\n }\n if (typeof this.dateRangeField !== 'undefined') {\n toReturn['dateRangeField'] = this.dateRangeField;\n }\n if (typeof this.access !== 'undefined') {\n toReturn['access'] = this.access;\n }\n if (typeof this.sorts !== 'undefined' && this.sorts !== null) {\n toReturn['sorts'] = 'toApiJson' in this.sorts ? this.sorts.toApiJson() : this.sorts;\n }\n if (typeof this.excludeHistory !== 'undefined') {\n toReturn['excludeHistory'] = this.excludeHistory;\n }\n if (typeof this.deletedOnly !== 'undefined') {\n toReturn['deletedOnly'] = this.deletedOnly;\n }\n if (typeof this.tagGroups !== 'undefined' && this.tagGroups !== null) {\n toReturn['tagGroups'] = 'toApiJson' in this.tagGroups ? this.tagGroups.toApiJson() : this.tagGroups;\n }\n if (typeof this.metadataGroups !== 'undefined' && this.metadataGroups !== null) {\n toReturn['metadataGroups'] = 'toApiJson' in this.metadataGroups ? this.metadataGroups.toApiJson() : this.metadataGroups;\n }\n if (typeof this.taskId !== 'undefined') {\n toReturn['taskId'] = this.taskId;\n }\n if (typeof this.customTags !== 'undefined') {\n toReturn['customTags'] = this.customTags;\n }\n return toReturn;\n }\n}\nclass SearchTaskResponse {\n static fromProto(proto) {\n let m = new SearchTaskResponse();\n m = Object.assign(m, proto);\n if (proto.tasks) {\n m.tasks = proto.tasks.map(Task.fromProto);\n }\n if (proto.hits) {\n m.hits = parseInt(proto.hits, 10);\n }\n return m;\n }\n constructor(kwargs) {\n if (!kwargs) {\n return;\n }\n Object.assign(this, kwargs);\n }\n toApiJson() {\n const toReturn = {};\n if (typeof this.tasks !== 'undefined' && this.tasks !== null) {\n toReturn['tasks'] = 'toApiJson' in this.tasks ? this.tasks.toApiJson() : this.tasks;\n }\n if (typeof this.nextCursor !== 'undefined') {\n toReturn['nextCursor'] = this.nextCursor;\n }\n if (typeof this.hasMore !== 'undefined') {\n toReturn['hasMore'] = this.hasMore;\n }\n if (typeof this.hits !== 'undefined') {\n toReturn['hits'] = this.hits;\n }\n return toReturn;\n }\n}\nclass SetDescriptionRequest {\n static fromProto(proto) {\n let m = new SetDescriptionRequest();\n m = Object.assign(m, proto);\n if (proto.version) {\n m.version = parseInt(proto.version, 10);\n }\n if (proto.identity) {\n m.identity = TaskIdentity.fromProto(proto.identity);\n }\n return m;\n }\n constructor(kwargs) {\n if (!kwargs) {\n return;\n }\n Object.assign(this, kwargs);\n }\n toApiJson() {\n const toReturn = {};\n if (typeof this.version !== 'undefined') {\n toReturn['version'] = this.version;\n }\n if (typeof this.identity !== 'undefined' && this.identity !== null) {\n toReturn['identity'] = 'toApiJson' in this.identity ? this.identity.toApiJson() : this.identity;\n }\n if (typeof this.description !== 'undefined') {\n toReturn['description'] = this.description;\n }\n if (typeof this.callerSubjectId !== 'undefined') {\n toReturn['callerSubjectId'] = this.callerSubjectId;\n }\n return toReturn;\n }\n}\nclass SetDueDateRequest {\n static fromProto(proto) {\n let m = new SetDueDateRequest();\n m = Object.assign(m, proto);\n if (proto.version) {\n m.version = parseInt(proto.version, 10);\n }\n if (proto.identity) {\n m.identity = TaskIdentity.fromProto(proto.identity);\n }\n if (proto.dueDate) {\n m.dueDate = new Date(proto.dueDate);\n }\n return m;\n }\n constructor(kwargs) {\n if (!kwargs) {\n return;\n }\n Object.assign(this, kwargs);\n }\n toApiJson() {\n const toReturn = {};\n if (typeof this.version !== 'undefined') {\n toReturn['version'] = this.version;\n }\n if (typeof this.identity !== 'undefined' && this.identity !== null) {\n toReturn['identity'] = 'toApiJson' in this.identity ? this.identity.toApiJson() : this.identity;\n }\n if (typeof this.dueDate !== 'undefined' && this.dueDate !== null) {\n toReturn['dueDate'] = 'toApiJson' in this.dueDate ? this.dueDate.toApiJson() : this.dueDate;\n }\n if (typeof this.callerSubjectId !== 'undefined') {\n toReturn['callerSubjectId'] = this.callerSubjectId;\n }\n return toReturn;\n }\n}\nclass SetKeyValue {\n static fromProto(proto) {\n let m = new SetKeyValue();\n m = Object.assign(m, proto);\n if (proto.version) {\n m.version = parseInt(proto.version, 10);\n }\n if (proto.identity) {\n m.identity = TaskIdentity.fromProto(proto.identity);\n }\n if (proto.keyValueData) {\n m.keyValueData = KeyValues.fromProto(proto.keyValueData);\n }\n if (proto.field) {\n m.field = enumStringToValue$1(KeyValueField, proto.field);\n }\n return m;\n }\n constructor(kwargs) {\n if (!kwargs) {\n return;\n }\n Object.assign(this, kwargs);\n }\n toApiJson() {\n const toReturn = {};\n if (typeof this.version !== 'undefined') {\n toReturn['version'] = this.version;\n }\n if (typeof this.identity !== 'undefined' && this.identity !== null) {\n toReturn['identity'] = 'toApiJson' in this.identity ? this.identity.toApiJson() : this.identity;\n }\n if (typeof this.keyValueData !== 'undefined' && this.keyValueData !== null) {\n toReturn['keyValueData'] = 'toApiJson' in this.keyValueData ? this.keyValueData.toApiJson() : this.keyValueData;\n }\n if (typeof this.field !== 'undefined') {\n toReturn['field'] = this.field;\n }\n return toReturn;\n }\n}\nclass SetKeyValuesRequest {\n static fromProto(proto) {\n let m = new SetKeyValuesRequest();\n m = Object.assign(m, proto);\n if (proto.version) {\n m.version = parseInt(proto.version, 10);\n }\n if (proto.identity) {\n m.identity = TaskIdentity.fromProto(proto.identity);\n }\n if (proto.keyValueData) {\n m.keyValueData = KeyValues.fromProto(proto.keyValueData);\n }\n return m;\n }\n constructor(kwargs) {\n if (!kwargs) {\n return;\n }\n Object.assign(this, kwargs);\n }\n toApiJson() {\n const toReturn = {};\n if (typeof this.version !== 'undefined') {\n toReturn['version'] = this.version;\n }\n if (typeof this.identity !== 'undefined' && this.identity !== null) {\n toReturn['identity'] = 'toApiJson' in this.identity ? this.identity.toApiJson() : this.identity;\n }\n if (typeof this.keyValueData !== 'undefined' && this.keyValueData !== null) {\n toReturn['keyValueData'] = 'toApiJson' in this.keyValueData ? this.keyValueData.toApiJson() : this.keyValueData;\n }\n if (typeof this.callerSubjectId !== 'undefined') {\n toReturn['callerSubjectId'] = this.callerSubjectId;\n }\n return toReturn;\n }\n}\nclass SetMultiDueDateRequest {\n static fromProto(proto) {\n let m = new SetMultiDueDateRequest();\n m = Object.assign(m, proto);\n if (proto.dueDateRequests) {\n m.dueDateRequests = proto.dueDateRequests.map(SetDueDateRequest.fromProto);\n }\n return m;\n }\n constructor(kwargs) {\n if (!kwargs) {\n return;\n }\n Object.assign(this, kwargs);\n }\n toApiJson() {\n const toReturn = {};\n if (typeof this.dueDateRequests !== 'undefined' && this.dueDateRequests !== null) {\n toReturn['dueDateRequests'] = 'toApiJson' in this.dueDateRequests ? this.dueDateRequests.toApiJson() : this.dueDateRequests;\n }\n return toReturn;\n }\n}\nclass SetMultiNotesRequest {\n static fromProto(proto) {\n let m = new SetMultiNotesRequest();\n m = Object.assign(m, proto);\n if (proto.notesRequests) {\n m.notesRequests = proto.notesRequests.map(SetNotesRequest.fromProto);\n }\n return m;\n }\n constructor(kwargs) {\n if (!kwargs) {\n return;\n }\n Object.assign(this, kwargs);\n }\n toApiJson() {\n const toReturn = {};\n if (typeof this.notesRequests !== 'undefined' && this.notesRequests !== null) {\n toReturn['notesRequests'] = 'toApiJson' in this.notesRequests ? this.notesRequests.toApiJson() : this.notesRequests;\n }\n return toReturn;\n }\n}\nclass SetMultiStatusRequest {\n static fromProto(proto) {\n let m = new SetMultiStatusRequest();\n m = Object.assign(m, proto);\n if (proto.statusRequests) {\n m.statusRequests = proto.statusRequests.map(SetStatusRequest.fromProto);\n }\n return m;\n }\n constructor(kwargs) {\n if (!kwargs) {\n return;\n }\n Object.assign(this, kwargs);\n }\n toApiJson() {\n const toReturn = {};\n if (typeof this.statusRequests !== 'undefined' && this.statusRequests !== null) {\n toReturn['statusRequests'] = 'toApiJson' in this.statusRequests ? this.statusRequests.toApiJson() : this.statusRequests;\n }\n return toReturn;\n }\n}\nclass SetNotesRequest {\n static fromProto(proto) {\n let m = new SetNotesRequest();\n m = Object.assign(m, proto);\n if (proto.version) {\n m.version = parseInt(proto.version, 10);\n }\n if (proto.identity) {\n m.identity = TaskIdentity.fromProto(proto.identity);\n }\n return m;\n }\n constructor(kwargs) {\n if (!kwargs) {\n return;\n }\n Object.assign(this, kwargs);\n }\n toApiJson() {\n const toReturn = {};\n if (typeof this.version !== 'undefined') {\n toReturn['version'] = this.version;\n }\n if (typeof this.identity !== 'undefined' && this.identity !== null) {\n toReturn['identity'] = 'toApiJson' in this.identity ? this.identity.toApiJson() : this.identity;\n }\n if (typeof this.notes !== 'undefined') {\n toReturn['notes'] = this.notes;\n }\n if (typeof this.callerSubjectId !== 'undefined') {\n toReturn['callerSubjectId'] = this.callerSubjectId;\n }\n return toReturn;\n }\n}\nclass SetStatusRequest {\n static fromProto(proto) {\n let m = new SetStatusRequest();\n m = Object.assign(m, proto);\n if (proto.version) {\n m.version = parseInt(proto.version, 10);\n }\n if (proto.identity) {\n m.identity = TaskIdentity.fromProto(proto.identity);\n }\n return m;\n }\n constructor(kwargs) {\n if (!kwargs) {\n return;\n }\n Object.assign(this, kwargs);\n }\n toApiJson() {\n const toReturn = {};\n if (typeof this.version !== 'undefined') {\n toReturn['version'] = this.version;\n }\n if (typeof this.identity !== 'undefined' && this.identity !== null) {\n toReturn['identity'] = 'toApiJson' in this.identity ? this.identity.toApiJson() : this.identity;\n }\n if (typeof this.status !== 'undefined') {\n toReturn['status'] = this.status;\n }\n if (typeof this.callerSubjectId !== 'undefined') {\n toReturn['callerSubjectId'] = this.callerSubjectId;\n }\n return toReturn;\n }\n}\nclass SetTitleRequest {\n static fromProto(proto) {\n let m = new SetTitleRequest();\n m = Object.assign(m, proto);\n if (proto.version) {\n m.version = parseInt(proto.version, 10);\n }\n if (proto.identity) {\n m.identity = TaskIdentity.fromProto(proto.identity);\n }\n return m;\n }\n constructor(kwargs) {\n if (!kwargs) {\n return;\n }\n Object.assign(this, kwargs);\n }\n toApiJson() {\n const toReturn = {};\n if (typeof this.version !== 'undefined') {\n toReturn['version'] = this.version;\n }\n if (typeof this.identity !== 'undefined' && this.identity !== null) {\n toReturn['identity'] = 'toApiJson' in this.identity ? this.identity.toApiJson() : this.identity;\n }\n if (typeof this.title !== 'undefined') {\n toReturn['title'] = this.title;\n }\n if (typeof this.callerSubjectId !== 'undefined') {\n toReturn['callerSubjectId'] = this.callerSubjectId;\n }\n return toReturn;\n }\n}\nclass SetTypeRequest {\n static fromProto(proto) {\n let m = new SetTypeRequest();\n m = Object.assign(m, proto);\n if (proto.version) {\n m.version = parseInt(proto.version, 10);\n }\n if (proto.identity) {\n m.identity = TaskIdentity.fromProto(proto.identity);\n }\n return m;\n }\n constructor(kwargs) {\n if (!kwargs) {\n return;\n }\n Object.assign(this, kwargs);\n }\n toApiJson() {\n const toReturn = {};\n if (typeof this.version !== 'undefined') {\n toReturn['version'] = this.version;\n }\n if (typeof this.identity !== 'undefined' && this.identity !== null) {\n toReturn['identity'] = 'toApiJson' in this.identity ? this.identity.toApiJson() : this.identity;\n }\n if (typeof this.taskType !== 'undefined') {\n toReturn['taskType'] = this.taskType;\n }\n if (typeof this.callerSubjectId !== 'undefined') {\n toReturn['callerSubjectId'] = this.callerSubjectId;\n }\n return toReturn;\n }\n}\nclass Sort {\n static fromProto(proto) {\n let m = new Sort();\n m = Object.assign(m, proto);\n if (proto.direction) {\n m.direction = enumStringToValue$1(SortDirection, proto.direction);\n }\n return m;\n }\n constructor(kwargs) {\n if (!kwargs) {\n return;\n }\n Object.assign(this, kwargs);\n }\n toApiJson() {\n const toReturn = {};\n if (typeof this.field !== 'undefined') {\n toReturn['field'] = this.field;\n }\n if (typeof this.direction !== 'undefined') {\n toReturn['direction'] = this.direction;\n }\n return toReturn;\n }\n}\nclass TagGroup {\n static fromProto(proto) {\n let m = new TagGroup();\n m = Object.assign(m, proto);\n return m;\n }\n constructor(kwargs) {\n if (!kwargs) {\n return;\n }\n Object.assign(this, kwargs);\n }\n toApiJson() {\n const toReturn = {};\n if (typeof this.tags !== 'undefined') {\n toReturn['tags'] = this.tags;\n }\n return toReturn;\n }\n}\nclass ValueMetricResponse {\n static fromProto(proto) {\n let m = new ValueMetricResponse();\n m = Object.assign(m, proto);\n return m;\n }\n constructor(kwargs) {\n if (!kwargs) {\n return;\n }\n Object.assign(this, kwargs);\n }\n toApiJson() {\n const toReturn = {};\n if (typeof this.key !== 'undefined') {\n toReturn['key'] = this.key;\n }\n if (typeof this.value !== 'undefined') {\n toReturn['value'] = this.value;\n }\n return toReturn;\n }\n}\nfunction enumStringToValue(enumRef, value) {\n if (typeof value === 'number') {\n return value;\n }\n return enumRef[value];\n}\nclass Access {\n static fromProto(proto) {\n let m = new Access();\n m = Object.assign(m, proto);\n return m;\n }\n constructor(kwargs) {\n if (!kwargs) {\n return;\n }\n Object.assign(this, kwargs);\n }\n toApiJson() {\n const toReturn = {};\n if (typeof this.scope !== 'undefined') {\n toReturn['scope'] = this.scope;\n }\n if (typeof this.public !== 'undefined') {\n toReturn['public'] = this.public;\n }\n return toReturn;\n }\n}\n\n// *********************************\n\nconst environment$1 = (window ? window['environment'] : 'prod') ?? 'prod';\nconst hostMap = {\n 'local': 'task-demo.apigateway.co',\n 'test': '',\n 'demo': 'task-api-demo.apigateway.co',\n 'prod': 'task-api-prod.apigateway.co',\n 'production': 'task-api-prod.apigateway.co'\n};\nlet HostService = /*#__PURE__*/(() => {\n class HostService {\n get host() {\n return hostMap[environment$1.toLowerCase()];\n }\n get hostWithScheme() {\n return 'https://' + this.host;\n }\n }\n HostService.ɵfac = function HostService_Factory(t) {\n return new (t || HostService)();\n };\n HostService.ɵprov = /* @__PURE__ */i0.ɵɵdefineInjectable({\n token: HostService,\n factory: HostService.ɵfac,\n providedIn: 'root'\n });\n return HostService;\n})();\n(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && void 0;\n})();\n\n// *********************************\nlet TaskCommandApiService = /*#__PURE__*/(() => {\n class TaskCommandApiService {\n constructor(http, hostService) {\n this.http = http;\n this.hostService = hostService;\n this._host = this.hostService.hostWithScheme;\n }\n apiOptions() {\n return {\n headers: new HttpHeaders({\n 'Content-Type': 'application/json'\n }),\n withCredentials: true\n };\n }\n generate(r) {\n const request = r.toApiJson ? r : new GenerateTaskRequest(r);\n return this.http.post(this._host + \"/task.v1.TaskCommand/Generate\", request.toApiJson(), this.apiOptions()).pipe(map(resp => CommandResponse.fromProto(resp)));\n }\n addSubtask(r) {\n const request = r.toApiJson ? r : new AddSubtaskRequest(r);\n return this.http.post(this._host + \"/task.v1.TaskCommand/AddSubtask\", request.toApiJson(), this.apiOptions()).pipe(map(resp => CommandResponse.fromProto(resp)));\n }\n addMultipleSubtasks(r) {\n const request = r.toApiJson ? r : new AddMultipleSubtasksRequest(r);\n return this.http.post(this._host + \"/task.v1.TaskCommand/AddMultipleSubtasks\", request.toApiJson(), this.apiOptions()).pipe(map(resp => CommandResponse.fromProto(resp)));\n }\n setTitle(r) {\n const request = r.toApiJson ? r : new SetTitleRequest(r);\n return this.http.post(this._host + \"/task.v1.TaskCommand/SetTitle\", request.toApiJson(), this.apiOptions()).pipe(map(resp => CommandResponse.fromProto(resp)));\n }\n setStatus(r) {\n const request = r.toApiJson ? r : new SetStatusRequest(r);\n return this.http.post(this._host + \"/task.v1.TaskCommand/SetStatus\", request.toApiJson(), this.apiOptions()).pipe(map(resp => CommandResponse.fromProto(resp)));\n }\n setMultiStatus(r) {\n const request = r.toApiJson ? r : new SetMultiStatusRequest(r);\n return this.http.post(this._host + \"/task.v1.TaskCommand/SetMultiStatus\", request.toApiJson(), this.apiOptions()).pipe(map(resp => MultiCommandResponses.fromProto(resp)));\n }\n setDueDate(r) {\n const request = r.toApiJson ? r : new SetDueDateRequest(r);\n return this.http.post(this._host + \"/task.v1.TaskCommand/SetDueDate\", request.toApiJson(), this.apiOptions()).pipe(map(resp => CommandResponse.fromProto(resp)));\n }\n setMultiDueDate(r) {\n const request = r.toApiJson ? r : new SetMultiDueDateRequest(r);\n return this.http.post(this._host + \"/task.v1.TaskCommand/SetMultiDueDate\", request.toApiJson(), this.apiOptions()).pipe(map(resp => MultiCommandResponses.fromProto(resp)));\n }\n addAssignee(r) {\n const request = r.toApiJson ? r : new AddAssigneeRequest(r);\n return this.http.post(this._host + \"/task.v1.TaskCommand/AddAssignee\", request.toApiJson(), this.apiOptions()).pipe(map(resp => CommandResponse.fromProto(resp)));\n }\n addMultiAssignee(r) {\n const request = r.toApiJson ? r : new AddMultiAssigneeRequest(r);\n return this.http.post(this._host + \"/task.v1.TaskCommand/AddMultiAssignee\", request.toApiJson(), this.apiOptions()).pipe(map(resp => MultiCommandResponses.fromProto(resp)));\n }\n removeAssignee(r) {\n const request = r.toApiJson ? r : new RemoveAssigneeRequest(r);\n return this.http.post(this._host + \"/task.v1.TaskCommand/RemoveAssignee\", request.toApiJson(), this.apiOptions()).pipe(map(resp => CommandResponse.fromProto(resp)));\n }\n removeMultiAssignee(r) {\n const request = r.toApiJson ? r : new RemoveMultiAssigneeRequest(r);\n return this.http.post(this._host + \"/task.v1.TaskCommand/RemoveMultiAssignee\", request.toApiJson(), this.apiOptions()).pipe(map(resp => MultiCommandResponses.fromProto(resp)));\n }\n addTags(r) {\n const request = r.toApiJson ? r : new AddTagsRequest(r);\n return this.http.post(this._host + \"/task.v1.TaskCommand/AddTags\", request.toApiJson(), this.apiOptions()).pipe(map(resp => CommandResponse.fromProto(resp)));\n }\n removeTags(r) {\n const request = r.toApiJson ? r : new RemoveTagsRequest(r);\n return this.http.post(this._host + \"/task.v1.TaskCommand/RemoveTags\", request.toApiJson(), this.apiOptions()).pipe(map(resp => CommandResponse.fromProto(resp)));\n }\n addCustomTags(r) {\n const request = r.toApiJson ? r : new AddCustomTagsRequest(r);\n return this.http.post(this._host + \"/task.v1.TaskCommand/AddCustomTags\", request.toApiJson(), this.apiOptions()).pipe(map(resp => CommandResponse.fromProto(resp)));\n }\n removeCustomTags(r) {\n const request = r.toApiJson ? r : new RemoveCustomTagsRequest(r);\n return this.http.post(this._host + \"/task.v1.TaskCommand/RemoveCustomTags\", request.toApiJson(), this.apiOptions()).pipe(map(resp => CommandResponse.fromProto(resp)));\n }\n setNotes(r) {\n const request = r.toApiJson ? r : new SetNotesRequest(r);\n return this.http.post(this._host + \"/task.v1.TaskCommand/SetNotes\", request.toApiJson(), this.apiOptions()).pipe(map(resp => CommandResponse.fromProto(resp)));\n }\n setMultiNotes(r) {\n const request = r.toApiJson ? r : new SetMultiNotesRequest(r);\n return this.http.post(this._host + \"/task.v1.TaskCommand/SetMultiNotes\", request.toApiJson(), this.apiOptions()).pipe(map(resp => MultiCommandResponses.fromProto(resp)));\n }\n setDescription(r) {\n const request = r.toApiJson ? r : new SetDescriptionRequest(r);\n return this.http.post(this._host + \"/task.v1.TaskCommand/SetDescription\", request.toApiJson(), this.apiOptions()).pipe(map(resp => CommandResponse.fromProto(resp)));\n }\n addHistory(r) {\n const request = r.toApiJson ? r : new AddHistoryRequest(r);\n return this.http.post(this._host + \"/task.v1.TaskCommand/AddHistory\", request.toApiJson(), this.apiOptions()).pipe(map(resp => CommandResponse.fromProto(resp)));\n }\n deleteTask(r) {\n const request = r.toApiJson ? r : new DeleteTaskRequest(r);\n return this.http.post(this._host + \"/task.v1.TaskCommand/DeleteTask\", request.toApiJson(), this.apiOptions()).pipe(map(resp => CommandResponse.fromProto(resp)));\n }\n deleteMultiTask(r) {\n const request = r.toApiJson ? r : new DeleteMultiTaskRequest(r);\n return this.http.post(this._host + \"/task.v1.TaskCommand/DeleteMultiTask\", request.toApiJson(), this.apiOptions()).pipe(map(resp => MultiCommandResponses.fromProto(resp)));\n }\n restoreTask(r) {\n const request = r.toApiJson ? r : new RestoreTaskRequest(r);\n return this.http.post(this._host + \"/task.v1.TaskCommand/RestoreTask\", request.toApiJson(), this.apiOptions()).pipe(map(resp => CommandResponse.fromProto(resp)));\n }\n restoreMultiTask(r) {\n const request = r.toApiJson ? r : new RestoreMultiTaskRequest(r);\n return this.http.post(this._host + \"/task.v1.TaskCommand/RestoreMultiTask\", request.toApiJson(), this.apiOptions()).pipe(map(resp => MultiCommandResponses.fromProto(resp)));\n }\n setData(r) {\n const request = r.toApiJson ? r : new SetKeyValuesRequest(r);\n return this.http.post(this._host + \"/task.v1.TaskCommand/SetData\", request.toApiJson(), this.apiOptions()).pipe(map(resp => CommandResponse.fromProto(resp)));\n }\n setMetadata(r) {\n const request = r.toApiJson ? r : new SetKeyValuesRequest(r);\n return this.http.post(this._host + \"/task.v1.TaskCommand/SetMetadata\", request.toApiJson(), this.apiOptions()).pipe(map(resp => CommandResponse.fromProto(resp)));\n }\n addConversation(r) {\n const request = r.toApiJson ? r : new AddConversationRequest(r);\n return this.http.post(this._host + \"/task.v1.TaskCommand/AddConversation\", request.toApiJson(), this.apiOptions()).pipe(map(resp => CommandResponse.fromProto(resp)));\n }\n reorderSubtask(r) {\n const request = r.toApiJson ? r : new ReorderSubtaskRequest(r);\n return this.http.post(this._host + \"/task.v1.TaskCommand/ReorderSubtask\", request.toApiJson(), this.apiOptions()).pipe(map(resp => CommandResponse.fromProto(resp)));\n }\n addAttachment(r) {\n const request = r.toApiJson ? r : new AddAttachmentRequest(r);\n return this.http.post(this._host + \"/task.v1.TaskCommand/AddAttachment\", request.toApiJson(), this.apiOptions()).pipe(map(resp => CommandResponse.fromProto(resp)));\n }\n removeAttachment(r) {\n const request = r.toApiJson ? r : new RemoveAttachmentRequest(r);\n return this.http.post(this._host + \"/task.v1.TaskCommand/RemoveAttachment\", request.toApiJson(), this.apiOptions()).pipe(map(resp => CommandResponse.fromProto(resp)));\n }\n setType(r) {\n const request = r.toApiJson ? r : new SetTypeRequest(r);\n return this.http.post(this._host + \"/task.v1.TaskCommand/SetType\", request.toApiJson(), this.apiOptions()).pipe(map(resp => CommandResponse.fromProto(resp)));\n }\n multiCommand(r) {\n const request = r.toApiJson ? r : new MultiCommandRequest(r);\n return this.http.post(this._host + \"/task.v1.TaskCommand/MultiCommand\", request.toApiJson(), {\n ...this.apiOptions(),\n observe: 'response'\n });\n }\n }\n TaskCommandApiService.ɵfac = function TaskCommandApiService_Factory(t) {\n return new (t || TaskCommandApiService)(i0.ɵɵinject(i1.HttpClient), i0.ɵɵinject(HostService));\n };\n TaskCommandApiService.ɵprov = /* @__PURE__ */i0.ɵɵdefineInjectable({\n token: TaskCommandApiService,\n factory: TaskCommandApiService.ɵfac,\n providedIn: 'root'\n });\n return TaskCommandApiService;\n})();\n(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && void 0;\n})();\n\n// *********************************\nlet TaskQueryApiService = /*#__PURE__*/(() => {\n class TaskQueryApiService {\n constructor(http, hostService) {\n this.http = http;\n this.hostService = hostService;\n this._host = this.hostService.hostWithScheme;\n }\n apiOptions() {\n return {\n headers: new HttpHeaders({\n 'Content-Type': 'application/json'\n }),\n withCredentials: true\n };\n }\n get(r) {\n const request = r.toApiJson ? r : new GetTaskRequest(r);\n return this.http.post(this._host + \"/task.v1.TaskQuery/Get\", request.toApiJson(), this.apiOptions()).pipe(map(resp => GetTaskResponse.fromProto(resp)));\n }\n getMulti(r) {\n const request = r.toApiJson ? r : new GetTasksRequest(r);\n return this.http.post(this._host + \"/task.v1.TaskQuery/GetMulti\", request.toApiJson(), this.apiOptions()).pipe(map(resp => GetTasksResponse.fromProto(resp)));\n }\n getTree(r) {\n const request = r.toApiJson ? r : new GetTreeRequest(r);\n return this.http.post(this._host + \"/task.v1.TaskQuery/GetTree\", request.toApiJson(), this.apiOptions()).pipe(map(resp => GetTreeResponse.fromProto(resp)));\n }\n search(r) {\n const request = r.toApiJson ? r : new SearchTaskRequest(r);\n return this.http.post(this._host + \"/task.v1.TaskQuery/Search\", request.toApiJson(), this.apiOptions()).pipe(map(resp => SearchTaskResponse.fromProto(resp)));\n }\n multiSearch(r) {\n const request = r.toApiJson ? r : new MultiSearchTaskRequest(r);\n return this.http.post(this._host + \"/task.v1.TaskQuery/MultiSearch\", request.toApiJson(), this.apiOptions()).pipe(map(resp => SearchTaskResponse.fromProto(resp)));\n }\n getMetrics(r) {\n const request = r.toApiJson ? r : new GetMetricsRequest(r);\n return this.http.post(this._host + \"/task.v1.TaskQuery/GetMetrics\", request.toApiJson(), this.apiOptions()).pipe(map(resp => GetMetricsResponse.fromProto(resp)));\n }\n }\n TaskQueryApiService.ɵfac = function TaskQueryApiService_Factory(t) {\n return new (t || TaskQueryApiService)(i0.ɵɵinject(i1.HttpClient), i0.ɵɵinject(HostService));\n };\n TaskQueryApiService.ɵprov = /* @__PURE__ */i0.ɵɵdefineInjectable({\n token: TaskQueryApiService,\n factory: TaskQueryApiService.ɵfac,\n providedIn: 'root'\n });\n return TaskQueryApiService;\n})();\n(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && void 0;\n})();\n\n// *********************************\n\nvar Persona = /*#__PURE__*/function (Persona) {\n Persona[\"salesPerson\"] = \"sales_person\";\n Persona[\"digitalAgent\"] = \"digital_agent\";\n return Persona;\n}(Persona || {});\nvar GoType = /*#__PURE__*/function (GoType) {\n GoType[\"STRING\"] = \"string\";\n GoType[\"INT\"] = \"int64\";\n GoType[\"FLOAT\"] = \"float64\";\n GoType[\"BOOL\"] = \"bool\";\n GoType[\"TIME\"] = \"time\";\n return GoType;\n}(GoType || {});\n/**\n * Enum of the standard Task statuses. No longer enforced as the only allowable statuses\n */\nvar Status = /*#__PURE__*/function (Status) {\n Status[\"Open\"] = \"Open\";\n Status[\"InProgress\"] = \"In Progress\";\n Status[\"WaitingOnCustomer\"] = \"Waiting on Customer\";\n Status[\"Completed\"] = \"Completed\";\n return Status;\n}(Status || {});\nvar KeyValueTypes = /*#__PURE__*/function (KeyValueTypes) {\n KeyValueTypes[\"INT64\"] = \"int64\";\n KeyValueTypes[\"DOUBLE\"] = \"double\";\n KeyValueTypes[\"BOOL\"] = \"bool\";\n KeyValueTypes[\"STRING\"] = \"string\";\n KeyValueTypes[\"TIME\"] = \"time\";\n return KeyValueTypes;\n}(KeyValueTypes || {});\nconst TASK_DELIM = '/';\nfunction buildNamespace(keyValuePairs) {\n const pairs = new Array();\n Object.keys(keyValuePairs).forEach(key => {\n const value = keyValuePairs[key];\n if (value.includes(TASK_DELIM) || key.includes(TASK_DELIM)) {\n throw new Error('keys/values cannot contain slashes');\n }\n if (typeof value !== 'string') {\n throw new TypeError('values must be strings');\n }\n pairs.push(key + TASK_DELIM + value);\n });\n return pairs.join(TASK_DELIM);\n}\nfunction buildParentPath(taskIds) {\n return taskIds.reduce((path, value) => {\n if (value.includes(TASK_DELIM)) {\n throw new Error('values cannot contain slashes');\n }\n return path + value + TASK_DELIM;\n }, TASK_DELIM);\n}\nfunction newGuid() {\n return uuid.v4().replace(/-/g, '');\n}\nlet TaskSdkService = /*#__PURE__*/(() => {\n class TaskSdkService {\n static buildAccountGroupNamespace(partnerId, accountGroupId) {\n return buildNamespace({\n partner: partnerId,\n 'account-group': accountGroupId\n });\n }\n static buildPartnerNamespace(partnerId) {\n return buildNamespace({\n partner: partnerId\n });\n }\n static generateTaskId() {\n return 'TK-' + newGuid();\n }\n constructor(commandApi, queryApi) {\n this.commandApi = commandApi;\n this.queryApi = queryApi;\n }\n generate(args) {\n const access = new KeyValuesKeyValue({\n key: 'access',\n values: [{\n stringValue: args.access,\n type: GoType.STRING\n }]\n });\n let metadata = {\n keyValues: [access]\n };\n if (args.metadata && args.metadata.keyValues) {\n args.metadata.keyValues.push(access);\n metadata = {\n keyValues: args.metadata.keyValues\n };\n }\n args.metadata = new KeyValues(metadata);\n return this.commandApi.generate(new GenerateTaskRequest(args)).pipe(map(res => res.version));\n }\n addSubTask(args) {\n const metadata = args.metadata ? DomainKeyValue.fromKeyValue(args.metadata) : new DomainKeyValue();\n metadata.set('access', [args.access], KeyValueTypes.STRING);\n args.metadata = metadata.toKeyValue();\n return this.commandApi.addSubtask(new AddSubtaskRequest(args)).pipe(map(res => res.version));\n }\n addMultipleSubtasks(addMultipleSubtaskRequests) {\n const requests = addMultipleSubtaskRequests?.subtaskRequests?.map(value => {\n const metadata = value.metadata ? DomainKeyValue.fromKeyValue(value.metadata) : new DomainKeyValue();\n metadata.set('access', [value.access], KeyValueTypes.STRING);\n value.metadata = metadata.toKeyValue();\n return new AddSubtaskRequest(value).toApiJson();\n });\n return this.commandApi.addMultipleSubtasks(new AddMultipleSubtasksRequest({\n subtaskRequests: requests\n })).pipe(map(res => res.version ?? 0));\n }\n /**\n * Gets the task matching the given identity\n * Since data is only soft deleted Getting a deleted Task will return the task, it is up to the client to ignore them\n */\n getTask(namespace, parentPath, taskId, returnDeleted) {\n const identity = new TaskIdentity({\n namespace,\n parentPath,\n taskId\n });\n const request = new GetTaskRequest({\n identity: identity,\n returnDeleted: returnDeleted\n });\n return this.queryApi.get(request).pipe(map(res => res.task));\n }\n /**\n * Gets a task, will include all the subtasks on the object as well\n * Since data is only soft deleted Getting a deleted Task will return the task, it is up to the client to ignore them\n */\n getTree(namespace, parentPath, taskId) {\n const identity = new TaskIdentity({\n namespace,\n parentPath,\n taskId\n });\n const request = new GetTreeRequest({\n identity\n });\n return this.queryApi.getTree(request).pipe(map(res => res.tasks));\n }\n setTitle(namespace, parentPath, taskId, newTitle, newVersion) {\n const identity = new TaskIdentity({\n namespace,\n parentPath,\n taskId\n });\n const request = new SetTitleRequest({\n identity: identity,\n title: newTitle,\n version: newVersion\n });\n return this.commandApi.setTitle(request).pipe(map(res => res.version));\n }\n setStatus(namespace, parentPath, taskId, newStatus, newVersion) {\n const identity = new TaskIdentity({\n namespace,\n parentPath,\n taskId\n });\n const request = new SetStatusRequest({\n status: newStatus,\n identity: identity,\n version: newVersion\n });\n return this.commandApi.setStatus(request).pipe(map(res => res.version));\n }\n setMultipleStatus(requests) {\n const multiReq = new SetMultiStatusRequest({\n statusRequests: requests\n });\n return this.commandApi.setMultiStatus(multiReq);\n }\n setDueDate(namespace, parentPath, taskId, newDueDate, newVersion) {\n const identity = new TaskIdentity({\n namespace,\n parentPath,\n taskId\n });\n const request = new SetDueDateRequest({\n identity: identity,\n dueDate: newDueDate,\n version: newVersion\n });\n return this.commandApi.setDueDate(request).pipe(map(res => res.version));\n }\n setMultipleDueDates(requests) {\n const multiReq = new SetMultiDueDateRequest({\n dueDateRequests: requests\n });\n return this.commandApi.setMultiDueDate(multiReq);\n }\n setDescription(namespace, parentPath, taskId, newDescription, newVersion) {\n const identity = new TaskIdentity({\n namespace,\n parentPath,\n taskId\n });\n const request = new SetDescriptionRequest({\n identity: identity,\n description: newDescription,\n version: newVersion\n });\n return this.commandApi.setDescription(request).pipe(map(res => res.version));\n }\n addHistory(namespace, parentPath, taskId, message, newVersion) {\n const identity = new TaskIdentity({\n namespace,\n parentPath,\n taskId\n });\n const request = new AddHistoryRequest({\n identity: identity,\n message: message,\n version: newVersion\n });\n return this.commandApi.addHistory(request).pipe(map(res => res.version));\n }\n addAssignee(namespace, parentPath, taskId, assignee, newVersion) {\n const identity = new TaskIdentity({\n namespace,\n parentPath,\n taskId\n });\n const request = new AddAssigneeRequest({\n identity: identity,\n assignee: assignee,\n version: newVersion\n });\n return this.commandApi.addAssignee(request).pipe(map(res => res.version));\n }\n addMultipleAssignees(requests) {\n const add = new AddMultiAssigneeRequest({\n addRequests: requests\n });\n return this.commandApi.addMultiAssignee(add);\n }\n removeAssignee(namespace, parentPath, taskId, assignee, newVersion) {\n const identity = new TaskIdentity({\n namespace,\n parentPath,\n taskId\n });\n const request = new RemoveAssigneeRequest({\n identity: identity,\n assignee: assignee,\n version: newVersion\n });\n return this.commandApi.removeAssignee(request).pipe(map(res => res.version));\n }\n removeMultipleAssignees(requests) {\n const rem = new RemoveMultiAssigneeRequest({\n removeRequests: requests\n });\n return this.commandApi.removeMultiAssignee(rem);\n }\n addTags(namespace, parentPath, taskId, newTags, newVersion) {\n const identity = new TaskIdentity({\n namespace,\n parentPath,\n taskId\n });\n const request = new AddTagsRequest({\n identity: identity,\n tags: newTags,\n version: newVersion\n });\n return this.commandApi.addTags(request).pipe(map(res => res.version));\n }\n removeTags(namespace, parentPath, taskId, removeTags, newVersion) {\n const identity = new TaskIdentity({\n namespace,\n parentPath,\n taskId\n });\n const request = new RemoveTagsRequest({\n identity: identity,\n tags: removeTags,\n version: newVersion\n });\n return this.commandApi.removeTags(request).pipe(map(res => res.version));\n }\n reorderTask(namespace, parentPath, taskId, currentPosition, newPosition, version) {\n const identity = new TaskIdentity({\n namespace,\n parentPath,\n taskId\n });\n const request = new ReorderSubtaskRequest({\n identity: identity,\n currentPosition: currentPosition,\n newPosition: newPosition,\n version: version\n });\n return this.commandApi.reorderSubtask(request).pipe(map(res => res.version));\n }\n deleteTask(namespace, parentPath, taskId, version) {\n const identity = new TaskIdentity({\n namespace,\n parentPath,\n taskId\n });\n const request = new DeleteTaskRequest({\n identity,\n version\n });\n return this.commandApi.deleteTask(request).pipe(map(res => res.version));\n }\n deleteMultipleTasks(requests) {\n const del = new DeleteMultiTaskRequest({\n deleteRequests: requests\n });\n return this.commandApi.deleteMultiTask(del);\n }\n restoreTask(namespace, parentPath, taskId, version) {\n const identity = new TaskIdentity({\n namespace,\n parentPath,\n taskId\n });\n const request = new RestoreTaskRequest({\n identity,\n version\n });\n return this.commandApi.restoreTask(request).pipe(map(res => res.version));\n }\n restoreMultipleTasks(requests) {\n const req = new RestoreMultiTaskRequest({\n restoreRequests: requests\n });\n return this.commandApi.restoreMultiTask(req);\n }\n addAttachment(namespace, parentPath, taskId, attachment) {\n const identity = new TaskIdentity({\n namespace,\n parentPath,\n taskId\n });\n const req = new AddAttachmentRequest({\n identity,\n attachment\n });\n return this.commandApi.addAttachment(req).pipe(map(res => res.version));\n }\n removeAttachment(namespace, parentPath, taskId, attachment) {\n const identity = new TaskIdentity({\n namespace,\n parentPath,\n taskId\n });\n const req = new RemoveAttachmentRequest({\n identity,\n attachment\n });\n return this.commandApi.removeAttachment(req).pipe(map(res => res.version));\n }\n multiCommand(events) {\n const req = new MultiCommandRequest({\n events\n });\n return this.commandApi.multiCommand(req).pipe(mapTo(null));\n }\n search(request) {\n return this.queryApi.search(request);\n }\n multiProductSearch(request) {\n const multiReq = new MultiSearchTaskRequest();\n multiReq.searchRequests = [];\n const requestMetadata = DomainKeyValue.fromKeyValue(request.metadata);\n const productIds = request.productIds;\n productIds.forEach(productId => {\n const searchRequest = new SearchTaskRequest(request);\n searchRequest.metadata = new KeyValues(requestMetadata.set('ProductId', [productId], KeyValueTypes.STRING).toKeyValue());\n multiReq.searchRequests.push(searchRequest);\n });\n return this.queryApi.multiSearch(multiReq);\n }\n multiPartnerSearch(request) {\n const multiReq = new MultiSearchTaskRequest();\n multiReq.searchRequests = [];\n const requestMetadata = DomainKeyValue.fromKeyValue(request.metadata);\n const partnerIds = request.partnerIds;\n partnerIds.forEach(partnerId => {\n const searchRequest = new SearchTaskRequest(request);\n searchRequest.metadata = new KeyValues(requestMetadata.set('partner', [partnerId], KeyValueTypes.STRING).toKeyValue());\n multiReq.searchRequests.push(searchRequest);\n });\n return this.queryApi.multiSearch(multiReq);\n }\n /**\n * Gets the tasks matching the given identities\n * Since data is only soft deleted Getting a deleted Task will return the task, it is up to the client to ignore them\n */\n getMulti(request) {\n return this.queryApi.getMulti(request);\n }\n /**\n * Get a single Task Metric (aggregation query) from the Enum of available aggregations\n * @param metric - the metric you wish to request\n * @param filters - any filters to be applied\n */\n getMetric(metric, filters) {\n const request = {\n requests: [{\n metric,\n filters,\n name: 'metric'\n }]\n };\n return this.queryApi.getMetrics(request).pipe(map(r => {\n return r.responses[0].metricResponses;\n }));\n }\n /**\n * Issue a command to set values on the Data field of a Task, note the setdata command is not a clobber operation,\n * only keys specified on the request will be updated\n */\n setData(request) {\n return this.commandApi.setData(request).pipe(map(res => res.version));\n }\n /**\n * Issue a command to set values on the MetaData field of a Task, note the setMetadata command is not a clobber\n * operation, only keys specified on the request will be updated\n */\n setMetadata(request) {\n return this.commandApi.setMetadata(request).pipe(map(res => res.version));\n }\n setMultipleNotes(requests) {\n const multiReq = new SetMultiNotesRequest({\n notesRequests: requests\n });\n return this.commandApi.setMultiNotes(multiReq);\n }\n addConversation(request) {\n return this.commandApi.addConversation(request);\n }\n setType(request) {\n return this.commandApi.setType(request);\n }\n }\n TaskSdkService.ɵfac = function TaskSdkService_Factory(t) {\n return new (t || TaskSdkService)(i0.ɵɵinject(TaskCommandApiService), i0.ɵɵinject(TaskQueryApiService));\n };\n TaskSdkService.ɵprov = /* @__PURE__ */i0.ɵɵdefineInjectable({\n token: TaskSdkService,\n factory: TaskSdkService.ɵfac,\n providedIn: 'root'\n });\n return TaskSdkService;\n})();\n(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && void 0;\n})();\nlet DomainKeyValue = /*#__PURE__*/(() => {\n class DomainKeyValue {\n /**\n * Convert a KeyValuesInterface to DomainKeyValue\n */\n static fromKeyValue(keyValues) {\n const result = new DomainKeyValue();\n const flattenedKeyValues = [];\n if (!keyValues) {\n keyValues = {\n keyValues: []\n };\n }\n if (!keyValues.keyValues) {\n return result;\n }\n for (const keyValue of keyValues.keyValues) {\n const key = keyValue.key;\n const flattenedKeyValue = {\n key: key,\n stringValues: [],\n boolValues: [],\n int64Values: [],\n doubleValues: [],\n timeValues: []\n };\n if (keyValue.values) {\n for (const value of keyValue.values) {\n if (value.stringValue !== undefined && value.stringValue !== null) {\n flattenedKeyValue.stringValues.push(value.stringValue);\n } else if (value.boolValue !== undefined && value.boolValue !== null) {\n flattenedKeyValue.boolValues.push(value.boolValue);\n } else if (value.int64Value !== undefined && value.int64Value !== null) {\n flattenedKeyValue.int64Values.push(value.int64Value);\n } else if (value.doubleValue !== undefined && value.doubleValue !== null) {\n flattenedKeyValue.doubleValues.push(value.doubleValue);\n } else if (value.timeValue !== undefined && value.timeValue !== null) {\n flattenedKeyValue.timeValues.push(value.timeValue);\n }\n }\n flattenedKeyValues.push(flattenedKeyValue);\n }\n }\n result.keyValues = flattenedKeyValues;\n return result;\n }\n constructor() {\n this.keyValues = [];\n }\n set(key, values, type) {\n if (values !== null && values.length > 0) {\n for (const keyValue of this.keyValues) {\n if (keyValue.key === key) {\n switch (type) {\n case KeyValueTypes.BOOL:\n keyValue.boolValues = values;\n break;\n case KeyValueTypes.DOUBLE:\n keyValue.doubleValues = values;\n break;\n case KeyValueTypes.INT64:\n keyValue.int64Values = values;\n break;\n case KeyValueTypes.STRING:\n keyValue.stringValues = values;\n break;\n case KeyValueTypes.TIME:\n keyValue.timeValues = values;\n break;\n }\n return this;\n }\n }\n const typeValues = {\n key: key,\n boolValues: [],\n stringValues: [],\n int64Values: [],\n doubleValues: [],\n timeValues: []\n };\n switch (type) {\n case KeyValueTypes.BOOL:\n typeValues.boolValues = values;\n break;\n case KeyValueTypes.DOUBLE:\n typeValues.doubleValues = values;\n break;\n case KeyValueTypes.INT64:\n typeValues.int64Values = values;\n break;\n case KeyValueTypes.STRING:\n typeValues.stringValues = values;\n break;\n case KeyValueTypes.TIME:\n typeValues.timeValues = values;\n break;\n }\n this.keyValues.push(typeValues);\n }\n return this;\n }\n get(key, type) {\n for (const keyValue of this.keyValues) {\n if (keyValue.key === key) {\n switch (type) {\n case KeyValueTypes.BOOL:\n return keyValue.boolValues;\n case KeyValueTypes.DOUBLE:\n return keyValue.doubleValues;\n case KeyValueTypes.INT64:\n return keyValue.int64Values;\n case KeyValueTypes.STRING:\n return keyValue.stringValues;\n case KeyValueTypes.TIME:\n return keyValue.timeValues;\n }\n }\n }\n return [];\n }\n /**\n * Convert current instance of DomainKeyValue to KeyValuesInterface that can be used for making SetData requests.\n * If a key has no values that key will not appear on the returned KeyValuesInterface\n */\n toKeyValue() {\n const keyValues = new KeyValues({\n keyValues: []\n });\n for (const flattenedKeyValue of this.keyValues) {\n const keyValue = new KeyValuesKeyValue({\n key: flattenedKeyValue.key,\n values: []\n });\n if (flattenedKeyValue.stringValues) {\n for (const val of flattenedKeyValue.stringValues) {\n keyValue.values.push(new KeyValuesKeyValueValue({\n stringValue: val,\n type: KeyValueTypes.STRING\n }));\n }\n }\n if (flattenedKeyValue.boolValues) {\n for (const val of flattenedKeyValue.boolValues) {\n keyValue.values.push(new KeyValuesKeyValueValue({\n boolValue: val,\n type: KeyValueTypes.BOOL\n }));\n }\n }\n if (flattenedKeyValue.int64Values) {\n for (const val of flattenedKeyValue.int64Values) {\n keyValue.values.push(new KeyValuesKeyValueValue({\n int64Value: val,\n type: KeyValueTypes.INT64\n }));\n }\n }\n if (flattenedKeyValue.doubleValues) {\n for (const val of flattenedKeyValue.doubleValues) {\n keyValue.values.push(new KeyValuesKeyValueValue({\n doubleValue: val,\n type: KeyValueTypes.DOUBLE\n }));\n }\n }\n if (flattenedKeyValue.timeValues) {\n for (const val of flattenedKeyValue.timeValues) {\n keyValue.values.push(new KeyValuesKeyValueValue({\n timeValue: val,\n type: KeyValueTypes.TIME\n }));\n }\n }\n if (keyValue.values.length > 0) {\n keyValues.keyValues.push(keyValue);\n }\n }\n return keyValues;\n }\n }\n DomainKeyValue.ɵfac = function DomainKeyValue_Factory(t) {\n return new (t || DomainKeyValue)();\n };\n DomainKeyValue.ɵprov = /* @__PURE__ */i0.ɵɵdefineInjectable({\n token: DomainKeyValue,\n factory: DomainKeyValue.ɵfac,\n providedIn: 'root'\n });\n return DomainKeyValue;\n})();\n(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && void 0;\n})();\nconst environment = (window ? window['environment'] : 'prod') ?? 'prod';\nconst MAX_FILE_SIZE = 10 * 1024 * 1024; // 10MB\nconst SUPPORTED_DOC_FILE_TYPES = ['application/pdf', 'application/vnd.ms-excel', 'application/vnd.ms-excel.addin.macroEnabled.12', 'application/vnd.ms-excel.sheet.binary.macroEnabled.12', 'application/vnd.ms-excel.sheet.macroEnabled.12', 'application/vnd.ms-excel.template.macroEnabled.12', 'application/vnd.ms-powerpoint', 'application/vnd.ms-powerpoint.addin.macroEnabled.12', 'application/vnd.ms-powerpoint.presentation.macroEnabled.12', 'application/vnd.ms-powerpoint.slide.macroEnabled.12', 'application/vnd.ms-powerpoint.slideshow.macroEnabled.12', 'application/vnd.ms-powerpoint.template.macroEnabled.12', 'application/msword', 'application/vnd.ms-word.document.macroEnabled.12', 'application/vnd.ms-word.template.macroEnabled.12', 'application/vnd.openxmlformats-officedocument.presentationml.presentation', 'application/vnd.openxmlformats-officedocument.presentationml.slide', 'application/vnd.openxmlformats-officedocument.presentationml.slide+xml', 'application/vnd.openxmlformats-officedocument.presentationml.slideshow', 'application/vnd.openxmlformats-officedocument.presentationml.template', 'application/vnd.openxmlformats-officedocument.spreadsheetml.sheet', 'application/vnd.openxmlformats-officedocument.spreadsheetml.template', 'application/vnd.openxmlformats-officedocument.wordprocessingml.document', 'application/vnd.openxmlformats-officedocument.wordprocessingml.template'];\nconst AttachmentServiceDataInterfaceToken = new InjectionToken('task-sdk AttachmentServiceDataInterfaceToken');\nlet TaskAttachmentService = /*#__PURE__*/(() => {\n class TaskAttachmentService {\n constructor(serviceData, http, taskService, hostService) {\n this.serviceData = serviceData;\n this.http = http;\n this.taskService = taskService;\n this.hostService = hostService;\n serviceData.pipe(filter(data => !!data.partnerId), take(1)).subscribe(data => {\n this.partnerId = data.partnerId;\n });\n }\n uploadFile(file) {\n if (!this.isFileValid(file)) {\n return throwError('Invalid file type or size');\n }\n return this.generatePutUrl(file.type, file.name).pipe(switchMap(generatePutResponse => {\n return this.http.post(this.hostService.hostWithScheme + '/task-attachment/upload', file, {\n headers: {\n 'Content-Type': file.type\n },\n observe: 'body',\n responseType: 'blob',\n withCredentials: true,\n params: {\n putUrl: generatePutResponse.generatedUrl,\n partnerId: this.partnerId\n }\n }).pipe(map(() => {\n return {\n name: file.name,\n url: generatePutResponse.shareableUrl\n };\n }));\n }));\n }\n getArmHost() {\n switch (environment) {\n case 'demo':\n return 'https://arm-demo.appspot.com/';\n case 'prod':\n case 'production':\n return 'https://task-manager.biz/';\n default:\n return 'https://arm-demo.appspot.com/';\n }\n }\n isFileValid(file) {\n if (file.size > MAX_FILE_SIZE) {\n return false;\n }\n const group = file.type.split('/')[0];\n return group === 'image' || group === 'video' || SUPPORTED_DOC_FILE_TYPES.includes(file.type);\n }\n getSecretFromURL(url) {\n // URL is formatted as https://[host]/[partnerId]/tasks/attachment/[sharedSecret]/[fileName]\n return url.split('/')[6];\n }\n getFileNameFromURL(url) {\n // URL is formatted as https://[host]/[partnerId]/tasks/attachment/[sharedSecret]/[fileName]\n return url.split('/')[7];\n }\n addAttachment(identity, attachment) {\n return this.taskService.addAttachment(identity.namespace, identity.parentPath, identity.taskId, attachment);\n }\n removeAttachment(identity, attachment) {\n return forkJoin([this.taskService.removeAttachment(identity.namespace, identity.parentPath, identity.taskId, attachment), this.generateDeleteUrl(this.getSecretFromURL(attachment.url)).pipe(switchMap(attachmentAccessResponse => {\n return this.http.delete(attachmentAccessResponse.generatedUrl);\n }))]).pipe(retry(1), map(([version, _]) => {\n return version;\n }));\n }\n generatePutUrl(type, name) {\n const host = this.getArmHost() + 'internalApi/v3/storage/generate/put-url/';\n const body = {\n partnerId: this.partnerId,\n contentType: type,\n fileName: name\n };\n return this.http.post(host, body, {\n withCredentials: true\n }).pipe(map(response => response.data));\n }\n generateGetUrl(secret) {\n return this.generateAccessUrl('get', secret);\n }\n generateDeleteUrl(secret) {\n return this.generateAccessUrl('delete', secret);\n }\n generateAccessUrl(method, secret) {\n const host = this.getArmHost() + 'internalApi/v3/storage/generate/' + method + '-url/';\n const body = {\n partnerId: this.partnerId,\n sharedSecret: secret\n };\n return this.http.post(host, body, {\n withCredentials: true\n }).pipe(map(response => response.data));\n }\n }\n TaskAttachmentService.ɵfac = function TaskAttachmentService_Factory(t) {\n return new (t || TaskAttachmentService)(i0.ɵɵinject(AttachmentServiceDataInterfaceToken), i0.ɵɵinject(i1.HttpClient), i0.ɵɵinject(TaskSdkService), i0.ɵɵinject(HostService));\n };\n TaskAttachmentService.ɵprov = /* @__PURE__ */i0.ɵɵdefineInjectable({\n token: TaskAttachmentService,\n factory: TaskAttachmentService.ɵfac,\n providedIn: 'root'\n });\n return TaskAttachmentService;\n})();\n(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && void 0;\n})();\n\n/**\n * Generated bundle index. Do not edit.\n */\n\nexport { Access, AccessPermissions, AddAssigneeRequest, AddAttachmentRequest, AddConversationRequest, AddCustomTagsRequest, AddHistoryRequest, AddMultiAssigneeRequest, AddMultipleSubtasksRequest, AddSubtaskRequest, AddTagsRequest, Attachment, AttachmentServiceDataInterfaceToken, CommandResponse, Conversation, CountMetricResponse, DeleteMultiTaskRequest, DeleteTaskRequest, DomainKeyValue, GenerateTaskRequest, GetMetricsFilters, GetMetricsRequest, GetMetricsRequestMetricRequest, GetMetricsResponse, GetTaskRequest, GetTaskResponse, GetTasksRequest, GetTasksResponse, GetTreeRequest, GetTreeResponse, GoType, GroupedMetadata, GroupedTags, History, HostService, KeyValueField, KeyValueTypes, KeyValues, KeyValuesKeyValue, KeyValuesKeyValueValue, Metric, MetricResponses, MetricResponsesMetricResponse, MultiCommandRequest, MultiCommandRequestEvent, MultiCommandResponses, MultiCommandResponsesMultiCommandResponse, MultiSearchTaskRequest, Persona, PersonaType, RangeField, RemoveAssigneeRequest, RemoveAttachmentRequest, RemoveCustomTagsRequest, RemoveMultiAssigneeRequest, RemoveTagsRequest, ReorderSubtaskRequest, RestoreMultiTaskRequest, RestoreTaskRequest, SearchTaskRequest, SearchTaskResponse, SetDescriptionRequest, SetDueDateRequest, SetKeyValue, SetKeyValuesRequest, SetMultiDueDateRequest, SetMultiNotesRequest, SetMultiStatusRequest, SetNotesRequest, SetStatusRequest, SetTitleRequest, SetTypeRequest, Sort, SortDirection, Status, TagGroup, Task, TaskAttachmentService, TaskCommandApiService, TaskIdentity, TaskQueryApiService, TaskSdkService, TaskTree, ValueMetricResponse, buildNamespace, buildParentPath, newGuid };\n","import { InjectionToken } from '@angular/core';\nimport { FileUploaderInterface } from '@vendasta/forms';\nimport { Observable } from 'rxjs';\nimport { AttachmentInterface, ProjectTrackerUserDetails } from './shared/interfaces';\n\nexport const ProjectTrackerServiceInterfaceToken: InjectionToken =\n new InjectionToken('ProjectTrackerServiceInterface');\n\nexport interface ProjectTrackerServiceInterface {\n activeUser$: Observable;\n partnerId$: Observable;\n sendFeedback(partnerId: string, accountGroupId: string, taskId: string, feedback: string): Observable;\n uploadFile(partnerId: string, accountGroupId: string, taskId: string, file: AttachmentInterface): Observable;\n removeFile(partnerId: string, accountGroupId: string, taskId: string, file: AttachmentInterface): Observable;\n approveTask(partnerId: string, accountGroupId: string, taskId: string): Observable;\n undoApproveTask(partnerId: string, accountGroupId: string, taskId: string): Observable;\n}\n\nexport const ProjectTrackerFileUploadServiceInterfaceToken: InjectionToken =\n new InjectionToken('ProjectTrackerFileUploadServiceInterface');\n","import { InjectionToken } from '@angular/core';\nimport { TaskIdentityInterface } from '@vendasta/task-manager';\nimport { Observable } from 'rxjs';\n\nexport const AskQuestionServiceInterfaceToken: InjectionToken =\n new InjectionToken('AskQuestionServiceInterface');\n\nexport interface AskQuestionServiceInterface {\n askQuestion(question: string, taskIdentity: TaskIdentityInterface): Observable;\n}\n","import { Component, HostBinding, Input } from '@angular/core';\n\n@Component({\n selector: 'glxy-comment',\n templateUrl: './comment.component.html',\n styleUrls: ['./comment.component.scss'],\n})\nexport class CommentComponent {\n @HostBinding('class') class = 'glxy-comment';\n\n @Input() messageText?: string;\n\n @Input() messageFrom?: string;\n\n @Input() messageMetadata?: string;\n\n @Input() profilePicUrl?: string;\n\n @Input() subtitleText?: string;\n}\n","
\n
\n \n
\n
\n
\n \n \n
\n
\n
\n
\n \n
\n
\n \n
\n
\n
\n","import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\n\nimport { GalaxyAvatarModule } from '@vendasta/galaxy/avatar';\n\nimport { CommentComponent } from './comment.component';\nexport { CommentComponent };\n\nimport { ActionDirective } from './directives/action.directive';\nexport { ActionDirective };\n\nexport const MODULE_IMPORTS = [CommonModule, GalaxyAvatarModule];\n\nexport const MODULE_DECLARATIONS = [CommentComponent, ActionDirective];\n\n@NgModule({\n declarations: MODULE_DECLARATIONS,\n imports: MODULE_IMPORTS,\n exports: MODULE_DECLARATIONS,\n})\nexport class GalaxyCommentModule {}\n","{\n \"PROJECT_TRACKER\": {\n \"ASK_A_QUESTION\": \"Ask a question\",\n \"COMPLETED_ON\": \"Completed on {{date}}\",\n \"IN_PROGRESS\": \"In Progress\",\n \"ESTIMATED_COMPLETION\": \"Estimated completion {{date}}\",\n \"WAITING_ON_CUSTOMER\": \"Waiting on Customer\",\n \"YOU_APPROVED\": \"You approved {{title}}\",\n \"YOU_REQUESTED_REVISIONS\": \"You requested revisions for {{title}} with the message:\",\n \"FULFILLMENT_TEAM_MESSAGE\": \"Your fulfillment team sent a message:\",\n \"GENERIC_MESSAGE\": \"A message was sent:\",\n \"REVISIONS\": \"Revisions\",\n \"FILE_UPLOAD_PROMPT\": \"Attach a file...\",\n \"PROVIDE_FEEDBACK\": \"Provide Feedback\",\n \"APPROVE\": \"Approve task\",\n \"CANCEL\": \"Cancel\",\n \"SEND_FEEDBACK\": \"Send feedback\",\n \"UNDO\": \"Undo\",\n \"REOPEN_TASK\": \"Re-open task\",\n \"FILES\": \"Files\",\n \"FILE_DISCLAIMER\": \"Max file size 10MB. Max upload limit 10 files. Only images, videos, and documents are supported\",\n \"SUCCESS\": {\n \"FILE_UPLOAD\": \"File successfully uploaded\",\n \"FILE_UPLOAD_UNDO\": \"File upload successfully undone\",\n \"FILE_REMOVE\": \"File successfully removed\",\n \"FILE_REMOVE_UNDO\": \"File removal successfully undone\",\n \"APPROVE_TASK\": \"Task approved\",\n \"APPROVE_TASK_UNDO\": \"Task approval successfully undone\",\n \"FEEDBACK_PROVIDED\": \"Feedback provided\"\n },\n \"ERROR\": {\n \"ATTACHMENT\": \"Attachment type is not supported or exceeds the maximum file size. Only images, videos, and pdfs under 10MB are accepted\",\n \"FILE_UPLOAD\": \"There was a problem uploading the file\",\n \"FILE_UPLOAD_UNDO\": \"There was a problem undoing file upload\",\n \"FAIL_TO_ADD\": \"Failed to add attachment\",\n \"FILE_REMOVE\": \"There was a problem removing the file\",\n \"FILE_REMOVE_UNDO\": \"There was a problem undoing file removal\",\n \"APPROVE_TASK\": \"There was an error approving the task\",\n \"APPROVE_TASK_UNDO\": \"There was an error undoing task approval\",\n \"FEEDBACK_PROVIDED\": \"There was a problem publishing the feedback\"\n },\n \"PERCENTAGE_DONE\": \"{{percentage}}% done\",\n \"FULFILLMENT\": \"Fulfillment\",\n \"TASKS_COMPLETED\": \"{{numberTasks}} tasks completed\",\n \"UPLOADED_BY_YOU\": \"Uploaded by you\",\n \"UPLOADED_BY_FULFILLMENT_TEAM\": \"Uploaded by fulfillment team\"\n },\n \"ASK_QUESTION\": {\n \"TITLE\": \"Ask us a question about your ordered service\",\n \"TEXTAREA_TITLE\": \"Compose message\",\n \"SEND_MESSAGE\": \"Send message\",\n \"ASK_QUESTION_SUCCESS\": \"Successfully asked question\",\n \"ASK_QUESTION_ERROR\": \"There was an error asking your question\"\n },\n \"COMMENT\": {\n \"TITLE\": \"Comments\",\n \"NEW_COMMENT\": {\n \"LABEL\": \"Start typing to ask a question\",\n \"ACTION\": \"Submit\",\n \"SUBMIT_SUCCESS\": \"Successfully submitted question\",\n \"SUBMIT_ERROR\": \"There was an error submitting your question\",\n \"MAKE_PUBLIC\": \"Make comment public\"\n },\n \"FROM_STEP\": \"From step\",\n \"FULFILLMENT_AGENT\": \"Fulfillment Agent\",\n \"ERROR_LOADING_COMMENT\": \"Error loading details\",\n \"FROM\": \"from\",\n \"PUBLIC\": \"Public\"\n },\n \"FULFILLMENT_TRACKER\": {\n \"PROGRESS\": \"{{completed}}/{{total}} Tasks completed\",\n \"ASK_A_QUESTION\": \"Ask a question\"\n },\n \"SEND_MESSAGE_DIALOG\": {\n \"CHOOSE_RECIPIENT\": \"Choose recipient\",\n \"MESSAGE\": \"Message\",\n \"LABELS\": {\n \"VENDOR\": \"Vendor\",\n \"PARTNER\": \"Partner\",\n \"ACCOUNT\": \"Account\",\n \"CUSTOMER\": \"Customer\",\n \"INACTIVE\": \"Inactive\",\n \"ACCOUNT_DELETED\": \"Account Deleted\"\n }\n },\n \"COMMON\": {\n \"DUE\": {\n \"OVERDUE\": \"Overdue\",\n \"DUE_SOON\": \"Due Soon\"\n },\n \"STATUS\": {\n \"OPEN\": \"Open\",\n \"IN_PROGRESS\": \"In Progress\",\n \"WAITING_ON_CUSTOMER\": \"Waiting on Customer\",\n \"COMPLETED\": \"Completed\"\n }\n },\n \"PROJECT_LIST_CARD\": {\n \"TITLE\": \"Projects\",\n \"NO_PROJECTS\": \"There are no projects.\",\n \"VIEW_ALL\": \"View all\",\n \"DUE_DATE\": \"Due {{dueDate}}\",\n \"COMPLETED_DATE\": \"Completed {{completedDate}}\",\n \"INBOX_PREFILLED_MESSAGE\": \"Re: {{taskType}} - {{title}} ({{taskId}}) | {{companyName}} ({{accountGroupId}})\"\n }\n}\n","import { PersonaType } from '@vendasta/iam';\n\nexport const MILESTONE_IN_PROGRESS = 'In Progress';\nexport const MILESTONE_COMPLETED = 'Completed';\nexport const MILESTONE_WAITING_ON_CUSTOMER = 'Waiting on Customer';\nexport const MILESTONE_APPROVED_TAG = 'Approved';\nexport const MILESTONE_FEEDBACK_TAG = 'Revisions requested';\nexport const PRODUCT_ID_METADATA_KEY = 'ProductId';\nexport const ORDER_ID_METADATA_KEY = 'OrderId';\nexport const FULFILLMENT_ORDER_ID_METADATA_KEY = 'fulfillment_order_id';\nexport const PROJECT_TYPE = 'Project';\nexport const VISIBLE_TAG = 'BCVisible';\nexport const DEPENDENT_TAG = 'Dependent';\nexport const TASK_DATA_FEEDBACK_KEY = 'EnableSmbFeedback';\nexport const MAX_COMMENT_LENGTH = 2000;\n\n// feature flag list used to fetch all features flags on project tracker\nexport const FEATURE_FLAG_LIST = [];\n\nexport const PROJECTS_ICON_GREEN = '#3C9A63';\nexport const DEFAULT_PAGE_SIZE = 4;\nexport const ACCESS = [PersonaType.digital_agent]; //It wasnt export before\n\n// FulfillingPartnerId metadata key\nexport const FULFILLING_PARTNER_ID = 'FulfillingPartnerId'; //It wasnt export before\n\n// partner metadata key\nexport const PARTNER = 'partner';\n\n// account-group metadata key\nexport const ACCOUNT_GROUP = 'account-group';\n\n// task Types\nexport const GENERIC = 'Generic';\nexport const CLIENT_REVIEW = 'ClientReview';\nexport const SCHEDULE_SOCIAL_POSTS = 'ScheduleSocialPosts';\n\nexport const ONBOARDING = 'Onboarding';\nexport const REVIEW = 'Review';\nexport const SOCIAL_POST = 'SocialPost';\nexport const SOCIALIZE = 'Socialize';\nexport const LISTINGS = 'Visibility';\nexport const MENTIONS = 'Mention';\nexport const MEETING = 'Meeting';\nexport const GOOGLE_QA = 'QuestionAndAnswer';\n\nexport const DEFAULT_TASK_LIST_TYPES = [\n REVIEW,\n SOCIAL_POST,\n SOCIALIZE,\n ONBOARDING,\n GENERIC,\n CLIENT_REVIEW,\n SCHEDULE_SOCIAL_POSTS,\n MEETING,\n GOOGLE_QA,\n LISTINGS,\n MENTIONS,\n];\n\nexport enum TaskStatus {\n OPEN = 'Open',\n WAITING_ON_CUSTOMER = 'Waiting on Customer',\n IN_PROGRESS = 'In Progress',\n COMPLETED = 'Completed',\n}\n\nexport enum TaskType {\n CUSTOM = 'Custom',\n ONBOARDING = 'Onboarding',\n REVIEW = 'Review',\n SOCIAL_POST = 'SocialPost',\n SOCIALIZE = 'Socialize',\n LISTING = 'Visibility',\n MENTION = 'Mention',\n GOOGLE_QA = 'QuestionAndAnswer',\n MEETING = 'Meeting',\n GENERIC = 'Generic',\n PROJECT = 'Project',\n SOCIAL_CALENDAR = 'Social Calendar',\n NON_AGGREGATE = 'NonAggregate', // Special case for the task list icon, not a real task type\n}\n","import { HttpClient } from '@angular/common/http';\nimport { Injectable, WritableSignal, signal } from '@angular/core';\nimport { FileInfo, GalaxyUploaderService, UploadResponse } from '@vendasta/galaxy/uploader';\nimport { TaskAttachmentService } from '@vendasta/task';\nimport { Observable, map } from 'rxjs';\nimport { toObservable } from '@angular/core/rxjs-interop';\n\n@Injectable({ providedIn: 'root' })\nexport class SubtasksUploaderService extends GalaxyUploaderService {\n private _loading: WritableSignal = signal(false);\n public readonly loading$ = toObservable(this._loading);\n\n constructor(\n private httpClient: HttpClient,\n private taskAttachmentService: TaskAttachmentService,\n ) {\n super(httpClient);\n }\n\n buildRequest(fileInfo: FileInfo): Observable {\n return this.taskAttachmentService\n .uploadFile(fileInfo.file)\n .pipe(map((resp) => ({ data: { url: resp.url } }) as UploadResponse));\n }\n}\n","import { Component, EventEmitter, Input, Output, WritableSignal, signal } from '@angular/core';\nimport { Subtask } from '../../../shared/interfaces';\nimport {\n FileInfo,\n FileUploadError,\n GALAXY_UPLOADER_SERVICE_TOKEN,\n GalaxyUploaderModule,\n} from '@vendasta/galaxy/uploader';\nimport { SubtasksUploaderService } from './subtasks-uploader.service';\nimport { TaskAttachmentService, TaskIdentity, TaskSdkService } from '@vendasta/task';\nimport { TaskIdentityInterface } from '@vendasta/task-manager';\nimport { retry, take } from 'rxjs';\nimport { SnackbarService } from '@vendasta/galaxy/snackbar-service';\nimport { GalaxyLoadingSpinnerModule } from '@vendasta/galaxy/loading-spinner';\n\n@Component({\n selector: 'project-tracker-subtasks-uploader',\n standalone: true,\n imports: [GalaxyUploaderModule, GalaxyLoadingSpinnerModule],\n templateUrl: './subtasks-uploader.component.html',\n providers: [{ provide: GALAXY_UPLOADER_SERVICE_TOKEN, useClass: SubtasksUploaderService }],\n})\nexport class SubtasksUploaderComponent {\n @Input() subtask: Subtask;\n @Output() fileUploaded: EventEmitter = new EventEmitter();\n @Output() fileUploadError: EventEmitter = new EventEmitter();\n\n TEN_MB = 10 * 1024 * 1024;\n loading: WritableSignal = signal(false);\n\n constructor(\n private attachmentService: TaskAttachmentService,\n private snackbarService: SnackbarService,\n ) {}\n\n handleFileUploaded(fileInfo: FileInfo): void {\n this.loading.set(true);\n const namespace = TaskSdkService.buildAccountGroupNamespace(this.subtask.partnerId, this.subtask.accountGroupId);\n // subtaskID is in format \"// \"\n const subtaskIdParts: string[] = this.subtask.subtaskId.split('/');\n if (subtaskIdParts?.length !== 3) {\n this.fileUploadError.emit({\n fileInfo,\n error: new Error('Invalid subtaskId'),\n });\n }\n const parentPath = '/' + subtaskIdParts[1] + '/';\n const taskId = subtaskIdParts[2];\n const identity: TaskIdentityInterface = {\n namespace,\n parentPath,\n taskId,\n };\n\n this.attachmentService\n .addAttachment(new TaskIdentity(identity), {\n name: fileInfo.name,\n url: fileInfo.url,\n uploadingPersonaType: 'smb',\n })\n .pipe(take(1), retry({ count: 3, delay: 1000 }))\n .subscribe({\n next: () => {\n this.snackbarService.openSuccessSnack('ATTACHMENTS.ADD_SUCCESS');\n this.fileUploaded.emit(fileInfo);\n this.loading.set(false);\n },\n error: (error) => {\n this.fileUploadError.emit(error);\n this.loading.set(false);\n },\n });\n }\n\n handleFileUploadErrored(error: FileUploadError): void {\n this.fileUploadError.emit(error);\n }\n}\n","@if (loading() === false) {\n \n} @else {\n \n}\n","import { Pipe, PipeTransform } from '@angular/core';\nimport { AttachmentInterface } from '../../shared/interfaces';\nimport { PersonaType as IAMPersonaType } from '@vendasta/iam';\nimport { PersonaType } from '@vendasta/task-manager';\n\n@Pipe({\n name: 'uploadedBy',\n standalone: true,\n})\nexport class UploadedByPipe implements PipeTransform {\n transform(attachment: AttachmentInterface): string {\n return attachment?.uploadingPersonaType === IAMPersonaType.smb\n ? 'PROJECT_TRACKER.UPLOADED_BY_YOU'\n : 'PROJECT_TRACKER.UPLOADED_BY_FULFILLMENT_TEAM';\n }\n}\n\n@Pipe({\n name: 'canDeleteFile',\n standalone: true,\n})\nexport class CanDeleteFilePipe implements PipeTransform {\n transform(attachment: AttachmentInterface, userPersona: string): boolean {\n return attachment?.filePermissions?.delete?.includes(convertUserPersona(userPersona));\n }\n}\n\n@Pipe({\n name: 'filterAndSortFulfillmentFiles',\n standalone: true,\n})\nexport class FilterAndSortFulfillmentFiles implements PipeTransform {\n transform(attachments: AttachmentInterface[], userPersona: string): AttachmentInterface[] {\n userPersona = convertUserPersona(userPersona);\n return (\n attachments\n ?.filter((attachment) => attachment?.filePermissions?.read?.includes(userPersona))\n ?.sort(sortSmbFilesToEnd) || []\n );\n }\n}\n\nfunction sortSmbFilesToEnd(a: AttachmentInterface, b: AttachmentInterface): number {\n if (a.uploadingPersonaType === 'smb' && b.uploadingPersonaType !== 'smb') {\n return 1; // Move \"smb\" uploadingPersonaType to the end\n }\n if (a.uploadingPersonaType !== 'smb' && b.uploadingPersonaType === 'smb') {\n return -1; // Move \"smb\" uploadingPersonaType to the end\n }\n return 0; // Keep the order unchanged if both have the same uploadingPersonaType value\n}\n\nexport function convertUserPersona(userPersona: string | PersonaType): IAMPersonaType {\n if (typeof userPersona === 'string') {\n return (\n [\n IAMPersonaType.smb,\n IAMPersonaType.digital_agent,\n IAMPersonaType.sales_person,\n IAMPersonaType.partner,\n IAMPersonaType.crm_role,\n ].find((persona) => persona.toString() === userPersona) || IAMPersonaType.smb\n );\n }\n switch (userPersona) {\n case PersonaType.PERSONA_TYPE_SMB:\n return IAMPersonaType.smb;\n case PersonaType.PERSONA_TYPE_DIGITAL_AGENT:\n return IAMPersonaType.digital_agent;\n case PersonaType.PERSONA_TYPE_SALES_PERSON:\n return IAMPersonaType.sales_person;\n case PersonaType.PERSONA_TYPE_PARTNER:\n return IAMPersonaType.partner;\n default:\n return IAMPersonaType.smb;\n }\n}\n","import { Component, Inject, Input, OnInit, WritableSignal, signal } from '@angular/core';\nimport { UntypedFormBuilder } from '@angular/forms';\nimport { TranslateService } from '@ngx-translate/core';\nimport { SnackbarService } from '@vendasta/galaxy/snackbar-service';\nimport { PersonaType, TaskManagerSdkService } from '@vendasta/task-manager';\nimport { EMPTY, Observable } from 'rxjs';\nimport { catchError, finalize, map, shareReplay, switchMap, take, tap } from 'rxjs/operators';\nimport { ProjectTrackerServiceInterface, ProjectTrackerServiceInterfaceToken } from '../../project-tracker-interface';\nimport { AttachmentInterface, Subtask } from '../../shared/interfaces';\nimport { FileInfo, FileUploadError } from '@vendasta/galaxy/uploader';\nimport { TaskStatus } from '../../shared/constants';\nimport { TaskAttachmentService, TaskIdentity, TaskSdkService } from '@vendasta/task';\n\ntype LoadingState = { index: number; loading: boolean; subtaskId?: string } | undefined;\n\n@Component({\n selector: 'project-tracker-fulfillment-subtasks',\n templateUrl: './fulfillment-subtasks.component.html',\n styleUrls: ['./fulfillment-subtasks.component.scss'],\n})\nexport class FulfillmentSubtasksComponent implements OnInit {\n @Input() subtasks: Subtask[] = [];\n COMPLETED_STATUS = TaskStatus.COMPLETED;\n PersonaType = PersonaType;\n TEN_MB = 10 * 1024 * 1024;\n attachmentLoading: WritableSignal = signal(undefined);\n deleteAttachmentLoading: WritableSignal = signal(undefined);\n feedbackSaving: WritableSignal = signal(undefined);\n approveSaving: WritableSignal = signal(undefined);\n undoApproveSaving: WritableSignal = signal(undefined);\n userPersonaAsString$: Observable;\n\n constructor(\n @Inject(ProjectTrackerServiceInterfaceToken) private projectTrackerService: ProjectTrackerServiceInterface,\n private snackbarService: SnackbarService,\n private fb: UntypedFormBuilder,\n private translateService: TranslateService,\n private attachmentService: TaskAttachmentService,\n private taskManagerSdkService: TaskManagerSdkService,\n ) {}\n\n ngOnInit(): void {\n this.subtasks\n ?.map((subtask: Subtask) => {\n if (subtask?.feedback && !subtask?.conversations) {\n return {\n ...subtask,\n conversations: subtask.feedback.map((message) => ({ message })),\n };\n }\n return subtask;\n })\n ?.forEach((subtask: Subtask, index: number) => {\n const feedbackControlName = this.getFeedbackControlName(index);\n const controls = {};\n controls[feedbackControlName] = '';\n subtask.form = this.fb.group(controls);\n });\n this.userPersonaAsString$ = this.projectTrackerService.activeUser$.pipe(\n map((user) => user?.personaType?.toString()),\n shareReplay({ bufferSize: 1, refCount: true }),\n );\n }\n\n getFeedbackControlName(index: number): string {\n return 'feedback' + index;\n }\n\n onFileError(): void {\n this.snackbarService.openErrorSnack('PROJECT_TRACKER.ERROR.FAIL_TO_ADD');\n }\n\n approveTask(index: number): void {\n this.approveSaving.set({ index, loading: true });\n const subtask = this.subtasks[index];\n subtask.showFeedback = false;\n subtask.approved = true;\n this.projectTrackerService\n .approveTask(subtask.partnerId, subtask.accountGroupId, subtask.subtaskId)\n .pipe(\n take(1),\n tap(() => this.approveSaving.set(undefined)),\n switchMap(() =>\n this.snackbarService\n .openSuccessSnack('PROJECT_TRACKER.SUCCESS.APPROVE_TASK', {\n action: this.translateService.instant('PROJECT_TRACKER.UNDO'),\n })\n .onAction(),\n ),\n tap(() => this.undoApproveTask(subtask)),\n catchError(() => {\n this.snackbarService.openErrorSnack('PROJECT_TRACKER.ERROR.APPROVE_TASK');\n subtask.approved = false;\n this.approveSaving.set(undefined);\n return EMPTY;\n }),\n )\n .subscribe();\n }\n\n undoApproveTask(subtask: Subtask): void {\n this.undoApproveSaving.set({ index: this.subtasks.indexOf(subtask), loading: true });\n subtask.approved = false;\n this.projectTrackerService\n .undoApproveTask(subtask.partnerId, subtask.accountGroupId, subtask.subtaskId)\n .pipe(take(1))\n .subscribe({\n next: () => {\n this.snackbarService.openSuccessSnack('PROJECT_TRACKER.SUCCESS.APPROVE_TASK_UNDO');\n this.undoApproveSaving.set(undefined);\n },\n error: () => {\n this.snackbarService.openErrorSnack('PROJECT_TRACKER.ERROR.APPROVE_TASK_UNDO');\n subtask.approved = true;\n this.undoApproveSaving.set(undefined);\n },\n });\n }\n\n saveFeedback(index: number): void {\n this.feedbackSaving.set({ index, loading: true });\n const subtask = this.subtasks[index];\n subtask.showFeedback = false;\n subtask.approved = false;\n if (!subtask?.conversations?.length) {\n subtask.conversations = [];\n }\n const feedback = subtask.form.get(this.getFeedbackControlName(index)).value;\n\n this.projectTrackerService\n .sendFeedback(subtask.partnerId, subtask.accountGroupId, subtask.subtaskId, feedback)\n .pipe(take(1))\n .subscribe({\n next: () => {\n this.snackbarService.openSuccessSnack('PROJECT_TRACKER.SUCCESS.FEEDBACK_PROVIDED');\n subtask.form.get(this.getFeedbackControlName(index)).patchValue('');\n this.feedbackSaving.set(undefined);\n subtask.conversations.push({\n message: feedback,\n sendTo: 'Digital Agent',\n source: 'smb',\n created: new Date(),\n isPublic: true,\n });\n },\n error: () => {\n this.snackbarService.openErrorSnack('PROJECT_TRACKER.ERROR.FEEDBACK_PROVIDED');\n subtask.conversations.pop();\n this.feedbackSaving.set(undefined);\n },\n });\n }\n\n handleFileDeleted(subtask: Subtask, attachmentToRemove: AttachmentInterface, indexSetLoading: number): void {\n this.deleteAttachmentLoading.set({ index: indexSetLoading, loading: true });\n this.projectTrackerService\n .removeFile(subtask.partnerId, subtask.accountGroupId, subtask.subtaskId, attachmentToRemove)\n .pipe(take(1))\n .subscribe({\n next: () => {\n const index = subtask.files.findIndex((file) => file === attachmentToRemove);\n if (index !== -1) {\n subtask.files.splice(index, 1);\n subtask.files = [...subtask.files];\n }\n this.snackbarService.openSuccessSnack('PROJECT_TRACKER.SUCCESS.FILE_REMOVE');\n this.deleteAttachmentLoading.set(undefined);\n },\n error: () => {\n this.snackbarService.openErrorSnack('PROJECT_TRACKER.ERROR.FILE_REMOVE');\n this.deleteAttachmentLoading.set(undefined);\n },\n });\n }\n\n handleFileUploaded(fileInfo: FileInfo, subtask: Subtask): void {\n this.snackbarService.openSuccessSnack('PROJECT_TRACKER.SUCCESS.FILE_UPLOAD');\n this.userPersonaAsString$.pipe(take(1)).subscribe((userPersona) => {\n if (!subtask.files) subtask.files = [];\n subtask.files = [\n ...subtask.files,\n {\n name: fileInfo?.name,\n url: fileInfo?.url,\n contentType: fileInfo?.file?.type,\n filePermissions: {\n read: [userPersona],\n delete: [userPersona],\n write: [userPersona],\n },\n uploadingPersonaType: userPersona,\n },\n ];\n });\n }\n\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n handleFileUploadErrored(error: FileUploadError): void {\n this.snackbarService.openErrorSnack('PROJECT_TRACKER.ERROR.FAIL_TO_ADD');\n }\n\n handleFileNameClicked(file: AttachmentInterface, subtask: Subtask, index: number): void {\n this.attachmentLoading.set({ index: index, subtaskId: subtask.subtaskId, loading: true });\n const secret = this.attachmentService.getSecretFromURL(file.url);\n\n const namespace = TaskSdkService.buildAccountGroupNamespace(subtask.partnerId, subtask.accountGroupId);\n // subtaskID is in format \"// \"\n const subtaskIdParts: string[] = subtask.subtaskId.split('/');\n if (subtaskIdParts?.length !== 3) {\n this.snackbarService.openErrorSnack('There was an error downloading the file.');\n return;\n }\n const parentPath = '/' + subtaskIdParts[1] + '/';\n const taskId = subtaskIdParts[2];\n\n this.taskManagerSdkService\n .getAttachmentUrl(new TaskIdentity({ namespace, parentPath, taskId }), secret)\n .pipe(\n map((resp) => resp?.url),\n take(1),\n finalize(() => this.attachmentLoading.set({ index: index, subtaskId: '', loading: false })),\n )\n .subscribe((generatedUrl) => {\n try {\n const anchor = document.createElement('a');\n anchor.href = generatedUrl;\n anchor.download = file.name;\n anchor.target = '_blank';\n anchor.click();\n window.URL.revokeObjectURL(generatedUrl);\n } catch (e) {\n this.snackbarService.openErrorSnack('There was an error downloading the file.');\n }\n });\n }\n}\n","\n
\n
\n
\n
\n \n check\n \n \n \n {{ (i + 1).toString() }}\n \n \n
\n
\n {{ subtask.title }}\n
\n
\n
\n
\n
\n
\n {{ 'PROJECT_TRACKER.COMPLETED_ON' | translate: { date: (subtask.completionDate | date: 'longDate') } }}\n
\n
\n \n {{ 'PROJECT_TRACKER.IN_PROGRESS' | translate }}\n \n -\n \n
\n
\n {{ 'PROJECT_TRACKER.WAITING_ON_CUSTOMER' | translate }}\n
\n
\n \n
\n
0\">\n
\n {{ subtask.notes }}\n
\n
\n \n \n {{ 'PROJECT_TRACKER.YOU_REQUESTED_REVISIONS' | translate: { title: subtask.title } }}\n
\n
\n {{ 'PROJECT_TRACKER.FULFILLMENT_TEAM_MESSAGE' | translate }}\n
\n \n {{ 'PROJECT_TRACKER.GENERIC_MESSAGE' | translate }}\n
\n
\n \n
\n
\n\n @if (subtask.feedbackEnabled) {\n
\n
\n @if (subtask.status !== COMPLETED_STATUS) {\n \n \n {{ 'PROJECT_TRACKER.PROVIDE_FEEDBACK' | translate }}\n \n \n \n
\n \n \n {{ 'PROJECT_TRACKER.SEND_FEEDBACK' | translate }}\n \n \n
\n }\n\n
{{ 'PROJECT_TRACKER.FILES' | translate }}
\n
{{ 'PROJECT_TRACKER.FILE_DISCLAIMER' | translate }}
\n\n @if (subtask.files?.length > 0) {\n \n @for (\n file of subtask.files | filterAndSortFulfillmentFiles: (userPersonaAsString$ | async);\n track file\n ) {\n \n
\n
\n @if (\n attachmentLoading()?.loading &&\n attachmentLoading()?.index === $index &&\n attachmentLoading()?.subtaskId === subtask.subtaskId\n ) {\n \n } @else {\n attachment\n }\n {{\n file.name\n }}\n
\n
\n {{ file | uploadedBy | translate }}\n @if (file | canDeleteFile: (userPersonaAsString$ | async)) {\n @if (deleteAttachmentLoading()?.loading && deleteAttachmentLoading()?.index === $index) {\n \n } @else {\n \n }\n } @else {\n
\n }\n
\n
\n
\n }\n
\n }\n\n @if (\n ((subtask.files | filterAndSortFulfillmentFiles: (userPersonaAsString$ | async))?.length || 0) < 10\n ) {\n \n }\n \n @if (subtask.approved) {\n
\n
\n check\n {{ 'PROJECT_TRACKER.YOU_APPROVED' | translate: { title: subtask.title } }}\n
\n @if (subtask.status !== COMPLETED_STATUS) {\n \n }\n
\n }\n
\n } @else {\n \n @if (subtask.files?.length > 0) {\n
\n
{{ 'PROJECT_TRACKER.FILES' | translate }}
\n \n @for (\n file of subtask.files | filterAndSortFulfillmentFiles: (userPersonaAsString$ | async);\n track file\n ) {\n \n
\n
\n @if (\n attachmentLoading()?.loading &&\n attachmentLoading()?.index === $index &&\n attachmentLoading()?.subtaskId === subtask.subtaskId\n ) {\n \n } @else {\n attachment\n }\n {{ file.name }}\n
\n
\n {{ file | uploadedBy | translate }}\n
\n
\n
\n
\n }\n
\n
\n }\n }\n\n
\n
\n \n \n {{ 'PROJECT_TRACKER.APPROVE' | translate }}\n \n \n
\n
\n
\n \n \n
\n\n\n \n {{ 'PROJECT_TRACKER.ESTIMATED_COMPLETION' | translate: { date: (dueDate | date: 'longDate') } }}\n \n\n","import { Component, EventEmitter, Input, OnInit, Output } from '@angular/core';\nimport { TaskIdentityInterface } from '@vendasta/task';\nimport { AskQuestionInfo, ProductInfo, Subtask } from '../shared/interfaces';\nimport { MILESTONE_COMPLETED } from '../shared/constants';\n\ninterface ProjectProgress {\n completed: number;\n total: number;\n progress: number;\n}\n\n@Component({\n selector: 'project-tracker-fulfillment-tracker',\n templateUrl: './fulfillment-tracker.component.html',\n styleUrls: ['./fulfillment-tracker.component.scss'],\n})\nexport class FulfillmentTrackerComponent implements OnInit {\n @Input() product: ProductInfo;\n @Input() projectTitle;\n @Input() projectIdentity: TaskIdentityInterface;\n @Input() subtasks: Subtask[] = [];\n @Input() hideAskQuestion = false;\n @Input() expanded = false;\n @Output() askQuestionClicked: EventEmitter = new EventEmitter();\n projectProgress: ProjectProgress;\n\n ngOnInit(): void {\n const completed: number = this.subtasks?.filter((subtask) => subtask.status === MILESTONE_COMPLETED)?.length || 0;\n const total: number = this.subtasks?.length || 0;\n const progress: number = total > 0 ? Math.round((completed / total) * 100) : 0;\n this.projectProgress = { completed, total, progress };\n }\n\n handleAskQuestionClicked(event?: MouseEvent): void {\n this.askQuestionClicked.emit({\n projectIdentity: this.projectIdentity,\n subtasks: this.subtasks,\n });\n event?.preventDefault();\n event?.stopPropagation();\n }\n}\n","\n \n \n
\n
\n
\n \n \n \n {{ projectTitle }}\n
\n
\n
\n
\n
\n {{\n 'FULFILLMENT_TRACKER.PROGRESS'\n | translate : { completed: projectProgress.completed, total: projectProgress.total }\n }}\n
\n
{{ projectProgress.progress }}%
\n
\n \n
\n
\n
\n comment\n {{ 'FULFILLMENT_TRACKER.ASK_A_QUESTION' | translate }}\n
\n
\n
\n
\n\n \n
\n
\n","import { Directive } from '@angular/core';\n\n@Directive({\n // eslint-disable-next-line @angular-eslint/directive-selector\n selector: 'project-comments-input, [project-comments-input], [projectCommentsInput]',\n})\nexport class ProjectCommentsInputDirective {}\n","import { Pipe, PipeTransform } from '@angular/core';\nimport { TranslateService } from '@ngx-translate/core';\n\n@Pipe({\n name: 'nameInitials',\n})\nexport class NameInitialsPipe implements PipeTransform {\n constructor(private translateService: TranslateService) {}\n\n transform(userName: string): string {\n const name = userName?.trim() || '';\n const names = name.split(' ');\n if (names.length > 1) {\n // uses the full name to create initials\n return [names[0], names[names.length - 1]].join(' ');\n } else if (name.length > 1) {\n // uses the first and second letter of the name to create initials\n return name[0] + ' ' + name[1];\n } else if (name.length === 1) {\n // uses the given name to create initials\n return name;\n } else {\n // no name provided, uses `Fulfillment Agent`\n return this.translateService.instant('COMMENT.FULFILLMENT_AGENT');\n }\n }\n}\n","import { ChangeDetectionStrategy, Component, ContentChild, EventEmitter, Input, Output } from '@angular/core';\nimport { UntypedFormControl } from '@angular/forms';\nimport { TranslateService } from '@ngx-translate/core';\nimport { WidthPreset } from '@vendasta/galaxy/page';\nimport { CommentInterface, CommentType } from '@vendasta/task-manager';\nimport { BehaviorSubject } from 'rxjs';\nimport { MAX_COMMENT_LENGTH } from '../shared/constants';\nimport { AddCommentEvent, ExtendedCommentInterface, ProjectTrackerUserDetails } from '../shared/interfaces';\nimport { ProjectCommentsInputDirective } from './project-comments.directives';\n\nexport interface CommentViewConfig {\n showTitle?: boolean;\n showCloseButton?: boolean;\n /**\n * When true, the comment input box will be shown above the comment list, and they will be sorted in reverse\n * chronological order. When false, the comment input box will be shown below the comment list, and they will be\n * sorted in chronological order.\n */\n showCommentInputAtTop?: boolean;\n /**\n * Whether or not to show the avatar icon of the user next to the input box\n */\n showCommenterIcon?: boolean;\n}\n\n@Component({\n selector: 'project-tracker-project-comments',\n templateUrl: './project-comments.component.html',\n styleUrls: ['./project-comments.component.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class ProjectCommentsComponent {\n @Input() activeUser: ProjectTrackerUserDetails;\n @Input()\n set conversation(value: ExtendedCommentInterface[]) {\n if (this.viewConfig?.showCommentInputAtTop) {\n value.sort((a, b) => b.messageCreated.getTime() - a.messageCreated.getTime());\n } else {\n value.sort((a, b) => a.messageCreated.getTime() - b.messageCreated.getTime());\n }\n this.conversation$$.next(value || []);\n }\n @Input() isLoading = false;\n @Input() isSubmitting = false;\n @Input() disablePrivate = true;\n @Input() disableSubmit = false;\n @Input() accountName: string;\n\n @Input() viewConfig?: CommentViewConfig = {\n showTitle: true,\n showCloseButton: true,\n showCommentInputAtTop: true,\n showCommenterIcon: true,\n };\n\n @Output() closeClicked: EventEmitter = new EventEmitter();\n @Output() submitClicked: EventEmitter = new EventEmitter();\n\n @ContentChild(ProjectCommentsInputDirective) inputDirective: ProjectCommentsInputDirective;\n\n pageWidth = WidthPreset.Full;\n\n constructor(private translateService: TranslateService) {}\n\n get commentType(): typeof CommentType {\n return CommentType;\n }\n\n isPublic = false;\n conversation$$: BehaviorSubject = new BehaviorSubject([]);\n readonly newCommentInput = new UntypedFormControl(null, { updateOn: 'change' });\n\n get hasCustomInput(): boolean {\n return !!this.inputDirective;\n }\n\n get shouldDisableSubmit(): boolean {\n if (this.hasCustomInput) {\n return this.disableSubmit;\n }\n return !!this.disableSubmit || !this.isValidComment(this.newCommentInput?.value);\n }\n\n private isValidComment(text: string): boolean {\n return text?.trim()?.length > 0 && text?.trim()?.length <= MAX_COMMENT_LENGTH;\n }\n\n toggleIsPublic(): void {\n this.isPublic = !this.isPublic;\n }\n\n handleSubmitClick(): void {\n this.submitClicked.emit({\n message: this.newCommentInput?.value?.trim(),\n isPublic: this.disablePrivate ? true : this.isPublic,\n });\n }\n\n handleCloseClick(): void {\n this.closeClicked.emit();\n }\n\n clearCommentInput(): void {\n this.newCommentInput?.setValue('');\n }\n\n getConversationOrigin(conversation: CommentInterface): string {\n if (conversation?.senderName) {\n return conversation.senderName;\n } else if (this.isConversationHydrated(conversation)) {\n const fromText = this.translateService.instant('TASK_DETAILS.CONVERSATIONS_FROM');\n return conversation?.senderId.replace('|', fromText) || '';\n } else {\n return '';\n }\n }\n\n isConversationHydrated(conversation: CommentInterface): boolean {\n return !(conversation?.senderId?.startsWith('U-') || conversation?.senderId?.startsWith('UID-'));\n }\n}\n","\n \n {{ 'COMMENT.TITLE' | translate }}\n\n \n close\n \n \n\n \n
\n \n \n \n \n
\n {{ 'COMMENT.FROM_STEP' | translate }} {{ conversation?.taskTitle }}\n
\n
\n visibility\n {{ 'TASK_DETAILS.PRIVATE_CONVERSATION_SUBTEXT' | translate }}\n
\n \n \n \n \n
\n
\n
\n\n\n \n\n\n\n
\n \n
\n \n
\n
\n \n \n {{ 'COMMENT.NEW_COMMENT.LABEL' | translate }}\n \n \n \n \n
\n
\n \n {{ 'COMMENT.NEW_COMMENT.MAKE_PUBLIC' | translate }}\n \n \n {{ 'COMMENT.NEW_COMMENT.ACTION' | translate }}\n \n
\n \n
\n","import { Injectable, TemplateRef, ViewContainerRef } from '@angular/core';\nimport { MatDrawerToggleResult, MatSidenav } from '@angular/material/sidenav';\n\n/**\n * The `SidenavService` is used to create a embedded view inside a `ProjectTrackerSidenavContainerComponent` container.\n * @see ProjectTrackerSidenavContainerComponent\n */\n@Injectable({\n providedIn: 'root',\n})\nexport class SidenavService {\n private panel: MatSidenav;\n private vcf: ViewContainerRef;\n\n setPanel(sidenav: MatSidenav): void {\n this.panel = sidenav;\n }\n\n setContentVcf(viewContainerRef: ViewContainerRef): void {\n this.vcf = viewContainerRef;\n }\n\n private createView(template: TemplateRef): void {\n this.vcf.clear();\n this.vcf.createEmbeddedView(template);\n }\n\n open(template: TemplateRef): Promise {\n this.createView(template);\n return this.panel.open();\n }\n\n close(): Promise {\n return this.panel.close();\n }\n\n toggle(): Promise {\n return this.panel.toggle();\n }\n}\n","import { CommentType } from '@vendasta/task-manager';\nimport { ExtendedCommentInterface, ExtendedConversationInterface } from './interfaces';\nimport { SortDirection } from '@vendasta/task';\nimport { SortInterface } from '@vendasta/task-manager';\n\nexport class ProjectTrackerUtils {\n static mapInternalConversationToInbox(conversation: ExtendedConversationInterface): ExtendedCommentInterface {\n return {\n senderName: conversation.sendFrom,\n messageText: conversation.message,\n messageCreated: conversation.created,\n externalMessageId: conversation.source,\n commentType: conversation.isPublic ? CommentType.COMMENT_TYPE_PUBLIC : CommentType.COMMENT_TYPE_PRIVATE,\n taskTitle: conversation.taskTitle,\n senderImageUrl: conversation.senderImageUrl,\n } as ExtendedCommentInterface;\n }\n}\n\nexport function validateSorts(sorts: SortInterface[]): SortInterface[] {\n const final: SortInterface[] = [];\n sorts.forEach((sort) => {\n if (sort.direction in SortDirection && !!sort.field) {\n final.push(sort);\n }\n });\n return final;\n}\n","import { ChangeDetectionStrategy, Component, Inject, Input, ViewChild } from '@angular/core';\nimport { SnackbarService } from '@vendasta/galaxy/snackbar-service';\nimport { ObservableWorkState } from '@vendasta/rx-utils/work-state';\nimport { BehaviorSubject, Observable, combineLatest, of } from 'rxjs';\nimport { finalize, take } from 'rxjs/operators';\nimport {\n AskQuestionServiceInterface,\n AskQuestionServiceInterfaceToken,\n} from '../ask-question-dialog/ask-question-dialog-interface';\nimport { ProjectCommentsComponent } from '../project-comments/project-comments.component';\nimport { ProjectTrackerServiceInterface, ProjectTrackerServiceInterfaceToken } from '../project-tracker-interface';\nimport {\n AddCommentEvent,\n ExtendedCommentInterface,\n ExtendedConversationInterface,\n ProjectTrackerInfo,\n ProjectTrackerUserDetails,\n} from '../shared/interfaces';\nimport { SidenavService } from '../shared/services/sidenav.service';\nimport { ProjectTrackerUtils } from '../shared/utils';\n\n@Component({\n selector: 'project-tracker-comments',\n templateUrl: './project-tracker-comments.component.html',\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class ProjectTrackerCommentsComponent {\n @Input()\n set projectTrackerInfo(value: ProjectTrackerInfo) {\n this.project = value;\n this.refreshProjectTrackerInfo();\n }\n\n @ViewChild('projectComments') projectComments: ProjectCommentsComponent;\n\n private project: ProjectTrackerInfo;\n conversation$$: BehaviorSubject = new BehaviorSubject([]);\n isLoading$$: BehaviorSubject = new BehaviorSubject(false);\n private workableState: ObservableWorkState = new ObservableWorkState();\n createCommentLoading$: Observable = this.workableState.isLoading$;\n activeUser$: Observable = this.projectTrackerService.activeUser$;\n\n constructor(\n private sidenavService: SidenavService,\n @Inject(AskQuestionServiceInterfaceToken) private askQuestionService: AskQuestionServiceInterface,\n private readonly snackbarService: SnackbarService,\n @Inject(ProjectTrackerServiceInterfaceToken) private projectTrackerService: ProjectTrackerServiceInterface,\n ) {}\n\n private static getConversationFromInbox(project: ProjectTrackerInfo): Observable {\n return of(\n project.projectConversations?.map((conversation) => {\n const result: ExtendedCommentInterface = ProjectTrackerUtils.mapInternalConversationToInbox(conversation);\n const subtaskId = conversation.source?.split('/')?.slice(-1)?.pop(); // source = externalMessageId\n const subtask = project.subtasks?.find(\n (task) =>\n task.subtaskId?.split('/')?.slice(-1)?.pop() === subtaskId || task?.['identity']?.['taskId'] === subtaskId,\n );\n result.taskTitle = subtask?.title;\n return result;\n }),\n );\n }\n\n private refreshProjectTrackerInfo(): void {\n this.isLoading$$.next(true);\n ProjectTrackerCommentsComponent.getConversationFromInbox(this.project)\n .pipe(\n take(1),\n finalize(() => this.isLoading$$.next(false)),\n )\n .subscribe((result) => this.conversation$$.next(result));\n }\n\n private appendComment(newComment: ExtendedConversationInterface): void {\n const conversation = this.conversation$$.getValue() || [];\n conversation.unshift(ProjectTrackerUtils.mapInternalConversationToInbox(newComment));\n this.conversation$$.next(conversation);\n\n if (this.project?.projectConversations) {\n this.project.projectConversations.unshift(newComment);\n }\n }\n\n handleSubmitClick(event: AddCommentEvent): void {\n if (this.project?.projectIdentity) {\n const work$ = this.askQuestionService.askQuestion(event?.message, this.project.projectIdentity).pipe(take(1));\n this.workableState.startWork(work$);\n combineLatest([this.workableState.isSuccess$, this.activeUser$])\n .pipe(take(1))\n .subscribe(([isSuccess, activeUser]) => {\n if (isSuccess) {\n this.snackbarService.openSuccessSnack('COMMENT.NEW_COMMENT.SUBMIT_SUCCESS');\n\n const newComment: ExtendedConversationInterface = {\n sendFrom: activeUser?.userInfo?.firstName,\n message: event?.message,\n created: new Date(),\n isPublic: event?.isPublic,\n senderImageUrl: activeUser.profilePictureUrl,\n };\n this.appendComment(newComment);\n this.projectComments.clearCommentInput();\n } else {\n this.snackbarService.openErrorSnack('COMMENT.NEW_COMMENT.SUBMIT_ERROR');\n }\n });\n }\n }\n\n handleCloseClick(): void {\n this.sidenavService.close();\n }\n}\n","\n","import { Component, OnInit, ViewChild, ViewContainerRef } from '@angular/core';\nimport { MatSidenav } from '@angular/material/sidenav';\nimport { SidenavService } from './shared/services/sidenav.service';\n\n/**\n * The `ProjectTrackerSidenavContainerComponent` is used to display the drawer container.\n * It should be used along with the `SidenavService` to create an embedded view inside the container.\n *\n * @example\n * ```html\n * \n * \n * \n *
This content will be embedded in the sidenav
\n *
\n * ```\n *\n * ```ts\n * @ViewChild('myTemplate') myTemplate: TemplateRef;\n * ...\n * // open the sidenav with the content from myTemplate\n * this.sidenavService.open(this.myTemplate);\n * ```\n */\n@Component({\n selector: 'project-tracker-sidenav-container',\n templateUrl: './project-tracker-sidenav-container.component.html',\n styleUrls: ['./project-tracker-sidenav-container.component.scss'],\n})\nexport class ProjectTrackerSidenavContainerComponent implements OnInit {\n @ViewChild('panel', { static: true }) private sidePanel: MatSidenav;\n @ViewChild('content', { static: true, read: ViewContainerRef }) private vcf: ViewContainerRef;\n\n constructor(private sidenavService: SidenavService) {}\n\n ngOnInit(): void {\n this.sidenavService.setPanel(this.sidePanel);\n this.sidenavService.setContentVcf(this.vcf);\n }\n}\n","\n \n \n \n \n \n \n \n\n","import { Component, EventEmitter, Inject, Input, OnInit, Output } from '@angular/core';\nimport { UntypedFormBuilder } from '@angular/forms';\nimport { TranslateService } from '@ngx-translate/core';\nimport { FileUploaderInterface } from '@vendasta/forms';\nimport { SnackbarService } from '@vendasta/galaxy/snackbar-service';\nimport { PersonaType } from '@vendasta/task-manager';\nimport { EMPTY } from 'rxjs';\nimport { catchError, switchMap, take, tap } from 'rxjs/operators';\nimport {\n ProjectTrackerFileUploadServiceInterfaceToken,\n ProjectTrackerServiceInterface,\n ProjectTrackerServiceInterfaceToken,\n} from '../../project-tracker-interface';\nimport { AttachedFile, AttachmentInterface, NonClickableSection, Subtask } from '../interfaces';\n\n@Component({\n selector: 'project-tracker-subtasks',\n templateUrl: './tracker-subtasks.component.html',\n styleUrls: ['./tracker-subtasks.component.scss'],\n})\nexport class TrackerSubtasksComponent implements OnInit {\n @Input() subtasks: Subtask[] = [];\n @Output() approveClicked: EventEmitter = new EventEmitter();\n @Output() provideFeedbackClicked: EventEmitter = new EventEmitter();\n @Output() sendFeedbackClicked: EventEmitter = new EventEmitter();\n @Output() nonClickableClicked: EventEmitter = new EventEmitter();\n attachmentUploader: FileUploaderInterface;\n PersonaType = PersonaType;\n\n constructor(\n @Inject(ProjectTrackerServiceInterfaceToken) private projectTrackerService: ProjectTrackerServiceInterface,\n @Inject(ProjectTrackerFileUploadServiceInterfaceToken)\n private projectTrackerAttachmentService: FileUploaderInterface,\n private alertService: SnackbarService,\n private fb: UntypedFormBuilder,\n private translateService: TranslateService,\n ) {}\n\n ngOnInit(): void {\n this.attachmentUploader = this.projectTrackerAttachmentService;\n this.subtasks\n ?.map((subtask: Subtask) => {\n if (subtask?.feedback && !subtask?.conversations) {\n return {\n ...subtask,\n conversations: subtask.feedback.map((message) => ({ message })),\n };\n }\n return subtask;\n })\n ?.forEach((subtask: Subtask, index: number) => {\n const filesControlName = this.getFilesControlName(index);\n const feedbackControlName = this.getFeedbackControlName(index);\n const controls = {};\n controls[filesControlName] = Object.assign([], subtask.files || Array());\n controls[feedbackControlName] = '';\n subtask.form = this.fb.group(controls);\n subtask.form.get(filesControlName).patchValue(Object.assign([], subtask.files || Array()));\n });\n }\n\n getFilesControlName(index: number): string {\n return 'files' + index;\n }\n getFeedbackControlName(index: number): string {\n return 'feedback' + index;\n }\n\n onFileUploaded(uploadInfo: AttachmentInterface, index: number): void {\n const subtask = this.subtasks[index];\n if (uploadInfo.name === '' || uploadInfo.url === '') {\n this.alertService.openErrorSnack('PROJECT_TRACKER.ERROR.ATTACHMENT');\n const current = subtask.form.get(this.getFilesControlName(index)).value;\n current.pop();\n subtask.form.get(this.getFilesControlName(index)).patchValue(current);\n return;\n } else {\n if (!subtask.files) {\n subtask.files = [];\n }\n subtask.approved = false;\n subtask.files.push(uploadInfo);\n this.projectTrackerService\n .uploadFile(subtask.partnerId, subtask.accountGroupId, subtask.subtaskId, uploadInfo)\n .pipe(\n take(1),\n switchMap(() =>\n this.alertService\n .openSuccessSnack('PROJECT_TRACKER.SUCCESS.FILE_UPLOAD', {\n action: this.translateService.instant('PROJECT_TRACKER.UNDO'),\n })\n .onAction(),\n ),\n tap(() => this.undoFileUpload(uploadInfo, index)),\n catchError(() => {\n this.alertService.openErrorSnack('PROJECT_TRACKER.ERROR.FILE_UPLOAD');\n return EMPTY;\n }),\n )\n .subscribe();\n }\n }\n\n undoFileUpload(attachment: AttachmentInterface, index: number): void {\n const subtask = this.subtasks[index];\n this.projectTrackerService\n .removeFile(subtask.partnerId, subtask.accountGroupId, subtask.subtaskId, attachment)\n .pipe(take(1))\n .subscribe(\n () => {\n this.alertService.openSuccessSnack('PROJECT_TRACKER.SUCCESS.FILE_UPLOAD_UNDO');\n subtask.files.pop();\n subtask.form.get(this.getFilesControlName(index)).patchValue(Object.assign([], subtask.files));\n },\n () => this.alertService.openErrorSnack('PROJECT_TRACKER.ERROR.FILE_UPLOAD_UNDO'),\n );\n }\n\n onFileError(): void {\n this.alertService.openErrorSnack('PROJECT_TRACKER.ERROR.FAIL_TO_ADD');\n }\n\n onFileRemoved(fileIndex: number, subtaskIndex: number): void {\n const subtask = this.subtasks[subtaskIndex];\n subtask.approved = false;\n const attachment = subtask.files.splice(fileIndex, 1)[0];\n this.projectTrackerService\n .removeFile(subtask.partnerId, subtask.accountGroupId, subtask.subtaskId, attachment)\n .pipe(\n take(1),\n switchMap(() =>\n this.alertService\n .openSuccessSnack(this.translateService.instant('PROJECT_TRACKER.SUCCESS.FILE_REMOVE'), {\n action: this.translateService.instant('PROJECT_TRACKER.UNDO'),\n })\n .onAction(),\n ),\n tap(() => this.undoFileRemoved(attachment, subtaskIndex)),\n catchError(() => {\n this.alertService.openErrorSnack('PROJECT_TRACKER.ERROR.FILE_REMOVE');\n subtask.files.push(attachment);\n return EMPTY;\n }),\n )\n .subscribe();\n }\n\n undoFileRemoved(attachment: AttachmentInterface, index: number): void {\n const subtask = this.subtasks[index];\n this.projectTrackerService\n .uploadFile(subtask.partnerId, subtask.accountGroupId, subtask.subtaskId, attachment)\n .pipe(take(1))\n .subscribe(\n () => {\n this.alertService.openSuccessSnack('PROJECT_TRACKER.SUCCESS.FILE_REMOVE_UNDO');\n subtask.files.push(attachment);\n subtask.form.get(this.getFilesControlName(index)).patchValue(Object.assign([], subtask.files));\n },\n () => {\n this.alertService.openErrorSnack('PROJECT_TRACKER.ERROR.FILE_REMOVE_UNDO');\n },\n );\n }\n\n approveTask(index: number): void {\n this.approveClicked.emit();\n const subtask = this.subtasks[index];\n subtask.showFeedback = false;\n subtask.approved = true;\n this.projectTrackerService\n .approveTask(subtask.partnerId, subtask.accountGroupId, subtask.subtaskId)\n .pipe(\n take(1),\n switchMap(() =>\n this.alertService\n .openSuccessSnack('PROJECT_TRACKER.SUCCESS.APPROVE_TASK', {\n action: this.translateService.instant('PROJECT_TRACKER.UNDO'),\n })\n .onAction(),\n ),\n tap(() => this.undoApproveTask(subtask)),\n catchError(() => {\n this.alertService.openErrorSnack('PROJECT_TRACKER.ERROR.APPROVE_TASK');\n subtask.approved = false;\n return EMPTY;\n }),\n )\n .subscribe();\n }\n\n undoApproveTask(subtask: Subtask): void {\n subtask.approved = false;\n this.projectTrackerService\n .undoApproveTask(subtask.partnerId, subtask.accountGroupId, subtask.subtaskId)\n .pipe(take(1))\n .subscribe({\n next: () => this.alertService.openSuccessSnack('PROJECT_TRACKER.SUCCESS.APPROVE_TASK_UNDO'),\n error: () => {\n this.alertService.openErrorSnack('PROJECT_TRACKER.ERROR.APPROVE_TASK_UNDO');\n subtask.approved = true;\n },\n });\n }\n\n saveFeedback(index: number): void {\n this.sendFeedbackClicked.emit();\n const subtask = this.subtasks[index];\n subtask.showFeedback = false;\n subtask.approved = false;\n if (!subtask?.conversations?.length) {\n subtask.conversations = [];\n }\n const feedback = subtask.form.get(this.getFeedbackControlName(index)).value;\n subtask.conversations.push({\n message: feedback,\n sendTo: 'Digital Agent',\n source: 'smb',\n created: new Date(),\n });\n this.projectTrackerService\n .sendFeedback(subtask.partnerId, subtask.accountGroupId, subtask.subtaskId, feedback)\n .pipe(take(1))\n .subscribe({\n next: () => {\n this.alertService.openSuccessSnack('PROJECT_TRACKER.SUCCESS.FEEDBACK_PROVIDED');\n subtask.form.get(this.getFeedbackControlName(index)).patchValue('');\n },\n error: () => {\n this.alertService.openErrorSnack('PROJECT_TRACKER.ERROR.FEEDBACK_PROVIDED');\n subtask.conversations.pop();\n },\n });\n }\n\n toggleShowFeedback(index: number): void {\n this.subtasks[index].showFeedback = !this.subtasks[index].showFeedback;\n if (this.subtasks[index].showFeedback) {\n this.provideFeedbackClicked.emit();\n }\n }\n\n handleNonClickableClicked(event: NonClickableSection): void {\n this.nonClickableClicked.emit(event);\n }\n}\n","\n
\n
\n
\n \n check\n \n \n \n {{ (i + 1).toString() }}\n \n \n
\n
\n
\n {{ subtask.title }}\n
\n
\n
\n {{ 'PROJECT_TRACKER.COMPLETED_ON' | translate : { date: (subtask.completionDate | date : 'longDate') } }}\n
\n
\n \n {{ 'PROJECT_TRACKER.IN_PROGRESS' | translate }}\n \n \n \n -\n {{\n 'PROJECT_TRACKER.ESTIMATED_COMPLETION' | translate : { date: (subtask.dueDate | date : 'longDate') }\n }}\n \n \n \n \n -\n {{ 'PROJECT_TRACKER.ESTIMATED_COMPLETION' | translate : { date: 'TBD' } }}\n \n \n
\n
\n
\n {{ 'PROJECT_TRACKER.WAITING_ON_CUSTOMER' | translate }}\n
\n
\n
\n \n \n {{\n 'PROJECT_TRACKER.ESTIMATED_COMPLETION' | translate : { date: (subtask.dueDate | date : 'longDate') }\n }}\n \n \n \n \n {{ 'PROJECT_TRACKER.ESTIMATED_COMPLETION' | translate : { date: 'TBD' } }}\n \n \n
\n
\n \n {{ 'PROJECT_TRACKER.YOU_APPROVED' | translate : { title: subtask.title } }}\n \n
\n
\n 0 || subtask.files?.length > 0\"\n >\n
\n {{ subtask.notes }}\n
\n \n \n \n {{ 'PROJECT_TRACKER.YOU_REQUESTED_REVISIONS' | translate : { title: subtask.title } }}\n
\n
\n {{ 'PROJECT_TRACKER.FULFILLMENT_TEAM_MESSAGE' | translate }}\n
\n \n {{ 'PROJECT_TRACKER.GENERIC_MESSAGE' | translate }}\n
\n
\n {{ feedback?.message }}\n
\n \n
\n \n attachment\n {{ file.name }}\n \n \n \n
\n
\n \n \n {{ 'PROJECT_TRACKER.REVISIONS' | translate }}\n \n \n \n \n \n
\n
\n \n \n \n {{ 'PROJECT_TRACKER.APPROVE' | translate }}\n \n \n \n \n \n {{ 'PROJECT_TRACKER.SEND_FEEDBACK' | translate }}\n \n \n
\n
\n \n \n \n
\n","import { Inject, Injectable } from '@angular/core';\nimport { FeatureFlagService, FeatureFlagStatusInterface } from '@galaxy/partner';\nimport { PersonaType } from '@vendasta/iam';\nimport {\n ConversationInterface,\n DomainKeyValue,\n KeyValueTypes,\n SearchTaskRequest,\n SearchTaskRequestInterface,\n SearchTaskResponseInterface,\n TaskInterface,\n} from '@vendasta/task';\nimport {\n CommentInterface,\n CommentProjectionFilter,\n CommentType,\n LoadCommentsRequest,\n TaskManagerSdkService,\n} from '@vendasta/task-manager';\nimport { EMPTY, forkJoin, iif, Observable, of } from 'rxjs';\nimport { catchError, expand, map, retry, scan, shareReplay, switchMap, take } from 'rxjs/operators';\nimport { ProjectTrackerServiceInterface, ProjectTrackerServiceInterfaceToken } from '../../project-tracker-interface';\nimport {\n DEPENDENT_TAG,\n FEATURE_FLAG_LIST,\n FULFILLMENT_ORDER_ID_METADATA_KEY,\n MILESTONE_APPROVED_TAG,\n ORDER_ID_METADATA_KEY,\n PROJECT_TYPE,\n TASK_DATA_FEEDBACK_KEY,\n VISIBLE_TAG,\n} from '../constants';\nimport { ProjectTrackerInfo, Subtask } from '../interfaces';\n\nconst PAGE_SIZE = 250;\n\n@Injectable()\nexport class ProjectsAndSubtasksByProductsService {\n constructor(\n private taskManagerSdkService: TaskManagerSdkService,\n private featureFlagService: FeatureFlagService,\n @Inject(ProjectTrackerServiceInterfaceToken) private projectTrackerService: ProjectTrackerServiceInterface,\n ) {}\n\n static tasksToSubtasks(tasks: TaskInterface[], uploadingPersonaTypes: string[]): Subtask[] {\n return tasks.map((task) => {\n if (task.tags?.includes(DEPENDENT_TAG)) {\n task.dueDate = null;\n }\n const feedbackData = DomainKeyValue.fromKeyValue(task.data).get(TASK_DATA_FEEDBACK_KEY, KeyValueTypes.BOOL);\n const feedbackEnabled = feedbackData.length > 0 ? (feedbackData[0] as boolean) : false;\n const metadata = DomainKeyValue.fromKeyValue(task.metadata);\n const partnerId = metadata.get('partner', KeyValueTypes.STRING).toString();\n const accountGroupId = metadata.get('account-group', KeyValueTypes.STRING).toString();\n const id = task.identity.parentPath + task.identity.taskId;\n const subtask: Subtask = {\n title: task.title,\n dueDate: task.dueDate,\n completionDate: task.completionDate,\n status: task.status,\n notes: task.notes,\n feedbackEnabled: feedbackEnabled,\n partnerId: partnerId,\n accountGroupId: accountGroupId,\n subtaskId: id,\n files: task.attachment?.filter((a) => uploadingPersonaTypes.includes(a.uploadingPersonaType)),\n approved: task.tags?.includes(MILESTONE_APPROVED_TAG),\n showFeedback: false,\n conversations: task.conversations?.filter((c) => c?.isPublic && !this.isUserMentionConversation(c.message)),\n tags: task?.tags ?? [],\n };\n return subtask;\n });\n }\n\n private static isVisible(task: TaskInterface): boolean {\n return task?.tags?.includes(VISIBLE_TAG);\n }\n\n private static isUserMentionConversation(conversation: string): boolean {\n return conversation.includes('data-mention=');\n }\n\n private mapInboxConversation(conversation: CommentInterface): ConversationInterface {\n return {\n sendFrom: conversation.senderName,\n message: conversation.messageText,\n created: conversation.messageCreated,\n source: conversation.externalMessageId,\n isPublic: conversation.commentType === CommentType.COMMENT_TYPE_PUBLIC,\n } as ConversationInterface;\n }\n\n private searchTasks(searchRequest: SearchTaskRequestInterface): Observable {\n return this.taskManagerSdkService.search(new SearchTaskRequest(searchRequest)).pipe(\n expand((resp: SearchTaskResponseInterface) =>\n iif(\n () => resp.hasMore,\n this.taskManagerSdkService.search(new SearchTaskRequest({ ...searchRequest, cursor: resp.nextCursor })),\n EMPTY,\n ),\n ),\n scan((acc: TaskInterface[], curr: SearchTaskResponseInterface) => {\n if (curr?.tasks?.length > 0) {\n return acc.concat(curr.tasks);\n }\n return acc;\n }, []),\n );\n }\n\n private getProjectTrackerInfo(\n project: TaskInterface,\n conversations: ConversationInterface[],\n uploadingPersonaTypes: PersonaType[],\n smbVisibleOnly: boolean,\n excludeDeleted = true,\n ): Observable {\n return this.taskManagerSdkService\n .getTaskMulti({ identities: project.subtasks, excludeDeleted: excludeDeleted })\n .pipe(\n map((subtasks) => {\n const st = ProjectsAndSubtasksByProductsService.tasksToSubtasks(subtasks, uploadingPersonaTypes);\n if (smbVisibleOnly) {\n return st.filter((s) => ProjectsAndSubtasksByProductsService.isVisible(s));\n }\n return st;\n }),\n map((subtasks) => {\n return {\n projectTitle: project.title,\n projectIdentity: project.identity,\n projectConversations: conversations.sort((a, b) => b.created?.getTime() - a.created?.getTime()),\n projectStatus: project.status,\n subtasks: subtasks,\n } as ProjectTrackerInfo;\n }),\n );\n }\n\n private getProjectConversations(project: TaskInterface): Observable {\n return this.taskManagerSdkService\n .loadComments(\n new LoadCommentsRequest({\n identity: project.identity,\n projectionFilter: new CommentProjectionFilter({ retrievePrivate: false, retrieveSubtasks: true }),\n }),\n )\n .pipe(\n map((response) => response?.messages || []),\n map((conversations) => conversations?.map(this.mapInboxConversation)),\n );\n }\n\n private searchAllProjectsAndConvertToProjectTrackerInfo(\n searchRequest: SearchTaskRequestInterface,\n uploadingPersonaTypes: PersonaType[],\n ): Observable {\n const smbVisibleOnly = searchRequest.tags?.includes(VISIBLE_TAG);\n\n return this.searchTasks(searchRequest).pipe(\n map((projects) =>\n projects.map((p) =>\n this.getProjectConversations(p).pipe(\n take(1),\n switchMap((conversations) =>\n this.getProjectTrackerInfo(p, conversations, uploadingPersonaTypes, smbVisibleOnly),\n ),\n ),\n ),\n ),\n switchMap((projects) => forkJoin(projects)),\n shareReplay({ refCount: true, bufferSize: 1 }),\n );\n }\n\n lookupVisibleProjectsForAccountByOrderIds(\n partnerId: string,\n accountGroupId: string,\n orderIds: string[],\n uploadingPersonaTypes: PersonaType[],\n ): Observable {\n const searchRequest: SearchTaskRequestInterface = {\n namespace: `partner/${partnerId}/account-group/${accountGroupId}`,\n types: [PROJECT_TYPE],\n tags: [VISIBLE_TAG],\n metadata: new DomainKeyValue().set(ORDER_ID_METADATA_KEY, orderIds, KeyValueTypes.STRING).toKeyValue(),\n pageSize: PAGE_SIZE,\n };\n return this.searchAllProjectsAndConvertToProjectTrackerInfo(searchRequest, uploadingPersonaTypes);\n }\n\n lookupVisibleProjectForAccountByWorkOrderIds(\n partnerId: string,\n accountGroupId: string,\n workOrderIds: string[],\n uploadingPersonaTypes: PersonaType[],\n ): Observable {\n return this.lookupProjectsForAccountByWorkOrderIds(\n partnerId,\n accountGroupId,\n workOrderIds,\n false,\n uploadingPersonaTypes,\n );\n }\n\n lookupProjectsForAccountByWorkOrderIds(\n partnerId: string,\n accountGroupId: string,\n workOrderIds: string[],\n smbVisibleOnly: boolean,\n uploadingPersonaTypes: PersonaType[],\n ): Observable {\n const searchRequest: SearchTaskRequestInterface = {\n namespace: `partner/${partnerId}/account-group/${accountGroupId}`,\n types: [PROJECT_TYPE],\n metadata: new DomainKeyValue()\n .set(FULFILLMENT_ORDER_ID_METADATA_KEY, workOrderIds, KeyValueTypes.STRING)\n .toKeyValue(),\n pageSize: PAGE_SIZE,\n };\n if (smbVisibleOnly) {\n searchRequest.tags = [VISIBLE_TAG];\n }\n return this.searchAllProjectsAndConvertToProjectTrackerInfo(searchRequest, uploadingPersonaTypes);\n }\n\n featureFlags(partnerId: string): Observable {\n return this.featureFlagService.batchGetStatus(partnerId, '', FEATURE_FLAG_LIST).pipe(\n retry(2),\n catchError(() => {\n const flags: FeatureFlagStatusInterface = {};\n FEATURE_FLAG_LIST.forEach((f) => (flags[f] = false));\n return of(flags);\n }),\n shareReplay({ refCount: true, bufferSize: 1 }),\n );\n }\n}\n","import { Component, EventEmitter, Input, OnInit, Output } from '@angular/core';\nimport { TaskIdentityInterface } from '@vendasta/task';\nimport { Status } from '@vendasta/task-manager';\nimport { MILESTONE_COMPLETED } from '../shared/constants';\nimport { AskQuestionInfo, NonClickableSection, Subtask } from '../shared/interfaces';\n\n@Component({\n selector: 'project-tracker-simple',\n templateUrl: './simple-project-tracker.component.html',\n styleUrls: ['./simple-project-tracker.component.scss'],\n})\nexport class SimpleProjectTrackerComponent implements OnInit {\n @Input() projectTitle;\n @Input() projectIdentity: TaskIdentityInterface;\n\n #projectStatus: string;\n get projectStatus(): string {\n return this.#projectStatus;\n }\n\n @Input() set projectStatus(projectStatus: string | Status) {\n this.#projectStatus = projectStatus;\n this.badgeColor = this.badgeColorMap.get(projectStatus) || 'blue';\n }\n\n @Input() subtasks: Subtask[] = [];\n @Input() matElevationClass = 'mat-elevation-z0';\n @Input() hideAskQuestion = false;\n @Output() trackerOpened: EventEmitter = new EventEmitter();\n @Output() trackerClosed: EventEmitter = new EventEmitter();\n @Output() approveClicked: EventEmitter = new EventEmitter();\n @Output() provideFeedbackClicked: EventEmitter = new EventEmitter();\n @Output() sendFeedbackClicked: EventEmitter = new EventEmitter();\n @Output() nonClickableClicked: EventEmitter = new EventEmitter();\n @Output() askQuestionClicked: EventEmitter = new EventEmitter();\n projectProgress: string;\n badgeColor: string;\n badgeColorMap: Map = new Map([\n [Status.Open, 'blue'],\n [Status.InProgress, 'yellow'],\n [Status.WaitingOnCustomer, 'red'],\n [Status.Completed, 'green'],\n ]);\n\n ngOnInit(): void {\n const completed: number = this.subtasks?.filter((subtask) => subtask.status === MILESTONE_COMPLETED)?.length || 0;\n const total: number = this.subtasks?.length || 0;\n this.projectProgress = `${completed}/${total}`;\n }\n\n handleAskQuestionClicked(): void {\n this.askQuestionClicked.emit({\n projectIdentity: this.projectIdentity,\n subtasks: this.subtasks,\n });\n }\n\n handleOpened(): void {\n this.trackerOpened.emit();\n }\n\n handleClosed(): void {\n this.trackerClosed.emit();\n }\n\n handleApproveClicked(): void {\n this.approveClicked.emit();\n }\n\n handleProvideFeedbackClicked(): void {\n this.provideFeedbackClicked.emit();\n }\n\n handleSendFeedbackClicked(): void {\n this.sendFeedbackClicked.emit();\n }\n\n handleNonClickableClicked(event: NonClickableSection): void {\n this.nonClickableClicked.emit(event);\n }\n}\n","
\n \n \n
\n
{{ projectTitle }}
\n
\n \n {{ projectStatus }}\n \n
\n
\n {{ 'PROJECT_TRACKER.TASKS_COMPLETED' | translate : { numberTasks: projectProgress } }}\n
\n
\n
\n\n
\n
\n chat_bubble_outline\n {{ 'PROJECT_TRACKER.ASK_A_QUESTION' | translate }}\n
\n
\n\n \n
\n
\n","import { CommonModule } from '@angular/common';\nimport { NgModule } from '@angular/core';\nimport { ReactiveFormsModule } from '@angular/forms';\nimport { MatButtonModule } from '@angular/material/button';\nimport { MatCardModule } from '@angular/material/card';\nimport { MatCheckboxModule } from '@angular/material/checkbox';\nimport { MatDialogModule } from '@angular/material/dialog';\nimport { MatDividerModule } from '@angular/material/divider';\nimport { MatExpansionModule } from '@angular/material/expansion';\nimport { MatIconModule } from '@angular/material/icon';\nimport { MatInputModule } from '@angular/material/input';\nimport { MatProgressBarModule } from '@angular/material/progress-bar';\nimport { MatProgressSpinnerModule } from '@angular/material/progress-spinner';\nimport { MatSidenavModule } from '@angular/material/sidenav';\nimport { MatSlideToggleModule } from '@angular/material/slide-toggle';\nimport { LexiconModule } from '@galaxy/lexicon';\nimport { TranslateModule } from '@ngx-translate/core';\nimport { VaFormsModule } from '@vendasta/forms';\nimport { GalaxyAvatarModule } from '@vendasta/galaxy/avatar';\nimport { GalaxyBadgeModule } from '@vendasta/galaxy/badge';\nimport { GalaxyCommentModule } from '@vendasta/galaxy/comment';\nimport { GalaxyPageModule } from '@vendasta/galaxy/page';\nimport { GalaxyTooltipModule } from '@vendasta/galaxy/tooltip';\nimport { MarkdownModule } from 'ngx-markdown';\nimport { AskQuestionDialogComponent } from './ask-question-dialog/ask-question-dialog.component';\nimport { CharacterCountPipe } from './ask-question-dialog/character-count.pipe';\nimport baseTranslation from './assets/i18n/en_devel.json';\nimport { FulfillmentTrackerComponent } from './fulfillment-tracker/fulfillment-tracker.component';\nimport { FulfillmentSubtasksComponent } from './fulfillment-tracker/subtasks/fulfillment-subtasks.component';\nimport { ProjectCommentsComponent } from './project-comments/project-comments.component';\nimport { ProjectCommentsInputDirective } from './project-comments/project-comments.directives';\nimport { ProjectTrackerCommentsComponent } from './project-tracker-comments/project-tracker-comments.component';\nimport { ProjectTrackerSidenavContainerComponent } from './project-tracker-sidenav-container.component';\n\nimport { ProjectTrackerComponent } from './project-tracker.component';\nimport { CumulativeProgressBarComponent } from './shared/cumulative-progress-bar/cumulative-progress-bar.component';\nimport { HydrateNamePipe } from './shared/pipes/hydrate-name.pipe';\nimport { NameInitialsPipe } from './shared/pipes/name-initials.pipe';\nimport { ProjectsAndSubtasksByProductsService } from './shared/services/projects-and-subtasks-by-products.service';\nimport { TrackerSubtasksComponent } from './shared/tracker-subtasks/tracker-subtasks.component';\nimport { SimpleProjectTrackerComponent } from './simple-project-tracker/simple-project-tracker.component';\nimport { GalaxyFormFieldModule } from '@vendasta/galaxy/form-field';\nimport { GalaxyUploaderModule } from '@vendasta/galaxy/uploader';\nimport { MatListModule } from '@angular/material/list';\nimport { GalaxyLoadingSpinnerModule } from '@vendasta/galaxy/loading-spinner';\nimport { SubtasksUploaderComponent } from './fulfillment-tracker/subtasks/subtasks-uploader/subtasks-uploader.component';\nimport { GalaxyButtonLoadingIndicatorModule } from '@vendasta/galaxy/button-loading-indicator';\nimport {\n CanDeleteFilePipe,\n FilterAndSortFulfillmentFiles,\n UploadedByPipe,\n} from './fulfillment-tracker/subtasks/fulfillment-subtasks.pipes';\n\n@NgModule({\n declarations: [\n ProjectTrackerComponent,\n AskQuestionDialogComponent,\n CharacterCountPipe,\n TrackerSubtasksComponent,\n SimpleProjectTrackerComponent,\n CumulativeProgressBarComponent,\n ProjectTrackerSidenavContainerComponent,\n ProjectTrackerCommentsComponent,\n ProjectCommentsComponent,\n HydrateNamePipe,\n NameInitialsPipe,\n ProjectCommentsInputDirective,\n FulfillmentTrackerComponent,\n FulfillmentSubtasksComponent,\n ],\n exports: [\n ProjectTrackerComponent,\n AskQuestionDialogComponent,\n SimpleProjectTrackerComponent,\n CumulativeProgressBarComponent,\n ProjectTrackerSidenavContainerComponent,\n ProjectTrackerCommentsComponent,\n ProjectCommentsComponent,\n ProjectCommentsInputDirective,\n FulfillmentTrackerComponent,\n ],\n providers: [ProjectsAndSubtasksByProductsService],\n imports: [\n CommonModule,\n MatCardModule,\n MatExpansionModule,\n MatIconModule,\n MatProgressBarModule,\n MarkdownModule.forRoot(),\n MatButtonModule,\n MatInputModule,\n VaFormsModule,\n ReactiveFormsModule,\n MatDialogModule,\n MatDividerModule,\n MatProgressSpinnerModule,\n MatSidenavModule,\n MatSlideToggleModule,\n TranslateModule,\n LexiconModule.forChild({\n componentName: 'common/project-tracker',\n baseTranslation: baseTranslation,\n }),\n GalaxyPageModule,\n GalaxyTooltipModule,\n GalaxyCommentModule,\n GalaxyBadgeModule,\n MatCheckboxModule,\n GalaxyAvatarModule,\n GalaxyFormFieldModule,\n GalaxyUploaderModule,\n MatListModule,\n GalaxyLoadingSpinnerModule,\n SubtasksUploaderComponent,\n GalaxyButtonLoadingIndicatorModule,\n UploadedByPipe,\n CanDeleteFilePipe,\n FilterAndSortFulfillmentFiles,\n ],\n})\nexport class ProjectTrackerModule {}\n","import { UntypedFormGroup } from '@angular/forms';\nimport { AccountGroupLocation } from '@vendasta/account-group';\nimport { GlobalParticipantType } from '@vendasta/conversation';\nimport {\n AttachmentInterface as TaskAttachmentInterface,\n ConversationInterface,\n Status,\n TaskIdentityInterface,\n} from '@vendasta/task';\nimport { PersonaType as IamPersonaType } from '@vendasta/iam';\nimport { CommentInterface, PersonaType, UserInfoInterface } from '@vendasta/task-manager';\nimport { Observable } from 'rxjs';\n\nexport interface Subtask {\n title?: string;\n dueDate?: Date;\n completionDate?: Date;\n status?: string;\n notes?: string;\n feedbackEnabled?: boolean;\n partnerId?: string;\n accountGroupId?: string;\n subtaskId?: string;\n files?: AttachmentInterface[];\n /** @deprecated use conversations field instead */\n feedback?: string[];\n approved?: boolean;\n showFeedback?: boolean;\n form?: UntypedFormGroup;\n conversations?: ConversationInterface[];\n tags?: string[];\n}\n\nexport interface AttachmentInterface extends TaskAttachmentInterface {\n name?: string;\n url?: string;\n contentType?: string;\n}\n\nexport interface AttachedFile extends File {\n url: string;\n contentType: string;\n}\n\nexport interface ProjectTrackerInfo {\n projectTitle: string;\n projectIdentity: TaskIdentityInterface;\n projectConversations: ConversationInterface[];\n projectStatus?: string | Status;\n subtasks: Subtask[];\n}\n\nexport type NonClickableSection =\n | 'taskNumber'\n | 'taskTitle'\n | 'taskDueDate'\n | 'taskNotes'\n | 'taskFeedback'\n | 'taskAttachments';\n\nexport interface AskQuestionInfo {\n projectIdentity: TaskIdentityInterface;\n subtasks: Subtask[];\n}\n\nexport interface ExtendedConversationInterface extends ConversationInterface {\n taskTitle?: string;\n senderImageUrl?: ExtendedCommentInterface['senderImageUrl'];\n}\n\nexport interface ExtendedCommentInterface extends CommentInterface {\n taskTitle?: string;\n}\n\nexport interface ProjectTrackerUserDetails {\n userId: string;\n personaType?: PersonaType | IamPersonaType;\n userInfo?: UserInfoInterface;\n profilePictureUrl?: string;\n}\n\nexport interface AddCommentEvent {\n message: string;\n isPublic: boolean;\n}\n\nexport interface ProductInfo {\n icon?: string;\n banner?: string;\n name?: string;\n}\n\nexport interface OrganizationInfoInterface {\n id: string;\n name: Observable;\n type: string;\n address?: AccountGroupLocation;\n}\n\nexport interface ProjectOrganizationsInterface {\n projectId: string;\n organizationList: OrganizationInfoInterface[];\n}\n\nexport enum OrganizationType {\n ACCOUNT_GROUP = 'account-group',\n PARTNER = 'partner',\n VENDOR = 'vendor',\n}\n\nexport function adapterOrganizationType(organizationType: OrganizationType): GlobalParticipantType {\n switch (organizationType) {\n case OrganizationType.ACCOUNT_GROUP: {\n return GlobalParticipantType.GLOBAL_PARTICIPANT_TYPE_ACCOUNT_GROUP;\n }\n case OrganizationType.PARTNER: {\n return GlobalParticipantType.GLOBAL_PARTICIPANT_TYPE_PARTNER;\n }\n case OrganizationType.VENDOR: {\n return GlobalParticipantType.GLOBAL_PARTICIPANT_TYPE_VENDOR;\n }\n default: {\n return GlobalParticipantType.GLOBAL_PARTICIPANT_TYPE_UNDEFINED;\n }\n }\n}\n","import { Injectable } from '@angular/core';\nimport { AccountGroup } from '@galaxy/account-group';\nimport { InboxNavigationService } from '@galaxy/conversation/core';\nimport { BrandingV2Interface, BrandingV2Service } from '@galaxy/partner';\nimport { ConversationChannel, GlobalParticipantType, SubjectParticipant } from '@vendasta/conversation';\nimport { TaskInterface } from '@vendasta/task';\nimport { Observable, of } from 'rxjs';\nimport { catchError, map, shareReplay, take } from 'rxjs/operators';\nimport { OrganizationInfoInterface, OrganizationType, adapterOrganizationType } from '../shared/interfaces';\n\n@Injectable()\nexport class SendMessageDialogService {\n constructor(private brandingService: BrandingV2Service, private inboxNav: InboxNavigationService) {}\n\n redirectToConversation(\n partnerId: string,\n recipientOrganizationId: string,\n organizationType: OrganizationType,\n prefilledMessage?: string,\n ): void {\n this.inboxNav.gotoConversationChannel(\n [\n new SubjectParticipant({\n internalParticipantId: partnerId,\n participantType: GlobalParticipantType.GLOBAL_PARTICIPANT_TYPE_PARTNER,\n }),\n new SubjectParticipant({\n internalParticipantId: recipientOrganizationId,\n participantType: adapterOrganizationType(organizationType),\n }),\n ],\n ConversationChannel.CONVERSATION_CHANNEL_INTERNAL,\n prefilledMessage,\n );\n }\n\n buildProjectOrganizations(\n project: TaskInterface,\n currentPartnerId: string,\n accountGroupInfo: AccountGroup,\n ): OrganizationInfoInterface[] {\n const accountGroupOrg = [\n {\n id: accountGroupInfo?.accountGroupId,\n name: of(accountGroupInfo?.napData?.companyName),\n type: OrganizationType.ACCOUNT_GROUP,\n address: accountGroupInfo?.napData,\n } as OrganizationInfoInterface,\n ];\n const partnerOrgs = this.getPartnerVendorInfo(\n project,\n currentPartnerId,\n OrganizationType.PARTNER,\n OrganizationType.PARTNER,\n );\n const vendorOrgs = this.getPartnerVendorInfo(\n project,\n currentPartnerId,\n 'FulfillingPartnerId',\n OrganizationType.VENDOR,\n );\n return [...accountGroupOrg, ...partnerOrgs, ...vendorOrgs];\n }\n\n private getPartnerVendorInfo(\n project: TaskInterface,\n currentPartnerId: string,\n keyValueType: string,\n organizationType: OrganizationType,\n ): OrganizationInfoInterface[] {\n const organizations: OrganizationInfoInterface[] = [];\n project?.metadata?.keyValues?.forEach((data) => {\n if (data?.key === keyValueType && data?.values[0]?.stringValue !== currentPartnerId) {\n const organizationInfo = {\n id: data?.values[0]?.stringValue,\n type: organizationType,\n name: this.getPartnerName(data?.values[0]?.stringValue),\n } as OrganizationInfoInterface;\n organizations.push(organizationInfo);\n }\n });\n return organizations;\n }\n\n private getPartnerName(partnerId: string): Observable {\n return this.brandingService.getBranding(partnerId).pipe(\n take(1),\n shareReplay(1),\n catchError(() => {\n return of({} as BrandingV2Interface);\n }),\n map((branding) => branding?.name ?? ''),\n );\n }\n}\n","import { Component, Inject, OnInit } from '@angular/core';\nimport { MAT_DIALOG_DATA, MatDialogRef } from '@angular/material/dialog';\nimport { MatRadioChange } from '@angular/material/radio';\nimport { AccountGroup } from '@galaxy/account-group';\nimport { BadgeColor } from '@vendasta/galaxy/badge/src/badge.component';\nimport { TaskInterface } from '@vendasta/task';\nimport { forkJoin, Observable, ReplaySubject } from 'rxjs';\nimport { take } from 'rxjs/operators';\nimport { OrganizationInfoInterface, OrganizationType } from '../shared/interfaces';\nimport { SendMessageDialogService } from './send-message-dialog.service';\n\nexport interface ConversationBadge {\n participantType: string;\n badgeColor: BadgeColor;\n}\n\nexport interface DialogData {\n partnerId: string;\n accountGroupInfo: AccountGroup;\n project: TaskInterface;\n prefilledMessage?: string;\n}\n\n@Component({\n selector: 'project-tracker-send-message-dialog',\n templateUrl: './send-message-dialog.component.html',\n styleUrls: ['./send-message-dialog.component.scss'],\n})\nexport class SendMessageDialogComponent implements OnInit {\n private loading$$: ReplaySubject = new ReplaySubject(1);\n\n loading$: Observable = this.loading$$.asObservable();\n organizations: OrganizationInfoInterface[];\n selectedOrg: OrganizationInfoInterface;\n defaultSelection = false;\n\n constructor(\n private sendMsgDialogService: SendMessageDialogService,\n public dialogRef: MatDialogRef,\n @Inject(MAT_DIALOG_DATA) public data: DialogData,\n ) {}\n\n ngOnInit(): void {\n this.loading$$.next(true);\n this.organizations = this.buildProjectOrganizations(\n this.data?.project,\n this.data?.partnerId,\n this.data?.accountGroupInfo,\n );\n if (this.organizations?.length < 2) {\n this.defaultSelection = true;\n this.selectedOrg = this.organizations[0];\n }\n forkJoin(this.organizations.map((org) => org.name))\n .pipe(take(1))\n .subscribe(() => {\n this.loading$$.next(false);\n });\n }\n\n close(): void {\n this.dialogRef.close();\n }\n\n selectOrg(event: MatRadioChange): void {\n this.selectedOrg = this.organizations.find((organization) => organization.id === event.value);\n }\n\n sendMessage(): void {\n this.dialogRef.close(this.selectedOrg);\n }\n\n getConversationBadge(organization: any): ConversationBadge {\n switch (organization.type) {\n case OrganizationType.VENDOR:\n return organization.deleted\n ? { participantType: 'SEND_MESSAGE_DIALOG.LABELS.INACTIVE', badgeColor: 'grey' }\n : { participantType: 'SEND_MESSAGE_DIALOG.LABELS.VENDOR', badgeColor: 'purple' };\n case OrganizationType.ACCOUNT_GROUP:\n return organization.deleted\n ? { participantType: 'SEND_MESSAGE_DIALOG.LABELS.ACCOUNT_DELETED', badgeColor: 'grey' }\n : { participantType: 'SEND_MESSAGE_DIALOG.LABELS.ACCOUNT', badgeColor: 'blue' };\n case OrganizationType.PARTNER:\n return organization.deleted\n ? { participantType: 'SEND_MESSAGE_DIALOG.LABELS.INACTIVE', badgeColor: 'grey' }\n : { participantType: 'SEND_MESSAGE_DIALOG.LABELS.PARTNER', badgeColor: 'green' };\n }\n }\n\n private buildProjectOrganizations(\n project: TaskInterface,\n currentPartnerId: string,\n accountGroupInfo: AccountGroup,\n ): OrganizationInfoInterface[] {\n return this.sendMsgDialogService.buildProjectOrganizations(project, currentPartnerId, accountGroupInfo);\n }\n}\n","

{{ 'SEND_MESSAGE_DIALOG.CHOOSE_RECIPIENT' | translate }}

\n\n \n \n \n\n\n \n \n \n \n\n\n\n \n \n \n
\n \n {{ organization.name | async }}\n \n {{ organization.address | glxyAddress }}\n \n \n
\n {{ badge.participantType | translate }}\n
\n
\n
\n
\n
\n
\n","import { CommonModule } from '@angular/common';\nimport { NgModule } from '@angular/core';\nimport { TranslateModule } from '@ngx-translate/core';\nimport { GalaxyBadgeModule } from '@vendasta/galaxy/badge';\nimport { GalaxyLoadingSpinnerModule } from '@vendasta/galaxy/loading-spinner';\nimport { MatButtonModule } from '@angular/material/button';\nimport { GalaxyPipesModule } from '@vendasta/galaxy/pipes';\nimport { MatDialogModule } from '@angular/material/dialog';\nimport { MatRadioModule } from '@angular/material/radio';\nimport { GalaxyFormFieldModule } from '@vendasta/galaxy/form-field';\nimport { SendMessageDialogComponent } from './send-message-dialog.component';\nimport { SendMessageDialogService } from './send-message-dialog.service';\nimport { RouterModule } from '@angular/router';\n\n@NgModule({\n declarations: [SendMessageDialogComponent],\n imports: [\n CommonModule,\n TranslateModule,\n GalaxyBadgeModule,\n GalaxyLoadingSpinnerModule,\n MatButtonModule,\n GalaxyPipesModule,\n MatDialogModule,\n MatRadioModule,\n GalaxyFormFieldModule,\n RouterModule,\n ],\n providers: [SendMessageDialogComponent, SendMessageDialogService],\n})\nexport class SendMessageDialogModule {}\n","import { Injectable } from '@angular/core';\nimport { Router } from '@angular/router';\nimport { AccountGroup, AccountGroupService, ProjectionFilter } from '@galaxy/account-group';\nimport { ProductAnalyticsService } from '@vendasta/product-analytics';\nimport { DomainKeyValue, KeyValueTypes, SortDirection, TaskInterface, TaskSdkService } from '@vendasta/task';\nimport {\n GroupedMetadata,\n KeyValues,\n SearchTaskRequest,\n SearchTaskResponse,\n SortInterface,\n TaskManagerApiService,\n} from '@vendasta/task-manager';\nimport { BehaviorSubject, Observable, of } from 'rxjs';\nimport { catchError, map, tap } from 'rxjs/operators';\nimport { SendMessageDialogService } from '../send-message-dialog/send-message-dialog.service';\nimport {\n ACCESS,\n ACCOUNT_GROUP,\n DEFAULT_PAGE_SIZE,\n FULFILLING_PARTNER_ID,\n PARTNER,\n TaskStatus,\n TaskType,\n} from '../shared/constants';\nimport { OrganizationType } from '../shared/interfaces';\nimport { validateSorts } from '../shared/utils';\n\n@Injectable()\nexport class ProjectListCardService {\n private loadingProjects$$: BehaviorSubject = new BehaviorSubject(true);\n public readonly loadingProjects$: Observable = this.loadingProjects$$.asObservable();\n\n constructor(\n private taskManagerService: TaskManagerApiService,\n private accountGroupService: AccountGroupService,\n private router: Router,\n private readonly analyticsService: ProductAnalyticsService,\n private readonly sendMsgDialogService: SendMessageDialogService,\n ) {}\n\n getAccountGroupInfo(accountGroupId: string): Observable {\n return this.accountGroupService.get(accountGroupId, new ProjectionFilter({ napData: true })).pipe(\n catchError(() => {\n return of({} as AccountGroup);\n }),\n );\n }\n\n getAllProjects(\n partnerId: string,\n accountGroupId: string,\n pageSize?: number,\n vendorTasks?: boolean,\n taskStatus?: TaskStatus[],\n ): Observable {\n return this.searchTasks(\n partnerId,\n accountGroupId,\n taskStatus,\n [TaskType.PROJECT],\n false,\n pageSize ?? DEFAULT_PAGE_SIZE,\n [{ field: 'due_date', direction: SortDirection.SORT_DIRECTION_ASCENDING }],\n vendorTasks,\n vendorTasks,\n ).pipe(\n map((response) => response?.tasks ?? []),\n catchError((err) => {\n this.loadingProjects$$.next(false);\n throw err;\n }),\n tap(() => this.loadingProjects$$.next(false)),\n );\n }\n\n private searchTasks(\n partnerId: string,\n accountGroupId?: string,\n statuses?: string[],\n types?: string[],\n deletedOnly?: boolean,\n pageSize: number = DEFAULT_PAGE_SIZE,\n sorts?: SortInterface[],\n includeVendorTasks?: boolean,\n vendorSpecificTasks?: boolean,\n ): Observable {\n const extendedSorts: SortInterface[] = [{ field: 'due_date', direction: SortDirection.SORT_DIRECTION_ASCENDING }];\n extendedSorts.push({ field: 'title.raw', direction: SortDirection.SORT_DIRECTION_ASCENDING });\n if (sorts && sorts.length > 0) {\n extendedSorts.unshift(...sorts);\n }\n const validSorts = validateSorts(extendedSorts);\n\n const request: SearchTaskRequest = new SearchTaskRequest({\n pageSize: pageSize,\n status: statuses,\n access: ACCESS,\n excludeHistory: true,\n types: types,\n sorts: validSorts,\n deletedOnly: deletedOnly,\n });\n if (accountGroupId) {\n request.namespace = TaskSdkService.buildAccountGroupNamespace(partnerId, accountGroupId);\n } else {\n request.metadata = new KeyValues(\n new DomainKeyValue().set(PARTNER, [partnerId], KeyValueTypes.STRING).toKeyValue(),\n );\n }\n if (includeVendorTasks) {\n let metaGroups: KeyValues[];\n if (vendorSpecificTasks) {\n request.namespace = null;\n metaGroups = [\n new KeyValues(\n new DomainKeyValue()\n .set(FULFILLING_PARTNER_ID, [partnerId], KeyValueTypes.STRING)\n .set(ACCOUNT_GROUP, [accountGroupId], KeyValueTypes.STRING)\n .toKeyValue(),\n ),\n ];\n } else {\n metaGroups = [\n // When searching on FulfillingPartnerId the partner needs to be included since not all tasks have FulfillingPartnerId set\n new KeyValues(new DomainKeyValue().set(PARTNER, [partnerId], KeyValueTypes.STRING).toKeyValue()),\n new KeyValues(\n new DomainKeyValue().set(FULFILLING_PARTNER_ID, [partnerId], KeyValueTypes.STRING).toKeyValue(),\n ),\n ];\n }\n request.metadata = null;\n request.metadataGroups = new GroupedMetadata({\n metadataGroup: metaGroups,\n });\n }\n\n return this.taskManagerService.search(request);\n }\n\n goToProjectDetail(project: TaskInterface) {\n const taskId = project?.identity?.taskId;\n const agid = project?.metadata?.keyValues?.find((data) => data.key === 'account-group')?.values[0]?.stringValue;\n const url = this.buildProjectDetailUrl(agid, taskId);\n this.router.navigateByUrl(url);\n }\n\n private buildProjectDetailUrl(agid: string, projectId: string): string {\n //Partner Center usecase\n return 'task-manager/reporting/accounts/' + agid + '/projects/' + projectId;\n }\n\n goToAccountProjectList(agid: string, companyName: string): void {\n const url = 'task-manager/reporting';\n const queryParams = { 'project-report': JSON.stringify({ account: { accountGroupId: agid, name: companyName } }) };\n this.router.navigate([url], {\n queryParams: queryParams,\n });\n }\n\n redirectToConversation(\n partnerId: string,\n recipientOrganizationId: string,\n organizationType: OrganizationType,\n prefilledMessage?: string,\n ): void {\n this.sendMsgDialogService.redirectToConversation(\n partnerId,\n recipientOrganizationId,\n organizationType,\n prefilledMessage,\n );\n }\n}\n","import { Pipe, PipeTransform } from '@angular/core';\nimport { TranslateService } from '@ngx-translate/core';\nimport { differenceInCalendarDays, differenceInHours, isBefore } from 'date-fns';\n\nexport interface OverdueContent {\n days: number;\n text: string;\n dueState: DueState;\n}\n\nexport enum DueState {\n Soon = 'soon',\n Overdue = 'overdue',\n Future = 'future',\n}\n/*\n * Generate overdue text content\n * Takes a date and boolean for tooltip content and checks if the date is overdue.\n * Usage:\n * value | overdue:true\n * Example:\n * {{ Date | overdue:false }}\n * formats to: (overdue)\n * {{ Date | overdue:true }}\n * formats to: 3 days overdue\n */\n@Pipe({ name: 'overdue' })\nexport class OverduePipe implements PipeTransform {\n constructor(public translateService: TranslateService) {}\n transform(date: Date, toolTip: boolean): string {\n const content = this.getOverdueContent(date);\n let dueResult = '';\n if (content.dueState === DueState.Overdue) {\n dueResult = this.translateService.instant('COMMON.DUE.OVERDUE');\n } else if (content.dueState === DueState.Soon) {\n dueResult = this.translateService.instant('COMMON.DUE.DUE_SOON');\n }\n if (toolTip) {\n dueResult = content.text;\n }\n return dueResult;\n }\n\n /**\n * Calculate overdue days\n * @param dueDate Date object\n * @returns OverdueContent {days: 12, text:'12 days overdue', dueState: DueState}\n */\n getOverdueContent(dueDate: Date): OverdueContent {\n const today = new Date();\n let overdueText = '';\n let dueState: DueState;\n // Only calculate pure calendar day difference.\n const dueDays = Math.abs(differenceInCalendarDays(today, dueDate));\n\n if (isBefore(dueDate, today)) {\n if (dueDays === 0) {\n overdueText = this.translateService.instant('COMMON.DUE.HOURS_OVERDUE', {\n hours: Math.abs(differenceInHours(dueDate, today)),\n });\n } else {\n const overdueKey = dueDays !== 1 ? 'COMMON.DUE.DAYS_OVERDUE' : 'COMMON.DUE.DAY_OVERDUE';\n overdueText = this.translateService.instant(overdueKey, { days: dueDays });\n }\n dueState = DueState.Overdue;\n } else {\n //Not yet due.\n if (dueDays === 0) {\n overdueText = this.translateService.instant('COMMON.DUE.DUE_TODAY');\n dueState = DueState.Soon;\n } else if (dueDays === 1) {\n overdueText = this.translateService.instant('COMMON.DUE.DUE_TOMORROW');\n dueState = DueState.Soon;\n } else {\n overdueText = this.translateService.instant('COMMON.DUE.DUE_IN', { days: dueDays });\n dueState = DueState.Future;\n }\n }\n\n return { days: dueDays, text: overdueText, dueState: dueState };\n }\n}\n","import { Pipe, PipeTransform } from '@angular/core';\nimport { TranslateService } from '@ngx-translate/core';\nimport { TaskStatus } from '../../shared/constants';\n\n/*\n * Generate project Status Translated text content\n * Usage:\n * value | projectStatus\n * Example:\n * {{ project.Status | projectStatus }}\n */\n@Pipe({ name: 'projectStatus' })\nexport class ProjectStatusPipe implements PipeTransform {\n constructor(public translateService: TranslateService) {}\n transform(projectStatus: string): string {\n let textResult = '';\n switch (projectStatus) {\n case TaskStatus.OPEN:\n textResult = this.translateService.instant('COMMON.STATUS.OPEN');\n break;\n case TaskStatus.IN_PROGRESS:\n textResult = this.translateService.instant('COMMON.STATUS.IN_PROGRESS');\n break;\n case TaskStatus.WAITING_ON_CUSTOMER:\n textResult = this.translateService.instant('COMMON.STATUS.WAITING_ON_CUSTOMER');\n break;\n case TaskStatus.COMPLETED:\n textResult = this.translateService.instant('COMMON.STATUS.COMPLETED');\n break;\n default:\n textResult = projectStatus;\n break;\n }\n return textResult;\n }\n}\n","import { ChangeDetectionStrategy, Component, Input, OnInit } from '@angular/core';\nimport { TaskInterface } from '@vendasta/task';\nimport { firstValueFrom, forkJoin, Observable, of, ReplaySubject } from 'rxjs';\nimport { map, mergeMap, shareReplay, take, tap } from 'rxjs/operators';\nimport { ProjectListCardService } from './project-list-card.service';\nimport { PROJECTS_ICON_GREEN, TaskStatus } from '../shared/constants';\nimport { AccountGroup } from '@galaxy/account-group';\nimport { BadgeColor } from '@vendasta/galaxy/badge/src/badge.component';\nimport { SendMessageDialogComponent } from '../send-message-dialog/send-message-dialog.component';\nimport { MatDialog } from '@angular/material/dialog';\nimport { TranslateService } from '@ngx-translate/core';\n\n@Component({\n selector: 'project-tracker-list-card',\n templateUrl: './project-list-card.component.html',\n styleUrls: ['./project-list-card.component.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class ProjectListCardComponent implements OnInit {\n @Input() vendorTasks = false;\n @Input() accountGroupId: string;\n @Input() partnerId: string;\n @Input() pageSize = 4;\n\n projects$: Observable;\n loadingProjects$: Observable = this.projectListCardService.loadingProjects$;\n isEmptyState$$: ReplaySubject = new ReplaySubject(1);\n isEmptyState$ = this.isEmptyState$$.asObservable();\n showViewAll$: Observable;\n accountGroupInfo$$: ReplaySubject = new ReplaySubject(1);\n accountGroupInfo$ = this.accountGroupInfo$$.asObservable();\n\n projectsIconGreen = PROJECTS_ICON_GREEN;\n ProjectStatusOrder: Map = new Map([\n [TaskStatus.OPEN, 0],\n [TaskStatus.IN_PROGRESS, 1],\n [TaskStatus.WAITING_ON_CUSTOMER, 2],\n [TaskStatus.COMPLETED, 3],\n ]);\n\n status = TaskStatus;\n\n constructor(\n private projectListCardService: ProjectListCardService,\n private dialog: MatDialog,\n private readonly translateService: TranslateService,\n ) {}\n\n ngOnInit(): void {\n const projectsList$ = this.projectListCardService.getAllProjects(\n this.partnerId,\n this.accountGroupId,\n this.pageSize,\n this.vendorTasks,\n [TaskStatus.IN_PROGRESS, TaskStatus.OPEN, TaskStatus.WAITING_ON_CUSTOMER],\n );\n\n this.projects$ = projectsList$.pipe(\n mergeMap((projects) => {\n if (projects.length >= this.pageSize) {\n return of(projects);\n }\n\n return forkJoin([\n of(projects),\n this.projectListCardService.getAllProjects(\n this.partnerId,\n this.accountGroupId,\n this.pageSize - projects.length,\n this.vendorTasks,\n [TaskStatus.COMPLETED],\n ),\n ]).pipe(map(([inProgressProjects, completedProjects]) => inProgressProjects.concat(completedProjects)));\n }),\n map((projects: TaskInterface[]) =>\n projects.sort((a, b) => (this.ProjectStatusOrder[a.status] < this.ProjectStatusOrder[b.status] ? -1 : 1)),\n ),\n shareReplay(1),\n );\n\n this.projectListCardService\n .getAccountGroupInfo(this.accountGroupId)\n .pipe(\n take(1),\n tap((agInfo) =>\n agInfo ? this.accountGroupInfo$$.next(agInfo) : this.accountGroupInfo$$.next({} as AccountGroup),\n ),\n )\n .subscribe();\n this.showViewAll$ = this.projects$.pipe(\n take(1),\n map((projects) => projects?.length > 0),\n );\n this.projects$\n .pipe(\n take(1),\n tap((projects) => (projects?.length === 0 ? this.isEmptyState$$.next(true) : this.isEmptyState$$.next(false))),\n )\n .subscribe();\n }\n\n goToProjectDetail(project: TaskInterface): void {\n this.projectListCardService.goToProjectDetail(project);\n }\n\n goToAccountProjectList(): void {\n this.accountGroupInfo$\n .pipe(take(1))\n .subscribe((agInfo) =>\n this.projectListCardService.goToAccountProjectList(agInfo?.accountGroupId, agInfo?.napData?.companyName),\n );\n }\n\n getStatusBadgeColor(status: string): BadgeColor {\n switch (status) {\n case TaskStatus.IN_PROGRESS:\n case TaskStatus.OPEN: {\n return 'blue';\n }\n case TaskStatus.WAITING_ON_CUSTOMER: {\n return 'yellow';\n }\n case TaskStatus.COMPLETED: {\n return 'green';\n }\n }\n }\n\n async sendMessage(project: TaskInterface): Promise {\n const accountGroupInfo = await firstValueFrom(this.accountGroupInfo$);\n this.dialog\n .open(SendMessageDialogComponent, {\n width: '500px',\n data: {\n partnerId: this.partnerId,\n accountGroupInfo: accountGroupInfo,\n project: project,\n },\n autoFocus: false,\n })\n .afterClosed()\n .pipe(take(1))\n .subscribe((recipientOrganization) => {\n if (recipientOrganization?.id) {\n const message = this.translateService.instant('PROJECT_LIST_CARD.INBOX_PREFILLED_MESSAGE', {\n companyName: accountGroupInfo.napData.companyName,\n taskId: project.identity?.taskId,\n title: project.title,\n taskType: project.taskType,\n accountGroupId: accountGroupInfo.accountGroupId,\n });\n\n this.projectListCardService.redirectToConversation(\n this.partnerId,\n recipientOrganization.id,\n recipientOrganization.type,\n message,\n );\n }\n });\n }\n}\n","\n \n \n {{ 'PROJECT_LIST_CARD.TITLE' | translate }}\n \n \n \n \n \n \n \n checklist\n \n

{{ 'PROJECT_LIST_CARD.NO_PROJECTS' | translate }}

\n
\n
\n
\n \n {{ 'PROJECT_LIST_CARD.VIEW_ALL' | translate }}\n \n
\n\n\n \n \n
\n \n
\n
\n \n {{ project.title }}\n \n
\n {{ 'PROJECT_LIST_CARD.DUE_DATE' | translate : { dueDate: project.dueDate | glxyDate } }}\n
\n
\n {{\n 'PROJECT_LIST_CARD.COMPLETED_DATE' | translate : { completedDate: project.completionDate | glxyDate }\n }}\n
\n
\n
\n \n {{ project.status | projectStatus }}\n \n \n \n {{ project.dueDate | overdue : false }}\n \n \n \n question_answer\n \n
\n
\n
\n
\n
\n \n
\n","import { CommonModule } from '@angular/common';\nimport { NgModule } from '@angular/core';\nimport { MatCardModule } from '@angular/material/card';\nimport { MatChipsModule } from '@angular/material/chips';\nimport { MatDividerModule } from '@angular/material/divider';\nimport { MatIconModule } from '@angular/material/icon';\nimport { RouterModule } from '@angular/router';\nimport { TranslateModule } from '@ngx-translate/core';\nimport { GalaxyAvatarModule } from '@vendasta/galaxy/avatar';\nimport { GalaxyBadgeModule } from '@vendasta/galaxy/badge';\nimport { ProjectListCardComponent } from './project-list-card.component';\nimport { ProjectListCardService } from './project-list-card.service';\nimport { MatProgressSpinnerModule } from '@angular/material/progress-spinner';\nimport { GalaxyLoadingSpinnerModule } from '@vendasta/galaxy/loading-spinner';\nimport { GalaxyEmptyStateModule } from '@vendasta/galaxy/empty-state';\nimport { MatListModule } from '@angular/material/list';\nimport { MatButtonModule } from '@angular/material/button';\nimport { GalaxyPipesModule } from '@vendasta/galaxy/pipes';\nimport { OverduePipe } from './pipes/overdue.pipe';\nimport { ProjectStatusPipe } from './pipes/project-status.pipe';\nimport { MatDialogModule } from '@angular/material/dialog';\nimport { MatRadioModule } from '@angular/material/radio';\nimport { GalaxyFormFieldModule } from '@vendasta/galaxy/form-field';\nimport { SendMessageDialogModule } from '../send-message-dialog/send-message-dialog.module';\n\n@NgModule({\n declarations: [ProjectListCardComponent, OverduePipe, ProjectStatusPipe],\n imports: [\n CommonModule,\n RouterModule,\n TranslateModule,\n MatCardModule,\n MatIconModule,\n MatDividerModule,\n MatChipsModule,\n GalaxyAvatarModule,\n GalaxyBadgeModule,\n MatProgressSpinnerModule,\n GalaxyLoadingSpinnerModule,\n GalaxyEmptyStateModule,\n MatListModule,\n MatButtonModule,\n GalaxyPipesModule,\n MatListModule,\n MatButtonModule,\n MatDialogModule,\n MatRadioModule,\n GalaxyFormFieldModule,\n SendMessageDialogModule,\n ],\n exports: [ProjectListCardComponent],\n providers: [ProjectListCardService, OverduePipe, ProjectStatusPipe],\n})\nexport class ProjectListCardModule {}\n"],"mappings":"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","names":["PersonaType","KeyValueField","Metric","RangeField","SortDirection","enumStringToValue$2","enumRef","value","AccessPermissions","_AccessPermissions","proto","m","kwargs","toReturn","Attachment","_Attachment","Conversation","_Conversation","History","_History","KeyValuesKeyValue","_KeyValuesKeyValue","KeyValuesKeyValueValue","KeyValues","_KeyValues","Task","_Task","TaskIdentity","_TaskIdentity","TaskTree","_TaskTree","_KeyValuesKeyValueValue","enumStringToValue$1","AddAssigneeRequest","_AddAssigneeRequest","AddAttachmentRequest","_AddAttachmentRequest","AddConversationRequest","_AddConversationRequest","AddCustomTagsRequest","_AddCustomTagsRequest","AddHistoryRequest","_AddHistoryRequest","AddMultiAssigneeRequest","_AddMultiAssigneeRequest","AddMultipleSubtasksRequest","_AddMultipleSubtasksRequest","AddSubtaskRequest","_AddSubtaskRequest","AddTagsRequest","_AddTagsRequest","CommandResponse","_CommandResponse","CountMetricResponse","_CountMetricResponse","DeleteMultiTaskRequest","_DeleteMultiTaskRequest","DeleteTaskRequest","_DeleteTaskRequest","MultiCommandRequestEvent","_MultiCommandRequestEvent","GenerateTaskRequest","SetTitleRequest","SetTypeRequest","RemoveAssigneeRequest","SetDueDateRequest","SetStatusRequest","SetKeyValue","RemoveTagsRequest","SetNotesRequest","SetDescriptionRequest","RestoreTaskRequest","ReorderSubtaskRequest","RemoveAttachmentRequest","RemoveCustomTagsRequest","_GenerateTaskRequest","GetMetricsFilters","_GetMetricsFilters","GroupedMetadata","GetMetricsRequest","_GetMetricsRequest","GetMetricsRequestMetricRequest","GetMetricsResponse","_GetMetricsResponse","v","MetricResponses","GetTaskRequest","_GetTaskRequest","GetTaskResponse","_GetTaskResponse","GetTasksRequest","_GetTasksRequest","GetTasksResponse","_GetTasksResponse","GetTreeRequest","_GetTreeRequest","GetTreeResponse","_GetTreeResponse","_GroupedMetadata","GroupedTags","_GroupedTags","TagGroup","_GetMetricsRequestMetricRequest","MetricResponsesMetricResponse","_MetricResponsesMetricResponse","ValueMetricResponse","_MetricResponses","MultiCommandRequest","_MultiCommandRequest","MultiCommandResponsesMultiCommandResponse","_MultiCommandResponsesMultiCommandResponse","MultiCommandResponses","_MultiCommandResponses","MultiSearchTaskRequest","_MultiSearchTaskRequest","SearchTaskRequest","_RemoveAssigneeRequest","_RemoveAttachmentRequest","_RemoveCustomTagsRequest","RemoveMultiAssigneeRequest","_RemoveMultiAssigneeRequest","_RemoveTagsRequest","_ReorderSubtaskRequest","RestoreMultiTaskRequest","_RestoreMultiTaskRequest","_RestoreTaskRequest","_SearchTaskRequest","Sort","SearchTaskResponse","_SearchTaskResponse","_SetDescriptionRequest","_SetDueDateRequest","_SetKeyValue","SetKeyValuesRequest","_SetKeyValuesRequest","SetMultiDueDateRequest","_SetMultiDueDateRequest","SetMultiNotesRequest","_SetMultiNotesRequest","SetMultiStatusRequest","_SetMultiStatusRequest","_SetNotesRequest","_SetStatusRequest","_SetTitleRequest","_SetTypeRequest","_Sort","_TagGroup","_ValueMetricResponse","environment$1","hostMap","HostService","t","ɵɵdefineInjectable","TaskCommandApiService","http","hostService","HttpHeaders","r","request","GenerateTaskRequest","map","resp","CommandResponse","AddSubtaskRequest","AddMultipleSubtasksRequest","SetTitleRequest","SetStatusRequest","SetMultiStatusRequest","MultiCommandResponses","SetDueDateRequest","SetMultiDueDateRequest","AddAssigneeRequest","AddMultiAssigneeRequest","RemoveAssigneeRequest","RemoveMultiAssigneeRequest","AddTagsRequest","RemoveTagsRequest","AddCustomTagsRequest","RemoveCustomTagsRequest","SetNotesRequest","SetMultiNotesRequest","SetDescriptionRequest","AddHistoryRequest","DeleteTaskRequest","DeleteMultiTaskRequest","RestoreTaskRequest","RestoreMultiTaskRequest","SetKeyValuesRequest","AddConversationRequest","ReorderSubtaskRequest","AddAttachmentRequest","RemoveAttachmentRequest","SetTypeRequest","MultiCommandRequest","__spreadProps","__spreadValues","ɵɵinject","HttpClient","TaskQueryApiService","GetTaskRequest","GetTaskResponse","GetTasksRequest","GetTasksResponse","GetTreeRequest","GetTreeResponse","SearchTaskRequest","SearchTaskResponse","MultiSearchTaskRequest","GetMetricsRequest","GetMetricsResponse","GoType","Status","KeyValueTypes","TASK_DELIM","buildNamespace","keyValuePairs","pairs","key","value","newGuid","v4_default","TaskSdkService","partnerId","accountGroupId","buildNamespace","commandApi","queryApi","args","access","KeyValuesKeyValue","GoType","metadata","KeyValues","GenerateTaskRequest","map","res","DomainKeyValue","KeyValueTypes","AddSubtaskRequest","addMultipleSubtaskRequests","requests","value","AddMultipleSubtasksRequest","namespace","parentPath","taskId","returnDeleted","identity","TaskIdentity","request","GetTaskRequest","GetTreeRequest","newTitle","newVersion","SetTitleRequest","newStatus","SetStatusRequest","multiReq","SetMultiStatusRequest","newDueDate","SetDueDateRequest","SetMultiDueDateRequest","newDescription","SetDescriptionRequest","message","AddHistoryRequest","assignee","AddAssigneeRequest","add","AddMultiAssigneeRequest","RemoveAssigneeRequest","rem","RemoveMultiAssigneeRequest","newTags","AddTagsRequest","removeTags","RemoveTagsRequest","currentPosition","newPosition","version","ReorderSubtaskRequest","DeleteTaskRequest","del","DeleteMultiTaskRequest","RestoreTaskRequest","req","RestoreMultiTaskRequest","attachment","AddAttachmentRequest","RemoveAttachmentRequest","events","MultiCommandRequest","mapTo","MultiSearchTaskRequest","requestMetadata","productId","searchRequest","SearchTaskRequest","metric","filters","r","SetMultiNotesRequest","t","ɵɵinject","TaskCommandApiService","TaskQueryApiService","ɵɵdefineInjectable","keyValues","result","flattenedKeyValues","keyValue","flattenedKeyValue","key","values","type","typeValues","val","KeyValuesKeyValueValue","environment","MAX_FILE_SIZE","SUPPORTED_DOC_FILE_TYPES","AttachmentServiceDataInterfaceToken","InjectionToken","TaskAttachmentService","serviceData","http","taskService","hostService","filter","data","take","file","switchMap","generatePutResponse","throwError","group","url","forkJoin","attachmentAccessResponse","retry","_","name","host","body","response","secret","method","HttpClient","HostService","ProjectTrackerServiceInterfaceToken","InjectionToken","ProjectTrackerFileUploadServiceInterfaceToken","AskQuestionServiceInterfaceToken","InjectionToken","ɵɵelement","ɵɵproperty","ctx_r0","subtitleText","ɵɵsanitizeHtml","CommentComponent","constructor","class","selectors","hostVars","hostBindings","rf","ctx","ɵɵclassMap","ɵɵelementStart","ɵɵelementEnd","ɵɵtemplate","CommentComponent_div_7_Template","ɵɵprojection","ɵɵadvance","profilePicUrl","messageFrom","messageMetadata","messageText","_CommentComponent","MODULE_IMPORTS","CommonModule","GalaxyAvatarModule","GalaxyCommentModule","MODULE_IMPORTS","_GalaxyCommentModule","en_devel_default","MILESTONE_COMPLETED","MILESTONE_APPROVED_TAG","MILESTONE_FEEDBACK_TAG","ORDER_ID_METADATA_KEY","FULFILLMENT_ORDER_ID_METADATA_KEY","PROJECT_TYPE","VISIBLE_TAG","DEPENDENT_TAG","TASK_DATA_FEEDBACK_KEY","MAX_COMMENT_LENGTH","FEATURE_FLAG_LIST","PROJECTS_ICON_GREEN","DEFAULT_PAGE_SIZE","ACCESS","PersonaType","digital_agent","FULFILLING_PARTNER_ID","PARTNER","ACCOUNT_GROUP","TaskStatus","TaskType","SubtasksUploaderService","GalaxyUploaderService","constructor","httpClient","taskAttachmentService","_loading","signal","loading$","toObservable","buildRequest","fileInfo","uploadFile","file","pipe","map","resp","data","url","ɵɵinject","HttpClient","TaskAttachmentService","factory","ɵfac","providedIn","_SubtasksUploaderService","ɵɵelementStart","ɵɵlistener","$event","ɵɵrestoreView","_r1","ctx_r1","ɵɵnextContext","ɵɵresetView","handleFileUploadErrored","handleFileUploaded","ɵɵelementEnd","ɵɵproperty","TEN_MB","ɵɵelement","SubtasksUploaderComponent","constructor","attachmentService","snackbarService","fileUploaded","EventEmitter","fileUploadError","loading","signal","fileInfo","set","namespace","TaskSdkService","buildAccountGroupNamespace","subtask","partnerId","accountGroupId","subtaskIdParts","subtaskId","split","length","emit","error","Error","parentPath","taskId","identity","addAttachment","TaskIdentity","name","url","uploadingPersonaType","pipe","take","retry","count","delay","subscribe","next","openSuccessSnack","ɵɵdirectiveInject","TaskAttachmentService","SnackbarService","selectors","inputs","outputs","standalone","features","ɵɵProvidersFeature","provide","GALAXY_UPLOADER_SERVICE_TOKEN","useClass","SubtasksUploaderService","ɵɵStandaloneFeature","decls","vars","consts","template","rf","ctx","ɵɵtemplate","SubtasksUploaderComponent_Conditional_0_Template","SubtasksUploaderComponent_Conditional_1_Template","ɵɵconditional","GalaxyUploaderModule","GalaxyUploaderComponent","GalaxyLoadingSpinnerModule","LoadingSpinnerComponent","encapsulation","_SubtasksUploaderComponent","UploadedByPipe","transform","attachment","uploadingPersonaType","IAMPersonaType","smb","pure","standalone","_UploadedByPipe","CanDeleteFilePipe","userPersona","filePermissions","delete","includes","convertUserPersona","_CanDeleteFilePipe","FilterAndSortFulfillmentFiles","attachments","filter","read","sort","sortSmbFilesToEnd","_FilterAndSortFulfillmentFiles","a","b","digital_agent","sales_person","partner","crm_role","find","persona","toString","PersonaType","PERSONA_TYPE_SMB","PERSONA_TYPE_DIGITAL_AGENT","PERSONA_TYPE_SALES_PERSON","PERSONA_TYPE_PARTNER","ɵɵelementContainerStart","ɵɵelementStart","ɵɵtext","ɵɵelementEnd","ɵɵadvance","ɵɵtextInterpolate1","i_r1","toString","ɵɵpipeBind2","ɵɵpureFunction1","_c0","subtask_r2","completionDate","ɵɵelementContainer","ɵɵpipeBind1","ɵɵproperty","estimatedCompletion_r3","_c1","dueDate","notes","_c2","title","ɵɵtemplate","FulfillmentSubtasksComponent_ng_container_0_div_16_div_2_ng_container_1_div_1_Template","FulfillmentSubtasksComponent_ng_container_0_div_16_div_2_ng_container_1_div_2_Template","FulfillmentSubtasksComponent_ng_container_0_div_16_div_2_ng_container_1_div_3_Template","ɵɵelement","feedback_r4","source","persona","ctx_r4","PersonaType","PERSONA_TYPE_SMB","PERSONA_TYPE_DIGITAL_AGENT","message","ɵɵsanitizeHtml","FulfillmentSubtasksComponent_ng_container_0_div_16_div_2_ng_container_1_Template","isPublic","FulfillmentSubtasksComponent_ng_container_0_div_16_div_1_Template","FulfillmentSubtasksComponent_ng_container_0_div_16_div_2_Template","conversations","ɵɵlistener","ɵɵrestoreView","_r6","ɵɵnextContext","index","ɵɵresetView","saveFeedback","form","getFeedbackControlName","get","value","tmp_11_0","feedbackSaving","loading","_r12","ctx_r12","file_r10","$implicit","$index_r11","$index","handleFileDeleted","FulfillmentSubtasksComponent_ng_container_0_Conditional_17_Conditional_9_For_2_Conditional_12_Conditional_0_Template","FulfillmentSubtasksComponent_ng_container_0_Conditional_17_Conditional_9_For_2_Conditional_12_Conditional_1_Template","ɵɵconditional","tmp_18_0","deleteAttachmentLoading","FulfillmentSubtasksComponent_ng_container_0_Conditional_17_Conditional_9_For_2_Conditional_3_Template","FulfillmentSubtasksComponent_ng_container_0_Conditional_17_Conditional_9_For_2_Conditional_4_Template","ctx_r8","_r8","handleFileNameClicked","FulfillmentSubtasksComponent_ng_container_0_Conditional_17_Conditional_9_For_2_Conditional_12_Template","FulfillmentSubtasksComponent_ng_container_0_Conditional_17_Conditional_9_For_2_Conditional_15_Template","tmp_17_0","attachmentLoading","subtaskId","ɵɵtextInterpolate","name","userPersonaAsString$","ɵɵrepeaterCreate","FulfillmentSubtasksComponent_ng_container_0_Conditional_17_Conditional_9_For_2_Template","ɵɵrepeaterTrackByIdentity","ɵɵrepeater","files","$event","_r14","handleFileUploaded","handleFileUploadErrored","_r15","undoApproveTask","tmp_8_0","undoApproveSaving","FulfillmentSubtasksComponent_ng_container_0_Conditional_17_Conditional_13_Conditional_6_Template","status","COMPLETED_STATUS","FulfillmentSubtasksComponent_ng_container_0_Conditional_17_Conditional_2_Template","FulfillmentSubtasksComponent_ng_container_0_Conditional_17_Conditional_9_Template","FulfillmentSubtasksComponent_ng_container_0_Conditional_17_Conditional_10_Template","FulfillmentSubtasksComponent_ng_container_0_Conditional_17_Conditional_13_Template","length","approved","FulfillmentSubtasksComponent_ng_container_0_Conditional_18_Conditional_0_For_6_Conditional_3_Template","FulfillmentSubtasksComponent_ng_container_0_Conditional_18_Conditional_0_For_6_Conditional_4_Template","ctx_r16","_r16","file_r18","$index_r19","FulfillmentSubtasksComponent_ng_container_0_Conditional_18_Conditional_0_For_6_Template","FulfillmentSubtasksComponent_ng_container_0_Conditional_18_Conditional_0_Template","_r20","approveTask","approveSaving","FulfillmentSubtasksComponent_ng_container_0_div_19_button_2_Template","FulfillmentSubtasksComponent_ng_container_0_ng_container_5_Template","FulfillmentSubtasksComponent_ng_container_0_ng_template_6_Template","ɵɵtemplateRefExtractor","FulfillmentSubtasksComponent_ng_container_0_div_12_Template","FulfillmentSubtasksComponent_ng_container_0_div_13_Template","FulfillmentSubtasksComponent_ng_container_0_div_14_Template","FulfillmentSubtasksComponent_ng_container_0_div_15_Template","FulfillmentSubtasksComponent_ng_container_0_div_16_Template","FulfillmentSubtasksComponent_ng_container_0_Conditional_17_Template","FulfillmentSubtasksComponent_ng_container_0_Conditional_18_Template","FulfillmentSubtasksComponent_ng_container_0_div_19_Template","SubtaskIncomplete_r21","feedbackEnabled","dueDate_r22","FulfillmentSubtasksComponent_ng_template_1_span_0_Template","FulfillmentSubtasksComponent","constructor","projectTrackerService","snackbarService","fb","translateService","attachmentService","taskManagerSdkService","subtasks","TaskStatus","COMPLETED","TEN_MB","signal","undefined","ngOnInit","map","subtask","feedback","__spreadProps","__spreadValues","forEach","feedbackControlName","controls","group","activeUser$","pipe","user","personaType","shareReplay","bufferSize","refCount","onFileError","openErrorSnack","set","showFeedback","partnerId","accountGroupId","take","tap","switchMap","openSuccessSnack","action","instant","onAction","catchError","EMPTY","subscribe","indexOf","next","error","sendFeedback","patchValue","push","sendTo","created","Date","pop","attachmentToRemove","indexSetLoading","removeFile","findIndex","file","splice","fileInfo","userPersona","url","contentType","type","filePermissions","read","delete","write","uploadingPersonaType","secret","getSecretFromURL","namespace","TaskSdkService","buildAccountGroupNamespace","subtaskIdParts","split","parentPath","taskId","getAttachmentUrl","TaskIdentity","resp","finalize","generatedUrl","anchor","document","createElement","href","download","target","click","window","URL","revokeObjectURL","ɵɵdirectiveInject","ProjectTrackerServiceInterfaceToken","SnackbarService","UntypedFormBuilder","TranslateService","TaskAttachmentService","TaskManagerSdkService","selectors","inputs","decls","vars","consts","template","rf","ctx","FulfillmentSubtasksComponent_ng_container_0_Template","FulfillmentSubtasksComponent_ng_template_1_Template","_FulfillmentSubtasksComponent","ɵɵelementContainerStart","ɵɵelement","ɵɵadvance","ɵɵproperty","ctx_r0","product","icon","name","ɵɵelementStart","ɵɵlistener","$event","ɵɵrestoreView","_r2","ɵɵnextContext","ɵɵresetView","handleAskQuestionClicked","ɵɵtext","ɵɵelementEnd","ɵɵtextInterpolate","ɵɵpipeBind1","FulfillmentTrackerComponent","constructor","subtasks","hideAskQuestion","expanded","askQuestionClicked","EventEmitter","ngOnInit","completed","filter","subtask","status","MILESTONE_COMPLETED","length","total","progress","Math","round","projectProgress","event","emit","projectIdentity","preventDefault","stopPropagation","selectors","inputs","projectTitle","outputs","decls","vars","consts","template","rf","ctx","ɵɵtemplate","FulfillmentTrackerComponent_ng_container_6_Template","FulfillmentTrackerComponent_div_17_Template","ɵɵtextInterpolate1","ɵɵpipeBind2","ɵɵpureFunction2","_c0","_FulfillmentTrackerComponent","ProjectCommentsInputDirective","selectors","_ProjectCommentsInputDirective","NameInitialsPipe","constructor","translateService","transform","userName","name","trim","names","split","length","join","instant","ɵɵdirectiveInject","TranslateService","pure","_NameInitialsPipe","ɵɵelementStart","ɵɵtext","ɵɵelementEnd","ɵɵadvance","ɵɵtextInterpolate","ɵɵpipeBind1","ɵɵlistener","ɵɵrestoreView","_r1","ctx_r1","ɵɵnextContext","ɵɵresetView","handleCloseClick","ɵɵtemplate","ProjectCommentsComponent_glxy_page_toolbar_1_glxy_page_title_1_Template","ProjectCommentsComponent_glxy_page_toolbar_1_glxy_page_actions_2_Template","ɵɵproperty","viewConfig","showTitle","showCloseButton","ɵɵelementContainer","ɵɵelementContainerStart","ProjectCommentsComponent_ng_container_4_ng_container_1_Template","commentInput_r3","ɵɵtextInterpolate2","conversation_r4","taskTitle","ProjectCommentsComponent_glxy_comment_5_div_2_Template","ProjectCommentsComponent_glxy_comment_5_div_3_Template","ɵɵclassProp","commentType","COMMENT_TYPE_PRIVATE","getConversationOrigin","messageText","trim","ɵɵpipeBind2","messageCreated","senderImageUrl","ProjectCommentsComponent_ng_container_7_ng_container_1_Template","ɵɵelement","activeUser","profilePictureUrl","userInfo","firstName","ProjectCommentsComponent_ng_template_10_ng_container_1_div_1_Template","newCommentInput","_r5","toggleIsPublic","isPublic","ɵɵtextInterpolate1","_r6","handleSubmitClick","shouldDisableSubmit","ProjectCommentsComponent_ng_template_10_ng_container_1_Template","ProjectCommentsComponent_ng_template_10_ng_container_2_Template","ɵɵprojection","ProjectCommentsComponent_ng_template_10_mat_checkbox_5_Template","ProjectCommentsComponent_ng_template_10_button_6_Template","ProjectCommentsComponent_ng_template_10_mat_divider_7_Template","showCommenterIcon","hasCustomInput","disablePrivate","isSubmitting","loadingSpinner_r7","showCommentInputAtTop","ProjectCommentsComponent","conversation","value","sort","a","b","getTime","conversation$$","next","constructor","translateService","isLoading","disableSubmit","closeClicked","EventEmitter","submitClicked","pageWidth","WidthPreset","Full","BehaviorSubject","UntypedFormControl","updateOn","CommentType","inputDirective","isValidComment","text","length","MAX_COMMENT_LENGTH","emit","message","clearCommentInput","setValue","senderName","isConversationHydrated","fromText","instant","senderId","replace","startsWith","ɵɵdirectiveInject","TranslateService","selectors","contentQueries","rf","ctx","dirIndex","ProjectCommentsInputDirective","ProjectCommentsComponent_glxy_page_toolbar_1_Template","ProjectCommentsComponent_ng_container_4_Template","ProjectCommentsComponent_glxy_comment_5_Template","ProjectCommentsComponent_ng_container_7_Template","ProjectCommentsComponent_ng_template_8_Template","ɵɵtemplateRefExtractor","ProjectCommentsComponent_ng_template_10_Template","_ProjectCommentsComponent","SidenavService","setPanel","sidenav","panel","setContentVcf","viewContainerRef","vcf","createView","template","clear","createEmbeddedView","open","close","toggle","factory","ɵfac","providedIn","_SidenavService","ProjectTrackerUtils","mapInternalConversationToInbox","conversation","senderName","sendFrom","messageText","message","messageCreated","created","externalMessageId","source","commentType","isPublic","CommentType","COMMENT_TYPE_PUBLIC","COMMENT_TYPE_PRIVATE","taskTitle","senderImageUrl","validateSorts","sorts","final","forEach","sort","direction","SortDirection","field","push","ProjectTrackerCommentsComponent","projectTrackerInfo","value","project","refreshProjectTrackerInfo","constructor","sidenavService","askQuestionService","snackbarService","projectTrackerService","conversation$$","BehaviorSubject","isLoading$$","workableState","ObservableWorkState","createCommentLoading$","isLoading$","activeUser$","getConversationFromInbox","of","projectConversations","map","conversation","result","ProjectTrackerUtils","mapInternalConversationToInbox","subtaskId","source","split","slice","pop","subtask","subtasks","find","task","taskTitle","title","next","pipe","take","finalize","subscribe","appendComment","newComment","getValue","unshift","handleSubmitClick","event","projectIdentity","work$","askQuestion","message","startWork","combineLatest","isSuccess$","isSuccess","activeUser","openSuccessSnack","sendFrom","userInfo","firstName","created","Date","isPublic","senderImageUrl","profilePictureUrl","projectComments","clearCommentInput","openErrorSnack","handleCloseClick","close","ɵɵdirectiveInject","SidenavService","AskQuestionServiceInterfaceToken","SnackbarService","ProjectTrackerServiceInterfaceToken","selectors","viewQuery","rf","ctx","ɵɵelementStart","ɵɵlistener","i0","ɵɵrestoreView","_r1","ɵɵresetView","$event","ɵɵelementEnd","ɵɵproperty","ɵɵpipeBind1","_ProjectTrackerCommentsComponent","ProjectTrackerSidenavContainerComponent","constructor","sidenavService","ngOnInit","setPanel","sidePanel","setContentVcf","vcf","ɵɵdirectiveInject","SidenavService","selectors","viewQuery","rf","ctx","ViewContainerRef","ɵɵelementStart","ɵɵprojection","ɵɵelementEnd","ɵɵelementContainer","ɵɵadvance","ɵɵproperty","_ProjectTrackerSidenavContainerComponent","ɵɵelementContainerStart","ɵɵelementStart","ɵɵtext","ɵɵelementEnd","ɵɵlistener","ɵɵrestoreView","_r2","ctx_r2","ɵɵnextContext","ɵɵresetView","handleNonClickableClicked","ɵɵadvance","ɵɵtextInterpolate1","i_r4","toString","ɵɵpipeBind2","ɵɵpureFunction1","_c1","subtask_r5","completionDate","dueDate","ɵɵpureFunction0","_c2","ɵɵtemplate","TrackerSubtasksComponent_ng_container_0_div_12_ng_container_4_Template","TrackerSubtasksComponent_ng_container_0_div_12_ng_template_5_Template","ɵɵtemplateRefExtractor","ɵɵpipeBind1","ɵɵproperty","noInProgressDueDate_r6","TrackerSubtasksComponent_ng_container_0_div_14_ng_container_1_Template","TrackerSubtasksComponent_ng_container_0_div_14_ng_template_2_Template","noIncompleteDueDate_r7","_c3","title","_r8","notes","TrackerSubtasksComponent_ng_container_0_div_16_div_2_ng_container_1_div_1_Template","TrackerSubtasksComponent_ng_container_0_div_16_div_2_ng_container_1_div_2_Template","TrackerSubtasksComponent_ng_container_0_div_16_div_2_ng_container_1_div_3_Template","feedback_r10","source","persona","PersonaType","PERSONA_TYPE_SMB","PERSONA_TYPE_DIGITAL_AGENT","message","_r9","TrackerSubtasksComponent_ng_container_0_div_16_div_2_ng_container_1_Template","isPublic","_r11","file_r12","name","TrackerSubtasksComponent_ng_container_0_div_16_div_1_Template","TrackerSubtasksComponent_ng_container_0_div_16_div_2_Template","TrackerSubtasksComponent_ng_container_0_div_16_div_3_Template","conversations","files","ɵɵelement","$event","_r13","index","onFileUploaded","onFileError","onFileRemoved","form","getFeedbackControlName","attachmentUploader","getFilesControlName","_r15","toggleShowFeedback","approveTask","approved","_r16","saveFeedback","get","value","TrackerSubtasksComponent_ng_container_0_ng_container_17_div_1_Template","TrackerSubtasksComponent_ng_container_0_ng_container_17_ng_container_3_Template","TrackerSubtasksComponent_ng_container_0_ng_container_17_ng_container_4_Template","showFeedback","TrackerSubtasksComponent_ng_container_0_ng_container_4_Template","TrackerSubtasksComponent_ng_container_0_ng_template_5_Template","_r1","TrackerSubtasksComponent_ng_container_0_div_11_Template","TrackerSubtasksComponent_ng_container_0_div_12_Template","TrackerSubtasksComponent_ng_container_0_div_13_Template","TrackerSubtasksComponent_ng_container_0_div_14_Template","TrackerSubtasksComponent_ng_container_0_div_15_Template","TrackerSubtasksComponent_ng_container_0_div_16_Template","TrackerSubtasksComponent_ng_container_0_ng_container_17_Template","_c0","status","SubtaskIncomplete_r17","length","feedbackEnabled","TrackerSubtasksComponent","constructor","projectTrackerService","projectTrackerAttachmentService","alertService","fb","translateService","subtasks","approveClicked","EventEmitter","provideFeedbackClicked","sendFeedbackClicked","nonClickableClicked","ngOnInit","map","subtask","feedback","__spreadProps","__spreadValues","forEach","filesControlName","feedbackControlName","controls","Object","assign","Array","group","patchValue","uploadInfo","url","openErrorSnack","current","pop","push","uploadFile","partnerId","accountGroupId","subtaskId","pipe","take","switchMap","openSuccessSnack","action","instant","onAction","tap","undoFileUpload","catchError","EMPTY","subscribe","attachment","removeFile","fileIndex","subtaskIndex","splice","undoFileRemoved","emit","undoApproveTask","next","error","sendTo","created","Date","sendFeedback","event","ɵɵdirectiveInject","ProjectTrackerServiceInterfaceToken","ProjectTrackerFileUploadServiceInterfaceToken","SnackbarService","UntypedFormBuilder","TranslateService","selectors","inputs","outputs","decls","vars","consts","template","rf","ctx","TrackerSubtasksComponent_ng_container_0_Template","_TrackerSubtasksComponent","PAGE_SIZE","ProjectsAndSubtasksByProductsService","constructor","taskManagerSdkService","featureFlagService","projectTrackerService","tasksToSubtasks","tasks","uploadingPersonaTypes","map","task","tags","includes","DEPENDENT_TAG","dueDate","feedbackData","DomainKeyValue","fromKeyValue","data","get","TASK_DATA_FEEDBACK_KEY","KeyValueTypes","BOOL","feedbackEnabled","length","metadata","partnerId","STRING","toString","accountGroupId","id","identity","parentPath","taskId","title","completionDate","status","notes","subtaskId","files","attachment","filter","a","uploadingPersonaType","approved","MILESTONE_APPROVED_TAG","showFeedback","conversations","c","isPublic","isUserMentionConversation","message","isVisible","VISIBLE_TAG","conversation","mapInboxConversation","sendFrom","senderName","messageText","created","messageCreated","source","externalMessageId","commentType","CommentType","COMMENT_TYPE_PUBLIC","searchTasks","searchRequest","search","SearchTaskRequest","pipe","expand","resp","iif","hasMore","__spreadProps","__spreadValues","cursor","nextCursor","EMPTY","scan","acc","curr","concat","getProjectTrackerInfo","project","smbVisibleOnly","excludeDeleted","getTaskMulti","identities","subtasks","st","s","projectTitle","projectIdentity","projectConversations","sort","b","getTime","projectStatus","getProjectConversations","loadComments","LoadCommentsRequest","projectionFilter","CommentProjectionFilter","retrievePrivate","retrieveSubtasks","response","messages","searchAllProjectsAndConvertToProjectTrackerInfo","projects","p","take","switchMap","forkJoin","shareReplay","refCount","bufferSize","lookupVisibleProjectsForAccountByOrderIds","orderIds","namespace","types","PROJECT_TYPE","set","ORDER_ID_METADATA_KEY","toKeyValue","pageSize","lookupVisibleProjectForAccountByWorkOrderIds","workOrderIds","lookupProjectsForAccountByWorkOrderIds","FULFILLMENT_ORDER_ID_METADATA_KEY","featureFlags","batchGetStatus","FEATURE_FLAG_LIST","retry","catchError","flags","forEach","f","of","ɵɵinject","TaskManagerSdkService","FeatureFlagService","ProjectTrackerServiceInterfaceToken","factory","ɵfac","_ProjectsAndSubtasksByProductsService","ɵɵelementStart","ɵɵtext","ɵɵelementEnd","ɵɵadvance","ɵɵproperty","ctx_r0","badgeColor","ɵɵtextInterpolate1","projectStatus","ɵɵlistener","ɵɵrestoreView","_r2","ɵɵnextContext","ɵɵresetView","handleAskQuestionClicked","ɵɵtextInterpolate","ɵɵpipeBind1","SimpleProjectTrackerComponent","_projectStatus","constructor","__privateAdd","subtasks","matElevationClass","hideAskQuestion","trackerOpened","EventEmitter","trackerClosed","approveClicked","provideFeedbackClicked","sendFeedbackClicked","nonClickableClicked","askQuestionClicked","badgeColorMap","Map","Status","Open","InProgress","WaitingOnCustomer","Completed","__privateGet","__privateSet","get","ngOnInit","completed","filter","subtask","status","MILESTONE_COMPLETED","length","total","projectProgress","emit","projectIdentity","handleOpened","handleClosed","handleApproveClicked","handleProvideFeedbackClicked","handleSendFeedbackClicked","handleNonClickableClicked","event","selectors","inputs","projectTitle","outputs","decls","vars","consts","template","rf","ctx","ɵɵtemplate","SimpleProjectTrackerComponent_div_6_Template","SimpleProjectTrackerComponent_div_10_Template","$event","ɵɵclassMap","ɵɵpureFunction1","_c0","ɵɵpipeBind2","_c1","_SimpleProjectTrackerComponent","ProjectTrackerModule","ProjectsAndSubtasksByProductsService","imports","CommonModule","MatCardModule","MatExpansionModule","MatIconModule","MatProgressBarModule","MarkdownModule","forRoot","MatButtonModule","MatInputModule","VaFormsModule","ReactiveFormsModule","MatDialogModule","MatDividerModule","MatProgressSpinnerModule","MatSidenavModule","MatSlideToggleModule","TranslateModule","LexiconModule","forChild","componentName","baseTranslation","GalaxyPageModule","GalaxyTooltipModule","GalaxyCommentModule","GalaxyBadgeModule","MatCheckboxModule","GalaxyAvatarModule","GalaxyFormFieldModule","GalaxyUploaderModule","MatListModule","GalaxyLoadingSpinnerModule","SubtasksUploaderComponent","GalaxyButtonLoadingIndicatorModule","_ProjectTrackerModule","OrganizationType","adapterOrganizationType","organizationType","ACCOUNT_GROUP","GlobalParticipantType","GLOBAL_PARTICIPANT_TYPE_ACCOUNT_GROUP","PARTNER","GLOBAL_PARTICIPANT_TYPE_PARTNER","VENDOR","GLOBAL_PARTICIPANT_TYPE_VENDOR","GLOBAL_PARTICIPANT_TYPE_UNDEFINED","SendMessageDialogService","constructor","brandingService","inboxNav","redirectToConversation","partnerId","recipientOrganizationId","organizationType","prefilledMessage","gotoConversationChannel","SubjectParticipant","internalParticipantId","participantType","GlobalParticipantType","GLOBAL_PARTICIPANT_TYPE_PARTNER","adapterOrganizationType","ConversationChannel","CONVERSATION_CHANNEL_INTERNAL","buildProjectOrganizations","project","currentPartnerId","accountGroupInfo","accountGroupOrg","id","accountGroupId","name","of","napData","companyName","type","OrganizationType","ACCOUNT_GROUP","address","partnerOrgs","getPartnerVendorInfo","PARTNER","vendorOrgs","VENDOR","keyValueType","organizations","metadata","keyValues","forEach","data","key","values","stringValue","organizationInfo","getPartnerName","push","getBranding","pipe","take","shareReplay","catchError","map","branding","ɵɵinject","BrandingV2Service","InboxNavigationService","factory","ɵfac","_SendMessageDialogService","ɵɵelementContainerStart","ɵɵelement","ɵɵadvance","ɵɵproperty","ɵɵelementStart","ɵɵtext","ɵɵelementEnd","ɵɵtextInterpolate","ɵɵpipeBind1","organization_r4","address","badge_r5","badgeColor","participantType","ɵɵtemplate","SendMessageDialogComponent_ng_template_14_ng_container_2_ng_container_5_Template","SendMessageDialogComponent_ng_template_14_ng_container_2_div_6_Template","id","ctx_r2","defaultSelection","ɵɵtextInterpolate1","name","getConversationBadge","ɵɵlistener","$event","ɵɵrestoreView","_r2","ɵɵnextContext","ɵɵresetView","selectOrg","SendMessageDialogComponent_ng_template_14_ng_container_2_Template","organizations","SendMessageDialogComponent","constructor","sendMsgDialogService","dialogRef","data","loading$$","ReplaySubject","loading$","asObservable","ngOnInit","next","buildProjectOrganizations","project","partnerId","accountGroupInfo","length","selectedOrg","forkJoin","map","org","pipe","take","subscribe","close","event","find","organization","value","sendMessage","type","OrganizationType","VENDOR","deleted","ACCOUNT_GROUP","PARTNER","currentPartnerId","ɵɵdirectiveInject","SendMessageDialogService","MatDialogRef","MAT_DIALOG_DATA","selectors","decls","vars","consts","template","rf","ctx","SendMessageDialogComponent_ng_container_4_Template","i0","_r1","SendMessageDialogComponent_ng_template_14_Template","ɵɵtemplateRefExtractor","showRecipients_r6","_SendMessageDialogComponent","SendMessageDialogModule","SendMessageDialogComponent","SendMessageDialogService","imports","CommonModule","TranslateModule","GalaxyBadgeModule","GalaxyLoadingSpinnerModule","MatButtonModule","GalaxyPipesModule","MatDialogModule","MatRadioModule","GalaxyFormFieldModule","RouterModule","_SendMessageDialogModule","ProjectListCardService","constructor","taskManagerService","accountGroupService","router","analyticsService","sendMsgDialogService","loadingProjects$$","BehaviorSubject","loadingProjects$","asObservable","getAccountGroupInfo","accountGroupId","get","ProjectionFilter","napData","pipe","catchError","of","getAllProjects","partnerId","pageSize","vendorTasks","taskStatus","searchTasks","TaskType","PROJECT","DEFAULT_PAGE_SIZE","field","direction","SortDirection","SORT_DIRECTION_ASCENDING","map","response","tasks","err","next","tap","statuses","types","deletedOnly","sorts","includeVendorTasks","vendorSpecificTasks","extendedSorts","push","length","unshift","validSorts","validateSorts","request","SearchTaskRequest","status","access","ACCESS","excludeHistory","namespace","TaskSdkService","buildAccountGroupNamespace","metadata","KeyValues","DomainKeyValue","set","PARTNER","KeyValueTypes","STRING","toKeyValue","metaGroups","FULFILLING_PARTNER_ID","ACCOUNT_GROUP","metadataGroups","GroupedMetadata","metadataGroup","search","goToProjectDetail","project","taskId","identity","agid","keyValues","find","data","key","values","stringValue","url","buildProjectDetailUrl","navigateByUrl","projectId","goToAccountProjectList","companyName","queryParams","JSON","stringify","account","name","navigate","redirectToConversation","recipientOrganizationId","organizationType","prefilledMessage","ɵɵinject","TaskManagerApiService","AccountGroupService","Router","ProductAnalyticsService","SendMessageDialogService","factory","ɵfac","_ProjectListCardService","DueState","OverduePipe","constructor","translateService","transform","date","toolTip","content","getOverdueContent","dueResult","dueState","Overdue","instant","Soon","text","dueDate","today","Date","overdueText","dueDays","Math","abs","differenceInCalendarDays","isBefore","hours","differenceInHours","overdueKey","days","Future","ɵɵdirectiveInject","TranslateService","pure","_OverduePipe","ProjectStatusPipe","constructor","translateService","transform","projectStatus","textResult","TaskStatus","OPEN","instant","IN_PROGRESS","WAITING_ON_CUSTOMER","COMPLETED","ɵɵdirectiveInject","TranslateService","pure","_ProjectStatusPipe","ɵɵelementContainerStart","ɵɵelementStart","ɵɵtext","ɵɵelementEnd","ɵɵadvance","ɵɵproperty","ɵɵtextInterpolate","ɵɵpipeBind1","ɵɵlistener","ɵɵrestoreView","_r1","ctx_r1","ɵɵnextContext","ɵɵresetView","goToAccountProjectList","ɵɵtextInterpolate1","ɵɵpipeBind2","ɵɵpureFunction1","_c0","project_r4","dueDate","_c1","completionDate","getStatusBadgeColor","status","ɵɵtemplate","ProjectListCardComponent_ng_template_11_mat_list_item_1_div_9_glxy_badge_1_Template","ProjectListCardComponent_ng_template_11_mat_list_item_1_div_9_ng_template_4_Template","ɵɵtemplateRefExtractor","_r5","$implicit","sendMessage","COMPLETED","overDueText_r6","ɵɵelement","_r3","goToProjectDetail","ProjectListCardComponent_ng_template_11_mat_list_item_1_div_7_Template","ProjectListCardComponent_ng_template_11_mat_list_item_1_div_8_Template","ProjectListCardComponent_ng_template_11_mat_list_item_1_div_9_Template","projectsIconGreen","title","ɵɵclassProp","ProjectListCardComponent_ng_template_11_mat_list_item_1_Template","ProjectListCardComponent_ng_template_11_glxy_loading_spinner_3_Template","projects$","loadingProjects$","ProjectListCardComponent","constructor","projectListCardService","dialog","translateService","vendorTasks","pageSize","isEmptyState$$","ReplaySubject","isEmptyState$","asObservable","accountGroupInfo$$","accountGroupInfo$","PROJECTS_ICON_GREEN","ProjectStatusOrder","Map","TaskStatus","OPEN","IN_PROGRESS","WAITING_ON_CUSTOMER","ngOnInit","projectsList$","getAllProjects","partnerId","accountGroupId","pipe","mergeMap","projects","length","of","forkJoin","map","inProgressProjects","completedProjects","concat","sort","a","b","shareReplay","getAccountGroupInfo","take","tap","agInfo","next","subscribe","showViewAll$","project","napData","companyName","__async","accountGroupInfo","firstValueFrom","open","SendMessageDialogComponent","width","data","autoFocus","afterClosed","recipientOrganization","id","message","instant","taskId","identity","taskType","redirectToConversation","type","ɵɵdirectiveInject","ProjectListCardService","MatDialog","TranslateService","selectors","inputs","decls","vars","consts","template","rf","ctx","ProjectListCardComponent_ng_container_7_Template","ProjectListCardComponent_mat_card_actions_9_Template","ProjectListCardComponent_ng_template_11_Template","listProjects_r7","_ProjectListCardComponent","ProjectListCardModule","ProjectListCardService","OverduePipe","ProjectStatusPipe","imports","CommonModule","RouterModule","TranslateModule","MatCardModule","MatIconModule","MatDividerModule","MatChipsModule","GalaxyAvatarModule","GalaxyBadgeModule","MatProgressSpinnerModule","GalaxyLoadingSpinnerModule","GalaxyEmptyStateModule","MatListModule","MatButtonModule","GalaxyPipesModule","MatDialogModule","MatRadioModule","GalaxyFormFieldModule","SendMessageDialogModule","_ProjectListCardModule"],"x_google_ignoreList":[0]}