{"version":3,"sources":["node_modules/@vendasta/sales-v2/fesm2020/vendasta-sales-v2.mjs","libs/auxiliary-data-components/src/lib/auxiliary-data/schema-service/_account-group-schema.service.ts","libs/auxiliary-data-components/src/lib/auxiliary-data/schema-service/_product-schema.service.ts","libs/auxiliary-data-components/src/lib/auxiliary-data/schema-service/_sales-order-schema.service.ts","libs/auxiliary-data-components/src/lib/auxiliary-data/schema-service/_task-schema.service.ts","libs/auxiliary-data-components/src/lib/auxiliary-data/schema-service/_user-schema.service.ts","libs/auxiliary-data-components/src/lib/auxiliary-data/schema-service/_contact_schema.service.ts","libs/auxiliary-data-components/src/lib/auxiliary-data/schema-service/schema.service.ts","libs/auxiliary-data-components/src/lib/auxiliary-data/field-data-service/_account-group-data.service.ts","libs/auxiliary-data-components/src/lib/auxiliary-data/field-data-service/_user-data.service.ts","libs/auxiliary-data-components/src/lib/auxiliary-data/field-data-service/_product-data.service.ts","libs/auxiliary-data-components/src/lib/auxiliary-data/field-data-service/_order-data.service.ts","libs/auxiliary-data-components/src/lib/auxiliary-data/field-data-service/_task-data.service.ts","libs/auxiliary-data-components/src/lib/auxiliary-data/field-data-service/field-data.service.ts","libs/auxiliary-data-components/src/lib/auxiliary-data/renderers/integer.ts","libs/auxiliary-data-components/src/lib/auxiliary-data/renderers/text.ts","libs/auxiliary-data-components/src/lib/auxiliary-data/renderers/date.ts","libs/auxiliary-data-components/src/lib/auxiliary-data/renderers/dropdown.ts","libs/auxiliary-data-components/src/lib/auxiliary-data/currency.ts","libs/auxiliary-data-components/src/lib/auxiliary-data/renderers/currency.ts","libs/auxiliary-data-components/src/lib/auxiliary-data/renderers/index.ts","libs/auxiliary-data-components/src/lib/auxiliary-data/renderers/not-yet-supported.ts","libs/auxiliary-data-components/src/lib/auxiliary-data/renderer-utils.ts","libs/auxiliary-data-components/src/lib/auxiliary-data/auxiliary-field-handler.service.ts","libs/auxiliary-data-components/src/lib/auxiliary-data/renderer-selector.component.ts","libs/auxiliary-data-components/src/lib/auxiliary-data/auxiliary-data-table/auxiliary-data-table.component.ts","libs/auxiliary-data-components/src/lib/auxiliary-data/auxiliary-data-table/auxiliary-data-table.component.html","libs/auxiliary-data-components/src/lib/assets/en_devel.json","libs/auxiliary-data-components/src/lib/auxiliary-data/auxiliary-data-card/auxiliary-data-card.component.ts","libs/auxiliary-data-components/src/lib/auxiliary-data/auxiliary-data-card/auxiliary-data-card.component.html","libs/auxiliary-data-components/src/lib/auxiliary-data/auxiliary-data-panel/auxiliary-data-panel.component.ts","libs/auxiliary-data-components/src/lib/auxiliary-data/auxiliary-data-panel/auxiliary-data-panel.component.html","libs/auxiliary-data-components/src/lib/auxiliary-data.module.ts","libs/auxiliary-data-components/src/lib/auxiliary-data/auxiliary-data-accounts-table/auxiliary-data-accounts-table.service.ts","libs/auxiliary-data-components/src/lib/auxiliary-data/auxiliary-data-accounts-table/auxiliary-data-accounts-table.data-model.ts","libs/auxiliary-data-components/src/lib/auxiliary-data/auxiliary-data-accounts-table/auxiliary-data-accounts-table-actions.module.ts","libs/auxiliary-data-components/src/lib/auxiliary-data/auxiliary-data-accounts-table/auxiliary-data-accounts-table-internal.component.ts","libs/auxiliary-data-components/src/lib/auxiliary-data/auxiliary-data-accounts-table/auxiliary-data-accounts-table.component.ts","libs/auxiliary-data-components/src/lib/auxiliary-data/auxiliary-data-dialog/auxiliary-data-dialog.component.ts","libs/auxiliary-data-components/src/lib/auxiliary-data/auxiliary-data-fields/auxiliary-data-fields.component.ts","libs/auxiliary-data-components/src/lib/auxiliary-data/schema-service/schema-interface.ts","libs/auxiliary-data-components/src/lib/auxiliary-data/auxiliary-data-fields-responsive/auxiliary-data-fields-responsive.component.ts","libs/auxiliary-data-components/src/lib/auxiliary-data/auxiliary-data-fields-responsive/auxiliary-data-fields-responsive.component.html","libs/auxiliary-data-components/src/lib/auxiliary-data/auxiliary-datas/pending-changes-guard.service.ts","libs/auxiliary-data-components/src/lib/auxiliary-data/auxiliary-datas/dynamic-open-close-template-ref.service.ts","libs/auxiliary-data-components/src/lib/auxiliary-data/auxiliary-datas/columns/field-selected-for-edit.service.ts","libs/auxiliary-data-components/src/lib/auxiliary-data/auxiliary-datas/object-type-options.ts","libs/auxiliary-data-components/src/lib/auxiliary-data/auxiliary-datas/field-editor/currency-choice.component.ts","libs/auxiliary-data-components/src/lib/auxiliary-data/auxiliary-datas/field-editor/external-id/external-id.component.ts","libs/auxiliary-data-components/src/lib/auxiliary-data/auxiliary-datas/field-editor/external-id/external-id.component.html","libs/auxiliary-data-components/src/lib/auxiliary-data/auxiliary-datas/field-editor/field-editor.component.ts","libs/auxiliary-data-components/src/lib/auxiliary-data/auxiliary-datas/field-editor/field-editor.component.html","libs/auxiliary-data-components/src/lib/auxiliary-data/auxiliary-datas/side-panel/drawer.component.ts","libs/auxiliary-data-components/src/lib/auxiliary-data/auxiliary-datas/side-panel/drawer.component.html","libs/auxiliary-data-components/src/lib/auxiliary-data/auxiliary-datas/auxiliary-data-panel/auxiliary-data-panel.component.ts","libs/auxiliary-data-components/src/lib/auxiliary-data/auxiliary-datas/tokens.ts","libs/auxiliary-data-components/src/lib/auxiliary-data/auxiliary-datas/auxiliary-data-table.service.ts","libs/auxiliary-data-components/src/lib/auxiliary-data/auxiliary-datas/auxiliary-data-page.component.ts","libs/auxiliary-data-components/src/lib/auxiliary-data/auxiliary-datas/auxiliary-data-page.component.html","libs/auxiliary-data-components/src/lib/auxiliary-data/auxiliary-datas/auxiliary-data-page.module.ts","libs/auxiliary-data-components/src/index.ts"],"sourcesContent":["import * as i0 from '@angular/core';\nimport { Injectable } from '@angular/core';\nimport { map, catchError, mapTo } from 'rxjs/operators';\nimport * as i1 from '@angular/common/http';\nimport { HttpHeaders } from '@angular/common/http';\nimport { throwError, of } from 'rxjs';\n\n// *********************************\n// Code generated by sdkgen\n// DO NOT EDIT!.\n//\n// Enums.\n// *********************************\nvar CancellationRequestReason = /*#__PURE__*/function (CancellationRequestReason) {\n CancellationRequestReason[CancellationRequestReason[\"CANCELLATION_REQUEST_REASON_UNSET\"] = 0] = \"CANCELLATION_REQUEST_REASON_UNSET\";\n CancellationRequestReason[CancellationRequestReason[\"CANCELLATION_REQUEST_REASON_OTHER\"] = 1] = \"CANCELLATION_REQUEST_REASON_OTHER\";\n return CancellationRequestReason;\n}(CancellationRequestReason || {});\nvar CancellationRequestStatus = /*#__PURE__*/function (CancellationRequestStatus) {\n CancellationRequestStatus[CancellationRequestStatus[\"CANCELLATION_REQUEST_STATUS_UNSET\"] = 0] = \"CANCELLATION_REQUEST_STATUS_UNSET\";\n CancellationRequestStatus[CancellationRequestStatus[\"CANCELLATION_REQUEST_STATUS_REQUESTED\"] = 1] = \"CANCELLATION_REQUEST_STATUS_REQUESTED\";\n CancellationRequestStatus[CancellationRequestStatus[\"CANCELLATION_REQUEST_STATUS_RESOLVED\"] = 2] = \"CANCELLATION_REQUEST_STATUS_RESOLVED\";\n CancellationRequestStatus[CancellationRequestStatus[\"CANCELLATION_REQUEST_STATUS_DECLINED\"] = 3] = \"CANCELLATION_REQUEST_STATUS_DECLINED\";\n return CancellationRequestStatus;\n}(CancellationRequestStatus || {});\n// *********************************\n// Code generated by sdkgen\n// DO NOT EDIT!.\n//\n// Enums.\n// *********************************\nvar AccountField = /*#__PURE__*/function (AccountField) {\n AccountField[AccountField[\"ACCOUNT_FIELD_CREATED\"] = 0] = \"ACCOUNT_FIELD_CREATED\";\n AccountField[AccountField[\"ACCOUNT_FIELD_UPDATED\"] = 1] = \"ACCOUNT_FIELD_UPDATED\";\n AccountField[AccountField[\"ACCOUNT_FIELD_NAME\"] = 2] = \"ACCOUNT_FIELD_NAME\";\n AccountField[AccountField[\"ACCOUNT_FIELD_CITY\"] = 3] = \"ACCOUNT_FIELD_CITY\";\n AccountField[AccountField[\"ACCOUNT_FIELD_STATE\"] = 4] = \"ACCOUNT_FIELD_STATE\";\n return AccountField;\n}(AccountField || {});\nvar AccountsArchived = /*#__PURE__*/function (AccountsArchived) {\n AccountsArchived[AccountsArchived[\"ACCOUNTS_ARCHIVED_INVALID\"] = 0] = \"ACCOUNTS_ARCHIVED_INVALID\";\n AccountsArchived[AccountsArchived[\"ACCOUNTS_ARCHIVED_ALL\"] = 1] = \"ACCOUNTS_ARCHIVED_ALL\";\n AccountsArchived[AccountsArchived[\"ACCOUNTS_ARCHIVED_TRUE\"] = 2] = \"ACCOUNTS_ARCHIVED_TRUE\";\n AccountsArchived[AccountsArchived[\"ACCOUNTS_ARCHIVED_FALSE\"] = 3] = \"ACCOUNTS_ARCHIVED_FALSE\";\n return AccountsArchived;\n}(AccountsArchived || {});\nvar SortDirection$1 = /*#__PURE__*/function (SortDirection) {\n SortDirection[SortDirection[\"SORT_DIRECTION_UNSET\"] = 0] = \"SORT_DIRECTION_UNSET\";\n SortDirection[SortDirection[\"SORT_DIRECTION_ASCENDING\"] = 1] = \"SORT_DIRECTION_ASCENDING\";\n SortDirection[SortDirection[\"SORT_DIRECTION_DESCENDING\"] = 2] = \"SORT_DIRECTION_DESCENDING\";\n return SortDirection;\n}(SortDirection$1 || {});\n// *********************************\n\nfunction enumStringToValue$7(enumRef, value) {\n if (typeof value === 'number') {\n return value;\n }\n return enumRef[value];\n}\nclass FieldMask {\n static fromProto(proto) {\n let m = new FieldMask();\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.paths !== 'undefined') {\n toReturn['paths'] = this.paths;\n }\n return toReturn;\n }\n}\nfunction enumStringToValue$6(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}\nfunction enumStringToValue$5(enumRef, value) {\n if (typeof value === 'number') {\n return value;\n }\n return enumRef[value];\n}\nclass Salesperson {\n static fromProto(proto) {\n let m = new Salesperson();\n m = Object.assign(m, proto);\n if (proto.lastLogin) {\n m.lastLogin = new Date(proto.lastLogin);\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.salespersonId !== 'undefined') {\n toReturn['salespersonId'] = this.salespersonId;\n }\n if (typeof this.firstName !== 'undefined') {\n toReturn['firstName'] = this.firstName;\n }\n if (typeof this.lastName !== 'undefined') {\n toReturn['lastName'] = this.lastName;\n }\n if (typeof this.email !== 'undefined') {\n toReturn['email'] = this.email;\n }\n if (typeof this.phoneNumber !== 'undefined') {\n toReturn['phoneNumber'] = this.phoneNumber;\n }\n if (typeof this.unifiedUserId !== 'undefined') {\n toReturn['unifiedUserId'] = this.unifiedUserId;\n }\n if (typeof this.countryCode !== 'undefined') {\n toReturn['countryCode'] = this.countryCode;\n }\n if (typeof this.marketId !== 'undefined') {\n toReturn['marketId'] = this.marketId;\n }\n if (typeof this.photoUrlHttps !== 'undefined') {\n toReturn['photoUrlHttps'] = this.photoUrlHttps;\n }\n if (typeof this.lastLogin !== 'undefined' && this.lastLogin !== null) {\n toReturn['lastLogin'] = 'toApiJson' in this.lastLogin ? this.lastLogin.toApiJson() : this.lastLogin;\n }\n return toReturn;\n }\n}\nfunction enumStringToValue$4(enumRef, value) {\n if (typeof value === 'number') {\n return value;\n }\n return enumRef[value];\n}\nclass Contact {\n static fromProto(proto) {\n let m = new Contact();\n m = Object.assign(m, proto);\n if (proto.created) {\n m.created = new Date(proto.created);\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.contactId !== 'undefined') {\n toReturn['contactId'] = this.contactId;\n }\n if (typeof this.notes !== 'undefined') {\n toReturn['notes'] = this.notes;\n }\n if (typeof this.firstName !== 'undefined') {\n toReturn['firstName'] = this.firstName;\n }\n if (typeof this.lastName !== 'undefined') {\n toReturn['lastName'] = this.lastName;\n }\n if (typeof this.title !== 'undefined') {\n toReturn['title'] = this.title;\n }\n if (typeof this.contactEmail !== 'undefined') {\n toReturn['contactEmail'] = this.contactEmail;\n }\n if (typeof this.phoneNumber !== 'undefined') {\n toReturn['phoneNumber'] = this.phoneNumber;\n }\n if (typeof this.phoneExtension !== 'undefined') {\n toReturn['phoneExtension'] = this.phoneExtension;\n }\n if (typeof this.accountIds !== 'undefined') {\n toReturn['accountIds'] = this.accountIds;\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.phoneNumberCountry !== 'undefined') {\n toReturn['phoneNumberCountry'] = this.phoneNumberCountry;\n }\n return toReturn;\n }\n}\nfunction enumStringToValue$3(enumRef, value) {\n if (typeof value === 'number') {\n return value;\n }\n return enumRef[value];\n}\nclass ActionList {\n static fromProto(proto) {\n let m = new ActionList();\n m = Object.assign(m, proto);\n if (proto.accounts) {\n m.accounts = parseInt(proto.accounts, 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.id !== 'undefined') {\n toReturn['id'] = this.id;\n }\n if (typeof this.name !== 'undefined') {\n toReturn['name'] = this.name;\n }\n if (typeof this.accounts !== 'undefined') {\n toReturn['accounts'] = this.accounts;\n }\n if (typeof this.inProgress !== 'undefined') {\n toReturn['inProgress'] = this.inProgress;\n }\n return toReturn;\n }\n}\nfunction enumStringToValue$2(enumRef, value) {\n if (typeof value === 'number') {\n return value;\n }\n return enumRef[value];\n}\nclass Business {\n static fromProto(proto) {\n let m = new Business();\n m = Object.assign(m, proto);\n if (proto.updated) {\n m.updated = new Date(proto.updated);\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.id !== 'undefined') {\n toReturn['id'] = this.id;\n }\n if (typeof this.accountGroupId !== 'undefined') {\n toReturn['accountGroupId'] = this.accountGroupId;\n }\n if (typeof this.updated !== 'undefined' && this.updated !== null) {\n toReturn['updated'] = 'toApiJson' in this.updated ? this.updated.toApiJson() : this.updated;\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 CancellationRequest {\n static fromProto(proto) {\n let m = new CancellationRequest();\n m = Object.assign(m, proto);\n if (proto.status) {\n m.status = enumStringToValue$1(CancellationRequestStatus, proto.status);\n }\n if (proto.reason) {\n m.reason = enumStringToValue$1(CancellationRequestReason, proto.reason);\n }\n if (proto.requestCreatedDate) {\n m.requestCreatedDate = new Date(proto.requestCreatedDate);\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.accountGroupId !== 'undefined') {\n toReturn['accountGroupId'] = this.accountGroupId;\n }\n if (typeof this.cancellationRequestId !== 'undefined') {\n toReturn['cancellationRequestId'] = this.cancellationRequestId;\n }\n if (typeof this.partnerId !== 'undefined') {\n toReturn['partnerId'] = this.partnerId;\n }\n if (typeof this.lineItemId !== 'undefined') {\n toReturn['lineItemId'] = this.lineItemId;\n }\n if (typeof this.requestingUserId !== 'undefined') {\n toReturn['requestingUserId'] = this.requestingUserId;\n }\n if (typeof this.status !== 'undefined') {\n toReturn['status'] = this.status;\n }\n if (typeof this.reason !== 'undefined') {\n toReturn['reason'] = this.reason;\n }\n if (typeof this.message !== 'undefined') {\n toReturn['message'] = this.message;\n }\n if (typeof this.requestCreatedDate !== 'undefined' && this.requestCreatedDate !== null) {\n toReturn['requestCreatedDate'] = 'toApiJson' in this.requestCreatedDate ? this.requestCreatedDate.toApiJson() : this.requestCreatedDate;\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 AccountLatestSalesActivity {\n static fromProto(proto) {\n let m = new AccountLatestSalesActivity();\n m = Object.assign(m, proto);\n if (proto.lastActivityDate) {\n m.lastActivityDate = new Date(proto.lastActivityDate);\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.accountId !== 'undefined') {\n toReturn['accountId'] = this.accountId;\n }\n if (typeof this.lastActivityDate !== 'undefined' && this.lastActivityDate !== null) {\n toReturn['lastActivityDate'] = 'toApiJson' in this.lastActivityDate ? this.lastActivityDate.toApiJson() : this.lastActivityDate;\n }\n return toReturn;\n }\n}\nclass AddAccountsToActionListRequest {\n static fromProto(proto) {\n let m = new AddAccountsToActionListRequest();\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.partnerId !== 'undefined') {\n toReturn['partnerId'] = this.partnerId;\n }\n if (typeof this.marketId !== 'undefined') {\n toReturn['marketId'] = this.marketId;\n }\n if (typeof this.listName !== 'undefined') {\n toReturn['listName'] = this.listName;\n }\n if (typeof this.accountGroupIds !== 'undefined') {\n toReturn['accountGroupIds'] = this.accountGroupIds;\n }\n return toReturn;\n }\n}\nclass AddAccountsToActionListResponse {\n static fromProto(proto) {\n let m = new AddAccountsToActionListResponse();\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.actionListId !== 'undefined') {\n toReturn['actionListId'] = this.actionListId;\n }\n return toReturn;\n }\n}\nclass AddContactToCampaignRequest {\n static fromProto(proto) {\n let m = new AddContactToCampaignRequest();\n m = Object.assign(m, proto);\n if (proto.contact) {\n m.contact = AddContactToCampaignRequestRecipient.fromProto(proto.contact);\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.partnerId !== 'undefined') {\n toReturn['partnerId'] = this.partnerId;\n }\n if (typeof this.campaignId !== 'undefined') {\n toReturn['campaignId'] = this.campaignId;\n }\n if (typeof this.marketId !== 'undefined') {\n toReturn['marketId'] = this.marketId;\n }\n if (typeof this.senderUnifiedUserId !== 'undefined') {\n toReturn['senderUnifiedUserId'] = this.senderUnifiedUserId;\n }\n if (typeof this.contact !== 'undefined' && this.contact !== null) {\n toReturn['contact'] = 'toApiJson' in this.contact ? this.contact.toApiJson() : this.contact;\n }\n return toReturn;\n }\n}\nclass CreateContactRequest {\n static fromProto(proto) {\n let m = new CreateContactRequest();\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.partnerId !== 'undefined') {\n toReturn['partnerId'] = this.partnerId;\n }\n if (typeof this.marketId !== 'undefined') {\n toReturn['marketId'] = this.marketId;\n }\n if (typeof this.accountGroupIds !== 'undefined') {\n toReturn['accountGroupIds'] = this.accountGroupIds;\n }\n if (typeof this.phoneNumber !== 'undefined') {\n toReturn['phoneNumber'] = this.phoneNumber;\n }\n if (typeof this.phoneNumberCountry !== 'undefined') {\n toReturn['phoneNumberCountry'] = this.phoneNumberCountry;\n }\n if (typeof this.phoneNumberExtension !== 'undefined') {\n toReturn['phoneNumberExtension'] = this.phoneNumberExtension;\n }\n if (typeof this.email !== 'undefined') {\n toReturn['email'] = this.email;\n }\n if (typeof this.firstName !== 'undefined') {\n toReturn['firstName'] = this.firstName;\n }\n if (typeof this.lastName !== 'undefined') {\n toReturn['lastName'] = this.lastName;\n }\n if (typeof this.title !== 'undefined') {\n toReturn['title'] = this.title;\n }\n if (typeof this.notes !== 'undefined') {\n toReturn['notes'] = this.notes;\n }\n return toReturn;\n }\n}\nclass CreateContactResponse {\n static fromProto(proto) {\n let m = new CreateContactResponse();\n m = Object.assign(m, proto);\n if (proto.contact) {\n m.contact = Contact.fromProto(proto.contact);\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.contact !== 'undefined' && this.contact !== null) {\n toReturn['contact'] = 'toApiJson' in this.contact ? this.contact.toApiJson() : this.contact;\n }\n return toReturn;\n }\n}\nclass CreateRequest {\n static fromProto(proto) {\n let m = new CreateRequest();\n m = Object.assign(m, proto);\n if (proto.status) {\n m.status = enumStringToValue(CancellationRequestStatus, proto.status);\n }\n if (proto.reason) {\n m.reason = enumStringToValue(CancellationRequestReason, proto.reason);\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.accountGroupId !== 'undefined') {\n toReturn['accountGroupId'] = this.accountGroupId;\n }\n if (typeof this.partnerId !== 'undefined') {\n toReturn['partnerId'] = this.partnerId;\n }\n if (typeof this.lineItemId !== 'undefined') {\n toReturn['lineItemId'] = this.lineItemId;\n }\n if (typeof this.requestingUserId !== 'undefined') {\n toReturn['requestingUserId'] = this.requestingUserId;\n }\n if (typeof this.status !== 'undefined') {\n toReturn['status'] = this.status;\n }\n if (typeof this.reason !== 'undefined') {\n toReturn['reason'] = this.reason;\n }\n if (typeof this.message !== 'undefined') {\n toReturn['message'] = this.message;\n }\n return toReturn;\n }\n}\nclass CreateSalespersonForUserRequest {\n static fromProto(proto) {\n let m = new CreateSalespersonForUserRequest();\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.authCheckOnly !== 'undefined') {\n toReturn['authCheckOnly'] = this.authCheckOnly;\n }\n if (typeof this.userId !== 'undefined') {\n toReturn['userId'] = this.userId;\n }\n if (typeof this.marketId !== 'undefined') {\n toReturn['marketId'] = this.marketId;\n }\n if (typeof this.isSalesManager !== 'undefined') {\n toReturn['isSalesManager'] = this.isSalesManager;\n }\n return toReturn;\n }\n}\nclass CreateSalespersonForUserResponse {\n static fromProto(proto) {\n let m = new CreateSalespersonForUserResponse();\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 return toReturn;\n }\n}\nclass DateRangeFilter {\n static fromProto(proto) {\n let m = new DateRangeFilter();\n m = Object.assign(m, proto);\n if (proto.beginRange) {\n m.beginRange = new Date(proto.beginRange);\n }\n if (proto.endRange) {\n m.endRange = new Date(proto.endRange);\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.beginRange !== 'undefined' && this.beginRange !== null) {\n toReturn['beginRange'] = 'toApiJson' in this.beginRange ? this.beginRange.toApiJson() : this.beginRange;\n }\n if (typeof this.endRange !== 'undefined' && this.endRange !== null) {\n toReturn['endRange'] = 'toApiJson' in this.endRange ? this.endRange.toApiJson() : this.endRange;\n }\n return toReturn;\n }\n}\nclass DeleteContactRequest {\n static fromProto(proto) {\n let m = new DeleteContactRequest();\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.partnerId !== 'undefined') {\n toReturn['partnerId'] = this.partnerId;\n }\n if (typeof this.marketId !== 'undefined') {\n toReturn['marketId'] = this.marketId;\n }\n if (typeof this.contactId !== 'undefined') {\n toReturn['contactId'] = this.contactId;\n }\n return toReturn;\n }\n}\nclass EffortAggregate {\n static fromProto(proto) {\n let m = new EffortAggregate();\n m = Object.assign(m, proto);\n if (proto.efforts) {\n m.efforts = Object.keys(proto.efforts).reduce((obj, k) => {\n obj[k] = parseInt(proto.efforts[k], 10);\n return obj;\n }, {});\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.efforts !== 'undefined' && this.efforts !== null) {\n toReturn['efforts'] = 'toApiJson' in this.efforts ? this.efforts.toApiJson() : this.efforts;\n }\n return toReturn;\n }\n}\nclass EffortAggregateEffortsEntry {\n static fromProto(proto) {\n let m = new EffortAggregateEffortsEntry();\n m = Object.assign(m, proto);\n if (proto.value) {\n m.value = parseInt(proto.value, 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.value !== 'undefined') {\n toReturn['value'] = this.value;\n }\n return toReturn;\n }\n}\nclass GetAccountPrimaryContactRequest {\n static fromProto(proto) {\n let m = new GetAccountPrimaryContactRequest();\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.accountId !== 'undefined') {\n toReturn['accountId'] = this.accountId;\n }\n if (typeof this.partnerId !== 'undefined') {\n toReturn['partnerId'] = this.partnerId;\n }\n if (typeof this.marketId !== 'undefined') {\n toReturn['marketId'] = this.marketId;\n }\n return toReturn;\n }\n}\nclass GetAccountPrimaryContactResponse {\n static fromProto(proto) {\n let m = new GetAccountPrimaryContactResponse();\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.contactId !== 'undefined') {\n toReturn['contactId'] = this.contactId;\n }\n return toReturn;\n }\n}\nclass GetContactByIDRequest {\n static fromProto(proto) {\n let m = new GetContactByIDRequest();\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.contactId !== 'undefined') {\n toReturn['contactId'] = this.contactId;\n }\n return toReturn;\n }\n}\nclass GetContactResponse {\n static fromProto(proto) {\n let m = new GetContactResponse();\n m = Object.assign(m, proto);\n if (proto.contact) {\n m.contact = Contact.fromProto(proto.contact);\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.contact !== 'undefined' && this.contact !== null) {\n toReturn['contact'] = 'toApiJson' in this.contact ? this.contact.toApiJson() : this.contact;\n }\n return toReturn;\n }\n}\nclass GetContactsForAccountsRequest {\n static fromProto(proto) {\n let m = new GetContactsForAccountsRequest();\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.partnerId !== 'undefined') {\n toReturn['partnerId'] = this.partnerId;\n }\n if (typeof this.marketId !== 'undefined') {\n toReturn['marketId'] = this.marketId;\n }\n if (typeof this.accountIds !== 'undefined') {\n toReturn['accountIds'] = this.accountIds;\n }\n return toReturn;\n }\n}\nclass GetContactsForAccountsResponse {\n static fromProto(proto) {\n let m = new GetContactsForAccountsResponse();\n m = Object.assign(m, proto);\n if (proto.contacts) {\n m.contacts = proto.contacts.map(Contact.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.contacts !== 'undefined' && this.contacts !== null) {\n toReturn['contacts'] = 'toApiJson' in this.contacts ? this.contacts.toApiJson() : this.contacts;\n }\n return toReturn;\n }\n}\nclass GetMultiCampaignsRequest {\n static fromProto(proto) {\n let m = new GetMultiCampaignsRequest();\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.partnerId !== 'undefined') {\n toReturn['partnerId'] = this.partnerId;\n }\n if (typeof this.marketId !== 'undefined') {\n toReturn['marketId'] = this.marketId;\n }\n if (typeof this.accountGroupId !== 'undefined') {\n toReturn['accountGroupId'] = this.accountGroupId;\n }\n if (typeof this.campaignIds !== 'undefined') {\n toReturn['campaignIds'] = this.campaignIds;\n }\n return toReturn;\n }\n}\nclass GetMultiCampaignsResponse {\n static fromProto(proto) {\n let m = new GetMultiCampaignsResponse();\n m = Object.assign(m, proto);\n if (proto.campaigns) {\n m.campaigns = proto.campaigns.map(SalesCampaign.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.campaigns !== 'undefined' && this.campaigns !== null) {\n toReturn['campaigns'] = 'toApiJson' in this.campaigns ? this.campaigns.toApiJson() : this.campaigns;\n }\n return toReturn;\n }\n}\nclass GetMultiOpportunityEffortsRequest {\n static fromProto(proto) {\n let m = new GetMultiOpportunityEffortsRequest();\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.opportunityIds !== 'undefined') {\n toReturn['opportunityIds'] = this.opportunityIds;\n }\n return toReturn;\n }\n}\nclass GetMultiOpportunityEffortsResponse {\n static fromProto(proto) {\n let m = new GetMultiOpportunityEffortsResponse();\n m = Object.assign(m, proto);\n if (proto.opportunityEfforts) {\n m.opportunityEfforts = Object.keys(proto.opportunityEfforts).reduce((obj, k) => {\n obj[k] = EffortAggregate.fromProto(proto.opportunityEfforts[k]);\n return obj;\n }, {});\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.opportunityEfforts !== 'undefined' && this.opportunityEfforts !== null) {\n toReturn['opportunityEfforts'] = 'toApiJson' in this.opportunityEfforts ? this.opportunityEfforts.toApiJson() : this.opportunityEfforts;\n }\n return toReturn;\n }\n}\nclass GetSalesActivityForAccountsRequest {\n static fromProto(proto) {\n let m = new GetSalesActivityForAccountsRequest();\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.partnerId !== 'undefined') {\n toReturn['partnerId'] = this.partnerId;\n }\n if (typeof this.marketId !== 'undefined') {\n toReturn['marketId'] = this.marketId;\n }\n if (typeof this.accountIds !== 'undefined') {\n toReturn['accountIds'] = this.accountIds;\n }\n return toReturn;\n }\n}\nclass GetSalesActivityForAccountsResponse {\n static fromProto(proto) {\n let m = new GetSalesActivityForAccountsResponse();\n m = Object.assign(m, proto);\n if (proto.accountsLatestSalesActivity) {\n m.accountsLatestSalesActivity = proto.accountsLatestSalesActivity.map(AccountLatestSalesActivity.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.accountsLatestSalesActivity !== 'undefined' && this.accountsLatestSalesActivity !== null) {\n toReturn['accountsLatestSalesActivity'] = 'toApiJson' in this.accountsLatestSalesActivity ? this.accountsLatestSalesActivity.toApiJson() : this.accountsLatestSalesActivity;\n }\n return toReturn;\n }\n}\nclass GetSalespersonByEmailRequest {\n static fromProto(proto) {\n let m = new GetSalespersonByEmailRequest();\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.partnerId !== 'undefined') {\n toReturn['partnerId'] = this.partnerId;\n }\n if (typeof this.email !== 'undefined') {\n toReturn['email'] = this.email;\n }\n if (typeof this.marketId !== 'undefined') {\n toReturn['marketId'] = this.marketId;\n }\n return toReturn;\n }\n}\nclass GetSalespersonByEmailResponse {\n static fromProto(proto) {\n let m = new GetSalespersonByEmailResponse();\n m = Object.assign(m, proto);\n if (proto.salesperson) {\n m.salesperson = Salesperson.fromProto(proto.salesperson);\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.salesperson !== 'undefined' && this.salesperson !== null) {\n toReturn['salesperson'] = 'toApiJson' in this.salesperson ? this.salesperson.toApiJson() : this.salesperson;\n }\n return toReturn;\n }\n}\nclass IsConfigValidRequest {\n static fromProto(proto) {\n let m = new IsConfigValidRequest();\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.partnerId !== 'undefined') {\n toReturn['partnerId'] = this.partnerId;\n }\n if (typeof this.accountGroupId !== 'undefined') {\n toReturn['accountGroupId'] = this.accountGroupId;\n }\n return toReturn;\n }\n}\nclass IsConfigValidResponse {\n static fromProto(proto) {\n let m = new IsConfigValidResponse();\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.isValid !== 'undefined') {\n toReturn['isValid'] = this.isValid;\n }\n return toReturn;\n }\n}\nclass ListActionListsRequest {\n static fromProto(proto) {\n let m = new ListActionListsRequest();\n m = Object.assign(m, proto);\n if (proto.pagingOptions) {\n m.pagingOptions = PageIndexedRequestOptions.fromProto(proto.pagingOptions);\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.pagingOptions !== 'undefined' && this.pagingOptions !== null) {\n toReturn['pagingOptions'] = 'toApiJson' in this.pagingOptions ? this.pagingOptions.toApiJson() : this.pagingOptions;\n }\n if (typeof this.partnerId !== 'undefined') {\n toReturn['partnerId'] = this.partnerId;\n }\n if (typeof this.marketId !== 'undefined') {\n toReturn['marketId'] = this.marketId;\n }\n if (typeof this.searchString !== 'undefined') {\n toReturn['searchString'] = this.searchString;\n }\n return toReturn;\n }\n}\nclass ListActionListsResponse {\n static fromProto(proto) {\n let m = new ListActionListsResponse();\n m = Object.assign(m, proto);\n if (proto.actionLists) {\n m.actionLists = proto.actionLists.map(ActionList.fromProto);\n }\n if (proto.nextPage) {\n m.nextPage = parseInt(proto.nextPage, 10);\n }\n if (proto.totalActionListsCount) {\n m.totalActionListsCount = parseInt(proto.totalActionListsCount, 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.actionLists !== 'undefined' && this.actionLists !== null) {\n toReturn['actionLists'] = 'toApiJson' in this.actionLists ? this.actionLists.toApiJson() : this.actionLists;\n }\n if (typeof this.nextPage !== 'undefined') {\n toReturn['nextPage'] = this.nextPage;\n }\n if (typeof this.totalActionListsCount !== 'undefined') {\n toReturn['totalActionListsCount'] = this.totalActionListsCount;\n }\n return toReturn;\n }\n}\nclass ListContactsForBusinessRequest {\n static fromProto(proto) {\n let m = new ListContactsForBusinessRequest();\n m = Object.assign(m, proto);\n if (proto.fieldMask) {\n m.fieldMask = FieldMask.fromProto(proto.fieldMask);\n }\n if (proto.pagingOptions) {\n m.pagingOptions = PagedRequestOptions.fromProto(proto.pagingOptions);\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.fieldMask !== 'undefined' && this.fieldMask !== null) {\n toReturn['fieldMask'] = 'toApiJson' in this.fieldMask ? this.fieldMask.toApiJson() : this.fieldMask;\n }\n if (typeof this.pagingOptions !== 'undefined' && this.pagingOptions !== null) {\n toReturn['pagingOptions'] = 'toApiJson' in this.pagingOptions ? this.pagingOptions.toApiJson() : this.pagingOptions;\n }\n if (typeof this.accountGroupId !== 'undefined') {\n toReturn['accountGroupId'] = this.accountGroupId;\n }\n return toReturn;\n }\n}\nclass ListContactsForBusinessResponse {\n static fromProto(proto) {\n let m = new ListContactsForBusinessResponse();\n m = Object.assign(m, proto);\n if (proto.contacts) {\n m.contacts = proto.contacts.map(Contact.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.contacts !== 'undefined' && this.contacts !== null) {\n toReturn['contacts'] = 'toApiJson' in this.contacts ? this.contacts.toApiJson() : this.contacts;\n }\n return toReturn;\n }\n}\nclass ListContactsForEmailRequest {\n static fromProto(proto) {\n let m = new ListContactsForEmailRequest();\n m = Object.assign(m, proto);\n if (proto.fieldMask) {\n m.fieldMask = FieldMask.fromProto(proto.fieldMask);\n }\n if (proto.pagingOptions) {\n m.pagingOptions = PagedRequestOptions.fromProto(proto.pagingOptions);\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.fieldMask !== 'undefined' && this.fieldMask !== null) {\n toReturn['fieldMask'] = 'toApiJson' in this.fieldMask ? this.fieldMask.toApiJson() : this.fieldMask;\n }\n if (typeof this.pagingOptions !== 'undefined' && this.pagingOptions !== null) {\n toReturn['pagingOptions'] = 'toApiJson' in this.pagingOptions ? this.pagingOptions.toApiJson() : this.pagingOptions;\n }\n if (typeof this.partnerId !== 'undefined') {\n toReturn['partnerId'] = this.partnerId;\n }\n if (typeof this.marketId !== 'undefined') {\n toReturn['marketId'] = this.marketId;\n }\n if (typeof this.contactEmail !== 'undefined') {\n toReturn['contactEmail'] = this.contactEmail;\n }\n return toReturn;\n }\n}\nclass ListContactsResponse {\n static fromProto(proto) {\n let m = new ListContactsResponse();\n m = Object.assign(m, proto);\n if (proto.contacts) {\n m.contacts = proto.contacts.map(Contact.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.contacts !== 'undefined' && this.contacts !== null) {\n toReturn['contacts'] = 'toApiJson' in this.contacts ? this.contacts.toApiJson() : this.contacts;\n }\n return toReturn;\n }\n}\nclass ListRequest {\n static fromProto(proto) {\n let m = new ListRequest();\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.partnerId !== 'undefined') {\n toReturn['partnerId'] = this.partnerId;\n }\n if (typeof this.accountGroupId !== 'undefined') {\n toReturn['accountGroupId'] = this.accountGroupId;\n }\n if (typeof this.marketId !== 'undefined') {\n toReturn['marketId'] = this.marketId;\n }\n return toReturn;\n }\n}\nclass ListResponse {\n static fromProto(proto) {\n let m = new ListResponse();\n m = Object.assign(m, proto);\n if (proto.requests) {\n m.requests = proto.requests.map(CancellationRequest.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 LookupCampaignsRequest {\n static fromProto(proto) {\n let m = new LookupCampaignsRequest();\n m = Object.assign(m, proto);\n if (proto.offset) {\n m.offset = parseInt(proto.offset, 10);\n }\n if (proto.pageSize) {\n m.pageSize = parseInt(proto.pageSize, 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.partnerId !== 'undefined') {\n toReturn['partnerId'] = this.partnerId;\n }\n if (typeof this.status !== 'undefined') {\n toReturn['status'] = this.status;\n }\n if (typeof this.focus !== 'undefined') {\n toReturn['focus'] = this.focus;\n }\n if (typeof this.state !== 'undefined') {\n toReturn['state'] = this.state;\n }\n if (typeof this.offset !== 'undefined') {\n toReturn['offset'] = this.offset;\n }\n if (typeof this.pageSize !== 'undefined') {\n toReturn['pageSize'] = this.pageSize;\n }\n if (typeof this.searchTerm !== 'undefined') {\n toReturn['searchTerm'] = this.searchTerm;\n }\n if (typeof this.marketId !== 'undefined') {\n toReturn['marketId'] = this.marketId;\n }\n return toReturn;\n }\n}\nclass LookupCampaignsResponse {\n static fromProto(proto) {\n let m = new LookupCampaignsResponse();\n m = Object.assign(m, proto);\n if (proto.campaigns) {\n m.campaigns = proto.campaigns.map(SalesCampaign.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.campaigns !== 'undefined' && this.campaigns !== null) {\n toReturn['campaigns'] = 'toApiJson' in this.campaigns ? this.campaigns.toApiJson() : this.campaigns;\n }\n return toReturn;\n }\n}\nclass GetMultiOpportunityEffortsResponseOpportunityEffortsEntry {\n static fromProto(proto) {\n let m = new GetMultiOpportunityEffortsResponseOpportunityEffortsEntry();\n m = Object.assign(m, proto);\n if (proto.value) {\n m.value = EffortAggregate.fromProto(proto.value);\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.value !== 'undefined' && this.value !== null) {\n toReturn['value'] = 'toApiJson' in this.value ? this.value.toApiJson() : this.value;\n }\n return toReturn;\n }\n}\nclass PageIndexedRequestOptions {\n static fromProto(proto) {\n let m = new PageIndexedRequestOptions();\n m = Object.assign(m, proto);\n if (proto.pageSize) {\n m.pageSize = parseInt(proto.pageSize, 10);\n }\n if (proto.pageIndex) {\n m.pageIndex = parseInt(proto.pageIndex, 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.pageSize !== 'undefined') {\n toReturn['pageSize'] = this.pageSize;\n }\n if (typeof this.pageIndex !== 'undefined') {\n toReturn['pageIndex'] = this.pageIndex;\n }\n return toReturn;\n }\n}\nclass PagedRequestOptions {\n static fromProto(proto) {\n let m = new PagedRequestOptions();\n m = Object.assign(m, proto);\n if (proto.pageSize) {\n m.pageSize = parseInt(proto.pageSize, 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.pageSize !== 'undefined') {\n toReturn['pageSize'] = this.pageSize;\n }\n return toReturn;\n }\n}\nclass AddContactToCampaignRequestRecipient {\n static fromProto(proto) {\n let m = new AddContactToCampaignRequestRecipient();\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.accountGroupId !== 'undefined') {\n toReturn['accountGroupId'] = this.accountGroupId;\n }\n if (typeof this.emailAddress !== 'undefined') {\n toReturn['emailAddress'] = this.emailAddress;\n }\n return toReturn;\n }\n}\nclass ResendUserWelcomeEmailRequest {\n static fromProto(proto) {\n let m = new ResendUserWelcomeEmailRequest();\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.partnerId !== 'undefined') {\n toReturn['partnerId'] = this.partnerId;\n }\n if (typeof this.subjectId !== 'undefined') {\n toReturn['subjectId'] = this.subjectId;\n }\n return toReturn;\n }\n}\nclass ResendUserWelcomeEmailResponse {\n static fromProto(proto) {\n let m = new ResendUserWelcomeEmailResponse();\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.notificationId !== 'undefined') {\n toReturn['notificationId'] = this.notificationId;\n }\n return toReturn;\n }\n}\nclass SalesCampaign {\n static fromProto(proto) {\n let m = new SalesCampaign();\n m = Object.assign(m, proto);\n if (proto.campaignSchedule) {\n m.campaignSchedule = proto.campaignSchedule.map(ScheduleStep.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.name !== 'undefined') {\n toReturn['name'] = this.name;\n }\n if (typeof this.campaignStatus !== 'undefined') {\n toReturn['campaignStatus'] = this.campaignStatus;\n }\n if (typeof this.campaignId !== 'undefined') {\n toReturn['campaignId'] = this.campaignId;\n }\n if (typeof this.campaignSchedule !== 'undefined' && this.campaignSchedule !== null) {\n toReturn['campaignSchedule'] = 'toApiJson' in this.campaignSchedule ? this.campaignSchedule.toApiJson() : this.campaignSchedule;\n }\n return toReturn;\n }\n}\nclass ScheduleStep {\n static fromProto(proto) {\n let m = new ScheduleStep();\n m = Object.assign(m, proto);\n if (proto.secondsAfterLastEmail) {\n m.secondsAfterLastEmail = parseInt(proto.secondsAfterLastEmail, 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.stepType !== 'undefined') {\n toReturn['stepType'] = this.stepType;\n }\n if (typeof this.secondsAfterLastEmail !== 'undefined') {\n toReturn['secondsAfterLastEmail'] = this.secondsAfterLastEmail;\n }\n if (typeof this.name !== 'undefined') {\n toReturn['name'] = this.name;\n }\n if (typeof this.templateId !== 'undefined') {\n toReturn['templateId'] = this.templateId;\n }\n return toReturn;\n }\n}\nclass SearchBusinessesByContactEmailRequest {\n static fromProto(proto) {\n let m = new SearchBusinessesByContactEmailRequest();\n m = Object.assign(m, proto);\n if (proto.fieldMask) {\n m.fieldMask = FieldMask.fromProto(proto.fieldMask);\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.fieldMask !== 'undefined' && this.fieldMask !== null) {\n toReturn['fieldMask'] = 'toApiJson' in this.fieldMask ? this.fieldMask.toApiJson() : this.fieldMask;\n }\n if (typeof this.partnerId !== 'undefined') {\n toReturn['partnerId'] = this.partnerId;\n }\n if (typeof this.marketId !== 'undefined') {\n toReturn['marketId'] = this.marketId;\n }\n if (typeof this.contactEmailQuery !== 'undefined') {\n toReturn['contactEmailQuery'] = this.contactEmailQuery;\n }\n if (typeof this.assignedUserId !== 'undefined') {\n toReturn['assignedUserId'] = this.assignedUserId;\n }\n return toReturn;\n }\n}\nclass SearchRequest {\n static fromProto(proto) {\n let m = new SearchRequest();\n m = Object.assign(m, proto);\n if (proto.fieldMask) {\n m.fieldMask = FieldMask.fromProto(proto.fieldMask);\n }\n if (proto.pagingOptions) {\n m.pagingOptions = PagedRequestOptions.fromProto(proto.pagingOptions);\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.fieldMask !== 'undefined' && this.fieldMask !== null) {\n toReturn['fieldMask'] = 'toApiJson' in this.fieldMask ? this.fieldMask.toApiJson() : this.fieldMask;\n }\n if (typeof this.partnerId !== 'undefined') {\n toReturn['partnerId'] = this.partnerId;\n }\n if (typeof this.marketId !== 'undefined') {\n toReturn['marketId'] = this.marketId;\n }\n if (typeof this.pagingOptions !== 'undefined' && this.pagingOptions !== null) {\n toReturn['pagingOptions'] = 'toApiJson' in this.pagingOptions ? this.pagingOptions.toApiJson() : this.pagingOptions;\n }\n return toReturn;\n }\n}\nclass SearchResponse {\n static fromProto(proto) {\n let m = new SearchResponse();\n m = Object.assign(m, proto);\n if (proto.businesses) {\n m.businesses = proto.businesses.map(Business.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.businesses !== 'undefined' && this.businesses !== null) {\n toReturn['businesses'] = 'toApiJson' in this.businesses ? this.businesses.toApiJson() : this.businesses;\n }\n return toReturn;\n }\n}\nclass SendPasswordResetEmailRequest {\n static fromProto(proto) {\n let m = new SendPasswordResetEmailRequest();\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.salesPersonId !== 'undefined') {\n toReturn['salesPersonId'] = this.salesPersonId;\n }\n if (typeof this.usePlatformDefaultDomain !== 'undefined') {\n toReturn['usePlatformDefaultDomain'] = this.usePlatformDefaultDomain;\n }\n if (typeof this.partnerId !== 'undefined') {\n toReturn['partnerId'] = this.partnerId;\n }\n return toReturn;\n }\n}\nclass SetAccountPrimaryContactRequest {\n static fromProto(proto) {\n let m = new SetAccountPrimaryContactRequest();\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.accountId !== 'undefined') {\n toReturn['accountId'] = this.accountId;\n }\n if (typeof this.contactId !== 'undefined') {\n toReturn['contactId'] = this.contactId;\n }\n if (typeof this.partnerId !== 'undefined') {\n toReturn['partnerId'] = this.partnerId;\n }\n if (typeof this.marketId !== 'undefined') {\n toReturn['marketId'] = this.marketId;\n }\n return toReturn;\n }\n}\nclass UpdateContactRequest {\n static fromProto(proto) {\n let m = new UpdateContactRequest();\n m = Object.assign(m, proto);\n if (proto.contact) {\n m.contact = Contact.fromProto(proto.contact);\n }\n if (proto.mutatorMask) {\n m.mutatorMask = FieldMask.fromProto(proto.mutatorMask);\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.partnerId !== 'undefined') {\n toReturn['partnerId'] = this.partnerId;\n }\n if (typeof this.marketId !== 'undefined') {\n toReturn['marketId'] = this.marketId;\n }\n if (typeof this.contact !== 'undefined' && this.contact !== null) {\n toReturn['contact'] = 'toApiJson' in this.contact ? this.contact.toApiJson() : this.contact;\n }\n if (typeof this.mutatorMask !== 'undefined' && this.mutatorMask !== null) {\n toReturn['mutatorMask'] = 'toApiJson' in this.mutatorMask ? this.mutatorMask.toApiJson() : this.mutatorMask;\n }\n return toReturn;\n }\n}\nclass UpdateStatusRequest {\n static fromProto(proto) {\n let m = new UpdateStatusRequest();\n m = Object.assign(m, proto);\n if (proto.status) {\n m.status = enumStringToValue(CancellationRequestStatus, proto.status);\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.cancellationRequestId !== 'undefined') {\n toReturn['cancellationRequestId'] = this.cancellationRequestId;\n }\n if (typeof this.status !== 'undefined') {\n toReturn['status'] = this.status;\n }\n if (typeof this.userId !== 'undefined') {\n toReturn['userId'] = this.userId;\n }\n return toReturn;\n }\n}\n\n// *********************************\n\nconst environment = (window ? window['environment'] : 'prod') ?? 'prod';\nconst hostMap = {\n 'local': '',\n 'test': '',\n 'demo': 'sales-api-demo.vendasta-internal.com',\n 'prod': 'sales-api-prod.vendasta-internal.com',\n 'production': 'sales-api-prod.vendasta-internal.com'\n};\nlet HostService = /*#__PURE__*/(() => {\n class HostService {\n get host() {\n return hostMap[environment.toLowerCase()];\n }\n get hostWithScheme() {\n return 'https://' + this.host;\n }\n }\n HostService.ɵfac = function HostService_Factory(__ngFactoryType__) {\n return new (__ngFactoryType__ || 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 ActionListsApiService = /*#__PURE__*/(() => {\n class ActionListsApiService {\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 listActionLists(r) {\n const request = r.toApiJson ? r : new ListActionListsRequest(r);\n return this.http.post(this._host + \"/sales.v2beta1.ActionLists/ListActionLists\", request.toApiJson(), this.apiOptions()).pipe(map(resp => ListActionListsResponse.fromProto(resp)));\n }\n addAccountsToActionList(r) {\n const request = r.toApiJson ? r : new AddAccountsToActionListRequest(r);\n return this.http.post(this._host + \"/sales.v2beta1.ActionLists/AddAccountsToActionList\", request.toApiJson(), this.apiOptions()).pipe(map(resp => AddAccountsToActionListResponse.fromProto(resp)));\n }\n }\n ActionListsApiService.ɵfac = function ActionListsApiService_Factory(__ngFactoryType__) {\n return new (__ngFactoryType__ || ActionListsApiService)(i0.ɵɵinject(i1.HttpClient), i0.ɵɵinject(HostService));\n };\n ActionListsApiService.ɵprov = /* @__PURE__ */i0.ɵɵdefineInjectable({\n token: ActionListsApiService,\n factory: ActionListsApiService.ɵfac,\n providedIn: 'root'\n });\n return ActionListsApiService;\n})();\n(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && void 0;\n})();\n\n// *********************************\nlet BusinessApiService = /*#__PURE__*/(() => {\n class BusinessApiService {\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 search(r) {\n const request = r.toApiJson ? r : new SearchRequest(r);\n return this.http.post(this._host + \"/sales.v2beta1.BusinessService/Search\", request.toApiJson(), this.apiOptions()).pipe(map(resp => SearchResponse.fromProto(resp)));\n }\n searchBusinessesByContactEmail(r) {\n const request = r.toApiJson ? r : new SearchBusinessesByContactEmailRequest(r);\n return this.http.post(this._host + \"/sales.v2beta1.BusinessService/SearchBusinessesByContactEmail\", request.toApiJson(), this.apiOptions()).pipe(map(resp => SearchResponse.fromProto(resp)));\n }\n setAccountPrimaryContact(r) {\n const request = r.toApiJson ? r : new SetAccountPrimaryContactRequest(r);\n return this.http.post(this._host + \"/sales.v2beta1.BusinessService/SetAccountPrimaryContact\", request.toApiJson(), {\n ...this.apiOptions(),\n observe: 'response'\n });\n }\n getAccountPrimaryContact(r) {\n const request = r.toApiJson ? r : new GetAccountPrimaryContactRequest(r);\n return this.http.post(this._host + \"/sales.v2beta1.BusinessService/GetAccountPrimaryContact\", request.toApiJson(), this.apiOptions()).pipe(map(resp => GetAccountPrimaryContactResponse.fromProto(resp)));\n }\n getSalesActivityForAccounts(r) {\n const request = r.toApiJson ? r : new GetSalesActivityForAccountsRequest(r);\n return this.http.post(this._host + \"/sales.v2beta1.BusinessService/GetSalesActivityForAccounts\", request.toApiJson(), this.apiOptions()).pipe(map(resp => GetSalesActivityForAccountsResponse.fromProto(resp)));\n }\n }\n BusinessApiService.ɵfac = function BusinessApiService_Factory(__ngFactoryType__) {\n return new (__ngFactoryType__ || BusinessApiService)(i0.ɵɵinject(i1.HttpClient), i0.ɵɵinject(HostService));\n };\n BusinessApiService.ɵprov = /* @__PURE__ */i0.ɵɵdefineInjectable({\n token: BusinessApiService,\n factory: BusinessApiService.ɵfac,\n providedIn: 'root'\n });\n return BusinessApiService;\n})();\n(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && void 0;\n})();\n\n// *********************************\nlet CampaignApiService = /*#__PURE__*/(() => {\n class CampaignApiService {\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 getMultiCampaigns(r) {\n const request = r.toApiJson ? r : new GetMultiCampaignsRequest(r);\n return this.http.post(this._host + \"/sales.v2beta1.CampaignService/GetMultiCampaigns\", request.toApiJson(), this.apiOptions()).pipe(map(resp => GetMultiCampaignsResponse.fromProto(resp)));\n }\n lookupCampaigns(r) {\n const request = r.toApiJson ? r : new LookupCampaignsRequest(r);\n return this.http.post(this._host + \"/sales.v2beta1.CampaignService/LookupCampaigns\", request.toApiJson(), this.apiOptions()).pipe(map(resp => LookupCampaignsResponse.fromProto(resp)));\n }\n addContactToCampaign(r) {\n const request = r.toApiJson ? r : new AddContactToCampaignRequest(r);\n return this.http.post(this._host + \"/sales.v2beta1.CampaignService/AddContactToCampaign\", request.toApiJson(), {\n ...this.apiOptions(),\n observe: 'response'\n });\n }\n }\n CampaignApiService.ɵfac = function CampaignApiService_Factory(__ngFactoryType__) {\n return new (__ngFactoryType__ || CampaignApiService)(i0.ɵɵinject(i1.HttpClient), i0.ɵɵinject(HostService));\n };\n CampaignApiService.ɵprov = /* @__PURE__ */i0.ɵɵdefineInjectable({\n token: CampaignApiService,\n factory: CampaignApiService.ɵfac,\n providedIn: 'root'\n });\n return CampaignApiService;\n})();\n(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && void 0;\n})();\n\n// *********************************\nlet CancellationRequestsApiService = /*#__PURE__*/(() => {\n class CancellationRequestsApiService {\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 list(r) {\n const request = r.toApiJson ? r : new ListRequest(r);\n return this.http.post(this._host + \"/sales.v2beta1.CancellationRequests/List\", request.toApiJson(), this.apiOptions()).pipe(map(resp => ListResponse.fromProto(resp)));\n }\n updateStatus(r) {\n const request = r.toApiJson ? r : new UpdateStatusRequest(r);\n return this.http.post(this._host + \"/sales.v2beta1.CancellationRequests/UpdateStatus\", request.toApiJson(), {\n ...this.apiOptions(),\n observe: 'response'\n });\n }\n create(r) {\n const request = r.toApiJson ? r : new CreateRequest(r);\n return this.http.post(this._host + \"/sales.v2beta1.CancellationRequests/Create\", request.toApiJson(), {\n ...this.apiOptions(),\n observe: 'response'\n });\n }\n isConfigValid(r) {\n const request = r.toApiJson ? r : new IsConfigValidRequest(r);\n return this.http.post(this._host + \"/sales.v2beta1.CancellationRequests/IsConfigValid\", request.toApiJson(), this.apiOptions()).pipe(map(resp => IsConfigValidResponse.fromProto(resp)));\n }\n }\n CancellationRequestsApiService.ɵfac = function CancellationRequestsApiService_Factory(__ngFactoryType__) {\n return new (__ngFactoryType__ || CancellationRequestsApiService)(i0.ɵɵinject(i1.HttpClient), i0.ɵɵinject(HostService));\n };\n CancellationRequestsApiService.ɵprov = /* @__PURE__ */i0.ɵɵdefineInjectable({\n token: CancellationRequestsApiService,\n factory: CancellationRequestsApiService.ɵfac,\n providedIn: 'root'\n });\n return CancellationRequestsApiService;\n})();\n(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && void 0;\n})();\n\n// *********************************\nlet ContactsApiService = /*#__PURE__*/(() => {\n class ContactsApiService {\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 getContactById(r) {\n const request = r.toApiJson ? r : new GetContactByIDRequest(r);\n return this.http.post(this._host + \"/sales.v2beta1.Contacts/GetContactByID\", request.toApiJson(), this.apiOptions()).pipe(map(resp => GetContactResponse.fromProto(resp)));\n }\n listContactsForEmail(r) {\n const request = r.toApiJson ? r : new ListContactsForEmailRequest(r);\n return this.http.post(this._host + \"/sales.v2beta1.Contacts/ListContactsForEmail\", request.toApiJson(), this.apiOptions()).pipe(map(resp => ListContactsResponse.fromProto(resp)));\n }\n listContactsForBusiness(r) {\n const request = r.toApiJson ? r : new ListContactsForBusinessRequest(r);\n return this.http.post(this._host + \"/sales.v2beta1.Contacts/ListContactsForBusiness\", request.toApiJson(), this.apiOptions()).pipe(map(resp => ListContactsForBusinessResponse.fromProto(resp)));\n }\n resendUserWelcomeEmail(r) {\n const request = r.toApiJson ? r : new ResendUserWelcomeEmailRequest(r);\n return this.http.post(this._host + \"/sales.v2beta1.Contacts/ResendUserWelcomeEmail\", request.toApiJson(), this.apiOptions()).pipe(map(resp => ResendUserWelcomeEmailResponse.fromProto(resp)));\n }\n getContactsForAccounts(r) {\n const request = r.toApiJson ? r : new GetContactsForAccountsRequest(r);\n return this.http.post(this._host + \"/sales.v2beta1.Contacts/GetContactsForAccounts\", request.toApiJson(), this.apiOptions()).pipe(map(resp => GetContactsForAccountsResponse.fromProto(resp)));\n }\n update(r) {\n const request = r.toApiJson ? r : new UpdateContactRequest(r);\n return this.http.post(this._host + \"/sales.v2beta1.Contacts/Update\", request.toApiJson(), {\n ...this.apiOptions(),\n observe: 'response'\n });\n }\n delete(r) {\n const request = r.toApiJson ? r : new DeleteContactRequest(r);\n return this.http.post(this._host + \"/sales.v2beta1.Contacts/Delete\", request.toApiJson(), {\n ...this.apiOptions(),\n observe: 'response'\n });\n }\n create(r) {\n const request = r.toApiJson ? r : new CreateContactRequest(r);\n return this.http.post(this._host + \"/sales.v2beta1.Contacts/Create\", request.toApiJson(), this.apiOptions()).pipe(map(resp => CreateContactResponse.fromProto(resp)));\n }\n }\n ContactsApiService.ɵfac = function ContactsApiService_Factory(__ngFactoryType__) {\n return new (__ngFactoryType__ || ContactsApiService)(i0.ɵɵinject(i1.HttpClient), i0.ɵɵinject(HostService));\n };\n ContactsApiService.ɵprov = /* @__PURE__ */i0.ɵɵdefineInjectable({\n token: ContactsApiService,\n factory: ContactsApiService.ɵfac,\n providedIn: 'root'\n });\n return ContactsApiService;\n})();\n(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && void 0;\n})();\n\n// *********************************\nlet SalespeopleApiService = /*#__PURE__*/(() => {\n class SalespeopleApiService {\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 getSalespersonByEmail(r) {\n const request = r.toApiJson ? r : new GetSalespersonByEmailRequest(r);\n return this.http.post(this._host + \"/sales.v2beta1.Salespeople/GetSalespersonByEmail\", request.toApiJson(), this.apiOptions()).pipe(map(resp => GetSalespersonByEmailResponse.fromProto(resp)));\n }\n createSalespersonForUser(r) {\n const request = r.toApiJson ? r : new CreateSalespersonForUserRequest(r);\n return this.http.post(this._host + \"/sales.v2beta1.Salespeople/CreateSalespersonForUser\", request.toApiJson(), this.apiOptions()).pipe(map(resp => CreateSalespersonForUserResponse.fromProto(resp)));\n }\n getMultiOpportunityEfforts(r) {\n const request = r.toApiJson ? r : new GetMultiOpportunityEffortsRequest(r);\n return this.http.post(this._host + \"/sales.v2beta1.Salespeople/GetMultiOpportunityEfforts\", request.toApiJson(), this.apiOptions()).pipe(map(resp => GetMultiOpportunityEffortsResponse.fromProto(resp)));\n }\n sendPasswordResetEmail(r) {\n const request = r.toApiJson ? r : new SendPasswordResetEmailRequest(r);\n return this.http.post(this._host + \"/sales.v2beta1.Salespeople/SendPasswordResetEmail\", request.toApiJson(), {\n ...this.apiOptions(),\n observe: 'response'\n });\n }\n }\n SalespeopleApiService.ɵfac = function SalespeopleApiService_Factory(__ngFactoryType__) {\n return new (__ngFactoryType__ || SalespeopleApiService)(i0.ɵɵinject(i1.HttpClient), i0.ɵɵinject(HostService));\n };\n SalespeopleApiService.ɵprov = /* @__PURE__ */i0.ɵɵdefineInjectable({\n token: SalespeopleApiService,\n factory: SalespeopleApiService.ɵfac,\n providedIn: 'root'\n });\n return SalespeopleApiService;\n})();\n(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && void 0;\n})();\n\n// *********************************\nlet CancellationRequestService = /*#__PURE__*/(() => {\n class CancellationRequestService {\n constructor(svc) {\n this.svc = svc;\n }\n create(accountGroupId, partnerId, lineItemId, requestingUserId, reason, message, status) {\n const req = {\n accountGroupId: accountGroupId,\n partnerId: partnerId,\n lineItemId: lineItemId,\n requestingUserId: requestingUserId,\n status: status,\n reason: reason,\n message: message\n };\n return this.svc.create(req);\n }\n list(partnerId, accountGroupId, marketId) {\n const req = {\n partnerId: partnerId,\n accountGroupId: accountGroupId\n };\n if (!!marketId) {\n req.marketId = marketId;\n }\n return this.svc.list(req).pipe(map(resp => resp?.requests ?? []));\n }\n updateStatus(cancellationRequestId, cancellationRequestStatus, userId) {\n const req = {\n cancellationRequestId: cancellationRequestId,\n status: cancellationRequestStatus,\n userId: userId\n };\n return this.svc.updateStatus(req);\n }\n isConfigValid(partnerId, accountGroupId) {\n const req = {\n partnerId: partnerId,\n accountGroupId: accountGroupId\n };\n return this.svc.isConfigValid(req).pipe(map(resp => resp.isValid));\n }\n }\n CancellationRequestService.ɵfac = function CancellationRequestService_Factory(__ngFactoryType__) {\n return new (__ngFactoryType__ || CancellationRequestService)(i0.ɵɵinject(CancellationRequestsApiService));\n };\n CancellationRequestService.ɵprov = /* @__PURE__ */i0.ɵɵdefineInjectable({\n token: CancellationRequestService,\n factory: CancellationRequestService.ɵfac,\n providedIn: 'root'\n });\n return CancellationRequestService;\n})();\n(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && void 0;\n})();\nvar Sort = /*#__PURE__*/function (Sort) {\n Sort[Sort[\"Updated\"] = 0] = \"Updated\"; // Only exists to communicate that this is currently the only sort option\n return Sort;\n}(Sort || {});\nvar SortDirection = /*#__PURE__*/function (SortDirection) {\n SortDirection[SortDirection[\"Descending\"] = 0] = \"Descending\"; // Only exists to communicate that this is currently the only sort option\n return SortDirection;\n}(SortDirection || {});\nlet BusinessService = /*#__PURE__*/(() => {\n class BusinessService {\n constructor(svc) {\n this.svc = svc;\n }\n search(partner, market, sort, direction, pageSize = 10) {\n const req = {\n partnerId: partner,\n marketId: market,\n fieldMask: {\n paths: ['external_id', 'updated']\n },\n pagingOptions: {\n pageSize: pageSize\n }\n };\n return this.svc.search(req).pipe(map(resp => this.returnBusinessResult(resp)), catchError(err => throwError(this.returnSearchError(err))));\n }\n searchBusinessesByContactEmail(partner, market, contactEmailQuery, assignedUserId) {\n const req = {\n partnerId: partner,\n marketId: market,\n contactEmailQuery: contactEmailQuery,\n fieldMask: {\n paths: ['external_id', 'updated']\n }\n };\n if (assignedUserId) {\n req.assignedUserId = assignedUserId;\n }\n return this.svc.searchBusinessesByContactEmail(req).pipe(map(resp => this.returnBusinessResult(resp)), catchError(err => throwError(this.returnSearchError(err))));\n }\n getPrimaryContact(accountId, partnerId, marketId) {\n const req = new GetAccountPrimaryContactRequest({\n accountId: accountId,\n partnerId: partnerId,\n marketId: marketId\n });\n return this.svc.getAccountPrimaryContact(req).pipe(map(resp => resp?.contactId));\n }\n setPrimaryContact(contactId, accountId, partnerId, marketId) {\n const req = new SetAccountPrimaryContactRequest({\n contactId: contactId,\n accountId: accountId,\n partnerId: partnerId,\n marketId: marketId\n });\n return this.svc.setAccountPrimaryContact(req).pipe(mapTo(null));\n }\n getLatestSalesActivityForAccounts(partnerId, marketId, accountIds) {\n const req = new GetSalesActivityForAccountsRequest({\n partnerId: partnerId,\n marketId: marketId,\n accountIds: accountIds\n });\n return this.svc.getSalesActivityForAccounts(req).pipe(map(resp => resp?.accountsLatestSalesActivity));\n }\n returnBusinessResult(resp) {\n return resp.businesses.map(b => ({\n accountGroupId: b.accountGroupId,\n updated: b.updated\n }));\n }\n returnSearchError(err) {\n if (err?.status === 404) {\n return of([]);\n }\n return err;\n }\n }\n BusinessService.ɵfac = function BusinessService_Factory(__ngFactoryType__) {\n return new (__ngFactoryType__ || BusinessService)(i0.ɵɵinject(BusinessApiService));\n };\n BusinessService.ɵprov = /* @__PURE__ */i0.ɵɵdefineInjectable({\n token: BusinessService,\n factory: BusinessService.ɵfac,\n providedIn: 'root'\n });\n return BusinessService;\n})();\n(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && void 0;\n})();\nlet ActionListsService = /*#__PURE__*/(() => {\n class ActionListsService {\n constructor(svc) {\n this.svc = svc;\n }\n listActionLists(partnerId, marketId, searchString, pageIndex, pageSize) {\n const req = {\n partnerId: partnerId,\n marketId: marketId,\n searchString: searchString,\n pagingOptions: {\n pageIndex: pageIndex,\n pageSize: pageSize\n }\n };\n return this.svc.listActionLists(req).pipe(catchError(err => {\n if (err.status === 404) {\n return of(new ListActionListsResponse());\n }\n throw err;\n }));\n }\n addAccountsToActionList(partnerId, marketId, listName, accountGroupIds) {\n const req = {\n partnerId: partnerId,\n marketId: marketId,\n listName: listName,\n accountGroupIds: accountGroupIds\n };\n return this.svc.addAccountsToActionList(req);\n }\n }\n ActionListsService.ɵfac = function ActionListsService_Factory(__ngFactoryType__) {\n return new (__ngFactoryType__ || ActionListsService)(i0.ɵɵinject(ActionListsApiService));\n };\n ActionListsService.ɵprov = /* @__PURE__ */i0.ɵɵdefineInjectable({\n token: ActionListsService,\n factory: ActionListsService.ɵfac,\n providedIn: 'root'\n });\n return ActionListsService;\n})();\n(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && void 0;\n})();\nlet ContactsService = /*#__PURE__*/(() => {\n class ContactsService {\n constructor(svc) {\n this.svc = svc;\n }\n resendUserWelcomeEmail(partnerID, subjectID) {\n const resendRequest = {\n partnerId: partnerID,\n subjectId: subjectID\n };\n return this.svc.resendUserWelcomeEmail(resendRequest).pipe(map(response => ({\n success: response.notificationId !== ''\n })));\n }\n getContactsForAccounts(partnerID, marketID, accountIDs) {\n const getContactsRequest = {\n partnerId: partnerID,\n marketId: marketID,\n accountIds: accountIDs\n };\n return this.svc.getContactsForAccounts(getContactsRequest).pipe(map(response => ({\n contacts: response?.contacts || []\n })));\n }\n create(partnerId, marketId, accountGroupIds, contactAttributes) {\n const r = new CreateContactRequest({\n partnerId: partnerId,\n marketId: marketId,\n accountGroupIds: accountGroupIds,\n title: contactAttributes.title,\n firstName: contactAttributes.firstName,\n lastName: contactAttributes.lastName,\n phoneNumber: contactAttributes.phoneNumber,\n phoneNumberCountry: contactAttributes.phoneCountryCode,\n phoneNumberExtension: contactAttributes.phoneExtension,\n email: contactAttributes.email,\n notes: contactAttributes.notes\n });\n return this.svc.create(r).pipe(map(resp => resp.contact));\n }\n update(partnerId, marketId, contact, updatedFields) {\n const updateRequest = new UpdateContactRequest({\n partnerId: partnerId,\n marketId: marketId,\n contact: contact,\n mutatorMask: new FieldMask({\n paths: updatedFields\n })\n });\n return this.svc.update(updateRequest);\n }\n delete(partnerId, marketId, contactId) {\n if (!partnerId || !marketId || !contactId) {\n throw new Error('partnerId, marketId, and contactId required to delete a contact');\n }\n const deleteRequest = new DeleteContactRequest({\n partnerId: partnerId,\n marketId: marketId,\n contactId: contactId\n });\n return this.svc.delete(deleteRequest);\n }\n listContactsForBusiness(businessId, paths) {\n if (!businessId) {\n throw new Error('businessId required to retrieve contacts for a business');\n }\n const listRequest = new ListContactsForBusinessRequest({\n fieldMask: new FieldMask({\n paths: paths\n }),\n pagingOptions: new PagedRequestOptions({\n pageSize: 100\n }),\n accountGroupId: businessId\n });\n return this.svc.listContactsForBusiness(listRequest).pipe(map(res => res.contacts));\n }\n }\n ContactsService.ɵfac = function ContactsService_Factory(__ngFactoryType__) {\n return new (__ngFactoryType__ || ContactsService)(i0.ɵɵinject(ContactsApiService));\n };\n ContactsService.ɵprov = /* @__PURE__ */i0.ɵɵdefineInjectable({\n token: ContactsService,\n factory: ContactsService.ɵfac,\n providedIn: 'root'\n });\n return ContactsService;\n})();\n(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && void 0;\n})();\nlet SalespeopleService = /*#__PURE__*/(() => {\n class SalespeopleService {\n constructor(svc) {\n this.svc = svc;\n }\n isPermittedToCreateSalespersonForUser(userID) {\n return this.sendCreateSalespersonForUserRequest(userID, '', false, true).pipe(mapTo(true), catchError(_ => of(false)));\n }\n createSalespersonForUser(userID, marketID, isSalesManager = false) {\n return this.sendCreateSalespersonForUserRequest(userID, marketID, isSalesManager, false);\n }\n // returns salesperson efforts stats mapped to opportunityIds\n getMultiOpportunitySalespersonEfforts(opportunityIds) {\n const req = new GetMultiOpportunityEffortsRequest({\n opportunityIds: opportunityIds\n });\n return this.svc.getMultiOpportunityEfforts(req).pipe(map(resp => resp?.opportunityEfforts));\n }\n sendCreateSalespersonForUserRequest(userID, marketID, isSalesManager = false, authCheckOnly = false) {\n const req = {\n userId: userID,\n marketId: marketID,\n isSalesManager: isSalesManager,\n authCheckOnly: authCheckOnly\n };\n return this.svc.createSalespersonForUser(req);\n }\n sendPasswordResetEmail(partnerId, salesPersonId, usePlatformDefaultDomain) {\n const req = new SendPasswordResetEmailRequest({\n partnerId: partnerId,\n salesPersonId: salesPersonId,\n usePlatformDefaultDomain: usePlatformDefaultDomain\n });\n return this.svc.sendPasswordResetEmail(req);\n }\n }\n SalespeopleService.ɵfac = function SalespeopleService_Factory(__ngFactoryType__) {\n return new (__ngFactoryType__ || SalespeopleService)(i0.ɵɵinject(SalespeopleApiService));\n };\n SalespeopleService.ɵprov = /* @__PURE__ */i0.ɵɵdefineInjectable({\n token: SalespeopleService,\n factory: SalespeopleService.ɵfac,\n providedIn: 'root'\n });\n return SalespeopleService;\n})();\n(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && void 0;\n})();\nlet CampaignSDKService = /*#__PURE__*/(() => {\n class CampaignSDKService {\n constructor(campaignApiService) {\n this.campaignApiService = campaignApiService;\n }\n getMultiCampaigns(partnerId, marketId, accountGroupId, campaignIds) {\n return this.campaignApiService.getMultiCampaigns({\n partnerId: partnerId,\n marketId: marketId,\n accountGroupId: accountGroupId,\n campaignIds: campaignIds\n }).pipe(map(resp => resp.campaigns));\n }\n lookupCampaigns(partnerId, marketId, searchTerm, options) {\n const request = {\n partnerId: partnerId,\n marketId: marketId\n };\n if (!!searchTerm) {\n request.searchTerm = searchTerm;\n }\n request.offset = options?.offset || request.offset;\n request.pageSize = options?.pageSize || request.pageSize;\n request.focus = options?.filters?.focus || request.focus;\n request.state = options?.filters?.state || request.state;\n request.status = options?.filters?.status || request.status;\n return this.campaignApiService.lookupCampaigns(request).pipe(map(resp => resp.campaigns));\n }\n addContactToCampaign(partnerId, marketId, campaignId, unifiedUserId, contact) {\n const request = {\n partnerId: partnerId,\n marketId: marketId,\n campaignId: campaignId,\n senderUnifiedUserId: unifiedUserId,\n contact: {\n emailAddress: contact.emailAddress,\n accountGroupId: contact.accountGroupId\n }\n };\n return this.campaignApiService.addContactToCampaign(request);\n }\n }\n CampaignSDKService.ɵfac = function CampaignSDKService_Factory(__ngFactoryType__) {\n return new (__ngFactoryType__ || CampaignSDKService)(i0.ɵɵinject(CampaignApiService));\n };\n CampaignSDKService.ɵprov = /* @__PURE__ */i0.ɵɵdefineInjectable({\n token: CampaignSDKService,\n factory: CampaignSDKService.ɵfac,\n providedIn: 'root'\n });\n return CampaignSDKService;\n})();\n(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && void 0;\n})();\n\n/**\n * Generated bundle index. Do not edit.\n */\n\nexport { AccountField, AccountLatestSalesActivity, ActionList, ActionListsService, AddAccountsToActionListResponse, BusinessService, CampaignSDKService, CancellationRequest, CancellationRequestReason, CancellationRequestService, CancellationRequestStatus, CancellationRequestsApiService, Contact, ContactsService, CreateSalespersonForUserResponse, EffortAggregate, IsConfigValidRequest, IsConfigValidResponse, SortDirection$1 as ListAccountSortDirection, ListActionListsResponse, PagedRequestOptions, SalespeopleService, Sort, SortDirection };\n","import { HttpResponse } from '@angular/common/http';\nimport { Injectable } from '@angular/core';\nimport {\n AuxiliaryFieldSchemaApiService,\n GetAuxiliaryDataFieldSchemaResponseInterface,\n GetMultiAuxiliaryDataFieldSchemaResponseInterface,\n UpdateAuxiliaryDataFieldSchemaRequestInterface,\n} from '@vendasta/account-group';\nimport { ListAuxiliaryDataFieldSchemaResponseInterface } from '@vendasta/account-group/lib/_internal/interfaces/fields.interface';\nimport { Observable } from 'rxjs';\nimport {\n AbstractAuxiliaryDataSchemaService,\n FieldSchema,\n FieldSchemaIdentifier,\n UpdateFieldSchemaRequest,\n UpdateSchemaFieldMask,\n} from './schema-interface';\n\n@Injectable({\n providedIn: 'root',\n})\nexport class AccountGroupSchemaService implements AbstractAuxiliaryDataSchemaService {\n constructor(private readonly schemaService: AuxiliaryFieldSchemaApiService) {}\n\n listFieldSchemas(\n partnerId: string,\n onlyArchived: boolean,\n cursor: string,\n pageSize: number,\n ): Observable {\n return this.schemaService.listAuxiliaryDataFieldSchema({\n partnerId: partnerId,\n pagingOptions: {\n cursor: cursor,\n pageSize: pageSize,\n },\n filters: {\n onlyArchived: onlyArchived,\n },\n });\n }\n\n createFieldSchema(schema: FieldSchema): Observable> {\n return this.schemaService.createAuxiliaryDataFieldSchema({ fieldSchema: schema });\n }\n\n updateFieldSchema(\n changes: UpdateFieldSchemaRequest,\n fieldMask: UpdateSchemaFieldMask,\n ): Observable> {\n const request: UpdateAuxiliaryDataFieldSchemaRequestInterface = {\n fieldSchema: changes,\n fieldMask: { paths: fieldMask },\n };\n return this.schemaService.updateAuxiliaryDataFieldSchema(request);\n }\n\n getFieldSchema(id: FieldSchemaIdentifier): Observable {\n return this.schemaService.getAuxiliaryDataFieldSchema({ identifier: id });\n }\n\n getMultiFieldSchema(ids: FieldSchemaIdentifier[]): Observable {\n return this.schemaService.getMultiAuxiliaryDataFieldSchema({\n identifiers: ids,\n });\n }\n\n archiveFieldSchema(id: FieldSchemaIdentifier): Observable> {\n return this.schemaService.archiveAuxiliaryDataFieldSchema({ identifier: id });\n }\n\n unarchiveFieldSchema(id: FieldSchemaIdentifier): Observable> {\n return this.schemaService.unarchiveAuxiliaryDataFieldSchema({ identifier: id });\n }\n}\n","import { HttpResponse } from '@angular/common/http';\nimport { Injectable } from '@angular/core';\nimport {\n GetAuxiliaryDataFieldSchemaResponseInterface,\n GetMultiAuxiliaryDataFieldSchemaResponseInterface,\n ListAuxiliaryDataFieldSchemaResponseInterface,\n ProductAuxiliaryFieldSchemaApiService,\n} from '@galaxy/marketplace-apps';\nimport { Observable } from 'rxjs';\nimport {\n AbstractAuxiliaryDataSchemaService,\n FieldSchema,\n FieldSchemaIdentifier,\n UpdateFieldSchemaRequest,\n UpdateSchemaFieldMask,\n} from './schema-interface';\n\n@Injectable({\n providedIn: 'root',\n})\nexport class ProductSchemaService implements AbstractAuxiliaryDataSchemaService {\n constructor(private schemaService: ProductAuxiliaryFieldSchemaApiService) {}\n\n listFieldSchemas(\n partnerId: string,\n onlyArchived: boolean,\n cursor: string,\n pageSize: number,\n ): Observable {\n return this.schemaService.listAuxiliaryDataFieldSchema({\n partnerId,\n pagingOptions: {\n cursor: cursor,\n pageSize: pageSize,\n },\n filters: {\n onlyArchived: onlyArchived,\n },\n });\n }\n\n createFieldSchema(schema: FieldSchema): Observable> {\n return this.schemaService.createAuxiliaryDataFieldSchema({\n fieldSchema: schema,\n });\n }\n\n updateFieldSchema(\n changes: UpdateFieldSchemaRequest,\n fieldMask: UpdateSchemaFieldMask,\n ): Observable> {\n return this.schemaService.updateAuxiliaryDataFieldSchema({\n fieldSchema: changes,\n fieldMask: { paths: fieldMask },\n });\n }\n\n getFieldSchema(id: FieldSchemaIdentifier): Observable {\n return this.schemaService.getAuxiliaryDataFieldSchema({ identifier: id });\n }\n\n getMultiFieldSchema(ids: FieldSchemaIdentifier[]): Observable {\n return this.schemaService.getMultiAuxiliaryDataFieldSchema({\n identifiers: ids,\n });\n }\n\n archiveFieldSchema(id: FieldSchemaIdentifier): Observable> {\n return this.schemaService.archiveAuxiliaryDataFieldSchema({ identifier: id });\n }\n\n unarchiveFieldSchema(id: FieldSchemaIdentifier): Observable> {\n return this.schemaService.unarchiveAuxiliaryDataFieldSchema({ identifier: id });\n }\n}\n","import { HttpResponse } from '@angular/common/http';\nimport { Injectable } from '@angular/core';\nimport {\n GetAuxiliaryDataFieldSchemaResponseInterface,\n ListAuxiliaryDataFieldSchemaResponseInterface,\n SalesOrdersAuxiliaryFieldSchemaApiService,\n UpdateAuxiliaryDataFieldSchemaRequestInterface,\n GetMultiAuxiliaryDataFieldSchemaResponseInterface,\n} from '@vendasta/sales-orders';\nimport { Observable } from 'rxjs';\nimport {\n AbstractAuxiliaryDataSchemaService,\n FieldSchema,\n FieldSchemaIdentifier,\n UpdateFieldSchemaRequest,\n UpdateSchemaFieldMask,\n} from './schema-interface';\n\n@Injectable({\n providedIn: 'root',\n})\nexport class SalesOrderSchemaService implements AbstractAuxiliaryDataSchemaService {\n constructor(private readonly schemaService: SalesOrdersAuxiliaryFieldSchemaApiService) {}\n\n listFieldSchemas(\n partnerId: string,\n onlyArchived: boolean,\n cursor: string,\n pageSize: number,\n ): Observable {\n return this.schemaService.listAuxiliaryDataFieldSchema({\n partnerId: partnerId,\n pagingOptions: {\n cursor: cursor,\n pageSize: pageSize,\n },\n filters: {\n onlyArchived: onlyArchived,\n },\n });\n }\n\n createFieldSchema(schema: FieldSchema): Observable> {\n return this.schemaService.createAuxiliaryDataFieldSchema({ fieldSchema: schema });\n }\n\n updateFieldSchema(\n changes: UpdateFieldSchemaRequest,\n fieldMask: UpdateSchemaFieldMask,\n ): Observable> {\n const request: UpdateAuxiliaryDataFieldSchemaRequestInterface = {\n fieldSchema: changes,\n fieldMask: { paths: fieldMask },\n };\n return this.schemaService.updateAuxiliaryDataFieldSchema(request);\n }\n\n getFieldSchema(id: FieldSchemaIdentifier): Observable {\n return this.schemaService.getAuxiliaryDataFieldSchema({ identifier: id });\n }\n\n getMultiFieldSchema(ids: FieldSchemaIdentifier[]): Observable {\n return this.schemaService.getMultiAuxiliaryDataFieldSchema({\n identifiers: ids,\n });\n }\n\n archiveFieldSchema(id: FieldSchemaIdentifier): Observable> {\n return this.schemaService.archiveAuxiliaryDataFieldSchema({ identifier: id });\n }\n\n unarchiveFieldSchema(id: FieldSchemaIdentifier): Observable> {\n return this.schemaService.unarchiveAuxiliaryDataFieldSchema({ identifier: id });\n }\n}\n","// noinspection JSAnnotator\n\nimport { HttpResponse } from '@angular/common/http';\nimport { Injectable } from '@angular/core';\nimport {\n GetAuxiliaryDataFieldSchemaResponseInterface,\n ListAuxiliaryDataFieldSchemaResponseInterface,\n TaskAuxiliaryFieldSchemaApiService,\n UpdateAuxiliaryDataFieldSchemaRequestInterface,\n GetMultiAuxiliaryDataFieldSchemaResponseInterface,\n} from '@vendasta/task-manager';\nimport { Observable } from 'rxjs';\nimport {\n AbstractAuxiliaryDataSchemaService,\n FieldSchema,\n FieldSchemaIdentifier,\n UpdateFieldSchemaRequest,\n UpdateSchemaFieldMask,\n} from './schema-interface';\n\n@Injectable({\n providedIn: 'root',\n})\nexport class TaskSchemaService implements AbstractAuxiliaryDataSchemaService {\n constructor(private readonly schemaService: TaskAuxiliaryFieldSchemaApiService) {}\n\n listFieldSchemas(\n partnerId: string,\n onlyArchived: boolean,\n cursor: string,\n pageSize: number,\n ): Observable {\n return this.schemaService.listAuxiliaryDataFieldSchema({\n partnerId: partnerId,\n pagingOptions: {\n cursor: cursor,\n pageSize: pageSize,\n },\n filters: {\n onlyArchived: onlyArchived,\n },\n });\n }\n\n createFieldSchema(schema: FieldSchema): Observable> {\n return this.schemaService.createAuxiliaryDataFieldSchema({ fieldSchema: schema });\n }\n\n updateFieldSchema(\n changes: UpdateFieldSchemaRequest,\n fieldMask: UpdateSchemaFieldMask,\n ): Observable> {\n const request: UpdateAuxiliaryDataFieldSchemaRequestInterface = {\n fieldSchema: changes,\n fieldMask: { paths: fieldMask },\n };\n return this.schemaService.updateAuxiliaryDataFieldSchema(request);\n }\n\n getFieldSchema(id: FieldSchemaIdentifier): Observable {\n return this.schemaService.getAuxiliaryDataFieldSchema({ identifier: id });\n }\n\n getMultiFieldSchema(ids: FieldSchemaIdentifier[]): Observable {\n return this.schemaService.getMultiAuxiliaryDataFieldSchema({\n identifiers: ids,\n });\n }\n\n archiveFieldSchema(id: FieldSchemaIdentifier): Observable> {\n return this.schemaService.archiveAuxiliaryDataFieldSchema({ identifier: id });\n }\n\n unarchiveFieldSchema(id: FieldSchemaIdentifier): Observable> {\n return this.schemaService.unarchiveAuxiliaryDataFieldSchema({ identifier: id });\n }\n}\n","import { HttpResponse } from '@angular/common/http';\nimport { Injectable } from '@angular/core';\nimport { IAMService } from '@vendasta/iamv2';\nimport {\n GetAuxiliaryDataFieldSchemaResponseInterface,\n GetMultiAuxiliaryDataFieldSchemaResponseInterface,\n ListAuxiliaryDataFieldSchemaResponseInterface,\n} from '@vendasta/iamv2/lib/_internal/interfaces/fields.interface';\nimport { Observable } from 'rxjs';\nimport {\n AbstractAuxiliaryDataSchemaService,\n FieldSchema,\n FieldSchemaIdentifier,\n UpdateFieldSchemaRequest,\n UpdateSchemaFieldMask,\n} from './schema-interface';\n\n@Injectable({\n providedIn: 'root',\n})\nexport class IamSchemaService implements AbstractAuxiliaryDataSchemaService {\n constructor(private readonly schemaService: IAMService) {}\n\n listFieldSchemas(\n partnerId: string,\n onlyArchived: boolean,\n cursor: string,\n pageSize: number,\n ): Observable {\n return this.schemaService.listUserAuxiliaryDataFieldSchema(\n partnerId,\n {\n cursor: cursor,\n pageSize: pageSize,\n },\n {\n onlyArchived: onlyArchived,\n },\n );\n }\n\n createFieldSchema(schema: FieldSchema): Observable> {\n return this.schemaService.createUserAuxiliaryDataFieldSchema(schema);\n }\n\n updateFieldSchema(\n changes: UpdateFieldSchemaRequest,\n fieldMask: UpdateSchemaFieldMask,\n ): Observable> {\n return this.schemaService.updateUserAuxiliaryDataFieldSchema(changes, { paths: fieldMask });\n }\n\n getFieldSchema(id: FieldSchemaIdentifier): Observable {\n return this.schemaService.getUserAuxiliaryDataFieldSchema({ fieldId: id.fieldId, partnerId: id.partnerId });\n }\n\n getMultiFieldSchema(ids: FieldSchemaIdentifier[]): Observable {\n return this.schemaService.getMultiUserAuxiliaryDataFieldSchema(ids);\n }\n\n archiveFieldSchema(id: FieldSchemaIdentifier): Observable> {\n return this.schemaService.archiveUserAuxiliaryDataFieldSchema({ fieldId: id.fieldId, partnerId: id.partnerId });\n }\n\n unarchiveFieldSchema(id: FieldSchemaIdentifier): Observable> {\n return this.schemaService.unarchiveUserAuxiliaryDataFieldSchema({ fieldId: id.fieldId, partnerId: id.partnerId });\n }\n}\n","import { Injectable } from '@angular/core';\nimport {\n AbstractAuxiliaryDataSchemaService,\n FieldSchema,\n FieldSchemaIdentifier,\n GetFieldSchemaResponse,\n GetMultiFieldSchemaResponse,\n ListFieldSchemasResponse,\n UpdateFieldSchemaRequest,\n UpdateSchemaFieldMask,\n} from './schema-interface';\nimport { HttpResponse } from '@angular/common/http';\nimport { Observable } from 'rxjs';\nimport { CRMFieldSchemaApiService } from '@vendasta/crm';\nimport { map } from 'rxjs/operators';\n\n@Injectable({\n providedIn: 'root',\n})\nexport class ContactSchemaService implements AbstractAuxiliaryDataSchemaService {\n constructor(private readonly crmFieldSchemaApiService: CRMFieldSchemaApiService) {}\n\n listFieldSchemas(\n partnerId: string,\n onlyArchived: boolean,\n cursor: string,\n pageSize: number,\n ): Observable {\n return this.crmFieldSchemaApiService\n .listFieldSchema({\n namespace: partnerId,\n crmObjectType: 'Contact',\n filters: {\n onlyArchived: onlyArchived,\n },\n pagingOptions: {\n cursor: cursor,\n pageSize: pageSize,\n },\n })\n .pipe(\n map((resp) => {\n return {\n fieldSchemas: resp.fieldSchemas,\n nextPageToken: resp.pagingMetadata,\n } as unknown as ListFieldSchemasResponse;\n }),\n );\n }\n\n getFieldSchema(id: FieldSchemaIdentifier): Observable {\n return this.crmFieldSchemaApiService\n .getMultiFieldSchema({\n namespace: id.partnerId,\n crmObjectType: 'Contact',\n fieldId: [id.fieldId],\n })\n .pipe(\n map((resp) => {\n return {\n fieldSchema: resp.fieldSchemas[0],\n } as unknown as GetFieldSchemaResponse;\n }),\n );\n }\n\n // These aren't needed for how the contact schema service is being used\n createFieldSchema(_: FieldSchema): Observable> {\n throw new Error('Method not implemented.');\n }\n\n updateFieldSchema(_: UpdateFieldSchemaRequest, __: UpdateSchemaFieldMask): Observable> {\n throw new Error('Method not implemented.');\n }\n\n getMultiFieldSchema(_: FieldSchemaIdentifier[]): Observable {\n throw new Error('Method not implemented.');\n }\n\n archiveFieldSchema(_: FieldSchemaIdentifier): Observable> {\n throw new Error('Method not implemented.');\n }\n\n unarchiveFieldSchema(_: FieldSchemaIdentifier): Observable> {\n throw new Error('Method not implemented.');\n }\n}\n","import { HttpResponse } from '@angular/common/http';\nimport { Injectable } from '@angular/core';\nimport { Observable } from 'rxjs';\nimport { AccountGroupSchemaService } from './_account-group-schema.service';\nimport { ProductSchemaService } from './_product-schema.service';\nimport { SalesOrderSchemaService } from './_sales-order-schema.service';\nimport { TaskSchemaService } from './_task-schema.service';\nimport { IamSchemaService } from './_user-schema.service';\nimport {\n AbstractAuxiliaryDataSchemaService,\n FieldSchema,\n FieldSchemaIdentifier,\n GetFieldSchemaResponse,\n GetMultiFieldSchemaResponse,\n ListFieldSchemasResponse,\n ObjectType,\n UpdateFieldSchemaRequest,\n UpdateSchemaFieldMask,\n} from './schema-interface';\nimport { ContactSchemaService } from './_contact_schema.service';\n\n@Injectable({\n providedIn: 'root',\n})\nexport class SchemaService {\n constructor(\n private readonly accountGroupSchemaService: AccountGroupSchemaService,\n private readonly usersFieldSchemaService: IamSchemaService,\n private readonly productFieldSchemaService: ProductSchemaService,\n private readonly salesOrderSchemaService: SalesOrderSchemaService,\n private readonly taskSchemaService: TaskSchemaService,\n private readonly contactSchemaService: ContactSchemaService,\n ) {}\n\n listFieldSchemas(\n objectType: ObjectType,\n partnerId: string,\n onlyArchived: boolean,\n cursor: string,\n pageSize: number,\n ): Observable {\n return this.selectService(objectType).listFieldSchemas(partnerId, onlyArchived, cursor, pageSize);\n }\n\n createFieldSchema(objectType: ObjectType, schema: FieldSchema): Observable> {\n return this.selectService(objectType).createFieldSchema(schema);\n }\n\n updateFieldSchema(\n objectType: ObjectType,\n changes: UpdateFieldSchemaRequest,\n fieldMask: UpdateSchemaFieldMask,\n ): Observable> {\n return this.selectService(objectType).updateFieldSchema(changes, fieldMask);\n }\n\n getFieldSchema(objectType: ObjectType, id: FieldSchemaIdentifier): Observable {\n return this.selectService(objectType).getFieldSchema(id);\n }\n\n getMultiFieldSchema(objectType: ObjectType, ids: FieldSchemaIdentifier[]): Observable {\n return this.selectService(objectType).getMultiFieldSchema(ids);\n }\n\n archiveFieldSchema(objectType: ObjectType, id: FieldSchemaIdentifier): Observable> {\n return this.selectService(objectType).archiveFieldSchema(id);\n }\n\n unarchiveFieldSchema(objectType: ObjectType, id: FieldSchemaIdentifier): Observable> {\n return this.selectService(objectType).unarchiveFieldSchema(id);\n }\n\n private selectService(objectType: ObjectType): AbstractAuxiliaryDataSchemaService {\n switch (objectType) {\n case 'business':\n return this.accountGroupSchemaService;\n case 'user':\n return this.usersFieldSchemaService;\n case 'product':\n return this.productFieldSchemaService;\n case 'order':\n return this.salesOrderSchemaService;\n case 'task':\n return this.taskSchemaService;\n case 'Contact':\n return this.contactSchemaService;\n default:\n throw new Error('Unsupported object type');\n }\n }\n}\n","import { Injectable } from '@angular/core';\nimport {\n AuxiliaryFieldDataApiService,\n ListAuxiliaryDataRequestInterface,\n ListAuxiliaryDataResponse,\n SearchByAuxiliaryDataRequestInterface,\n SearchByAuxiliaryDataResponseInterface,\n UpsertAuxiliaryDataRequestInterface,\n} from '@vendasta/account-group';\nimport { Observable } from 'rxjs';\nimport { map } from 'rxjs/operators';\nimport { AbstractAuxiliaryDataSchemaService } from './_abstract.service';\n\n@Injectable({\n providedIn: 'root',\n})\nexport class AccountGroupService implements AbstractAuxiliaryDataSchemaService {\n constructor(private readonly service: AuxiliaryFieldDataApiService) {}\n\n listData(request: ListAuxiliaryDataRequestInterface): Observable {\n return this.service.listAuxiliaryData(request);\n }\n\n upsertData(request: UpsertAuxiliaryDataRequestInterface): Observable {\n return this.service.upsertAuxiliaryData(request).pipe(map(() => null));\n }\n\n searchByAuxiliaryData(\n request: SearchByAuxiliaryDataRequestInterface,\n ): Observable {\n return this.service.searchByAuxiliaryData(request);\n }\n}\n","import { Injectable } from '@angular/core';\nimport { ListAuxiliaryDataRequestInterface, UpsertAuxiliaryDataRequestInterface } from '@vendasta/account-group'; // IAM SDK uses more annoying params\nimport { IAMService, ListAuxiliaryDataResponse } from '@vendasta/iamv2';\nimport { Observable } from 'rxjs';\nimport { map } from 'rxjs/operators';\nimport { AbstractAuxiliaryDataSchemaService } from './_abstract.service';\n\n@Injectable({\n providedIn: 'root',\n})\nexport class UserService implements AbstractAuxiliaryDataSchemaService {\n constructor(private readonly service: IAMService) {}\n\n listData(request: ListAuxiliaryDataRequestInterface): Observable {\n return this.service.listUserAuxiliaryData(request.auxiliaryDataObjectId, request.pagingOptions);\n }\n\n upsertData(request: UpsertAuxiliaryDataRequestInterface): Observable {\n return this.service\n .upsertUserAuxiliaryData(request.auxiliaryDataObjectId, request.fieldDataUpsertOperations)\n .pipe(map(() => null));\n }\n}\n","import { Injectable } from '@angular/core';\nimport {\n ProductAuxiliaryFieldDataApiService,\n ListAuxiliaryDataRequestInterface,\n UpsertAuxiliaryDataRequestInterface,\n ListAuxiliaryDataResponse,\n} from '@vendasta/marketplace-apps';\nimport { Observable } from 'rxjs';\nimport { map } from 'rxjs/operators';\nimport { AbstractAuxiliaryDataSchemaService } from './_abstract.service';\n\n@Injectable({\n providedIn: 'root',\n})\nexport class ProductService implements AbstractAuxiliaryDataSchemaService {\n constructor(private readonly service: ProductAuxiliaryFieldDataApiService) {}\n\n listData(request: ListAuxiliaryDataRequestInterface): Observable {\n return this.service.listAuxiliaryData(request);\n }\n\n upsertData(request: UpsertAuxiliaryDataRequestInterface): Observable {\n return this.service.upsertAuxiliaryData(request).pipe(map(() => null));\n }\n}\n","import { Injectable } from '@angular/core';\nimport {\n ListAuxiliaryDataRequestInterface,\n ListAuxiliaryDataResponse,\n SalesOrdersAuxiliaryFieldDataApiService,\n UpsertAuxiliaryDataRequestInterface,\n} from '@vendasta/sales-orders';\nimport { Observable } from 'rxjs';\nimport { map } from 'rxjs/operators';\nimport { AbstractAuxiliaryDataSchemaService } from './_abstract.service';\n\n@Injectable({\n providedIn: 'root',\n})\nexport class OrderService implements AbstractAuxiliaryDataSchemaService {\n constructor(private readonly service: SalesOrdersAuxiliaryFieldDataApiService) {}\n\n listData(request: ListAuxiliaryDataRequestInterface): Observable {\n return this.service.listAuxiliaryData({\n salesOrderAuxiliaryDataObjectId: {\n businessId: request.auxiliaryDataObjectId.objectId.split('|')[0],\n orderId: request.auxiliaryDataObjectId.objectId.split('|')[1],\n },\n pagingOptions: request.pagingOptions,\n });\n }\n\n upsertData(request: UpsertAuxiliaryDataRequestInterface): Observable {\n return this.service\n .upsertAuxiliaryData({\n salesOrderAuxiliaryDataObjectId: {\n businessId: request.auxiliaryDataObjectId.objectId.split('|')[0],\n orderId: request.auxiliaryDataObjectId.objectId.split('|')[1],\n },\n fieldDataUpsertOperations: request.fieldDataUpsertOperations,\n })\n .pipe(map(() => null));\n }\n}\n","import { Injectable } from '@angular/core';\nimport {\n ListAuxiliaryDataRequestInterface,\n ListAuxiliaryDataResponse,\n TaskAuxiliaryFieldDataApiService,\n UpsertAuxiliaryDataRequestInterface,\n} from '@vendasta/task-manager';\nimport { Observable } from 'rxjs';\nimport { map } from 'rxjs/operators';\nimport { AbstractAuxiliaryDataSchemaService } from './_abstract.service';\n\n@Injectable({\n providedIn: 'root',\n})\nexport class TaskService implements AbstractAuxiliaryDataSchemaService {\n constructor(private readonly service: TaskAuxiliaryFieldDataApiService) {}\n\n listData(request: ListAuxiliaryDataRequestInterface): Observable {\n return this.service.listAuxiliaryData({\n auxiliaryDataObjectId: {\n partnerId: request.auxiliaryDataObjectId.partnerId,\n objectId: request.auxiliaryDataObjectId.objectId,\n },\n pagingOptions: request.pagingOptions,\n });\n }\n\n upsertData(request: UpsertAuxiliaryDataRequestInterface): Observable {\n return this.service\n .upsertAuxiliaryData({\n auxiliaryDataObjectId: {\n partnerId: request.auxiliaryDataObjectId.partnerId,\n objectId: request.auxiliaryDataObjectId.objectId,\n },\n fieldDataUpsertOperations: request.fieldDataUpsertOperations,\n })\n .pipe(map(() => null));\n }\n}\n","import { Injectable } from '@angular/core';\nimport {\n FieldDataUpsertOperationInterface,\n ListAuxiliaryDataRequestInterface,\n ListAuxiliaryDataResponseInterface,\n PagedRequestOptionsInterface,\n SearchByAuxiliaryDataResponseInterface,\n UpsertAuxiliaryDataRequestInterface,\n} from '@vendasta/account-group'; // (mostly) identical defs from shared protos, but exported again from each SDK, so some of these are just from the AG SDK\nimport { Observable, of } from 'rxjs';\nimport { AbstractAuxiliaryDataSchemaService } from './_abstract.service';\nimport { AccountGroupService } from './_account-group-data.service';\nimport { UserService } from './_user-data.service';\nimport { ProductService } from './_product-data.service';\nimport { map } from 'rxjs/operators';\nimport { ObjectSchema } from '../auxiliary-data-table/auxiliary-data-table.interface';\nimport { AuxiliaryDataFilterInterface } from '@vendasta/account-group/lib/_internal/interfaces/api.interface';\nimport { ObjectType } from '../schema-service/schema-interface';\nimport { OrderService } from './_order-data.service';\nimport { TaskService } from './_task-data.service';\n\n@Injectable({\n providedIn: 'root',\n})\nexport class FieldDataService {\n constructor(\n private readonly accountService: AccountGroupService,\n private readonly userService: UserService,\n private readonly productService: ProductService,\n private readonly orderService: OrderService,\n private readonly taskService: TaskService,\n ) {}\n\n listData(\n partnerId: string,\n objectType: ObjectType,\n objectId: string,\n paging: PagedRequestOptionsInterface,\n ): Observable {\n if (!partnerId || !objectType || !objectId) {\n throw new Error(\n `Bad request to list field data. (partner ID: ${partnerId}, object type: ${objectType}, object ID: ${objectId})`,\n );\n }\n const request: ListAuxiliaryDataRequestInterface = {\n auxiliaryDataObjectId: {\n partnerId: partnerId,\n objectId: objectId,\n },\n pagingOptions: paging,\n };\n return this.selectService(objectType).listData(request);\n }\n\n upsertData(\n partnerId: string,\n objectType: ObjectType,\n objectId: string,\n data: FieldDataUpsertOperationInterface[],\n ): Observable {\n const request: UpsertAuxiliaryDataRequestInterface = {\n auxiliaryDataObjectId: {\n partnerId: partnerId,\n objectId: objectId,\n },\n fieldDataUpsertOperations: data,\n };\n return this.selectService(objectType).upsertData(request);\n }\n\n searchByAuxiliaryData(\n partnerId: string,\n objectType: ObjectType,\n filter: AuxiliaryDataFilterInterface,\n pagingOptions: PagedRequestOptionsInterface,\n ): Observable {\n if (!this.selectService(objectType).searchByAuxiliaryData) {\n console.warn('Unsupported object type for search by auxiliary data');\n return of({});\n }\n\n return this.selectService(objectType).searchByAuxiliaryData({\n partnerId,\n filter,\n pagingOptions,\n });\n }\n\n hasCustomFields(partnerId: string, auxiliaryDataObjectType: ObjectType, productId: string): Observable {\n return this.listData(partnerId, auxiliaryDataObjectType, productId, { cursor: '', pageSize: 100 }).pipe(\n map((fields) => {\n const objectSchema = JSON.parse(fields.jsonSchema) as ObjectSchema;\n return Object.keys(objectSchema.properties)?.length > 0;\n }),\n );\n }\n\n private selectService(objectType: ObjectType): AbstractAuxiliaryDataSchemaService {\n switch (objectType) {\n case 'business':\n return this.accountService;\n case 'user':\n return this.userService;\n case 'product':\n return this.productService;\n case 'order':\n return this.orderService;\n case 'task':\n return this.taskService;\n default:\n throw new Error(`Unsupported object type: ${objectType}`);\n }\n }\n}\n","import { UntypedFormControl, ReactiveFormsModule } from '@angular/forms';\nimport { FieldDataUpsertOperationInterface } from '@vendasta/account-group';\nimport { FieldHandler, FieldHandlerValidator } from '../auxiliary-data-table/auxiliary-data-table.interface';\nimport { Component, NgModule, ViewContainerRef } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { MatInputModule } from '@angular/material/input';\nimport { DigitOnlyModule } from '@uiowa/digit-only';\nimport { TranslateModule } from '@ngx-translate/core';\nimport { GalaxyFormFieldModule } from '@vendasta/galaxy/form-field';\nimport { ReadOnlyStyles } from './common';\n\nexport class IntegerFieldHandler implements FieldHandler {\n formControl: UntypedFormControl;\n\n constructor(\n public fieldId: string,\n public name: string,\n public label: string,\n public value: number,\n public description: string,\n public validators: FieldHandlerValidator[],\n public readOnly = false,\n ) {\n this.formControl = new UntypedFormControl(value);\n this.formControl.setValidators(validators.map((v) => v.validatorFn));\n }\n\n render(viewContainerRef: ViewContainerRef): void {\n viewContainerRef.clear();\n const component = viewContainerRef.createComponent(IntegerRendererComponent);\n component.instance.control = this.formControl;\n component.instance.label = this.label;\n component.instance.validators = this.validators;\n component.instance.readOnly = this.readOnly;\n }\n\n hasModification(): boolean {\n return this.formControl?.dirty;\n }\n\n upsertOperation(): FieldDataUpsertOperationInterface {\n if (this.formControl.value === null) {\n return {\n fieldDataId: this.fieldId,\n deleteValue: true,\n };\n }\n return {\n fieldDataId: this.fieldId,\n integer: this.formControl.value,\n };\n }\n}\n\n@Component({\n styles: [\n `\n :host,\n mat-form-field,\n input {\n width: 100%;\n }\n\n :host ::ng-deep .mat-form-field-appearance-outline .mat-form-field-flex {\n margin-top: 0;\n }\n\n #integer {\n margin: 0 5px;\n padding: 6px 0 8px;\n }\n #integer ::ng-deep .input-and-hints {\n margin: 0;\n }\n `,\n ...ReadOnlyStyles,\n ],\n template: `\n
\n
\n {{ label }}\n
\n
\n {{ control.value ? control.value : '-' }}\n
\n
\n \n \n {{ label }}\n \n \n \n {{ validator.errorMessage | translate }}\n \n \n \n \n `,\n standalone: false,\n})\nexport class IntegerRendererComponent {\n control!: UntypedFormControl;\n label!: string;\n validators!: FieldHandlerValidator[];\n readOnly!: boolean;\n}\n\n@NgModule({\n declarations: [IntegerRendererComponent],\n exports: [IntegerRendererComponent],\n imports: [CommonModule, MatInputModule, ReactiveFormsModule, DigitOnlyModule, TranslateModule, GalaxyFormFieldModule],\n})\nexport class IntegerRendererComponentModule {}\n","import { Component, NgModule, ViewContainerRef } from '@angular/core';\nimport { UntypedFormControl, ReactiveFormsModule } from '@angular/forms';\nimport { FieldDataUpsertOperationInterface } from '@vendasta/account-group';\nimport { FieldHandler, FieldHandlerValidator } from '../auxiliary-data-table/auxiliary-data-table.interface';\nimport { CommonModule } from '@angular/common';\nimport { MatInputModule } from '@angular/material/input';\nimport { TranslateModule } from '@ngx-translate/core';\nimport { GalaxyFormFieldModule } from '@vendasta/galaxy/form-field';\nimport { ReadOnlyStyles } from './common';\n\nexport class TextFieldHandler implements FieldHandler {\n formControl: UntypedFormControl;\n\n constructor(\n public fieldId: string,\n public name: string,\n public label: string,\n public value: string,\n public description: string,\n public validators: FieldHandlerValidator[],\n public readOnly = false,\n ) {\n this.formControl = new UntypedFormControl(this.value);\n this.formControl.setValidators(validators.map((v) => v.validatorFn));\n }\n\n hasModification(): boolean {\n return this.formControl?.dirty;\n }\n\n upsertOperation(): FieldDataUpsertOperationInterface {\n if (this.formControl.value === null) {\n return {\n fieldDataId: this.fieldId,\n deleteValue: true,\n };\n }\n return {\n fieldDataId: this.fieldId,\n string: this.formControl.value,\n };\n }\n\n render(viewContainerRef: ViewContainerRef): void {\n viewContainerRef.clear();\n const component = viewContainerRef.createComponent(TextRendererComponent);\n component.instance.control = this.formControl;\n component.instance.label = this.label;\n component.instance.validators = this.validators;\n component.instance.readOnly = this.readOnly;\n }\n}\n\n@Component({\n styles: [\n `\n :host,\n mat-form-field,\n input {\n width: 100%;\n }\n\n :host ::ng-deep .mat-form-field-appearance-outline .mat-form-field-flex {\n margin-top: 0;\n }\n\n #text {\n margin: 0 5px;\n padding: 6px 0 8px;\n }\n\n #text ::ng-deep .input-and-hints {\n margin: 0;\n }\n\n :host .value {\n white-space: pre-wrap;\n }\n `,\n ...ReadOnlyStyles,\n ],\n template: `\n
\n
\n {{ label }}\n
\n
\n {{ control.value ? control.value : '-' }}\n
\n
\n \n \n {{ label }}\n \n \n {{ 'AUXILIARY_DATA_TABLE.STRING_LIMIT_HINT' | translate: { characters: control?.value?.length || 0 } }}\n \n \n \n {{ validator.errorMessage | translate }}\n \n \n \n \n `,\n standalone: false,\n})\nexport class TextRendererComponent {\n control!: UntypedFormControl;\n label!: string;\n validators!: FieldHandlerValidator[];\n readOnly!: boolean;\n}\n\n@NgModule({\n declarations: [TextRendererComponent],\n exports: [TextRendererComponent],\n imports: [CommonModule, MatInputModule, ReactiveFormsModule, TranslateModule, GalaxyFormFieldModule],\n})\nexport class TextRendererComponentModule {}\n","import { Component, NgModule, ViewContainerRef } from '@angular/core';\nimport { UntypedFormControl, ReactiveFormsModule } from '@angular/forms';\nimport { FieldDataUpsertOperationInterface } from '@vendasta/account-group';\nimport { FieldHandler, FieldHandlerValidator } from '../auxiliary-data-table/auxiliary-data-table.interface';\nimport { DateAdapter, MAT_DATE_FORMATS } from '@angular/material/core';\nimport { MomentDateAdapter } from '@angular/material-moment-adapter';\nimport { CommonModule } from '@angular/common';\nimport { MatDatepickerModule } from '@angular/material/datepicker';\nimport { TranslateModule } from '@ngx-translate/core';\nimport { GalaxyFormFieldModule } from '@vendasta/galaxy/form-field';\nimport { ReadOnlyStyles } from './common';\n\nexport class DateFieldHandler implements FieldHandler {\n formControl: UntypedFormControl;\n\n constructor(\n public fieldId: string,\n public name: string,\n public label: string,\n public value: string,\n public description: string,\n public validators: FieldHandlerValidator[],\n public readOnly = false,\n ) {\n this.formControl = new UntypedFormControl(value);\n this.formControl.setValidators(validators.map((v) => v.validatorFn));\n }\n\n render(viewContainerRef: ViewContainerRef): void {\n viewContainerRef.clear();\n const component = viewContainerRef.createComponent(DateRendererComponent);\n component.instance.control = this.formControl;\n component.instance.label = this.label;\n component.instance.validators = this.validators;\n component.instance.readOnly = this.readOnly;\n }\n\n hasModification(): boolean {\n return this.formControl?.dirty;\n }\n\n upsertOperation(): FieldDataUpsertOperationInterface {\n if (this.formControl.value === null) {\n return {\n fieldDataId: this.fieldId,\n deleteValue: true,\n };\n }\n return {\n fieldDataId: this.fieldId,\n date: this.formControl.value,\n };\n }\n}\n\nexport const MY_FORMATS = {\n parse: {\n dateInput: 'YYYY-MM-DD',\n },\n display: {\n dateInput: 'MMM DD, YYYY',\n monthYearLabel: 'MMM YYYY',\n dateA11yLabel: 'MMMM DD, YYYY',\n monthYearA11yLabel: 'MMMM YYYY',\n },\n};\n\n@Component({\n styles: [\n ':host, mat-form-field, input {width:100%}',\n ':host #date {margin: 0 5px; padding: 6px 0 8px;}',\n ':host #date ::ng-deep .input-and-hints {margin:0;}',\n ...ReadOnlyStyles,\n ],\n template: `\n
\n
\n {{ label }}\n
\n
\n {{ control.value ? (control.value | date: 'shortDate') : '-' }}\n
\n
\n \n \n {{ label }}\n \n \n \n \n \n {{ validator.errorMessage | translate }}\n \n \n \n \n `,\n providers: [\n //for browsers with a negative GMT, the default datepicker would show the previous day\n { provide: DateAdapter, useClass: MomentDateAdapter },\n { provide: MAT_DATE_FORMATS, useValue: MY_FORMATS },\n ],\n standalone: false,\n})\nexport class DateRendererComponent {\n control!: UntypedFormControl;\n label!: string;\n validators!: FieldHandlerValidator[];\n readOnly!: boolean;\n}\n\n@NgModule({\n declarations: [DateRendererComponent],\n exports: [DateRendererComponent],\n imports: [CommonModule, ReactiveFormsModule, MatDatepickerModule, TranslateModule, GalaxyFormFieldModule],\n})\nexport class DateRendererComponentModule {}\n","import {\n DropdownOption,\n FieldHandler,\n FieldHandlerValidator,\n} from '../auxiliary-data-table/auxiliary-data-table.interface';\nimport { UntypedFormControl, ReactiveFormsModule } from '@angular/forms';\nimport { FieldDataUpsertOperationInterface } from '@vendasta/account-group';\nimport { OnInit, ViewContainerRef } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { Component, NgModule } from '@angular/core';\nimport { MatSelectModule } from '@angular/material/select';\nimport { TranslateModule } from '@ngx-translate/core';\nimport { GalaxyFormFieldModule } from '@vendasta/galaxy/form-field';\nimport { ReadOnlyStyles } from './common';\n\nexport class DropdownFieldHandler implements FieldHandler {\n description: string;\n formControl: UntypedFormControl;\n\n constructor(\n public fieldId: string,\n public name: string,\n public label: string,\n public value: string,\n private dropdownOptions: DropdownOption[],\n public validators: FieldHandlerValidator[],\n public readOnly = false,\n ) {\n this.formControl = new UntypedFormControl(value);\n this.formControl.setValidators(validators.map((v) => v.validatorFn));\n }\n\n render(viewContainerRef: ViewContainerRef): void {\n viewContainerRef.clear();\n const component = viewContainerRef.createComponent(DropdownRendererComponent);\n component.instance.control = this.formControl;\n component.instance.label = this.label;\n component.instance.dropdownOptions = this.dropdownOptions;\n component.instance.validators = this.validators;\n component.instance.readOnly = this.readOnly;\n }\n\n hasModification(): boolean {\n return this.formControl?.dirty;\n }\n\n upsertOperation(): FieldDataUpsertOperationInterface {\n return {\n fieldDataId: this.fieldId,\n dropdownValue: this.formControl.value,\n };\n }\n}\n\n@Component({\n styles: [\n `\n :host,\n mat-form-field,\n input {\n width: 100%;\n }\n\n :host ::ng-deep .hide-error-padding .mat-form-field-wrapper {\n padding-bottom: 0;\n }\n :host ::ng-deep .mat-form-field-appearance-outline .mat-form-field-flex {\n margin-top: 0;\n }\n #dropdown {\n margin: 0 5px;\n padding: 6px 0 8px;\n }\n #dropdown ::ng-deep .input-and-hints {\n margin: 0;\n }\n `,\n ...ReadOnlyStyles,\n ],\n template: `\n
\n
\n {{ label }}\n
\n
\n {{ dropdownOptionMap.get(control.value) ? dropdownOptionMap.get(control.value) : '-' }}\n
\n
\n \n \n {{ label }}\n \n \n --\n\n \n {{ dropdownOption.label }}\n \n \n \n \n {{ validator.errorMessage | translate }}\n \n \n \n \n `,\n standalone: false,\n})\nexport class DropdownRendererComponent implements OnInit {\n control!: UntypedFormControl;\n label!: string;\n dropdownOptions!: DropdownOption[];\n validators!: FieldHandlerValidator[];\n readOnly!: boolean;\n\n dropdownOptionMap: Map = new Map();\n invalidOption: DropdownOption;\n\n ngOnInit(): void {\n const currentValue = this.control?.value;\n if (currentValue && !this.dropdownOptions?.map((d) => d.value).includes(currentValue)) {\n this.invalidOption = {\n value: currentValue,\n label: currentValue,\n };\n this.dropdownOptions.push(this.invalidOption);\n }\n this.dropdownOptions.forEach((d) => {\n this.dropdownOptionMap.set(d.value, d.label);\n });\n this.setInvalidOptionValidator();\n }\n\n private setInvalidOptionValidator(): void {\n const invalidOptionValidator = {\n errorCode: 'invalid',\n errorMessage: 'COMMON.INVALID_DROPDOWN_ERROR',\n validatorFn: (control) => {\n if (this.invalidOption?.value === control.value) {\n return { invalid: true };\n }\n return null;\n },\n };\n\n this.validators?.push(invalidOptionValidator);\n this.control.addValidators(invalidOptionValidator.validatorFn);\n }\n}\n\n@NgModule({\n imports: [CommonModule, MatSelectModule, ReactiveFormsModule, TranslateModule, GalaxyFormFieldModule],\n declarations: [DropdownRendererComponent],\n exports: [DropdownRendererComponent],\n})\nexport class DropdownRenderComponentModule {}\n","/*\nThese include 'minor' currency units for applicable currencies.\nFor example:\n- 1 billion _pennies_ not dollars\n- 1 billion Yen (they don't have minor units)\n*/\nexport function calculateCurrencyDisplay(event: any): number {\n let str: string = event.target.value;\n str = str.replace(/[^\\d]/, '');\n let num: number = parseInt(str, 10);\n if (event.key === 'Backspace' && (num === 0 || isNaN(num))) {\n num = null;\n } else {\n if (isNaN(num)) {\n num = 0;\n }\n if (num > maxValue) {\n num = maxValue;\n }\n if (num < minValue) {\n num = minValue;\n }\n }\n return num;\n}\nexport const maxValue = 1000000000;\nexport const minValue = -1000000000;\nexport { galaxyToApi, apiToGalaxy } from './renderers/currency';\n","import { CommonModule } from '@angular/common';\nimport {\n AfterContentInit,\n AfterViewInit,\n Component,\n ElementRef,\n NgModule,\n ViewChild,\n ViewContainerRef,\n} from '@angular/core';\nimport { ReactiveFormsModule, UntypedFormControl } from '@angular/forms';\nimport { MatInputModule } from '@angular/material/input';\nimport { TranslateModule } from '@ngx-translate/core';\nimport { FieldDataUpsertOperationInterface } from '@vendasta/account-group';\nimport { GalaxyFormFieldModule } from '@vendasta/galaxy/form-field';\nimport AutoNumeric from 'autonumeric';\nimport { FieldHandler, FieldHandlerValidator } from '../auxiliary-data-table/auxiliary-data-table.interface';\nimport { calculateCurrencyDisplay, maxValue, minValue } from '../currency';\nimport { ReadOnlyStyles } from './common';\n\nexport function galaxyToApi(hasDecimals: number): number {\n if (hasDecimals > 0) {\n return Math.floor(hasDecimals * 100);\n }\n return Math.ceil(hasDecimals * 100);\n}\n\nexport function apiToGalaxy(noDecimalsJustPennies: number): number {\n return noDecimalsJustPennies / 100;\n}\n\nexport class CurrencyFieldHandler implements FieldHandler {\n description: string;\n formControl: UntypedFormControl;\n\n constructor(\n public fieldId: string,\n public name: string,\n public label: string,\n public value: string,\n private currencyCode: string,\n public validators: FieldHandlerValidator[],\n public readOnly = false,\n ) {\n this.formControl = new UntypedFormControl(parseInt(value, 10));\n this.formControl.setValidators(validators.map((v) => v.validatorFn));\n }\n\n render(viewContainerRef: ViewContainerRef): void {\n viewContainerRef.clear();\n const component = viewContainerRef.createComponent(CurrencyRendererComponent);\n component.instance.control = this.formControl;\n component.instance.label = this.label;\n component.instance.currencyCode = this.currencyCode;\n component.instance.validators = this.validators;\n component.instance.readOnly = this.readOnly;\n }\n\n hasModification(): boolean {\n return this.formControl?.dirty;\n }\n\n upsertOperation(): FieldDataUpsertOperationInterface {\n if (this.formControl.value === null) {\n return {\n fieldDataId: this.fieldId,\n deleteValue: true,\n };\n }\n\n return {\n fieldDataId: this.fieldId,\n currencyValue: this.formControl.value,\n };\n }\n}\n\n@Component({\n styles: [\n `\n :host,\n mat-form-field,\n input {\n width: 100%;\n }\n #currency {\n margin: 0 5px;\n padding: 6px 0 8px;\n }\n #currency ::ng-deep .input-and-hints {\n margin: 0;\n }\n `,\n ...ReadOnlyStyles,\n ],\n template: `\n
\n
\n {{ label }}\n
\n
\n {{ readOnlyDisplay }}\n
\n
\n \n \n \n \n \n {{ validator.errorMessage | translate }}\n \n \n \n \n `,\n standalone: false,\n})\nexport class CurrencyRendererComponent implements AfterViewInit, AfterContentInit {\n @ViewChild('input') input: ElementRef;\n\n maxValue = maxValue;\n minValue = minValue;\n\n control!: UntypedFormControl;\n label!: string;\n currencyCode!: string;\n validators!: FieldHandlerValidator[];\n readOnly!: boolean;\n\n readOnlyDisplay: string;\n\n ngAfterViewInit(): void {\n const num: number = this.control.value;\n if ((num || num === 0) && !this.readOnly) {\n this.setInput(num);\n }\n }\n\n ngAfterContentInit(): void {\n const num: number = this.control.value;\n if (this.readOnly) {\n this.readOnlyDisplay = this.getReadOnlyDisplayName(num);\n }\n }\n\n key(event: any): void {\n const num: number = calculateCurrencyDisplay(event);\n if (num) {\n this.input.nativeElement.value = apiToGalaxy(num).toFixed(2);\n } else {\n this.input.nativeElement.value = null;\n }\n this.control.setValue(num);\n this.control.markAsDirty();\n }\n\n clear(): void {\n this.control.setValue(null);\n this.control.markAsDirty();\n this.input.nativeElement.value = null;\n }\n\n private setInput(num: number): void {\n this.input.nativeElement.value = apiToGalaxy(num).toFixed(2);\n }\n\n private getReadOnlyDisplayName(num: number): string {\n if (!num || Number.isNaN(num)) {\n return '-';\n }\n\n const displayValue = (num / 100).toFixed(2);\n const formattedPrice = AutoNumeric.format(displayValue, {\n maximumValue: maxValue.toString(),\n minimumValue: minValue.toString(),\n });\n return `${this.currencyCode} ${formattedPrice}`;\n }\n}\n\n@NgModule({\n declarations: [CurrencyRendererComponent],\n exports: [CurrencyRendererComponent],\n imports: [CommonModule, GalaxyFormFieldModule, MatInputModule, ReactiveFormsModule, TranslateModule],\n})\nexport class CurrencyRendererComponentModule {}\n","export * from './integer';\nexport * from './text';\nexport * from './date';\nexport * from './dropdown';\nexport * from './currency';\n","import { Component, NgModule, ViewContainerRef } from '@angular/core';\nimport { ReactiveFormsModule, UntypedFormControl } from '@angular/forms';\nimport { FieldDataUpsertOperationInterface } from '@vendasta/account-group';\nimport { FieldHandler, FieldHandlerValidator } from '../auxiliary-data-table/auxiliary-data-table.interface';\nimport { CommonModule } from '@angular/common';\nimport { MatInputModule } from '@angular/material/input';\nimport { TranslateModule } from '@ngx-translate/core';\nimport { GalaxyFormFieldModule } from '@vendasta/galaxy/form-field';\n\nexport class NotYetSupportedHandler implements FieldHandler {\n fieldId: string;\n name: string;\n label: string;\n value: any;\n description: string;\n formControl: UntypedFormControl;\n validators?: FieldHandlerValidator[];\n readOnly?: boolean;\n\n constructor() {\n this.formControl = new UntypedFormControl();\n this.formControl.setValidators(() => ({ notYetSupported: true }));\n }\n\n render(viewContainerRef: ViewContainerRef): void {\n viewContainerRef.clear();\n viewContainerRef.createComponent(NotYetSupportedComponent);\n }\n\n upsertOperation(): FieldDataUpsertOperationInterface {\n throw new Error('Method not implemented.');\n }\n\n hasModification(): boolean {\n return false;\n }\n}\n\n@Component({\n styles: [\n `\n #text {\n margin: 0 5px;\n padding: 6px 0 8px;\n }\n `,\n ],\n template: `\n
\n {{ 'FIELD_NOT_YET_SUPPORTED' | translate }}\n
\n `,\n standalone: false,\n})\nexport class NotYetSupportedComponent {}\n\n@NgModule({\n declarations: [NotYetSupportedComponent],\n exports: [NotYetSupportedComponent],\n imports: [CommonModule, MatInputModule, ReactiveFormsModule, TranslateModule, GalaxyFormFieldModule],\n})\nexport class NotYetSupportedComponentModule {}\n","import {\n FieldHandler,\n FieldHandlerValidator,\n FieldSchema,\n} from './auxiliary-data-table/auxiliary-data-table.interface';\nimport {\n CurrencyFieldHandler,\n DateFieldHandler,\n DropdownFieldHandler,\n IntegerFieldHandler,\n TextFieldHandler,\n} from './renderers';\nimport { NotYetSupportedHandler } from './renderers/not-yet-supported';\n\nexport function chooseHandler(\n fieldId: string,\n fieldSchema: FieldSchema,\n fieldData: any,\n showLabel: boolean,\n validators: FieldHandlerValidator[] = [],\n readOnly = false,\n): FieldHandler {\n const type = fieldSchema?.format || fieldSchema?.type;\n const label = showLabel ? fieldSchema?.title : '';\n switch (type) {\n case 'string':\n case 'email':\n return new TextFieldHandler(\n fieldId,\n fieldSchema?.title,\n label,\n fieldData,\n fieldSchema?.description,\n validators,\n readOnly,\n );\n case 'integer':\n return new IntegerFieldHandler(\n fieldId,\n fieldSchema.title,\n label,\n fieldData as number,\n fieldSchema.description,\n validators,\n readOnly,\n );\n case 'date':\n return new DateFieldHandler(\n fieldId,\n fieldSchema.title,\n label,\n fieldData,\n fieldSchema.description,\n validators,\n readOnly,\n );\n case 'dropdown':\n return new DropdownFieldHandler(\n fieldId,\n fieldSchema.title,\n label,\n fieldData,\n fieldSchema.dropdownOptions,\n validators,\n readOnly,\n );\n case 'currency':\n return new CurrencyFieldHandler(\n fieldId,\n fieldSchema.title,\n label,\n fieldData,\n fieldSchema.currencyCode,\n validators,\n readOnly,\n );\n case 'boolean':\n return new DropdownFieldHandler(\n fieldId,\n fieldSchema.title,\n label,\n fieldData,\n fieldSchema.dropdownOptions,\n validators,\n readOnly,\n );\n case 'phone':\n case 'stringList':\n case 'datetime':\n case 'geopoint':\n case 'float':\n default:\n console.warn(`Could not handle type ${type}`);\n return new NotYetSupportedHandler();\n }\n}\n","import { Injectable } from '@angular/core';\nimport { Observable, ReplaySubject, combineLatest, of } from 'rxjs';\nimport { catchError, map, shareReplay, switchMap, take, tap } from 'rxjs/operators';\nimport { SchemaService } from '../auxiliary-data/schema-service/schema.service';\nimport { FieldHandler, ObjectData, ObjectSchema } from './auxiliary-data-table/auxiliary-data-table.interface';\nimport { FieldDataService } from './field-data-service/field-data.service';\nimport { chooseHandler } from './renderer-utils';\nimport { ObjectType } from './schema-service/schema-interface';\n\nexport enum LoadingStatus {\n LOADING = 1,\n OK = 2,\n EMPTY = 3,\n ERROR = 4,\n}\n\nexport enum SavingStatus {\n SAVING = 1,\n OK = 2,\n ERROR = 3,\n}\n\nexport const CUSTOM_READ_ONLY_FIELDS = [\n 'FieldID-60772169-beef-45b4-a716-b108b5ccf00f', // PID - TRUD - payment-alert flag\n];\n\n@Injectable()\nexport class AuxiliaryFieldHandlerService {\n LoadingStatus = LoadingStatus;\n\n private partnerId!: string;\n private objectType!: ObjectType;\n private objectId!: string;\n\n private loadingStatus$$ = new ReplaySubject(1);\n loadingStatus$ = this.loadingStatus$$.asObservable();\n\n private savingStatus$$ = new ReplaySubject(1);\n savingStatus$ = this.savingStatus$$.asObservable();\n\n fieldHandlers$!: Observable;\n\n constructor(\n private readonly fieldDataService: FieldDataService,\n private readonly schemaService: SchemaService,\n ) {}\n\n init(partnerId: string, objectType: ObjectType, objectId: string, showLabel: boolean, readOnly = false): void {\n this.partnerId = partnerId;\n this.objectType = objectType;\n this.objectId = objectId;\n\n this.fieldHandlers$ = this.buildFieldData$(showLabel, readOnly).pipe(\n map((handlers) => handlers.filter((h) => h !== null)),\n );\n }\n\n private buildFieldData$(showLabel: boolean, readOnly = false): Observable {\n const listData$ = this.fieldDataService.listData(this.partnerId, this.objectType, this.objectId, { pageSize: 100 });\n const listSchemas$ = this.schemaService.listFieldSchemas(this.objectType, this.partnerId, false, '', 100);\n\n this.loadingStatus$$.next(LoadingStatus.LOADING);\n return combineLatest([listData$, listSchemas$]).pipe(\n take(1),\n catchError((err) => {\n this.loadingStatus$$.next(LoadingStatus.ERROR);\n throw err;\n }),\n map(([fullData, response]) => {\n const objectSchema = JSON.parse(fullData.jsonSchema) as ObjectSchema;\n const objectData = JSON.parse(fullData.jsonData) as ObjectData;\n return (response.fieldSchemas || []).map((fieldSchema) => {\n return chooseHandler(\n fieldSchema.fieldId,\n objectSchema.properties[fieldSchema.fieldId],\n objectData[fieldSchema.fieldId],\n showLabel,\n [],\n CUSTOM_READ_ONLY_FIELDS.includes(fieldSchema.fieldId) ? true : readOnly,\n );\n });\n }),\n tap((handlers) => this.loadingStatus$$.next(handlers.length ? LoadingStatus.OK : LoadingStatus.EMPTY)),\n shareReplay({ refCount: true, bufferSize: 1 }),\n );\n }\n\n saveChanges(): Observable {\n return of(null).pipe(\n tap(() => this.savingStatus$$.next(SavingStatus.SAVING)),\n switchMap(() => this.fieldHandlers$),\n map((fieldHandlers) =>\n fieldHandlers.filter((handler) => handler.hasModification()).map((handler) => handler.upsertOperation()),\n ),\n switchMap((fieldDataUpsertOperations) => {\n if (!fieldDataUpsertOperations?.length) {\n return of(false);\n }\n return this.fieldDataService\n .upsertData(this.partnerId, this.objectType, this.objectId, fieldDataUpsertOperations)\n .pipe(map(() => true));\n }),\n catchError((err) => {\n this.savingStatus$$.next(SavingStatus.ERROR);\n throw err;\n }),\n tap(() => this.savingStatus$$.next(SavingStatus.OK)),\n );\n }\n}\n","import { Component, Input, OnChanges, OnInit, ViewContainerRef } from '@angular/core';\nimport { FieldHandler } from './auxiliary-data-table/auxiliary-data-table.interface';\n\n@Component({\n selector: 'aux-renderer-selector',\n template: '',\n standalone: false,\n})\nexport class RendererSelectorComponent implements OnInit, OnChanges {\n @Input() handler!: FieldHandler;\n\n constructor(private viewContainerRef: ViewContainerRef) {}\n\n ngOnInit(): void {\n this.handler?.render(this.viewContainerRef);\n }\n\n ngOnChanges(): void {\n this.handler?.render(this.viewContainerRef);\n }\n}\n","import { Component, Input, OnInit } from '@angular/core';\nimport { tap } from 'rxjs/operators';\nimport { UntypedFormGroup } from '@angular/forms';\nimport { Observable } from 'rxjs';\nimport { FieldHandler } from './auxiliary-data-table.interface';\nimport { AuxiliaryFieldHandlerService, LoadingStatus } from '../auxiliary-field-handler.service';\nimport { ObjectType } from '../schema-service/schema-interface';\n\nenum Columns {\n Name = 'name',\n Value = 'value',\n Action = 'action',\n}\n\n@Component({\n selector: 'aux-auxiliary-data-table',\n templateUrl: './auxiliary-data-table.component.html',\n styleUrls: ['./auxiliary-data-table.component.scss'],\n standalone: false,\n})\nexport class AuxiliaryDataTableComponent implements OnInit {\n @Input() partnerId = '';\n @Input() objectType: ObjectType;\n @Input() objectId = '';\n\n @Input() auxiliaryDataAdminURL = '';\n @Input() disableManage = false;\n\n Columns = Columns;\n LoadingStatus = LoadingStatus;\n dataSource$!: Observable;\n displayedColumns: string[] = [Columns.Name, Columns.Value, Columns.Action];\n formGroup = new UntypedFormGroup({});\n\n loadingStatus$ = this.auxiliaryDataService.loadingStatus$;\n savingStatus$ = this.auxiliaryDataService.savingStatus$;\n\n constructor(private readonly auxiliaryDataService: AuxiliaryFieldHandlerService) {}\n\n ngOnInit(): void {\n this.auxiliaryDataService.init(this.partnerId, this.objectType, this.objectId, false);\n this.dataSource$ = this.auxiliaryDataService.fieldHandlers$.pipe(\n tap((handlers) => {\n handlers.forEach((handler) => {\n this.formGroup.setControl(handler.fieldId, handler.formControl);\n });\n }),\n );\n }\n\n saveChanges(): Observable {\n return this.auxiliaryDataService.saveChanges();\n }\n\n trackByFn(_: any, item: FieldHandler): string {\n return item.fieldId;\n }\n\n hasChanges(): boolean {\n return this.formGroup.dirty;\n }\n}\n","\n \n \n \n \n {{ 'AUXILIARY_DATA_TABLE.ATTRIBUTE_COLUMN' | translate }}\n \n \n {{ handler.name }}\n \n info_outline\n \n \n \n \n \n {{ 'AUXILIARY_DATA_TABLE.DATA_COLUMN' | translate }}\n \n \n \n \n \n \n \n \n {{ 'COMMON.MANAGE_ATTRIBUTES' | translate }}\n \n \n \n \n \n \n
\n
\n
\n\n
\n \n
\n
\n\n \n topic\n \n \n {{ 'AUXILIARY_DATA_TABLE.EMPTY.TITLE' | translate }}\n \n

{{ 'AUXILIARY_DATA_TABLE.EMPTY.TEXT' | translate }}

\n \n \n {{ 'AUXILIARY_DATA_TABLE.EMPTY.BUTTON' | translate }}\n \n \n
\n\n \n report_problem\n \n \n {{ 'AUXILIARY_DATA_TABLE.ERROR.TITLE' | translate }}\n \n

{{ 'AUXILIARY_DATA_TABLE.ERROR.TEXT' | translate }}

\n \n
\n","{\n \"COMMON\": {\n \"FULFILLMENT_PROJECTS_AND_TASKS\": \"Fulfillment projects & tasks\",\n \"PRODUCT\": \"Product\",\n \"PRODUCTS\": \"Products\",\n \"ORDER\": \"Order\",\n \"ACCOUNTS\": \"Accounts\",\n \"USER\": \"User\",\n \"USERS\": \"Users\",\n \"ORDERS\": \"Orders\",\n \"AUXILIARY_DATA\": {\n \"SCHEMA\": {\n \"NAME\": \"Name\",\n \"DESCRIPTION\": \"Description\",\n \"TYPE\": \"Field type\",\n \"OBJECT\": \"Object\",\n \"DROPDOWN\": {\n \"LABEL\": \"Label\",\n \"LABEL_HINT\": \"What you will see as an option in the dropdown. (e.g. Top Tier, Middle Tier, Low Tier) - max 100 characters\",\n \"VALUE\": \"Value\",\n \"VALUE_HINT\": \"Used to match against CSV or form values. (e.g.top-tier, mid-tier, low-tier)\",\n \"OPTION_FIELDS_LIMIT\": \"A maximum number of 200 options can be created per dropdown field\"\n }\n },\n \"TYPES\": {\n \"STRING\": \"Text\",\n \"INTEGER\": \"Integer\",\n \"DATE\": \"Date\",\n \"DROPDOWN\": \"Dropdown\",\n \"CURRENCY\": \"Currency\"\n },\n \"CREATE_HEADER\": \"Create custom field\",\n \"EDIT_HEADER\": \"Edit custom field\",\n \"EXTERNAL_IDENTIFIER\": \"External Identifier\",\n \"SET\": \"Set\",\n \"SET_IDENTIFIER\": \"Set Identifier\",\n \"EDIT_IDENTIFIER\": \"Edit Identifier\",\n \"IDENTIFIER_VALIDATION_MESSAGE\": \"Only lowercase letters, numbers, dash (-) and underscore (_) permitted\",\n \"IDENTIFIER_DUPLICATE_MESSAGE\": \"This external identifier is currently in use\",\n \"EXTERNAL_IDENTIFIER_DESCRIPTION\": \"This is what will be used to identify this field when working with the API.\",\n \"EXTERNAL_IDENTIFIER_WARNING\": \"Warning: Changing this will require changes in your code if you're using the API.\"\n },\n \"MANAGE_ATTRIBUTES\": \"Manage custom fields\",\n \"INVALID_DROPDOWN_ERROR\": \"Select a valid option\",\n \"ADD_FIELD\": \"Add {{fieldName}}...\",\n \"ACTION_LABELS\": {\n \"ACTIONS\": \"Actions\",\n \"CANCEL\": \"Cancel\",\n \"CONTINUE\": \"Continue\",\n \"LEARN_MORE\": \"Learn more\",\n \"CONTACT_US\": \"Contact us\",\n \"MORE\": \"More\",\n \"VIEW_MORE\": \"View more\",\n \"WANT_TO_LEARN_MORE\": \"Want to learn more?\",\n \"TALKE_A_COURSE\": \"Take a course!\",\n \"SHOW\": \"Show\",\n \"SHOW_ALL\": \"Show all\",\n \"SHOW_LESS\": \"Show less\",\n \"LESS\": \"Less\",\n \"NEXT\": \"Next\",\n \"BACK\": \"Back\",\n \"CLOSE\": \"Close\",\n \"REMOVE\": \"Remove\",\n \"CREATE\": \"Create\",\n \"EDIT\": \"Edit\",\n \"UPDATE\": \"Update\",\n \"RETRY\": \"Retry\",\n \"DONE\": \"Done\",\n \"DELETE\": \"Delete\",\n \"ADD\": \"Add\",\n \"ADD_NEW\": \"Add new\",\n \"NONE_LABEL\": \"None\",\n \"NO_RESULTS\": \"No results\",\n \"SEND\": \"Send\",\n \"SUBMIT\": \"Submit\",\n \"SELECT_DATE\": \"Select date\",\n \"SAVE\": \"Save\",\n \"LOAD_MORE\": \"Load more\",\n \"SEARCH\": \"Search\",\n \"VIEW\": \"View\",\n \"VIEW_DETAILS\": \"View details\",\n \"VIEW_LESS\": \"View less\",\n \"DISMISS\": \"Dismiss\",\n \"CONFIRM\": \"Confirm\",\n \"OK\": \"OK\",\n \"SELECT\": \"Select\"\n },\n\n \"TABLE\": {\n \"OF\": \"of\",\n \"OF_MANY\": \"of many\",\n \"NO_RESULTS\": \"No results found for filters\",\n \"SHOWING_PAGE_OF_TOTAL\": \"Showing {{page}} of {{total}}\",\n \"TABLE_SHOWING\": \"Showing {{page}} of {{total}} results\",\n \"TABLE_SHOWING_OVER_RESULT\": \"Showing {{page}} of over {{total}} results\",\n \"TABLE_SHOWING_ALL_RESULT\": \"Showing all {{total}} results\",\n \"EXPORT\": {\n \"BUTTON\": \"Export\",\n \"BUTTON_TOOLTIP_BEFORE_COUNT\": \"Export\",\n \"BUTTON_TOOLTIP_AFTER_COUNT\": \"items\"\n },\n \"COLUMN_SELECTOR\": {\n \"BUTTON\": \"Columns\"\n }\n }\n },\n \"AUXILIARY_DATA_TABLE\": {\n \"ATTRIBUTE_COLUMN\": \"Custom field\",\n \"DATA_COLUMN\": \"Data on file\",\n \"EMPTY\": {\n \"TITLE\": \"Leverage custom data in your workflow\",\n \"TEXT\": \"Quickly and easily collect data based on custom fields within the system and improve your data collection, storage, and reporting capabilities.\",\n \"BUTTON\": \"Set up custom fields\"\n },\n \"ERROR\": {\n \"TITLE\": \"Something went wrong\",\n \"TEXT\": \"Please wait a few moments and try again. If the problem persists, please contact an administrator\"\n },\n \"STRING_LIMIT_HINT\": \"{{characters}} characters (maximum 4000 characters)\",\n \"DELETED_ACCOUNT\": \"This account was recently deleted, and its custom data is still being processed.\"\n },\n \"FIELD_NOT_YET_SUPPORTED\": \"This field is not yet supported, please choose another field.\",\n \"AUXILIARY_DATA_CARD\": {\n \"CARD_TITLE\": \"Custom fields\",\n \"SAVE\": {\n \"SUCESS\": \"Custom fields saved successfully\",\n \"ERROR\": \"Something went wrong\"\n },\n \"ERROR\": {\n \"TITLE\": \"Something went wrong\",\n \"TEXT\": \"Please wait a few moments and try again. If the problem persists, please contact an administrator\"\n }\n },\n \"AUXILIARY_DATA_PANEL\": {\n \"PANEL_TITLE\": \"Custom fields\",\n \"PANEL_DESCRIPTION\": \"Custom fields for the account\",\n \"ERROR\": {\n \"TITLE\": \"Something went wrong\",\n \"TEXT\": \"Please wait a few moments and try again. If the problem persists, please contact an administrator\"\n }\n },\n \"ADMINISTRATION\": {\n \"CUSTOM_FIELDS\": {\n \"TITLE\": \"Custom fields\",\n \"DESCRIPTION\": \"Add and capture more information on customer accounts, users, and products\",\n \"SELECT_OBJECT_TYPE\": \"Select object type:\",\n \"SAVE_SUCCESS\": \"Field created successfully\",\n \"EDIT_SUCCESS\": \"Field edited successfully\",\n \"SAVE_ERROR\": \"Failed to create field\",\n \"EDIT_ERROR\": \"Failed to edit field\",\n \"CREATE_LABEL\": \"Create custom field\",\n \"REACHED_CREATION_LIMIT\": \"Limit reached\",\n \"TOO_MANY_CUSTOM_FIELDS\": \"A maximum number of 100 custom fields can be created per partner\",\n \"NAME_HINT\": \"{{characters}} characters (maximum 50 characters)\",\n \"DESCRIPTION_HINT\": \"{{characters}} characters (maximum 200 characters)\",\n \"ARCHIVED\": \"Archived fields\",\n \"ARCHIVE_SUCCESS\": \"'{{fieldName}}' was successfully archived.\",\n \"ARCHIVE_FAILURE\": \"Failed to archive '{{fieldName}}' field.\",\n \"UNARCHIVE_SUCCESS\": \"'{{fieldName}}' was successfully unarchived.\",\n \"UNARCHIVE_FAILURE\": \"Failed to unarchive '{{fieldName}}' field.\",\n \"CURRENCY_TYPE\": \"Currency Type\",\n \"FIELD_TYPE_NOT_EDITABLE\": \"This field cannot be edited after it’s created\",\n \"ARCHIVE_DIALOG\": {\n \"TITLE\": \"Archive field?\",\n \"CONTENT\": \"Automations that rely on {{fieldName}} may need to be updated.\",\n \"AUTOMATION_LINK\": \"Manage automations\",\n \"ARCHIVE\": \"Archive\"\n },\n \"EMPTY_STATE_TITLE\": \"Create custom fields\",\n \"EMPTY_STATE_DESCRIPTION\": \"Use custom fields to record unique information about accounts, users, products, and orders, as well as fulfillment projects and tasks. Information stored in custom fields can be used to segment campaigns, trigger automations, and more.\",\n \"EMPTY_STATE_LEARN_MORE\": \"Learn more\"\n }\n }\n}\n","import { Component, EventEmitter, Input, OnDestroy, OnInit, Output } from '@angular/core';\nimport { UntypedFormGroup } from '@angular/forms';\nimport { SnackbarService } from '@vendasta/galaxy/snackbar-service';\nimport { ProductAnalyticsService } from '@vendasta/product-analytics';\nimport { Observable, Subject } from 'rxjs';\nimport { take, takeUntil, tap } from 'rxjs/operators';\nimport { FieldHandler } from '../auxiliary-data-table/auxiliary-data-table.interface';\nimport { AuxiliaryFieldHandlerService, LoadingStatus, SavingStatus } from '../auxiliary-field-handler.service';\nimport { ObjectType } from '../schema-service/schema-interface';\n\nconst SNACKBAR_DURATION = 4000;\n\n@Component({\n selector: 'aux-auxiliary-data-card',\n templateUrl: './auxiliary-data-card.component.html',\n styleUrls: ['./auxiliary-data-card.component.scss'],\n standalone: false,\n})\nexport class AuxiliaryDataCardComponent implements OnInit, OnDestroy {\n @Input() partnerId = '';\n @Input() objectType: ObjectType;\n @Input() objectId = '';\n @Input() auxiliaryDataAdminURL = '';\n\n @Output() pendingCustomFieldsChanges: EventEmitter = new EventEmitter();\n\n formGroup = new UntypedFormGroup({});\n LoadingStatus = LoadingStatus;\n\n loadingStatus$ = this.auxiliaryDataService.loadingStatus$;\n savingStatus$ = this.auxiliaryDataService.savingStatus$;\n\n fieldHandlers$!: Observable;\n\n SavingStatus = SavingStatus;\n\n savedFormValue: object;\n killSubscriptions$$: Subject = new Subject();\n\n constructor(\n private readonly auxiliaryDataService: AuxiliaryFieldHandlerService,\n private snackService: SnackbarService,\n private readonly trackingService: ProductAnalyticsService,\n ) {}\n\n ngOnInit(): void {\n this.auxiliaryDataService.init(this.partnerId, this.objectType, this.objectId, true);\n this.fieldHandlers$ = this.auxiliaryDataService.fieldHandlers$.pipe(\n tap((handlers) => {\n handlers.forEach((handler) => {\n this.formGroup.setControl(handler.fieldId, handler.formControl);\n });\n this.savedFormValue = this.formGroup.getRawValue();\n }),\n );\n\n this.formGroup.valueChanges.pipe(takeUntil(this.killSubscriptions$$)).subscribe((value) => {\n const isEqualToInitial = JSON.stringify(value) === JSON.stringify(this.savedFormValue);\n this.pendingCustomFieldsChanges.emit(!isEqualToInitial && !this.formGroup.pristine);\n });\n }\n\n saveChanges(): void {\n this.posthogTrackCustomFieldEvent('start');\n this.auxiliaryDataService\n .saveChanges()\n .pipe(take(1))\n .subscribe({\n next: (fieldsSaved) => {\n if (fieldsSaved) {\n this.snackService.openSuccessSnack('AUXILIARY_DATA_CARD.SAVE.SUCESS');\n this.posthogTrackCustomFieldEvent('success');\n this.formGroup.markAsPristine();\n this.pendingCustomFieldsChanges.emit(false);\n this.savedFormValue = this.formGroup.getRawValue();\n } else {\n this.savingError();\n }\n },\n error: () => {\n this.savingError();\n },\n });\n }\n\n private savingError() {\n this.snackService.openErrorSnack('AUXILIARY_DATA_CARD.SAVE.ERROR', {\n duration: SNACKBAR_DURATION,\n });\n this.posthogTrackCustomFieldEvent('fail');\n }\n\n private posthogTrackCustomFieldEvent(suffix: string): void {\n this.trackingService.trackEvent(\n `CustomFields:edit-${this.objectType}-custom-field-data-${suffix}`,\n 'CustomFields',\n `edit-${this.objectType}-custom-field-data-${suffix}`,\n );\n }\n\n ngOnDestroy(): void {\n this.killSubscriptions$$.next(true);\n this.killSubscriptions$$.complete();\n }\n}\n","\n \n \n {{ 'AUXILIARY_DATA_CARD.CARD_TITLE' | translate }}\n \n \n \n {{ 'COMMON.MANAGE_ATTRIBUTES' | translate }}\n \n \n \n \n
\n \n \n \n
\n
\n \n \n \n {{ 'COMMON.ACTION_LABELS.SAVE' | translate }}\n \n \n \n
\n\n\n \n
\n \n
\n
\n\n \n \n report_problem\n \n \n {{ 'AUXILIARY_DATA_CARD.ERROR.TITLE' | translate }}\n \n

{{ 'AUXILIARY_DATA_CARD.ERROR.TEXT' | translate }}

\n \n
\n
\n","import { Component, Input, OnInit } from '@angular/core';\nimport { Observable } from 'rxjs';\nimport { tap } from 'rxjs/operators';\nimport { FieldHandler } from '../auxiliary-data-table/auxiliary-data-table.interface';\nimport { UntypedFormGroup } from '@angular/forms';\nimport { AuxiliaryFieldHandlerService, LoadingStatus } from '../auxiliary-field-handler.service';\nimport { ObjectType } from '../schema-service/schema-interface';\n\n@Component({\n selector: 'aux-auxiliary-data-panel',\n templateUrl: './auxiliary-data-panel.component.html',\n styleUrls: ['./auxiliary-data-panel.component.scss'],\n standalone: false,\n})\nexport class AuxiliaryDataPanelComponent implements OnInit {\n @Input() partnerId = '';\n @Input() objectType: ObjectType;\n @Input() objectId = '';\n\n formGroup = new UntypedFormGroup({});\n LoadingStatus = LoadingStatus;\n\n loadingStatus$ = this.auxiliaryDataService.loadingStatus$;\n savingStatus$ = this.auxiliaryDataService.savingStatus$;\n\n fieldHandlers$!: Observable;\n\n constructor(private readonly auxiliaryDataService: AuxiliaryFieldHandlerService) {}\n\n ngOnInit(): void {\n this.auxiliaryDataService.init(this.partnerId, this.objectType, this.objectId, true);\n this.fieldHandlers$ = this.auxiliaryDataService.fieldHandlers$.pipe(\n tap((handlers) => {\n handlers.forEach((handler) => {\n this.formGroup.setControl(handler.fieldId, handler.formControl);\n });\n }),\n );\n }\n\n saveChanges(): Observable {\n return this.auxiliaryDataService.saveChanges();\n }\n}\n","\n \n \n {{ 'AUXILIARY_DATA_PANEL.PANEL_TITLE' | translate }}\n \n \n {{ 'AUXILIARY_DATA_PANEL.PANEL_DESCRIPTION' | translate }}\n \n \n \n \n \n \n \n \n \n \n \n\n\n\n \n
\n \n
\n
\n\n \n \n report_problem\n \n \n {{ 'AUXILIARY_DATA_PANEL.ERROR.TITLE' | translate }}\n \n

{{ 'AUXILIARY_DATA_PANEL.ERROR.TEXT' | translate }}

\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 { MatDatepickerModule } from '@angular/material/datepicker';\nimport { MatExpansionModule } from '@angular/material/expansion';\nimport { MatFormFieldModule } from '@angular/material/form-field';\nimport { MatIconModule } from '@angular/material/icon';\nimport { MatInputModule } from '@angular/material/input';\nimport { MatProgressSpinnerModule } from '@angular/material/progress-spinner';\nimport { MatSortModule } from '@angular/material/sort';\nimport { MatTableModule } from '@angular/material/table';\nimport { MatTooltipModule } from '@angular/material/tooltip';\nimport { LexiconModule } from '@galaxy/lexicon';\nimport { TranslateModule } from '@ngx-translate/core';\nimport { VaFormsModule } from '@vendasta/forms';\nimport { GalaxyButtonLoadingIndicatorModule } from '@vendasta/galaxy/button-loading-indicator';\nimport { GalaxyEmptyStateModule } from '@vendasta/galaxy/empty-state';\nimport { GalaxyWrapModule } from '@vendasta/galaxy/galaxy-wrap';\nimport { GalaxyPageModule } from '@vendasta/galaxy/page';\nimport { VaTableModule } from '@vendasta/uikit';\nimport en from './assets/en_devel.json';\nimport { AuxiliaryDataCardComponent } from './auxiliary-data/auxiliary-data-card/auxiliary-data-card.component';\nimport { AuxiliaryDataPanelComponent } from './auxiliary-data/auxiliary-data-panel/auxiliary-data-panel.component';\nimport { AuxiliaryDataTableComponent } from './auxiliary-data/auxiliary-data-table/auxiliary-data-table.component';\nimport { AuxiliaryFieldHandlerService } from './auxiliary-data/auxiliary-field-handler.service';\nimport { RendererSelectorComponent } from './auxiliary-data/renderer-selector.component';\nimport {\n CurrencyRendererComponentModule,\n DateRendererComponentModule,\n DropdownRenderComponentModule,\n IntegerRendererComponentModule,\n TextRendererComponentModule,\n} from './auxiliary-data/renderers';\n\n@NgModule({\n imports: [\n CommonModule,\n ReactiveFormsModule,\n VaFormsModule,\n MatButtonModule,\n MatCardModule,\n MatIconModule,\n MatFormFieldModule,\n MatInputModule,\n MatTableModule,\n MatSortModule,\n MatDatepickerModule,\n MatTooltipModule,\n MatProgressSpinnerModule,\n VaTableModule,\n TranslateModule,\n GalaxyButtonLoadingIndicatorModule,\n LexiconModule.forChild({\n componentName: 'common/auxiliary-data',\n baseTranslation: en,\n }),\n GalaxyPageModule,\n GalaxyEmptyStateModule,\n MatExpansionModule,\n GalaxyWrapModule,\n DropdownRenderComponentModule,\n CurrencyRendererComponentModule,\n DateRendererComponentModule,\n IntegerRendererComponentModule,\n TextRendererComponentModule,\n ],\n declarations: [\n AuxiliaryDataTableComponent,\n RendererSelectorComponent,\n AuxiliaryDataPanelComponent,\n AuxiliaryDataCardComponent,\n ],\n exports: [\n AuxiliaryDataTableComponent,\n AuxiliaryDataPanelComponent,\n AuxiliaryDataCardComponent,\n RendererSelectorComponent,\n ],\n providers: [AuxiliaryFieldHandlerService],\n})\nexport class AuxiliaryDataModule {}\n","import { Inject, Injectable } from '@angular/core';\nimport { AccountGroupApiService, SearchByAuxiliaryDataResponseInterface } from '@vendasta/account-group';\nimport { AuxiliaryDataFilterInterface } from '@vendasta/account-group/lib/_internal/interfaces/api.interface';\nimport { Contact } from '@vendasta/sales-v2';\nimport { LoadRequest, TableDataService } from '@vendasta/va-filter2-table';\nimport { BehaviorSubject, EMPTY, Observable, combineLatest, of, zip } from 'rxjs';\nimport { expand, map, reduce, shareReplay, switchMap, take, tap } from 'rxjs/operators';\nimport { FieldDataService } from '../field-data-service/field-data.service';\nimport { AccountsCustomFieldsData } from './auxiliary-data-accounts-table.data-model';\n\ninterface ColumnAuxiliaryData {\n accountGroupId: string;\n jsonSchema?: any;\n jsonData?: any;\n}\n\n@Injectable()\nexport class AccountsAuxiliaryDataTableService implements TableDataService {\n private readonly totalResults$$: BehaviorSubject = new BehaviorSubject(0);\n public readonly totalResults$: Observable = this.totalResults$$.asObservable();\n private cursors: { [id: number]: string } = { 0: '' };\n\n constructor(\n @Inject('PARTNER_ID') private readonly partnerId$: Observable,\n private accountGroupService: AccountGroupApiService,\n private fieldDataService: FieldDataService,\n ) {}\n\n private getAuxiliaryDataForIDs(accountGroupIds: string[]): Observable> {\n if (!accountGroupIds) {\n return of(new Map());\n }\n const accountGroupAuxiliaryDataRequests$: Observable[] = [];\n for (const accountGroupId of accountGroupIds) {\n accountGroupAuxiliaryDataRequests$.push(\n this.partnerId$.pipe(\n take(1),\n switchMap((partnerId) => {\n return this.fieldDataService.listData(partnerId, 'business', accountGroupId, { cursor: '', pageSize: 100 });\n }),\n map(({ jsonSchema, jsonData }) => {\n const auxiliaryObjectData: ColumnAuxiliaryData = {\n accountGroupId: accountGroupId,\n };\n try {\n auxiliaryObjectData.jsonSchema = JSON.parse(jsonSchema) as unknown;\n } catch {\n auxiliaryObjectData.jsonSchema = {};\n }\n try {\n auxiliaryObjectData.jsonData = JSON.parse(jsonData) as unknown;\n } catch {\n auxiliaryObjectData.jsonData = {};\n }\n return auxiliaryObjectData;\n }),\n shareReplay({ refCount: true, bufferSize: 1 }),\n ),\n );\n }\n\n return zip(...accountGroupAuxiliaryDataRequests$).pipe(\n map((responses) => {\n const responseMap: Map = new Map();\n for (const response of responses) {\n responseMap.set(response.accountGroupId, response);\n }\n return responseMap;\n }),\n );\n }\n\n load(request: LoadRequest): Observable {\n if (request.pageIndex === 0) {\n this.cursors = { 0: '' };\n }\n const nextCursor = this.cursors[request.pageIndex] || '';\n const filterApplied = request.filters?.fieldFilter ? request.filters?.fieldFilter[0]?.filter : null;\n const searchFilters = [];\n if (filterApplied) {\n searchFilters.push(filterApplied);\n }\n\n const accountGroupIDs$ = this.partnerId$.pipe(\n take(1),\n switchMap((partnerId) => {\n return this.fieldDataService.searchByAuxiliaryData(\n partnerId,\n 'business',\n {\n searchFilters: searchFilters,\n },\n {\n pageSize: request.pageSize,\n cursor: nextCursor,\n },\n );\n }),\n tap((resp) => {\n this.totalResults$$.next(resp.pagingMetadata?.totalResults);\n if (resp.pagingMetadata?.hasMore) {\n this.cursors[request.pageIndex + 1] = resp.pagingMetadata?.nextCursor;\n }\n }),\n map((resp) => resp.accountGroupIds),\n );\n\n const accountGroupAuxDataMap$ = accountGroupIDs$.pipe(\n take(1),\n switchMap((accountGroupIDs) => this.getAuxiliaryDataForIDs(accountGroupIDs)),\n );\n const accountGroups$ = accountGroupIDs$.pipe(\n take(1),\n switchMap((accountgroups) =>\n accountgroups\n ? this.accountGroupService.getMulti({\n accountGroupIds: accountgroups,\n projectionFilter: { richData: true, accounts: true, napData: true, contactDetails: true },\n })\n : of(null),\n ),\n );\n\n return combineLatest([accountGroups$, accountGroupAuxDataMap$]).pipe(\n map(([resp, auxiliaryDataMap]) =>\n (resp?.accountGroups || []).map((item) => ({\n accountGroupId: item.accountGroup?.accountGroupId,\n accountName: item.accountGroup?.napData?.companyName,\n lastUpdateDate: item.accountGroup?.updated,\n address: {\n address: item.accountGroup?.napData?.address,\n address2: item.accountGroup?.napData?.address2,\n city: item.accountGroup?.napData?.city,\n country: item.accountGroup?.napData?.country,\n postalCode: item.accountGroup?.napData?.zip,\n state: item.accountGroup?.napData?.state,\n },\n primaryContact: new Contact({\n contactEmail: item.accountGroup?.contactDetails?.email,\n firstName: item.accountGroup?.contactDetails?.firstName,\n lastName: item.accountGroup?.contactDetails?.lastName,\n }),\n jsonSchema: auxiliaryDataMap.get(item.accountGroup?.accountGroupId)?.jsonSchema,\n jsonData: auxiliaryDataMap.get(item.accountGroup?.accountGroupId)?.jsonData,\n })),\n ),\n );\n }\n\n loadAllRowIDs(request: LoadRequest): Observable {\n const filterApplied = request.filters?.fieldFilter ? request.filters?.fieldFilter[0]?.filter : null;\n const searchFilters = [];\n if (filterApplied) {\n searchFilters.push(filterApplied);\n }\n const filter: AuxiliaryDataFilterInterface = {\n searchFilters,\n };\n\n const getNextPage = (\n lastResponse: SearchByAuxiliaryDataResponseInterface,\n ): Observable => {\n if (!lastResponse.pagingMetadata.hasMore) {\n return EMPTY;\n }\n const nextCursor = lastResponse.pagingMetadata.nextCursor;\n return this.partnerId$.pipe(\n take(1),\n switchMap((partnerId) =>\n this.fieldDataService.searchByAuxiliaryData(partnerId, 'business', filter, {\n pageSize: request.pageSize,\n cursor: nextCursor,\n }),\n ),\n );\n };\n\n return this.partnerId$.pipe(\n take(1),\n switchMap((partnerId) =>\n this.fieldDataService.searchByAuxiliaryData(partnerId, 'business', filter, {\n pageSize: request.pageSize,\n cursor: '',\n }),\n ),\n expand(getNextPage),\n map((resp) => resp?.accountGroupIds || []),\n reduce((acc: string[], cur) => acc.concat(cur), []),\n );\n }\n}\n","import { Contact } from '@vendasta/sales-v2';\n\nexport interface AccountsCustomFieldsData {\n accountGroupId: string;\n accountName: string;\n lastUpdateDate: Date;\n address: any;\n primaryContact: Contact;\n jsonSchema: any;\n jsonData: any;\n}\n\nexport enum AccountsCustomFieldsTableColumns {\n ACCOUNT_NAME = 'accountName',\n CITY = 'city',\n STATE = 'state',\n LAST_UPDATE_DATE = 'lastUpdateDate',\n PRIMARY_CONTACT = 'primaryContact',\n}\n","import { InjectionToken, ModuleWithProviders, NgModule } from '@angular/core';\nimport {\n DataSourceSettings,\n TABLE_DEFINITION,\n VaFilteredMatTableService,\n VaTableSortService,\n} from '@vendasta/va-filter2-table';\nimport { AccountsAuxiliaryDataTableService } from './auxiliary-data-accounts-table.service';\nimport { AccountsAuxiliaryDataTableFilterService } from './auxiliary-data-accounts-table-filters.service';\nimport { MAT_FORM_FIELD_DEFAULT_OPTIONS } from '@angular/material/form-field';\nimport { tableDefinitionFactory } from './auxiliary-data-accounts-table.model';\nimport { AccountsCustomFieldsData } from './auxiliary-data-accounts-table.data-model';\n\nexport interface AuxDataAccountsActionDependencies {\n openAccountListsModal(\n event: DataSourceSettings,\n vaFilteredMatTableService: VaFilteredMatTableService,\n accountsAuxiliaryDataTableService: AccountsAuxiliaryDataTableService,\n ): void;\n}\n\nexport const AuxDataAccountsActionInjectionToken = new InjectionToken(\n 'dependencies for the auxiliary-data account table actions',\n);\n\n@NgModule()\nexport class AuxDataAccountsTableActionModule {\n static forRoot(\n configActions: InjectionToken,\n ): ModuleWithProviders {\n return {\n ngModule: AuxDataAccountsTableActionModule,\n providers: [\n VaTableSortService,\n AccountsAuxiliaryDataTableService,\n VaFilteredMatTableService,\n VaTableSortService,\n AccountsAuxiliaryDataTableFilterService,\n {\n provide: AccountsAuxiliaryDataTableFilterService,\n useClass: AccountsAuxiliaryDataTableFilterService,\n },\n {\n provide: 'fieldSchemas',\n useValue: [],\n },\n {\n provide: TABLE_DEFINITION,\n useFactory: tableDefinitionFactory,\n deps: [AccountsAuxiliaryDataTableFilterService, 'fieldSchemas'],\n },\n { provide: MAT_FORM_FIELD_DEFAULT_OPTIONS, useValue: {} },\n {\n provide: AuxDataAccountsActionInjectionToken,\n useExisting: configActions,\n deps: [],\n },\n ],\n };\n }\n}\n","import { CommonModule } from '@angular/common';\nimport { Component, Inject, NgModule } from '@angular/core';\nimport { ReactiveFormsModule } from '@angular/forms';\nimport { MAT_FORM_FIELD_DEFAULT_OPTIONS } from '@angular/material/form-field';\nimport { MatIconModule } from '@angular/material/icon';\nimport { MatProgressSpinnerModule } from '@angular/material/progress-spinner';\nimport { TranslateModule } from '@ngx-translate/core';\nimport { GalaxyEmptyStateModule } from '@vendasta/galaxy/empty-state';\nimport { SnackbarService } from '@vendasta/galaxy/snackbar-service';\nimport { VaIconModule } from '@vendasta/uikit';\nimport { FilterModule } from '@vendasta/va-filter2';\nimport {\n BulkActionClickedEvent,\n Filter2TableModule,\n VaFilteredMatTableService,\n VaTableSortService,\n} from '@vendasta/va-filter2-table';\nimport { AuxiliaryDataModule } from '../../auxiliary-data.module';\nimport { AuxiliaryFieldHandlerService } from '../auxiliary-field-handler.service';\nimport {\n AuxDataAccountsActionDependencies,\n AuxDataAccountsActionInjectionToken,\n} from './auxiliary-data-accounts-table-actions.module';\nimport { AccountsAuxiliaryDataTableFilterService } from './auxiliary-data-accounts-table-filters.service';\nimport { AccountsCustomFieldsData } from './auxiliary-data-accounts-table.data-model';\nimport { AccountsAuxiliaryDataTableService } from './auxiliary-data-accounts-table.service';\nimport { AuxDataAccountsTableColumnsModule } from './column-components/auxiliary-data-accounts-table-column.module';\n\n@Component({\n template: `\n \n `,\n styles: [':host { display: block; }'],\n providers: [\n AccountsAuxiliaryDataTableService,\n VaFilteredMatTableService,\n VaTableSortService,\n AccountsAuxiliaryDataTableFilterService,\n { provide: MAT_FORM_FIELD_DEFAULT_OPTIONS, useValue: {} },\n ],\n standalone: false,\n})\nexport class AuxiliaryDataAccountsTableInternalComponent {\n constructor(\n readonly accountsAuxiliaryDataTableService: AccountsAuxiliaryDataTableService,\n private readonly alertService: SnackbarService,\n private readonly vaFilteredMatTableService: VaFilteredMatTableService,\n @Inject(AuxDataAccountsActionInjectionToken) private readonly configActions: AuxDataAccountsActionDependencies,\n ) {}\n\n openModalForBulkAction(event: BulkActionClickedEvent): void {\n switch (event.bulkActionID) {\n case 'add-accounts-to-list':\n this.configActions.openAccountListsModal(\n event.currentSettings,\n this.vaFilteredMatTableService,\n this.accountsAuxiliaryDataTableService,\n );\n break;\n default:\n console.error(`unknown bulk action ${event.bulkActionID}`);\n this.alertService.openErrorSnack('PROSPECT_COMPONENT.BULK_ACTIONS.ERROR');\n break;\n }\n }\n}\n\n@NgModule({\n imports: [\n CommonModule,\n TranslateModule.forChild(),\n ReactiveFormsModule,\n AuxiliaryDataModule,\n GalaxyEmptyStateModule,\n MatProgressSpinnerModule,\n MatIconModule,\n VaIconModule,\n Filter2TableModule,\n FilterModule,\n AuxDataAccountsTableColumnsModule,\n ],\n providers: [AuxiliaryFieldHandlerService, AccountsAuxiliaryDataTableService],\n declarations: [AuxiliaryDataAccountsTableInternalComponent],\n exports: [AuxiliaryDataAccountsTableInternalComponent],\n})\nexport class AuxiliaryDataAccountsTableInternalModule {}\n","import { CommonModule } from '@angular/common';\nimport { Component, Inject, Injector, Input, OnInit } from '@angular/core';\nimport { MatCardModule } from '@angular/material/card';\nimport { TABLE_DEFINITION } from '@vendasta/va-filter2-table';\nimport { Observable } from 'rxjs';\nimport { map, switchMap, take } from 'rxjs/operators';\nimport {\n AuxiliaryDataAccountsTableInternalComponent,\n AuxiliaryDataAccountsTableInternalModule,\n} from '../auxiliary-data-accounts-table/auxiliary-data-accounts-table-internal.component';\nimport { SchemaService } from '../schema-service/schema.service';\nimport { AccountsAuxiliaryDataTableFilterService } from './auxiliary-data-accounts-table-filters.service';\nimport { tableDefinitionFactory } from './auxiliary-data-accounts-table.model';\n\n@Component({\n imports: [CommonModule, MatCardModule, AuxiliaryDataAccountsTableInternalModule],\n selector: 'aux-auxiliary-data-accounts-table',\n template: `\n \n \n \n \n
\n
\n `,\n styles: [\n `\n .stencil-shimmer {\n height: 200px;\n }\n `,\n ],\n})\nexport class AuxiliaryDataAccountsTableComponent implements OnInit {\n @Input() enableAddToListButton = false;\n injector$: Observable;\n component = AuxiliaryDataAccountsTableInternalComponent;\n\n constructor(\n @Inject('PARTNER_ID') private readonly partnerId$: Observable,\n private readonly schemaService: SchemaService,\n private readonly injector: Injector,\n ) {}\n\n ngOnInit(): void {\n this.injector$ = this.partnerId$.pipe(\n take(1),\n switchMap((partnerId) => this.schemaService.listFieldSchemas('business', partnerId, false, '', 100)),\n map((response) => response.fieldSchemas),\n map((fieldSchemas) => {\n return Injector.create({\n providers: [\n {\n provide: AccountsAuxiliaryDataTableFilterService,\n useClass: AccountsAuxiliaryDataTableFilterService,\n },\n {\n provide: 'fieldSchemas',\n useValue: fieldSchemas,\n },\n {\n provide: 'enableAddToListButton',\n useValue: this.enableAddToListButton,\n },\n {\n provide: TABLE_DEFINITION,\n useFactory: tableDefinitionFactory,\n deps: [AccountsAuxiliaryDataTableFilterService, 'fieldSchemas', 'enableAddToListButton'],\n },\n ],\n parent: this.injector,\n });\n }),\n );\n }\n}\n","import { CommonModule } from '@angular/common';\nimport { Component, inject, OnInit, ViewChild } from '@angular/core';\nimport { MatButtonModule } from '@angular/material/button';\nimport { MatDialog, MatDialogModule, MatDialogRef, MAT_DIALOG_DATA } from '@angular/material/dialog';\nimport { ActivatedRoute, Router } from '@angular/router';\nimport { TranslateModule } from '@ngx-translate/core';\nimport { SnackbarService } from '@vendasta/galaxy/snackbar-service';\nimport { combineLatest } from 'rxjs';\nimport { first, map } from 'rxjs/operators';\nimport { AuxiliaryDataModule } from '../../auxiliary-data.module';\nimport { AuxiliaryDataTableComponent } from '../auxiliary-data-table/auxiliary-data-table.component';\n\n@Component({\n imports: [CommonModule, MatDialogModule, AuxiliaryDataModule, MatButtonModule, TranslateModule],\n template: `\n

{{ 'COMMON.MANAGE_ATTRIBUTES' | translate }}

\n \n \n \n \n \n \n \n `,\n})\nclass InnerDialogComponent {\n private readonly data = inject(MAT_DIALOG_DATA);\n public readonly partnerId = this.data.partnerId;\n public readonly objectTypeId$ = this.data.objectTypeId$;\n public readonly objectId$ = this.data.objectId$;\n public readonly disableManage$ = this.data.disableManage$;\n private readonly ref = inject(MatDialogRef);\n private readonly snackbar = inject(SnackbarService);\n\n @ViewChild('auxiliarydatatable')\n private auxiliaryDataTable: AuxiliaryDataTableComponent;\n\n onCancel() {\n this.ref.close();\n }\n\n async onSave() {\n try {\n await this.auxiliaryDataTable.saveChanges().toPromise();\n this.ref.close();\n } catch (e) {\n this.snackbar.openErrorSnack('An error occured. Changes were not saved.');\n }\n }\n}\n\n@Component({\n standalone: true,\n template: ``,\n})\nexport class CustomFieldsDialogComponent implements OnInit {\n dialog = inject(MatDialog);\n router = inject(Router);\n route = inject(ActivatedRoute);\n\n ngOnInit() {\n const ref = this.dialog.open(InnerDialogComponent, {\n width: '80%',\n data: {\n partnerId: this.route.snapshot.params.partnerId,\n objectTypeId$: this.route.params.pipe(map((params) => params.objectTypeId)),\n objectId$: this.route.params.pipe(map((params) => params.objectId)),\n disableManage$: this.route.params.pipe(map((params) => params.disableManage === 'true')),\n },\n });\n combineLatest([this.route.queryParams.pipe(first()), ref.afterClosed()]).subscribe(([queryParams]) => {\n this.router.navigate([{ outlets: { action: null } }], { queryParams });\n });\n }\n}\n","import { CommonModule } from '@angular/common';\nimport { Component, Input, NgModule, OnDestroy, OnInit } from '@angular/core';\nimport { ReactiveFormsModule, UntypedFormGroup } from '@angular/forms';\nimport { MatIconModule } from '@angular/material/icon';\nimport { MatProgressSpinnerModule } from '@angular/material/progress-spinner';\nimport { TranslateModule } from '@ngx-translate/core';\nimport { GalaxyEmptyStateModule } from '@vendasta/galaxy/empty-state';\nimport { Observable, Subject } from 'rxjs';\nimport { shareReplay, takeUntil } from 'rxjs/operators';\nimport { AuxiliaryDataModule } from '../../auxiliary-data.module';\nimport { FieldHandler } from '../auxiliary-data-table/auxiliary-data-table.interface';\nimport { AuxiliaryFieldHandlerService, LoadingStatus } from '../auxiliary-field-handler.service';\nimport { ObjectType } from '../schema-service/schema-interface';\n\nexport const SHOW_ALL_FIELDS = 100;\n\n@Component({\n selector: 'aux-auxiliary-fields',\n template: `\n \n
0\" [formGroup]=\"formGroup\">\n \n \n \n \n \n
\n\n \n \n {{ emptyStateIcon }}\n \n \n {{ emptyStateTitle | translate }}\n \n

\n {{ emptyStateText | translate }}\n

\n \n \n {{ 'AUXILIARY_DATA_TABLE.EMPTY.BUTTON' | translate }}\n \n \n
\n
\n \n \n
\n \n
\n
\n\n \n \n report_problem\n \n \n {{ 'AUXILIARY_DATA_CARD.ERROR.TITLE' | translate }}\n \n

{{ 'AUXILIARY_DATA_CARD.ERROR.TEXT' | translate }}

\n \n
\n
\n `,\n styleUrls: ['./auxiliary-data-fields.component.scss'],\n standalone: false,\n})\nexport class AuxiliaryDataFieldsComponent implements OnInit, OnDestroy {\n @Input() objectId: string;\n @Input() partnerId: string;\n @Input() objectType: ObjectType;\n @Input() numberOfFieldsToShow = SHOW_ALL_FIELDS;\n @Input() auxiliaryDataAdminURL = '';\n @Input() readOnly = false;\n @Input() reload$$: Subject = new Subject();\n @Input() emptyStateIcon = 'topic';\n @Input() emptyStateTitle = 'AUXILIARY_DATA_TABLE.EMPTY.TITLE';\n @Input() emptyStateText = 'AUXILIARY_DATA_TABLE.EMPTY.TEXT';\n\n LoadingStatus = LoadingStatus;\n\n formGroup = new UntypedFormGroup({});\n loadingStatus$ = this.auxiliaryDataService.loadingStatus$;\n destroyed$$ = new Subject();\n\n fieldHandlers$!: Observable;\n\n constructor(private readonly auxiliaryDataService: AuxiliaryFieldHandlerService) {}\n\n ngOnInit(): void {\n this.loadFieldHandlers();\n this.reload$$.pipe(takeUntil(this.destroyed$$)).subscribe(() => this.loadFieldHandlers());\n }\n\n ngOnDestroy(): void {\n this.destroyed$$.next();\n this.destroyed$$.unsubscribe();\n }\n\n private loadFieldHandlers(): void {\n this.auxiliaryDataService.init(this.partnerId, this.objectType, this.objectId, true, this.readOnly);\n this.fieldHandlers$ = this.auxiliaryDataService.fieldHandlers$.pipe(shareReplay({ refCount: true, bufferSize: 1 }));\n this.fieldHandlers$.pipe(takeUntil(this.destroyed$$)).subscribe((handlers) => {\n handlers.forEach((handler) => {\n this.formGroup.setControl(handler.fieldId, handler.formControl);\n });\n });\n }\n}\n\n@NgModule({\n imports: [\n CommonModule,\n TranslateModule.forChild(),\n ReactiveFormsModule,\n AuxiliaryDataModule,\n GalaxyEmptyStateModule,\n MatProgressSpinnerModule,\n MatIconModule,\n ],\n providers: [AuxiliaryFieldHandlerService],\n // AIM / SCAM patterns - only a single thing!\n declarations: [AuxiliaryDataFieldsComponent],\n exports: [AuxiliaryDataFieldsComponent],\n})\nexport class AuxiliaryDataFieldsModule {}\n","import { HttpResponse } from '@angular/common/http';\nimport {\n AuxiliaryDataFieldType,\n DropdownOptionInterface,\n GetAuxiliaryDataFieldSchemaResponseInterface as GetFieldSchemaAccountResponse,\n GetMultiAuxiliaryDataFieldSchemaResponseInterface as GetMultiFieldSchemaAccountResponse,\n ListAuxiliaryDataFieldSchemaResponseInterface as ListFieldSchemasAccountResponse,\n} from '@vendasta/account-group';\nimport {\n AuxiliaryDataFieldSchemaInterface,\n GetAuxiliaryDataFieldSchemaResponseInterface as GetFieldSchemaUserResponse,\n GetMultiAuxiliaryDataFieldSchemaResponseInterface as GetMultiFieldSchemaUserResponse,\n ListAuxiliaryDataFieldSchemaResponseInterface as ListFieldSchemasUserResponse,\n} from '@vendasta/iamv2/lib/_internal/interfaces/fields.interface';\nimport {\n GetAuxiliaryDataFieldSchemaResponseInterface as GetFieldSchemaProductResponse,\n GetMultiAuxiliaryDataFieldSchemaResponseInterface as GetMultiFieldSchemaProductResponse,\n ListAuxiliaryDataFieldSchemaResponseInterface as ListFieldSchemasProductResponse,\n} from '@galaxy/marketplace-apps';\nimport {\n GetAuxiliaryDataFieldSchemaResponseInterface as GetFieldSchemaSalesOrderResponse,\n GetMultiAuxiliaryDataFieldSchemaResponseInterface as GetMultiFieldSchemaSalesOrderResponse,\n ListAuxiliaryDataFieldSchemaResponseInterface as ListFieldSchemasSalesOrderResponse,\n} from '@vendasta/sales-orders';\nimport { Observable } from 'rxjs';\nimport { PagedResponseMetadataInterface } from '@vendasta/sales-orders/lib/_internal/interfaces/paging.interface';\n\nexport type ObjectType = 'business' | 'user' | 'product' | 'order' | 'task' | 'Contact';\nexport const SupportedObjectTypes = ['business', 'user', 'product', 'order', 'task', 'Contact'];\nexport type ListFieldSchemasResponse =\n | ListFieldSchemasAccountResponse\n | ListFieldSchemasUserResponse\n | ListFieldSchemasProductResponse\n | ListFieldSchemasSalesOrderResponse\n | ListFieldSchemasCRMResponse;\nexport type GetFieldSchemaResponse =\n | GetFieldSchemaAccountResponse\n | GetFieldSchemaUserResponse\n | GetFieldSchemaProductResponse\n | GetFieldSchemaSalesOrderResponse\n | GetFieldSchemaCRMResponse;\nexport type GetMultiFieldSchemaResponse =\n | GetMultiFieldSchemaAccountResponse\n | GetMultiFieldSchemaUserResponse\n | GetMultiFieldSchemaProductResponse\n | GetMultiFieldSchemaSalesOrderResponse\n | GetMultiFieldSchemasCRMResponse;\n\nexport interface ListFieldSchemasCRMResponse {\n fieldSchemas?: AuxiliaryDataFieldSchemaInterface[];\n pagingMetadata?: PagedResponseMetadataInterface;\n}\n\nexport interface GetFieldSchemaCRMResponse {\n fieldSchema?: AuxiliaryDataFieldSchemaInterface;\n}\n\nexport interface GetMultiFieldSchemasCRMResponse {\n fieldSchemas?: AuxiliaryDataFieldSchemaInterface[];\n}\n\nexport interface FieldSchema {\n partnerId?: string;\n fieldId?: string;\n fieldType?: AuxiliaryDataFieldType; // shared def in protos but re-exported from each SDK separately\n fieldName?: string;\n fieldDescription?: string;\n dropdownOptions?: DropdownOptionInterface[];\n currencyCode?: string;\n externalId?: string;\n created?: Date;\n updated?: Date;\n archived?: Date;\n}\n\nexport interface UpdateFieldSchemaRequest {\n partnerId: string;\n fieldId: string;\n fieldType: AuxiliaryDataFieldType; // FIXME: the SDKs/lib shouldn't require this on updates; it's discarded because we don't allow changing the data-type (which would only make sense for very narrow things like downgrading to a string)\n fieldName?: string;\n fieldDescription?: string;\n dropdownOptions?: DropdownOptionInterface[];\n currencyCode?: string;\n externalId?: string;\n}\n\nexport enum UpdateSchemaFieldMaskOptions {\n name = 'fieldName',\n description = 'fieldDescription',\n dropdownOptions = 'dropdownOptions',\n currencyCode = 'currencyCode',\n externalId = 'externalId',\n}\n\nexport type UpdateSchemaFieldMask = UpdateSchemaFieldMaskOptions[];\n\nexport interface FieldSchemaIdentifier {\n fieldId?: string;\n externalId?: string;\n partnerId: string;\n}\n\nexport interface AbstractAuxiliaryDataSchemaService {\n listFieldSchemas(\n partnerId: string,\n onlyArchived: boolean,\n cursor: string,\n pageSize: number,\n ): Observable;\n\n createFieldSchema(schema: FieldSchema): Observable>;\n\n updateFieldSchema(\n changes: UpdateFieldSchemaRequest,\n fieldMask: UpdateSchemaFieldMask,\n ): Observable>;\n\n getFieldSchema(id: FieldSchemaIdentifier): Observable;\n\n getMultiFieldSchema(ids: FieldSchemaIdentifier[]): Observable;\n\n archiveFieldSchema(id: FieldSchemaIdentifier): Observable>;\n\n unarchiveFieldSchema(id: FieldSchemaIdentifier): Observable>;\n}\n","import { Component, EventEmitter, Input, OnDestroy, OnInit, Output } from '@angular/core';\nimport { AuxiliaryDataModule } from '../../auxiliary-data.module';\nimport { FormsModule, ReactiveFormsModule, UntypedFormGroup } from '@angular/forms';\nimport { ObjectType } from '../schema-service/schema-interface';\nimport { AuxiliaryFieldHandlerService, LoadingStatus } from '../auxiliary-field-handler.service';\nimport { Observable, Subject, debounceTime, map, shareReplay, switchMap, take, takeUntil } from 'rxjs';\nimport { FieldHandler } from '../auxiliary-data-table/auxiliary-data-table.interface';\nimport { AsyncPipe } from '@angular/common';\nimport { SnackbarService } from '@vendasta/galaxy/snackbar-service';\n\n@Component({\n selector: 'aux-auxiliary-data-fields-responsive',\n templateUrl: './auxiliary-data-fields-responsive.component.html',\n styleUrl: './auxiliary-data-fields-responsive.component.scss',\n imports: [AuxiliaryDataModule, ReactiveFormsModule, FormsModule, AsyncPipe],\n})\nexport class AuxiliaryDataFieldsResponsiveComponent implements OnInit, OnDestroy {\n @Input() objectId: string;\n @Input() partnerId: string;\n @Input() objectType: ObjectType;\n @Output() valuesChanged: EventEmitter<{ [key: string]: any }> = new EventEmitter();\n\n formGroup = new UntypedFormGroup({});\n loadingStatus$ = this.auxiliaryDataService.loadingStatus$;\n LoadingStatus = LoadingStatus;\n destroyed$$ = new Subject();\n\n fieldHandlers$!: Observable;\n\n constructor(\n private auxiliaryDataService: AuxiliaryFieldHandlerService,\n private snackbar: SnackbarService,\n ) {}\n\n ngOnInit(): void {\n this.initialize();\n }\n\n private initialize(): void {\n const showLabel = true;\n this.auxiliaryDataService.init(this.partnerId, this.objectType, this.objectId, showLabel);\n this.fieldHandlers$ = this.auxiliaryDataService.fieldHandlers$.pipe(shareReplay({ refCount: true, bufferSize: 1 }));\n this.fieldHandlers$.pipe(takeUntil(this.destroyed$$)).subscribe((handlers) => {\n handlers.forEach((handler) => {\n this.formGroup.setControl(handler.fieldId, handler.formControl, { emitEvent: false });\n });\n });\n this.formGroup.valueChanges\n .pipe(\n debounceTime(500),\n takeUntil(this.destroyed$$),\n switchMap((formValue) =>\n this.auxiliaryDataService.saveChanges().pipe(\n take(1),\n map((madeUpdates) => [madeUpdates, formValue]),\n ),\n ),\n )\n .subscribe({\n next: ([madeUpdates, formValue]) => {\n if (madeUpdates) {\n this.snackbar.openSuccessSnack('AUXILIARY_DATA_CARD.SAVE.SUCESS');\n this.valuesChanged.emit(formValue);\n }\n },\n error: () => this.snackbar.openErrorSnack('AUXILIARY_DATA_CARD.SAVE.ERROR'),\n });\n }\n\n reload(): void {\n this.initialize();\n }\n\n ngOnDestroy(): void {\n this.destroyed$$.next();\n this.destroyed$$.unsubscribe();\n }\n}\n","@switch (loadingStatus$ | async) {\n @case (LoadingStatus.LOADING) {\n
\n
\n
\n
\n
\n }\n @case (LoadingStatus.OK) {\n @if (fieldHandlers$ | async; as fieldHandlers) {\n
\n
\n @for (handler of fieldHandlers; track handler) {\n
\n \n
\n }\n
\n
\n }\n }\n}\n","import { Directive, HostListener, Injectable } from '@angular/core';\n\nimport { Observable } from 'rxjs';\n\nexport function displayPendingChangesDialog(): boolean {\n const message =\n 'You have unsaved changes. Press Cancel to go back and save these changes, or OK to lose these changes.';\n return confirm(message);\n}\n\n@Directive()\n// tslint:disable-next-line:directive-class-suffix\nexport abstract class ComponentCanDeactivate {\n abstract canDeactivate(): boolean | Observable;\n\n @HostListener('window:beforeunload', ['$event'])\n unloadNotification($event: any): void {\n if (!this.canDeactivate()) {\n $event.returnValue = true;\n }\n }\n\n // If you want your own dialog, you could override this method\n pendingChangesDialog(): boolean | Observable {\n return displayPendingChangesDialog();\n }\n}\n\n@Injectable({ providedIn: 'root' })\nexport class PendingChangesGuard {\n canDeactivate(component: ComponentCanDeactivate): boolean | Observable {\n if (component.canDeactivate()) {\n return true;\n }\n return component.pendingChangesDialog();\n }\n}\n","import { Injectable, TemplateRef } from '@angular/core';\nimport { BehaviorSubject, Observable } from 'rxjs';\nimport { map, publishReplay, refCount } from 'rxjs/operators';\n\nimport { displayPendingChangesDialog } from './pending-changes-guard.service';\n\nexport interface DynamicOpenCloseTemplateRef {\n id: string;\n templateRef: TemplateRef;\n}\n\n@Injectable({ providedIn: 'root' })\nexport class DynamicOpenCloseTemplateRefService {\n private templateMap = new Map>();\n private openTemplate$$ = new BehaviorSubject('');\n private hasPendingChanges$$ = new BehaviorSubject(false);\n openTemplate$: Observable;\n open$: Observable;\n\n constructor() {\n this.openTemplate$ = this.openTemplate$$.pipe(\n map((t) => {\n const templateRef = this.templateMap.get(t);\n const id = templateRef ? t : '';\n return {\n id: id,\n templateRef: templateRef,\n };\n }),\n publishReplay(1),\n refCount(),\n );\n\n this.open$ = this.openTemplate$$.pipe(map((a) => !!a));\n }\n\n updatePendingChanges(hasChanges: boolean): void {\n this.hasPendingChanges$$.next(hasChanges);\n }\n\n close(id?: string): void {\n let discardChanges = true;\n if (this.hasPendingChanges$$.getValue()) {\n discardChanges = displayPendingChangesDialog();\n }\n if (!discardChanges) {\n return;\n }\n\n if (id) {\n if (this.openTemplate$$.getValue() === id) {\n this.openTemplate$$.next('');\n }\n } else {\n this.openTemplate$$.next('');\n }\n }\n\n registerTemplate(id: string, template: TemplateRef): void {\n this.templateMap.set(id, template);\n if (this.openTemplate$$.getValue() === id) {\n this.open(id);\n }\n }\n\n open(id: string): void {\n window.setTimeout(() => {\n this.openTemplate$$.next(id);\n });\n }\n\n toggle(id: string): void {\n if (this.openTemplate$$.getValue() === id) {\n this.openTemplate$$.next('');\n } else {\n this.openTemplate$$.next(id);\n }\n }\n}\n","import { Injectable } from '@angular/core';\n// eslint-disable-next-line @nx/enforce-module-boundaries\nimport { FieldSchema } from '@vendasta/auxiliary-data-components';\nimport { BehaviorSubject, Observable, Subject } from 'rxjs';\nimport { filter, map, skip } from 'rxjs/operators';\n\n/*\nFIXME this should be named something like\n CustomFieldEditorNotificationsService\n but that should be a separate PR since it'll hide the actual changes in\n the file / everything renames\n*/\n@Injectable({\n providedIn: 'root',\n})\nexport class FieldSelectedForEditService {\n private selectedFieldId$$: BehaviorSubject = new BehaviorSubject(null);\n selectedFieldId$: Observable = this.selectedFieldId$$.asObservable().pipe(filter((id) => id !== null));\n editClicked$: Observable = this.selectedFieldId$.pipe(map(() => null));\n createClicked$: Observable = this.selectedFieldId$$.asObservable().pipe(\n filter((id) => id === null),\n skip(1),\n map(() => {\n // do nothing\n }),\n );\n fieldCreated$$: Subject = new Subject();\n\n createNewFieldClicked(): void {\n this.selectedFieldId$$.next(null);\n }\n\n editClickedForField(fieldId: string): void {\n this.selectedFieldId$$.next(fieldId);\n }\n}\n","// eslint-disable-next-line @nx/enforce-module-boundaries\nimport { ObjectType } from '@vendasta/auxiliary-data-components';\n\nexport const objectTypeOptions: ObjectTypeOption[] = [\n {\n labelKey: 'COMMON.ACCOUNTS',\n value: 'business',\n },\n {\n labelKey: 'COMMON.USERS',\n value: 'user',\n },\n {\n labelKey: 'COMMON.PRODUCTS',\n value: 'product',\n },\n {\n labelKey: 'COMMON.ORDERS',\n value: 'order',\n },\n {\n labelKey: 'COMMON.FULFILLMENT_PROJECTS_AND_TASKS',\n value: 'task',\n },\n];\n\nexport interface ObjectTypeOption {\n value: ObjectType;\n labelKey: string;\n}\n","import { CommonModule } from '@angular/common';\nimport { Component, Input, NgModule, OnDestroy } from '@angular/core';\nimport { ReactiveFormsModule, UntypedFormControl } from '@angular/forms';\nimport { MatSelectModule } from '@angular/material/select';\nimport { TranslateModule } from '@ngx-translate/core';\nimport { GalaxyFormFieldModule } from '@vendasta/galaxy/form-field';\nimport { Subject } from 'rxjs';\n\ninterface CurrencyCodeSymbol {\n code: string;\n symbol?: string;\n}\n\n@Component({\n selector: 'aux-currency-choice',\n template: `\n \n {{ 'ADMINISTRATION.CUSTOM_FIELDS.CURRENCY_TYPE' | translate }}\n \n \n {{ currency.code }}\n ({{ currency.symbol }})\n \n \n \n `,\n styles: [``],\n standalone: false,\n})\nexport class CurrencyChoiceComponent implements OnDestroy {\n @Input() currencyFormControl: UntypedFormControl;\n\n // copied from auxiliary-data: https://github.com/vendasta/auxiliary-data/blob/master/pkg/fieldschema/validators.go#L19-L49\n // which copied off of https://pkg.go.dev/golang.org/x/text/currency\n AllowedCurrencyCodes: CurrencyCodeSymbol[] = [\n { code: 'USD', symbol: '$' },\n { code: 'AUD', symbol: 'A$' },\n { code: 'BRL', symbol: 'R$' },\n { code: 'CAD', symbol: 'CA$' },\n { code: 'CHF' }, //https://en.wikipedia.org/wiki/Swiss_franc\n { code: 'CNY', symbol: 'CN¥' },\n { code: 'DKK', symbol: 'kr.' }, //https://en.wikipedia.org/wiki/Danish_krone\n { code: 'EUR', symbol: '€' },\n { code: 'GBP', symbol: '£' },\n { code: 'HKD', symbol: 'HK$' },\n { code: 'HKD', symbol: 'HK$' },\n { code: 'IDR', symbol: 'Rp' },\n { code: 'INR', symbol: '₹' },\n { code: 'KRW', symbol: '₩' },\n { code: 'MXN', symbol: 'MX$' },\n { code: 'NOK', symbol: 'kr' }, //https://en.wikipedia.org/wiki/Norwegian_krone\n { code: 'NZD', symbol: 'NZ$' },\n { code: 'PLN', symbol: 'zł' },\n { code: 'RUB', symbol: '₽' },\n { code: 'SAR' }, // https://en.wikipedia.org/wiki/Saudi_riyal\n { code: 'SEK', symbol: 'kr' }, // https://en.wikipedia.org/wiki/Swedish_krona\n { code: 'THB', symbol: '฿' },\n { code: 'TRY', symbol: '₺' }, // https://en.wikipedia.org/wiki/Turkish_lira\n { code: 'TWD', symbol: 'NT$' },\n { code: 'ZAR', symbol: 'R' },\n ];\n private destroyed$$ = new Subject();\n\n ngOnDestroy(): void {\n this.destroyed$$.next();\n }\n\n onBlur(isOpen: boolean): void {\n if (!isOpen) {\n this.currencyFormControl.updateValueAndValidity();\n }\n }\n}\n\n@NgModule({\n declarations: [CurrencyChoiceComponent],\n exports: [CurrencyChoiceComponent],\n imports: [CommonModule, MatSelectModule, ReactiveFormsModule, TranslateModule, GalaxyFormFieldModule],\n})\nexport class CurrencyChoiceComponentModule {}\n","import { CommonModule } from '@angular/common';\nimport {\n ChangeDetectorRef,\n Component,\n Inject,\n Input,\n NgModule,\n OnChanges,\n OnDestroy,\n OnInit,\n SimpleChanges,\n ViewEncapsulation,\n} from '@angular/core';\nimport { ReactiveFormsModule, UntypedFormControl, Validators } from '@angular/forms';\nimport { MatButtonModule } from '@angular/material/button';\nimport { MatFormFieldModule } from '@angular/material/form-field';\nimport { MatIconModule } from '@angular/material/icon';\nimport { MatInputModule } from '@angular/material/input';\nimport { TranslateModule } from '@ngx-translate/core';\n// eslint-disable-next-line @nx/enforce-module-boundaries\nimport { ObjectType, SchemaService } from '@vendasta/auxiliary-data-components';\nimport { GalaxyPopoverModule, PopoverPositions } from '@vendasta/galaxy/popover';\nimport { ProductAnalyticsService } from '@vendasta/product-analytics';\nimport { Observable, Subject, combineLatest, of } from 'rxjs';\nimport { debounceTime, filter, switchMap, takeUntil, tap } from 'rxjs/operators';\n\n@Component({\n selector: 'aux-external-id',\n templateUrl: './external-id.component.html',\n styleUrls: ['./external-id.component.scss'],\n encapsulation: ViewEncapsulation.None,\n standalone: false,\n})\nexport class ExternalIdComponent implements OnInit, OnChanges, OnDestroy {\n @Input() externalIdFormControl: UntypedFormControl;\n @Input() createNewField: boolean;\n @Input() name: string;\n @Input() objectType: ObjectType;\n PopoverPositions = PopoverPositions;\n\n isExternalIdPopoverVisible = false;\n isSmallPopoverVisible = false;\n //TODO instead of using a simple boolean, try to use a Observable\n isExternalIdSet = false;\n editExternalIdText: string;\n isSetButtonDisabled$: Observable;\n externalIdNewValue = new UntypedFormControl('', [Validators.pattern('[0-9a-z\\\\-_]*')]);\n destroy$: Subject = new Subject();\n isDuplicateExternalId$: Observable;\n isCheckingDuplicate = false;\n\n constructor(\n @Inject('PARTNER_ID') readonly partnerId$: Observable,\n private readonly trackingService: ProductAnalyticsService,\n private readonly changeDetector: ChangeDetectorRef,\n private readonly schemaService: SchemaService,\n ) {}\n\n ngOnInit(): void {\n this.editExternalIdText = this.createNewField\n ? 'COMMON.AUXILIARY_DATA.SET_IDENTIFIER'\n : 'COMMON.ACTION_LABELS.EDIT';\n\n this.externalIdFormControl.valueChanges\n .pipe(\n takeUntil(this.destroy$),\n filter((_) => !this.isExternalIdSet),\n tap((value) => {\n this.externalIdNewValue.setValue(value);\n }),\n )\n .subscribe();\n\n const externalIDSearch$ = this.externalIdNewValue.valueChanges.pipe(\n takeUntil(this.destroy$),\n debounceTime(400),\n filter((value) => value),\n );\n\n combineLatest([this.partnerId$, externalIDSearch$])\n .pipe(\n switchMap(([pid, externalIdGet]) => {\n this.isCheckingDuplicate = true;\n return this.schemaService.getMultiFieldSchema(this.objectType, [\n { partnerId: pid, externalId: externalIdGet },\n ]);\n }),\n )\n .subscribe((resp) => {\n this.isCheckingDuplicate = false;\n if (resp.fieldSchemas?.some((fieldSchema) => fieldSchema.fieldId)) {\n this.externalIdNewValue.setErrors({ duplicate: true });\n this.changeDetector.detectChanges();\n }\n });\n }\n\n ngOnChanges(changes: SimpleChanges): void {\n if (changes?.name?.currentValue && this.createNewField && !this.isExternalIdSet) {\n const sanitizedId = this.sanitizeName(changes.name.currentValue);\n this.externalIdFormControl.setValue(sanitizedId);\n this.partnerId$\n .pipe(\n debounceTime(300),\n switchMap((pid) => {\n return this.schemaService.getMultiFieldSchema(this.objectType, [\n { partnerId: pid, externalId: sanitizedId },\n ]);\n }),\n )\n .subscribe((resp) => {\n if (resp.fieldSchemas?.some((fieldSchema) => fieldSchema.fieldId)) {\n this.isDuplicateExternalId$ = of(true);\n } else {\n this.isDuplicateExternalId$ = of(false);\n }\n });\n }\n }\n\n setExternalId(): void {\n this.trackingService.trackEvent(\n 'CustomFields:edit-external-id-complete',\n 'CustomFields',\n 'edit-external-id-complete',\n 0,\n {\n objectType: this.objectType,\n },\n );\n this.externalIdFormControl.setValue(this.externalIdNewValue.value);\n this.isExternalIdSet = true;\n this.isExternalIdPopoverVisible = false;\n }\n\n cancelExternalId(): void {\n this.trackingService.trackEvent(\n 'CustomFields:edit-external-id-cancel',\n 'CustomFields',\n 'edit-external-id-cancel',\n 0,\n {\n objectType: this.objectType,\n },\n );\n this.externalIdNewValue.setValue(this.externalIdFormControl.value);\n this.isExternalIdPopoverVisible = false;\n this.isExternalIdSet = false;\n }\n\n showExternalIdPopover(): void {\n this.trackingService.trackEvent(\n 'CustomFields:edit-external-id-start',\n 'CustomFields',\n 'edit-external-id-start',\n 0,\n {\n objectType: this.objectType,\n },\n );\n this.isExternalIdPopoverVisible = true;\n }\n\n showSmallPopover(): void {\n this.isSmallPopoverVisible = true;\n }\n\n hideSmallPopover(): void {\n this.isSmallPopoverVisible = false;\n }\n\n private sanitizeName(name: string): string {\n return name\n .toLowerCase()\n .trim()\n .replace(/\\s+/g, '-')\n .replace(/[^0-9a-z\\-_]/g, '');\n }\n\n ngOnDestroy() {\n this.destroy$.next(true);\n this.destroy$.unsubscribe();\n }\n}\n\n@NgModule({\n declarations: [ExternalIdComponent],\n exports: [ExternalIdComponent],\n imports: [\n MatButtonModule,\n MatFormFieldModule,\n MatIconModule,\n MatInputModule,\n ReactiveFormsModule,\n TranslateModule,\n GalaxyPopoverModule,\n CommonModule,\n ],\n})\nexport class ExternalIdComponentModule {}\n","\n
\n \n {{ 'COMMON.AUXILIARY_DATA.IDENTIFIER_DUPLICATE_MESSAGE' | translate }}\n \n
\n
\n \n {{ 'COMMON.AUXILIARY_DATA.EXTERNAL_IDENTIFIER' | translate }}\n \n info_outline\n \n : {{ externalIdFormControl.value }}\n \n \n {{ editExternalIdText | translate }}\n \n
\n \n
\n {{ 'COMMON.AUXILIARY_DATA.EXTERNAL_IDENTIFIER_WARNING' | translate }}\n
\n \n \n \n {{ 'COMMON.AUXILIARY_DATA.IDENTIFIER_VALIDATION_MESSAGE' | translate }}\n \n \n {{ 'COMMON.AUXILIARY_DATA.IDENTIFIER_DUPLICATE_MESSAGE' | translate }}\n \n \n \n \n {{ 'COMMON.ACTION_LABELS.SAVE' | translate }}\n \n \n \n \n\n \n
\n {{ 'COMMON.AUXILIARY_DATA.EXTERNAL_IDENTIFIER_DESCRIPTION' | translate }}\n
\n \n
\n","import { CommonModule } from '@angular/common';\nimport { HttpResponse } from '@angular/common/http';\nimport { Component, EventEmitter, Inject, Input, NgModule, OnDestroy, OnInit, Output } from '@angular/core';\nimport {\n ReactiveFormsModule,\n UntypedFormArray,\n UntypedFormControl,\n UntypedFormGroup,\n Validators,\n} from '@angular/forms';\nimport { MatButtonModule } from '@angular/material/button';\nimport { MatFormFieldModule } from '@angular/material/form-field';\nimport { MatIconModule } from '@angular/material/icon';\nimport { MatInputModule } from '@angular/material/input';\nimport { MatProgressSpinnerModule } from '@angular/material/progress-spinner';\nimport { MatSelectModule } from '@angular/material/select';\nimport { MatTableModule } from '@angular/material/table';\nimport { MatTooltipModule } from '@angular/material/tooltip';\nimport { TranslateModule, TranslateService } from '@ngx-translate/core';\nimport { AuxiliaryDataFieldType } from '@vendasta/account-group';\n// eslint-disable-next-line @nx/enforce-module-boundaries\nimport {\n FieldSchema,\n ObjectType,\n SchemaService,\n UpdateFieldSchemaRequest,\n UpdateSchemaFieldMask,\n UpdateSchemaFieldMaskOptions,\n} from '@vendasta/auxiliary-data-components';\nimport { GalaxyAlertModule } from '@vendasta/galaxy/alert';\nimport { GalaxyFormFieldModule } from '@vendasta/galaxy/form-field';\nimport { GalaxyWrapModule } from '@vendasta/galaxy/galaxy-wrap';\nimport { SelectInputOptionInterface } from '@vendasta/galaxy/input';\nimport { SnackbarService } from '@vendasta/galaxy/snackbar-service';\nimport { ProductAnalyticsService } from '@vendasta/product-analytics';\nimport { BehaviorSubject, EMPTY, Observable, Subject, combineLatest } from 'rxjs';\nimport {\n catchError,\n distinctUntilChanged,\n filter,\n map,\n shareReplay,\n startWith,\n switchMap,\n take,\n takeUntil,\n tap,\n} from 'rxjs/operators';\nimport { DynamicOpenCloseTemplateRefService } from '../dynamic-open-close-template-ref.service';\nimport { FieldSelectedForEditService } from '../columns/field-selected-for-edit.service';\nimport { ObjectTypeOption, objectTypeOptions as _objectTypeOptions } from '../object-type-options';\nimport { CurrencyChoiceComponentModule } from './currency-choice.component';\nimport { ExternalIdComponentModule } from './external-id/external-id.component';\n\ninterface UpdateFieldSchemaStreamResponse {\n updateFieldSchemaResponse: HttpResponse;\n changes: UpdateFieldSchemaRequest;\n fieldMask: UpdateSchemaFieldMask;\n}\n\n@Component({\n selector: 'aux-field-editor',\n templateUrl: './field-editor.component.html',\n styleUrls: ['./field-editor.component.scss'],\n standalone: false,\n})\nexport class FieldEditorComponent implements OnInit, OnDestroy {\n createNewField$$ = new BehaviorSubject(false);\n @Input() set createNewField(canCreateNewField: boolean) {\n this.createNewField$$.next(canCreateNewField);\n }\n get createNewField(): boolean {\n return this.createNewField$$.value;\n }\n @Input() initialObjectType: ObjectType;\n @Input() showObjectTypeControl = true;\n @Output() changesCompleted = new EventEmitter();\n @Output() pendingChanges = new EventEmitter(false);\n @Output() savingChanges = new EventEmitter(false);\n @Output() saveDisabled = new EventEmitter(false);\n name = new UntypedFormControl('', Validators.required);\n description = new UntypedFormControl();\n selectedType = new UntypedFormControl(/*TODO validator for picking a non-zero value from dropdown*/);\n externalId = new UntypedFormControl('');\n objectType = new UntypedFormControl(null, Validators.required);\n objectTypeOptions: ObjectTypeOption[] = _objectTypeOptions;\n typeOptions: SelectInputOptionInterface[] = [\n {\n value: AuxiliaryDataFieldType.AUXILIARY_DATA_FIELD_TYPE_STRING,\n label: 'COMMON.AUXILIARY_DATA.TYPES.STRING',\n },\n {\n value: AuxiliaryDataFieldType.AUXILIARY_DATA_FIELD_TYPE_INTEGER,\n label: 'COMMON.AUXILIARY_DATA.TYPES.INTEGER',\n },\n {\n value: AuxiliaryDataFieldType.AUXILIARY_DATA_FIELD_TYPE_DATE,\n label: 'COMMON.AUXILIARY_DATA.TYPES.DATE',\n },\n {\n value: AuxiliaryDataFieldType.AUXILIARY_DATA_FIELD_TYPE_DROPDOWN,\n label: 'COMMON.AUXILIARY_DATA.TYPES.DROPDOWN',\n },\n {\n value: AuxiliaryDataFieldType.AUXILIARY_DATA_FIELD_TYPE_CURRENCY,\n label: 'COMMON.AUXILIARY_DATA.TYPES.CURRENCY',\n },\n ];\n validTypeOptions$: Observable = this.createNewField$$.pipe(\n map((createNewField) => {\n return this.typeOptions.filter((o) => {\n if (!createNewField || this.initialObjectType !== 'business') {\n return true;\n }\n return o.value !== AuxiliaryDataFieldType.AUXILIARY_DATA_FIELD_TYPE_CURRENCY;\n });\n }),\n );\n\n showDropdownOptions$: Observable = this.selectedType.valueChanges.pipe(\n map((selectedType) => selectedType === AuxiliaryDataFieldType.AUXILIARY_DATA_FIELD_TYPE_DROPDOWN),\n startWith(false),\n );\n removeDropdownDisabled$: Observable;\n addDropdownDisabled$: Observable;\n dropdownOptions = new UntypedFormArray([]);\n dropdownTableRows$$: BehaviorSubject = new BehaviorSubject([]);\n dropdownTableColumns: string[] = ['label', 'value', 'create-remove'];\n typeIsCurrency$: Observable = this.selectedType.valueChanges.pipe(\n map((selectedType) => selectedType === AuxiliaryDataFieldType.AUXILIARY_DATA_FIELD_TYPE_CURRENCY),\n startWith(false),\n );\n selectedCurrency = new UntypedFormControl(null, Validators.required);\n\n private selectedFieldId$: Observable;\n private selectedField$: Observable;\n private destroyed$$ = new Subject();\n private dropdownOptionsLimit = 200;\n\n constructor(\n @Inject('PARTNER_ID') readonly partnerId$: Observable,\n private readonly schemaService: SchemaService,\n private readonly selectedFieldService: FieldSelectedForEditService,\n private readonly dynamicOpenCloseService: DynamicOpenCloseTemplateRefService,\n private readonly snackbarService: SnackbarService,\n private readonly translateService: TranslateService,\n private readonly trackingService: ProductAnalyticsService,\n ) {}\n\n ngOnInit(): void {\n this.objectType.setValue(this.initialObjectType, { emitEvent: false });\n this.selectedFieldId$ = this.selectedFieldService.selectedFieldId$;\n\n this.selectedField$ = combineLatest([this.partnerId$, this.selectedFieldId$]).pipe(\n switchMap(([partnerId, fieldId]) => {\n return this.schemaService\n .getFieldSchema(this.objectType.value, { fieldId: fieldId, partnerId: partnerId })\n .pipe(map((res) => res.fieldSchema as FieldSchema));\n }),\n shareReplay({ bufferSize: 1, refCount: true }),\n );\n\n // this.selectedField$ = this.selectedFieldId$.pipe(\n // switchMap((fieldId) => this.schemaService.getFieldSchema(this.objectType.value, fieldId)),\n // map((res) => res.fieldSchema as FieldSchema),\n // shareReplay({ bufferSize: 1, refCount: true }),\n // );\n\n this.selectedField$\n .pipe(\n take(1),\n filter(() => !this.createNewField),\n tap((field) => {\n this.name.setValue(field.fieldName);\n this.description.setValue(field.fieldDescription);\n this.selectedType.setValue(field.fieldType);\n this.externalId.setValue(field.externalId);\n this.dropdownOptions.clear();\n if (field?.dropdownOptions && field.dropdownOptions.length > 0) {\n field.dropdownOptions.forEach((option) => this.addDropdownOption(option.label, option.value));\n } else {\n this.addDropdownOption();\n }\n if (field?.currencyCode) {\n this.selectedCurrency.setValue(field.currencyCode);\n }\n }),\n )\n .subscribe();\n if (this.createNewField) {\n this.name.setValue('');\n this.description.setValue('');\n this.selectedType.setValue(0);\n }\n this.showDropdownOptions$\n .pipe(\n takeUntil(this.destroyed$$),\n tap(() => this.resetDropdownOptions()),\n )\n .subscribe();\n this.removeDropdownDisabled$ = this.dropdownOptions.valueChanges.pipe(\n map((dropdowns: unknown[]) => !dropdowns || dropdowns.length <= 1),\n );\n this.addDropdownDisabled$ = this.dropdownOptions.valueChanges.pipe(\n map((dropdowns: unknown[]) => dropdowns.length >= this.dropdownOptionsLimit),\n );\n this.emitSavingDisabled();\n this.syncDropdownsToTableRows();\n this.emitPendingChanges();\n }\n\n ngOnDestroy(): void {\n this.destroyed$$.next();\n }\n\n selectType(type: any): void {\n this.selectedType.setValue(type);\n this.trackingService.trackEvent('CustomFields:field-type-selected', 'CustomFields', 'field-type-selected', 0, {\n objectType: this.objectType.value,\n fieldType: type,\n });\n }\n\n selectObjectType(type: ObjectType): void {\n this.objectType.setValue(type);\n this.trackingService.trackEvent('CustomFields:object-type-selected', 'CustomFields', 'object-type-selected', 0, {\n objectType: type,\n });\n }\n\n save(): void {\n if (this.createNewField) {\n this.createNew();\n } else {\n this.updateExisting();\n }\n }\n\n private resetDropdownOptions(): void {\n this.dropdownOptions.clear();\n this.addDropdownOption();\n this.dropdownOptions.updateValueAndValidity();\n }\n\n addDropdownOption(label = '', value = ''): void {\n this.dropdownOptions.push(this.getDropdownFormGroup(label, value));\n this.dropdownOptions.updateValueAndValidity();\n }\n\n private getDropdownFormGroup(label = '', value = ''): UntypedFormGroup {\n return new UntypedFormGroup({\n label: new UntypedFormControl(label, Validators.required),\n value: new UntypedFormControl(value, Validators.required),\n });\n }\n\n removeDropdownOption(i: number): void {\n this.dropdownOptions.removeAt(i);\n this.dropdownOptions.updateValueAndValidity();\n }\n\n private syncDropdownsToTableRows(): void {\n this.dropdownOptions.valueChanges\n .pipe(\n takeUntil(this.destroyed$$),\n map((options) => options?.length || 0),\n distinctUntilChanged(),\n tap(() => this.dropdownTableRows$$.next(this.dropdownOptions.controls as UntypedFormGroup[])),\n )\n .subscribe();\n this.addDropdownDisabled$ = this.dropdownTableRows$$.pipe(map((rows) => rows?.length >= this.dropdownOptionsLimit));\n }\n\n private createNew(): void {\n let newField: FieldSchema = {} as FieldSchema;\n this.partnerId$\n .pipe(\n take(1),\n tap(() => this.savingChanges.emit(true)),\n map((partnerId) => {\n const schema: FieldSchema = {\n partnerId: partnerId,\n fieldType: this.selectedType.value,\n fieldName: this.name.value,\n fieldDescription: this.description.value,\n externalId: this.externalId.value,\n };\n if (this.selectedType.value === AuxiliaryDataFieldType.AUXILIARY_DATA_FIELD_TYPE_DROPDOWN) {\n schema.dropdownOptions = this.dropdownOptions.value;\n }\n if (this.selectedType.value === AuxiliaryDataFieldType.AUXILIARY_DATA_FIELD_TYPE_CURRENCY) {\n schema.currencyCode = this.selectedCurrency.value;\n }\n return schema;\n }),\n tap((schema) => (newField = schema)),\n switchMap((schema) => this.schemaService.createFieldSchema(this.objectType.value, schema)),\n catchError((err) => {\n this.snackbarService.errorSnack(this.translateService.instant('ADMINISTRATION.CUSTOM_FIELDS.SAVE_ERROR'));\n this.trackingService.trackEvent(\n 'CustomFields:create-custom-field-fail',\n 'CustomFields',\n 'create-custom-field-fail',\n 0,\n {\n objectType: this.objectType.value,\n fieldType: newField.fieldType,\n },\n );\n console.error('failed to create field', err);\n return EMPTY;\n }),\n tap(() => {\n this.trackingService.trackEvent(\n 'CustomFields:create-custom-field-success',\n 'CustomFields',\n 'create-custom-field-success',\n 0,\n {\n objectType: this.objectType.value,\n fieldType: newField.fieldType,\n },\n );\n this.snackbarService.successSnack(this.translateService.instant('ADMINISTRATION.CUSTOM_FIELDS.SAVE_SUCCESS'));\n }),\n tap(() => this.pendingChanges.next(false)),\n tap(() => {\n this.dynamicOpenCloseService.updatePendingChanges(false);\n this.dynamicOpenCloseService.close();\n }),\n tap(() => this.changesCompleted.emit(this.objectType.value)),\n tap(() => this.selectedFieldService.fieldCreated$$.next(newField)),\n )\n .subscribe({\n complete: () => {\n this.savingChanges.emit(false);\n },\n });\n }\n\n private updateExisting(): void {\n combineLatest([this.partnerId$, this.selectedFieldId$])\n .pipe(\n take(1),\n tap(() => this.savingChanges.emit(true)),\n map(([partnerId, fieldId]) => {\n const changes: UpdateFieldSchemaRequest = {\n partnerId: partnerId,\n fieldId: fieldId,\n fieldType: this.selectedType.value,\n fieldName: this.name.value,\n fieldDescription: this.description.value,\n externalId: this.externalId.value,\n };\n const fieldMask: UpdateSchemaFieldMask = [\n UpdateSchemaFieldMaskOptions.name,\n UpdateSchemaFieldMaskOptions.description,\n UpdateSchemaFieldMaskOptions.externalId,\n ];\n if (this.selectedType.value === AuxiliaryDataFieldType.AUXILIARY_DATA_FIELD_TYPE_DROPDOWN) {\n changes.dropdownOptions = this.dropdownOptions.value;\n fieldMask.push(UpdateSchemaFieldMaskOptions.dropdownOptions);\n }\n if (this.selectedType.value === AuxiliaryDataFieldType.AUXILIARY_DATA_FIELD_TYPE_CURRENCY) {\n changes.currencyCode = this.selectedCurrency.value;\n fieldMask.push(UpdateSchemaFieldMaskOptions.currencyCode);\n }\n return { changes, fieldMask };\n }),\n switchMap(({ changes, fieldMask }) =>\n this.schemaService.updateFieldSchema(this.objectType.value, changes, fieldMask).pipe(\n map((updateFieldSchemaResponse) => ({\n updateFieldSchemaResponse,\n changes,\n fieldMask,\n })),\n ),\n ),\n catchError((err) => {\n this.snackbarService.errorSnack(this.translateService.instant('ADMINISTRATION.CUSTOM_FIELDS.EDIT_ERROR'));\n this.trackingService.trackEvent(\n 'CustomFields:edit-custom-field-fail',\n 'CustomFields',\n 'edit-custom-field-fail',\n 0,\n {\n objectType: this.objectType.value,\n },\n );\n console.error('failed to update field', err);\n return EMPTY;\n }),\n tap((response: UpdateFieldSchemaStreamResponse) => {\n this.snackbarService.successSnack(this.translateService.instant('ADMINISTRATION.CUSTOM_FIELDS.EDIT_SUCCESS'));\n this.trackingService.trackEvent(\n 'CustomFields:edit-custom-field-success',\n 'CustomFields',\n 'edit-custom-field-success',\n 0,\n {\n objectType: this.objectType.value,\n fieldType: response.changes.fieldType,\n },\n );\n }),\n tap(() => this.pendingChanges.next(false)),\n tap(() => {\n this.dynamicOpenCloseService.updatePendingChanges(false);\n this.dynamicOpenCloseService.close();\n }),\n tap(() => this.changesCompleted.emit(this.objectType.value)),\n )\n .subscribe({\n complete: () => {\n this.savingChanges.emit(false);\n },\n });\n }\n\n cancel(): void {\n const posthogEventProperties = {\n objectType: this.objectType.value,\n };\n if (this.selectedType.value) {\n posthogEventProperties['fieldType'] = this.selectedType.value;\n }\n\n if (this.createNewField) {\n this.trackingService.trackEvent(\n 'CustomFields:create-custom-field-cancel',\n 'CustomFields',\n 'create-custom-field-cancel',\n 0,\n posthogEventProperties,\n );\n } else {\n this.trackingService.trackEvent(\n 'CustomFields:edit-custom-field-cancel',\n 'CustomFields',\n 'edit-custom-field-cancel',\n 0,\n posthogEventProperties,\n );\n }\n this.dynamicOpenCloseService.close();\n }\n\n private emitSavingDisabled(): void {\n combineLatest([\n this.savingChanges.asObservable().pipe(startWith(false)),\n this.name.valueChanges.pipe(startWith(undefined)),\n this.description.valueChanges.pipe(startWith(undefined)),\n this.selectedType.valueChanges.pipe(startWith(undefined)),\n this.showDropdownOptions$,\n this.dropdownOptions.valueChanges.pipe(startWith(undefined)),\n this.typeIsCurrency$,\n this.selectedCurrency.valueChanges.pipe(startWith(undefined)),\n ])\n .pipe(\n takeUntil(this.destroyed$$),\n map(\n ([saving, , , , typeIsDropdown, , typeIsCurrency]) =>\n saving ||\n this.name.invalid ||\n this.description.invalid ||\n this.selectedType.invalid ||\n (typeIsDropdown && this.dropdownOptions.invalid) ||\n (typeIsCurrency && this.selectedCurrency.invalid),\n ),\n startWith(this.createNewField),\n tap((saveDisabled) => {\n this.saveDisabled.emit(saveDisabled);\n }),\n )\n .subscribe();\n }\n\n private emitPendingChanges(): void {\n combineLatest([\n this.name.valueChanges,\n this.description.valueChanges,\n this.selectedType.valueChanges,\n this.showDropdownOptions$,\n this.dropdownOptions.valueChanges,\n ])\n .pipe(\n takeUntil(this.destroyed$$),\n map(\n ([, , , typeIsDropdown]) =>\n this.name.dirty ||\n this.description.dirty ||\n this.selectedType.dirty ||\n (typeIsDropdown && this.dropdownOptions.dirty),\n ),\n tap((p) => this.pendingChanges.next(p)),\n tap((p) => this.dynamicOpenCloseService.updatePendingChanges(p)),\n )\n .subscribe();\n }\n}\n\n@NgModule({\n exports: [FieldEditorComponent],\n declarations: [FieldEditorComponent],\n imports: [\n CommonModule,\n CurrencyChoiceComponentModule,\n ExternalIdComponentModule,\n GalaxyWrapModule,\n MatButtonModule,\n MatFormFieldModule,\n MatIconModule,\n MatInputModule,\n MatProgressSpinnerModule,\n MatSelectModule,\n MatTableModule,\n MatTooltipModule,\n ReactiveFormsModule,\n TranslateModule,\n GalaxyAlertModule,\n GalaxyFormFieldModule,\n ],\n providers: [SchemaService],\n})\nexport class FieldEditorComponentModule {}\n","
\n \n
\n \n {{ 'ADMINISTRATION.CUSTOM_FIELDS.REACHED_CREATION_LIMIT' | translate }} —\n {{ 'COMMON.AUXILIARY_DATA.SCHEMA.DROPDOWN.OPTION_FIELDS_LIMIT' | translate }}\n \n
\n
\n\n \n \n {{ 'COMMON.AUXILIARY_DATA.SCHEMA.OBJECT' | translate }}\n \n info_outline\n \n \n \n \n {{ option.labelKey | translate }}\n \n \n \n\n \n {{ 'COMMON.AUXILIARY_DATA.SCHEMA.NAME' | translate }}\n \n \n {{ 'ADMINISTRATION.CUSTOM_FIELDS.NAME_HINT' | translate: { characters: name?.value?.length || 0 } }}\n \n \n \n\n \n {{ 'COMMON.AUXILIARY_DATA.SCHEMA.DESCRIPTION' | translate }}\n \n \n {{ 'ADMINISTRATION.CUSTOM_FIELDS.DESCRIPTION_HINT' | translate: { characters: description?.value?.length || 0 } }}\n \n \n\n \n \n {{ 'COMMON.AUXILIARY_DATA.SCHEMA.TYPE' | translate }}\n \n info_outline\n \n \n \n \n {{ typeOption.label | translate }}\n \n \n \n\n \n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n
\n
\n {{ 'COMMON.AUXILIARY_DATA.SCHEMA.DROPDOWN.LABEL' | translate }}\n \n info_outline\n \n
\n
\n \n \n
\n {{ 'COMMON.AUXILIARY_DATA.SCHEMA.DROPDOWN.VALUE' | translate }}\n \n info_outline\n \n
\n
\n \n \n \n add\n \n \n \n delete\n \n
\n
\n","import { Component, TemplateRef, ViewChild, ViewContainerRef } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { MatDrawer, MatSidenavModule } from '@angular/material/sidenav';\nimport { MatToolbarModule } from '@angular/material/toolbar';\nimport { MatIconModule } from '@angular/material/icon';\nimport { MatButtonModule } from '@angular/material/button';\n\n@Component({\n selector: 'aux-drawer',\n templateUrl: 'drawer.component.html',\n styleUrls: ['drawer.component.scss'],\n imports: [CommonModule, MatButtonModule, MatIconModule, MatSidenavModule, MatToolbarModule],\n})\nexport class AuxDrawerComponent {\n @ViewChild('drawer') drawer?: MatDrawer;\n @ViewChild('drawerContentRef', { read: ViewContainerRef })\n set drawerContentRef(value: ViewContainerRef) {\n this._drawerContentRef = value;\n }\n get drawerContentRef(): ViewContainerRef {\n return this._drawerContentRef;\n }\n private _drawerContentRef?: ViewContainerRef;\n\n protected title = '';\n\n close(): void {\n this._drawerContentRef?.clear();\n this.drawer?.close();\n }\n\n open(content: TemplateRef, title?: string): void {\n if (this._drawerContentRef && this.drawer) {\n this._drawerContentRef.clear();\n this._drawerContentRef.createEmbeddedView(content);\n this.title = title || '';\n this.drawer.open();\n }\n }\n}\n","\n \n \n \n {{ title }}\n \n \n \n
\n \n
\n
\n \n \n \n
\n","import { CommonModule } from '@angular/common';\nimport { Component, EventEmitter, Input, NgModule, OnChanges, Output, ViewChild } from '@angular/core';\nimport { MatButtonModule } from '@angular/material/button';\nimport { MatProgressSpinnerModule } from '@angular/material/progress-spinner';\nimport { TranslateModule } from '@ngx-translate/core';\n// eslint-disable-next-line @nx/enforce-module-boundaries\nimport { ObjectType } from '@vendasta/auxiliary-data-components';\nimport { GalaxyAlertModule } from '@vendasta/galaxy/alert';\nimport { BehaviorSubject, Observable } from 'rxjs';\nimport { map } from 'rxjs/operators';\nimport { FieldEditorComponent, FieldEditorComponentModule } from '../field-editor/field-editor.component';\nimport { ObjectTypeOption, objectTypeOptions as _objectTypeOptions } from '../object-type-options';\nimport { MatIcon } from '@angular/material/icon';\nimport { MatToolbar, MatToolbarRow } from '@angular/material/toolbar';\nimport { AuxDrawerComponent } from '../side-panel';\n\n@Component({\n selector: 'aux-app-auxiliary-data-panel',\n template: `\n
\n
\n \n {{ 'ADMINISTRATION.CUSTOM_FIELDS.REACHED_CREATION_LIMIT' | translate }} —\n {{ 'ADMINISTRATION.CUSTOM_FIELDS.TOO_MANY_CUSTOM_FIELDS' | translate }}\n \n
\n\n \n\n
\n \n \n {{ 'COMMON.ACTION_LABELS.SAVE' | translate }}\n \n \n \n \n \n \n
\n
\n `,\n styleUrls: ['./auxiliary-data-panel.component.scss'],\n standalone: false,\n})\nexport class AuxiliaryDataPanelComponent implements OnChanges {\n @ViewChild('fieldEditor', { static: false }) fieldEditor: FieldEditorComponent;\n @Input() createNewField = false;\n @Input() objectType: ObjectType = 'business';\n @Input() showObjectTypeControl = true;\n @Output() objectTypeSelected = new EventEmitter();\n @Input() set drawer(drawer: AuxDrawerComponent) {\n this.drawerRef = drawer;\n }\n drawerRef: AuxDrawerComponent;\n objectTypeOptions: ObjectTypeOption[] = _objectTypeOptions;\n pendingChanges$$ = new BehaviorSubject(false);\n savingDisabled$$ = new BehaviorSubject(true);\n savingChanges$$ = new BehaviorSubject(false);\n creatingNewField$$: BehaviorSubject = new BehaviorSubject(false);\n createEditTitle$: Observable = this.creatingNewField$$.pipe(\n map((creatingNew) => {\n if (creatingNew) {\n return 'COMMON.AUXILIARY_DATA.CREATE_HEADER';\n }\n return 'COMMON.AUXILIARY_DATA.EDIT_HEADER';\n }),\n );\n\n reachedCreationLimit$: Observable;\n\n ngOnChanges(): void {\n this.creatingNewField$$.next(this.createNewField);\n }\n\n selectObjectType(type: ObjectType): void {\n this.objectTypeSelected.next(type);\n }\n\n save(): void {\n this.fieldEditor.save();\n }\n\n cancel(): void {\n this.fieldEditor.cancel();\n this.drawerRef.close();\n }\n\n saveDisabled(disabled: boolean): void {\n this.savingDisabled$$.next(disabled);\n }\n\n pendingChanges(pending: boolean): void {\n this.pendingChanges$$.next(pending);\n }\n\n savingChanges(saving: boolean): void {\n this.savingChanges$$.next(saving);\n }\n\n canDeactivate(): boolean {\n return !this.pendingChanges$$.value;\n }\n}\n\n@NgModule({\n imports: [\n CommonModule,\n TranslateModule,\n MatProgressSpinnerModule,\n FieldEditorComponentModule,\n GalaxyAlertModule,\n MatButtonModule,\n MatIcon,\n MatToolbar,\n MatToolbarRow,\n ],\n // AIM / SCAM patterns - only a single thing!\n declarations: [AuxiliaryDataPanelComponent],\n exports: [AuxiliaryDataPanelComponent],\n})\nexport class AuxiliaryDataPanelComponentModule {}\n","import { InjectionToken } from '@angular/core';\n// eslint-disable-next-line @nx/enforce-module-boundaries\nimport { ObjectType } from '@vendasta/auxiliary-data-components';\nimport { BehaviorSubject } from 'rxjs';\n\nexport const SELECTED_OBJECT_TYPE$$ = new InjectionToken>('SELECTED_OBJECT_TYPE');\n\nexport const VIEWING_ARCHIVED$$ = new InjectionToken>('VIEWING_ARCHIVED');\n","import { Inject, Injectable } from '@angular/core';\nimport { AuxiliaryDataFieldType } from '@vendasta/account-group';\n// eslint-disable-next-line @nx/enforce-module-boundaries\nimport { ObjectType, SchemaService } from '@vendasta/auxiliary-data-components';\nimport { LoadRequest, TableDataService, VaFilteredMatTableService } from '@vendasta/va-filter2-table';\nimport { BehaviorSubject, combineLatest, Observable } from 'rxjs';\nimport { filter, map, shareReplay, switchMap, take, tap, withLatestFrom } from 'rxjs/operators';\nimport { SELECTED_OBJECT_TYPE$$, VIEWING_ARCHIVED$$ } from './tokens';\n\n@Injectable({\n providedIn: 'root',\n})\nexport class AuxiliaryDataTableService implements TableDataService {\n loading$$ = new BehaviorSubject(false);\n // DO NOT REMOVE\n // This table is backed by vStore, this is the only\n // reliable way of figuring out the totals\n // with a limit of 100 custom fields per PID today\n readonly totalResults$: Observable = combineLatest([\n this.partnerId$,\n this.selectedObjectType$$,\n this.loading$$,\n ]).pipe(\n filter(([, , loading]) => loading === true),\n switchMap(([pid, objectType]) =>\n this.schemaService.listFieldSchemas(objectType, pid, this.viewingArchived$$.value, '', 100),\n ),\n map((resp) => resp?.fieldSchemas?.length || 0),\n shareReplay({ bufferSize: 1, refCount: true }),\n );\n private cursors: { [id: number]: string } = { 0: '' };\n\n constructor(\n @Inject('PARTNER_ID') private readonly partnerId$: Observable,\n @Inject(VIEWING_ARCHIVED$$) private readonly viewingArchived$$: BehaviorSubject,\n @Inject(SELECTED_OBJECT_TYPE$$) private readonly selectedObjectType$$: BehaviorSubject,\n private readonly schemaService: SchemaService,\n private readonly vaFilteredMatTableService: VaFilteredMatTableService,\n ) {}\n\n reload(): void {\n // There's no reload() in the table library, just reset its paging:\n // https://vendasta.slack.com/archives/C0QB93DN0/p1599606306086700\n this.vaFilteredMatTableService.resetPaging();\n }\n\n load(request: LoadRequest): Observable {\n const { pageIndex, pageSize } = request;\n if (pageIndex === 0) {\n this.cursors = { 0: '' };\n }\n const nextCursor = this.cursors[request.pageIndex] || '';\n return this.partnerId$.pipe(\n tap(() => this.loading$$.next(true)),\n withLatestFrom(this.selectedObjectType$$),\n switchMap(([pid, objectType]) =>\n this.schemaService.listFieldSchemas(objectType, pid, this.viewingArchived$$.value, nextCursor, pageSize),\n ),\n take(1),\n tap((response) => {\n if (response?.pagingMetadata) {\n this.cursors[request.pageIndex + 1] = response.pagingMetadata?.nextCursor;\n }\n }),\n map((retVal) => {\n const fields: AuxiliaryDataFieldInterface[] = [];\n retVal?.fieldSchemas?.forEach((field) => {\n let typeString = '';\n switch (field.fieldType) {\n case AuxiliaryDataFieldType.AUXILIARY_DATA_FIELD_TYPE_STRING:\n typeString = 'COMMON.AUXILIARY_DATA.TYPES.STRING';\n break;\n case AuxiliaryDataFieldType.AUXILIARY_DATA_FIELD_TYPE_INTEGER:\n typeString = 'COMMON.AUXILIARY_DATA.TYPES.INTEGER';\n break;\n case AuxiliaryDataFieldType.AUXILIARY_DATA_FIELD_TYPE_DATE:\n typeString = 'COMMON.AUXILIARY_DATA.TYPES.DATE';\n break;\n case AuxiliaryDataFieldType.AUXILIARY_DATA_FIELD_TYPE_DROPDOWN:\n typeString = 'COMMON.AUXILIARY_DATA.TYPES.DROPDOWN';\n break;\n case AuxiliaryDataFieldType.AUXILIARY_DATA_FIELD_TYPE_CURRENCY:\n typeString = 'COMMON.AUXILIARY_DATA.TYPES.CURRENCY';\n break;\n default:\n console.warn(`unknown field type for field ${field.fieldId}: `, field.fieldType);\n break;\n }\n fields.push({\n id: field.fieldId,\n name: field.fieldName,\n description: field.fieldDescription,\n type: typeString,\n archived: !!field.archived,\n externalId: field.externalId,\n });\n });\n return fields;\n }),\n tap(() => this.loading$$.next(false)),\n );\n }\n}\n\nexport interface AuxiliaryDataFieldInterface {\n id: string;\n name: string;\n description: string;\n type: string;\n archived: boolean;\n externalId: string;\n}\n","import { Component, HostListener, Inject, Input, OnDestroy, OnInit, TemplateRef, ViewChild } from '@angular/core';\n// eslint-disable-next-line @nx/enforce-module-boundaries\nimport { ObjectType } from '@vendasta/auxiliary-data-components';\nimport { ProductAnalyticsService } from '@vendasta/product-analytics';\nimport { BehaviorSubject, combineLatest, Observable, Subject, of } from 'rxjs';\nimport { filter, map, startWith, takeUntil, tap, withLatestFrom } from 'rxjs/operators';\nimport { ComponentCanDeactivate } from './pending-changes-guard.service';\nimport { AuxiliaryDataPanelComponent } from './auxiliary-data-panel/auxiliary-data-panel.component';\nimport { AuxiliaryDataFieldInterface, AuxiliaryDataTableService } from './auxiliary-data-table.service';\nimport { FieldSelectedForEditService } from './columns/field-selected-for-edit.service';\nimport { ObjectTypeOption, objectTypeOptions as _objectTypeOptions } from './object-type-options';\nimport { SELECTED_OBJECT_TYPE$$, VIEWING_ARCHIVED$$ } from './tokens';\nimport { AuxDrawerComponent } from './side-panel';\nimport { TranslateService } from '@ngx-translate/core';\n\n@Component({\n selector: 'aux-auxiliary-data-page',\n templateUrl: './auxiliary-data-page.component.html',\n styleUrls: ['./auxiliary-data-page.component.scss'],\n standalone: false,\n})\nexport class AuxiliaryDataPageComponent extends ComponentCanDeactivate implements OnInit, OnDestroy {\n @ViewChild('fieldEditorPanel', { static: true }) fieldEditorPanel: TemplateRef;\n @ViewChild('auxiliaryDataPanelComponent', { static: false }) panelComponent: AuxiliaryDataPanelComponent;\n @ViewChild('drawer', { static: false }) drawer?: AuxDrawerComponent;\n\n @Input() set objectType(value: ObjectType) {\n this.selectObjectType(value);\n }\n\n creatingNewField$$: BehaviorSubject = new BehaviorSubject(false);\n objectTypeOptions: ObjectTypeOption[] = _objectTypeOptions;\n private rowClicked$$ = new Subject();\n private destroyed$$ = new Subject();\n\n activeTabIndex$: Observable;\n showCreateFieldButton$: Observable = combineLatest([\n this.tableService.loading$$,\n this.tableService.totalResults$,\n ]).pipe(\n map(([loading, total]) => {\n return !loading && total > 0;\n }),\n startWith(false),\n );\n\n constructor(\n @Inject(VIEWING_ARCHIVED$$) readonly viewingArchived$$: BehaviorSubject,\n @Inject(SELECTED_OBJECT_TYPE$$) readonly objectType$$: BehaviorSubject,\n private readonly fieldSelectedForEditService: FieldSelectedForEditService,\n private readonly trackingService: ProductAnalyticsService,\n readonly tableService: AuxiliaryDataTableService,\n private readonly translateService: TranslateService,\n ) {\n super();\n }\n\n ngOnInit(): void {\n this.fieldSelectedForEditService.editClicked$\n .pipe(\n takeUntil(this.destroyed$$),\n tap(() => this.creatingNewField$$.next(false)),\n tap(() => this.openEditDrawer()),\n tap(() =>\n this.trackingService.trackEvent(\n 'CustomFields:open-edit-custom-field-panel',\n 'CustomFields',\n 'open-edit-custom-field-panel',\n 0,\n {\n objectType: this.objectType$$.value,\n },\n ),\n ),\n )\n .subscribe();\n\n this.rowClicked$$\n .asObservable()\n .pipe(\n takeUntil(this.destroyed$$),\n withLatestFrom(of(this.drawer?.drawerContentRef)),\n // only contunue if the side panel is closed to not mess with the information on the opened panel\n filter(([_, currentTemplate]) => !currentTemplate),\n map(([fieldId, _]) => fieldId),\n tap((fieldId) => this.fieldSelectedForEditService.editClickedForField(fieldId)),\n )\n .subscribe();\n this.activeTabIndex$ = this.viewingArchived$$.pipe(map((isViewArchived) => (isViewArchived ? 1 : 0)));\n }\n\n openEditDrawer() {\n if (this.drawer && this.fieldEditorPanel) {\n this.drawer.open(this.fieldEditorPanel, this.translateService.instant('COMMON.AUXILIARY_DATA.EDIT_HEADER'));\n }\n }\n openCreateDrawer() {\n if (this.drawer && this.fieldEditorPanel) {\n this.drawer.open(this.fieldEditorPanel, this.translateService.instant('COMMON.AUXILIARY_DATA.CREATE_HEADER'));\n }\n }\n\n ngOnDestroy(): void {\n this.destroyed$$.next();\n }\n\n selectObjectType(type: ObjectType): void {\n this.objectType$$.next(type);\n\n this.trackingService.trackEvent('CustomFields:select-object-type', 'CustomFields', 'select-object-type', 0, {\n objectType: type,\n });\n this.tableService.reload();\n }\n\n archivedOrNotChange(event: { index: number }): void {\n switch (event.index) {\n case 1:\n this.viewingArchived$$.next(true);\n break;\n default:\n this.viewingArchived$$.next(false);\n }\n this.tableService.reload();\n }\n\n createNew(): void {\n this.creatingNewField$$.next(true);\n this.fieldSelectedForEditService.editClickedForField(null);\n this.openCreateDrawer();\n this.trackingService.trackEvent(\n 'CustomFields:open-create-custom-field-panel',\n 'CustomFields',\n 'open-create-custom-field-panel',\n 0,\n {\n objectType: this.objectType$$.value,\n },\n );\n }\n\n rowClicked(row: AuxiliaryDataFieldInterface): void {\n if (row?.id && !row?.archived) {\n this.rowClicked$$.next(row.id);\n }\n }\n\n canDeactivate(): boolean {\n if (!this.panelComponent) {\n return true;\n }\n return this.panelComponent.canDeactivate();\n }\n\n @HostListener('keyup', ['$event']) onKeyUp(event: KeyboardEvent): void {\n if (event.key === 'Escape') {\n this.panelComponent.cancel();\n }\n }\n}\n","\n
\n Create \n
\n \n \n \n \n \n
\n\n \n\n\n\n \n\n\n\n \n
\n \n
\n
 
\n
\n
\n \n {{ 'ADMINISTRATION.CUSTOM_FIELDS.EMPTY_STATE_TITLE' | translate }}\n

\n {{ 'ADMINISTRATION.CUSTOM_FIELDS.EMPTY_STATE_DESCRIPTION' | translate }}\n

\n \n \n {{ 'ADMINISTRATION.CUSTOM_FIELDS.EMPTY_STATE_LEARN_MORE' | translate }}\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 { MatFormFieldModule } from '@angular/material/form-field';\nimport { MatInputModule } from '@angular/material/input';\nimport { MatProgressSpinnerModule } from '@angular/material/progress-spinner';\nimport { MatSelectModule } from '@angular/material/select';\nimport { MatSidenavModule } from '@angular/material/sidenav';\nimport { MatTableModule } from '@angular/material/table';\nimport { MatTabsModule } from '@angular/material/tabs';\nimport { MatTooltipModule } from '@angular/material/tooltip';\nimport { TranslateModule } from '@ngx-translate/core';\n// eslint-disable-next-line @nx/enforce-module-boundaries\nimport { ObjectType } from '@vendasta/auxiliary-data-components';\nimport { GalaxyAlertModule } from '@vendasta/galaxy/alert';\nimport { GalaxyBadgeModule } from '@vendasta/galaxy/badge';\nimport { GalaxyWrapModule } from '@vendasta/galaxy/galaxy-wrap';\nimport { GalaxyPageModule } from '@vendasta/galaxy/page';\nimport {\n Filter2TableModule,\n TABLE_DEFINITION,\n VaFilteredMatTableService,\n VaTableSortService,\n} from '@vendasta/va-filter2-table';\nimport { BehaviorSubject } from 'rxjs';\nimport { AuxiliaryDataPageComponent } from './auxiliary-data-page.component';\nimport { AuxiliaryDataPanelComponentModule } from './auxiliary-data-panel/auxiliary-data-panel.component';\nimport { AuxiliaryDataTableFilterService, tableDefinitionFactory } from './auxiliary-data-table.model';\nimport { AuxiliaryDataTableService } from './auxiliary-data-table.service';\nimport { ButtonsColumnComponentModule } from './columns/buttons-column.component';\nimport { FieldSelectedForEditService } from './columns/field-selected-for-edit.service';\nimport { CurrencyChoiceComponentModule } from './field-editor/currency-choice.component';\nimport { FieldEditorComponentModule } from './field-editor/field-editor.component';\nimport { SELECTED_OBJECT_TYPE$$, VIEWING_ARCHIVED$$ } from './tokens';\nimport { GalaxyEmptyStateModule } from '@vendasta/galaxy/empty-state';\nimport { AuxDrawerComponent, SidepanelComponent } from './side-panel';\nimport en from '../../assets/en_devel.json';\nimport { LexiconModule } from '@galaxy/lexicon';\n\nconst _SELECTED_OBJECT_TYPE$$ = new BehaviorSubject('business');\n\nconst _VIEWING_ARCHIVED$$ = new BehaviorSubject(false);\n\n@NgModule({\n declarations: [AuxiliaryDataPageComponent],\n imports: [\n CommonModule,\n CurrencyChoiceComponentModule,\n FieldEditorComponentModule,\n Filter2TableModule,\n GalaxyBadgeModule,\n GalaxyPageModule,\n GalaxyWrapModule,\n MatButtonModule,\n GalaxyEmptyStateModule,\n MatFormFieldModule,\n MatInputModule,\n MatProgressSpinnerModule,\n MatSelectModule,\n MatSidenavModule,\n MatTableModule,\n MatTabsModule,\n MatTooltipModule,\n ReactiveFormsModule,\n TranslateModule,\n GalaxyAlertModule,\n ButtonsColumnComponentModule,\n AuxiliaryDataPanelComponentModule,\n SidepanelComponent,\n LexiconModule.forChild({\n componentName: 'common/auxiliary-data',\n baseTranslation: en,\n }),\n\n AuxDrawerComponent,\n ],\n providers: [\n VaFilteredMatTableService,\n VaTableSortService,\n AuxiliaryDataTableFilterService,\n {\n provide: TABLE_DEFINITION,\n useFactory: tableDefinitionFactory,\n deps: [AuxiliaryDataTableFilterService],\n },\n AuxiliaryDataTableService,\n FieldSelectedForEditService,\n {\n provide: SELECTED_OBJECT_TYPE$$,\n useValue: _SELECTED_OBJECT_TYPE$$,\n },\n {\n provide: VIEWING_ARCHIVED$$,\n useValue: _VIEWING_ARCHIVED$$,\n },\n ],\n exports: [AuxiliaryDataPageComponent],\n})\nexport class AuxiliaryDataPageModule {}\n","export * from './lib/auxiliary-data.module';\nexport * from './lib/auxiliary-data/auxiliary-data-accounts-table/auxiliary-data-accounts-table-actions.module';\nexport * from './lib/auxiliary-data/auxiliary-data-accounts-table/auxiliary-data-accounts-table-internal.component';\nexport * from './lib/auxiliary-data/auxiliary-data-accounts-table/auxiliary-data-accounts-table.component';\nexport * from './lib/auxiliary-data/auxiliary-data-accounts-table/auxiliary-data-accounts-table.data-model';\nexport * from './lib/auxiliary-data/auxiliary-data-accounts-table/auxiliary-data-accounts-table.service';\nexport * from './lib/auxiliary-data/auxiliary-data-card/auxiliary-data-card.component';\nexport * from './lib/auxiliary-data/auxiliary-data-dialog/auxiliary-data-dialog.component';\nexport * from './lib/auxiliary-data/auxiliary-data-fields/auxiliary-data-fields.component';\nexport * from './lib/auxiliary-data/auxiliary-data-panel/auxiliary-data-panel.component';\nexport * from './lib/auxiliary-data/auxiliary-data-table/auxiliary-data-table.component';\nexport {\n DropdownOption,\n FieldHandler,\n FieldHandlerValidator,\n} from './lib/auxiliary-data/auxiliary-data-table/auxiliary-data-table.interface';\nexport * from './lib/auxiliary-data/currency';\nexport * from './lib/auxiliary-data/field-data-service/field-data.service';\nexport { RendererSelectorComponent as RendererSelector } from './lib/auxiliary-data/renderer-selector.component';\nexport { chooseHandler } from './lib/auxiliary-data/renderer-utils';\nexport * from './lib/auxiliary-data/renderers';\nexport * from './lib/auxiliary-data/schema-service/schema-interface';\nexport * from './lib/auxiliary-data/schema-service/schema.service';\nexport * from './lib/auxiliary-data/auxiliary-data-fields-responsive/auxiliary-data-fields-responsive.component';\nexport * from './lib/auxiliary-data/auxiliary-datas/auxiliary-data-page.component';\nexport * from './lib/auxiliary-data/auxiliary-datas/auxiliary-data-page.module';\nexport * from './lib/auxiliary-data/auxiliary-datas/auxiliary-data-page.module';\nexport * from './lib/auxiliary-data/auxiliary-datas/columns/field-selected-for-edit.service';\nexport { AuxiliaryDataPanelComponentModule } from './lib/auxiliary-data/auxiliary-datas/auxiliary-data-panel/auxiliary-data-panel.component';\n"],"mappings":"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","names":["enumStringToValue$1","enumRef","value","enumStringToValue","CancellationRequestReason","CancellationRequestStatus","FieldMask","Contact","Business","CancellationRequest","AccountLatestSalesActivity","CreateContactRequest","CreateContactResponse","CreateRequest","DeleteContactRequest","GetAccountPrimaryContactRequest","GetAccountPrimaryContactResponse","GetContactByIDRequest","GetContactResponse","GetContactsForAccountsRequest","GetContactsForAccountsResponse","GetSalesActivityForAccountsRequest","GetSalesActivityForAccountsResponse","IsConfigValidRequest","IsConfigValidResponse","ListContactsForBusinessRequest","ListContactsForBusinessResponse","ListContactsForEmailRequest","ListContactsResponse","ListRequest","ListResponse","PagedRequestOptions","ResendUserWelcomeEmailRequest","ResendUserWelcomeEmailResponse","SearchBusinessesByContactEmailRequest","SearchRequest","SearchResponse","SetAccountPrimaryContactRequest","UpdateContactRequest","UpdateStatusRequest","environment","hostMap","HostService","BusinessApiService","CancellationRequestsApiService","ContactsApiService","CancellationRequestService","BusinessService","ContactsService","init_vendasta_sales_v2","__esmMin","init_core","init_operators","init_http","init_esm","_FieldMask","proto","m","kwargs","toReturn","_Contact","_Business","_CancellationRequest","_AccountLatestSalesActivity","_CreateContactRequest","_CreateContactResponse","_CreateRequest","_DeleteContactRequest","_GetAccountPrimaryContactRequest","_GetAccountPrimaryContactResponse","_GetContactByIDRequest","_GetContactResponse","_GetContactsForAccountsRequest","_GetContactsForAccountsResponse","_GetSalesActivityForAccountsRequest","_GetSalesActivityForAccountsResponse","_IsConfigValidRequest","_IsConfigValidResponse","_ListContactsForBusinessRequest","_ListContactsForBusinessResponse","_ListContactsForEmailRequest","_ListContactsResponse","_ListRequest","_ListResponse","_PagedRequestOptions","_ResendUserWelcomeEmailRequest","_ResendUserWelcomeEmailResponse","_SearchBusinessesByContactEmailRequest","_SearchRequest","_SearchResponse","_SetAccountPrimaryContactRequest","_UpdateContactRequest","_UpdateStatusRequest","__ngFactoryType__","ɵɵdefineInjectable","http","hostService","HttpHeaders","r","request","map","resp","__spreadProps","__spreadValues","ɵɵinject","HttpClient","svc","accountGroupId","partnerId","lineItemId","requestingUserId","reason","message","status","req","marketId","cancellationRequestId","cancellationRequestStatus","userId","partner","market","sort","direction","pageSize","catchError","err","throwError","contactEmailQuery","assignedUserId","accountId","contactId","mapTo","accountIds","b","of","partnerID","subjectID","resendRequest","response","marketID","accountIDs","getContactsRequest","accountGroupIds","contactAttributes","contact","updatedFields","updateRequest","deleteRequest","businessId","paths","listRequest","res","AccountGroupSchemaService","init_account_group_schema_service","__esmMin","constructor","schemaService","listFieldSchemas","partnerId","onlyArchived","cursor","pageSize","listAuxiliaryDataFieldSchema","pagingOptions","filters","createFieldSchema","schema","createAuxiliaryDataFieldSchema","fieldSchema","updateFieldSchema","changes","fieldMask","request","paths","updateAuxiliaryDataFieldSchema","getFieldSchema","id","getAuxiliaryDataFieldSchema","identifier","getMultiFieldSchema","ids","getMultiAuxiliaryDataFieldSchema","identifiers","archiveFieldSchema","archiveAuxiliaryDataFieldSchema","unarchiveFieldSchema","unarchiveAuxiliaryDataFieldSchema","ɵɵinject","AuxiliaryFieldSchemaApiService","factory","ɵfac","providedIn","ProductSchemaService","init_product_schema_service","__esmMin","constructor","schemaService","listFieldSchemas","partnerId","onlyArchived","cursor","pageSize","listAuxiliaryDataFieldSchema","pagingOptions","filters","createFieldSchema","schema","createAuxiliaryDataFieldSchema","fieldSchema","updateFieldSchema","changes","fieldMask","updateAuxiliaryDataFieldSchema","paths","getFieldSchema","id","getAuxiliaryDataFieldSchema","identifier","getMultiFieldSchema","ids","getMultiAuxiliaryDataFieldSchema","identifiers","archiveFieldSchema","archiveAuxiliaryDataFieldSchema","unarchiveFieldSchema","unarchiveAuxiliaryDataFieldSchema","ɵɵinject","ProductAuxiliaryFieldSchemaApiService","factory","ɵfac","providedIn","SalesOrderSchemaService","init_sales_order_schema_service","__esmMin","constructor","schemaService","listFieldSchemas","partnerId","onlyArchived","cursor","pageSize","listAuxiliaryDataFieldSchema","pagingOptions","filters","createFieldSchema","schema","createAuxiliaryDataFieldSchema","fieldSchema","updateFieldSchema","changes","fieldMask","request","paths","updateAuxiliaryDataFieldSchema","getFieldSchema","id","getAuxiliaryDataFieldSchema","identifier","getMultiFieldSchema","ids","getMultiAuxiliaryDataFieldSchema","identifiers","archiveFieldSchema","archiveAuxiliaryDataFieldSchema","unarchiveFieldSchema","unarchiveAuxiliaryDataFieldSchema","ɵɵinject","SalesOrdersAuxiliaryFieldSchemaApiService","factory","ɵfac","providedIn","TaskSchemaService","init_task_schema_service","__esmMin","constructor","schemaService","listFieldSchemas","partnerId","onlyArchived","cursor","pageSize","listAuxiliaryDataFieldSchema","pagingOptions","filters","createFieldSchema","schema","createAuxiliaryDataFieldSchema","fieldSchema","updateFieldSchema","changes","fieldMask","request","paths","updateAuxiliaryDataFieldSchema","getFieldSchema","id","getAuxiliaryDataFieldSchema","identifier","getMultiFieldSchema","ids","getMultiAuxiliaryDataFieldSchema","identifiers","archiveFieldSchema","archiveAuxiliaryDataFieldSchema","unarchiveFieldSchema","unarchiveAuxiliaryDataFieldSchema","ɵɵinject","TaskAuxiliaryFieldSchemaApiService","factory","ɵfac","providedIn","IamSchemaService","init_user_schema_service","__esmMin","constructor","schemaService","listFieldSchemas","partnerId","onlyArchived","cursor","pageSize","listUserAuxiliaryDataFieldSchema","createFieldSchema","schema","createUserAuxiliaryDataFieldSchema","updateFieldSchema","changes","fieldMask","updateUserAuxiliaryDataFieldSchema","paths","getFieldSchema","id","getUserAuxiliaryDataFieldSchema","fieldId","getMultiFieldSchema","ids","getMultiUserAuxiliaryDataFieldSchema","archiveFieldSchema","archiveUserAuxiliaryDataFieldSchema","unarchiveFieldSchema","unarchiveUserAuxiliaryDataFieldSchema","ɵɵinject","IAMService","factory","ɵfac","providedIn","ContactSchemaService","init_contact_schema_service","__esmMin","init_operators","constructor","crmFieldSchemaApiService","listFieldSchemas","partnerId","onlyArchived","cursor","pageSize","listFieldSchema","namespace","crmObjectType","filters","pagingOptions","pipe","map","resp","fieldSchemas","nextPageToken","pagingMetadata","getFieldSchema","id","getMultiFieldSchema","fieldId","fieldSchema","createFieldSchema","_","Error","updateFieldSchema","__","archiveFieldSchema","unarchiveFieldSchema","ɵɵinject","CRMFieldSchemaApiService","factory","ɵfac","providedIn","SchemaService","init_schema_service","__esmMin","constructor","accountGroupSchemaService","usersFieldSchemaService","productFieldSchemaService","salesOrderSchemaService","taskSchemaService","contactSchemaService","listFieldSchemas","objectType","partnerId","onlyArchived","cursor","pageSize","selectService","createFieldSchema","schema","updateFieldSchema","changes","fieldMask","getFieldSchema","id","getMultiFieldSchema","ids","archiveFieldSchema","unarchiveFieldSchema","Error","ɵɵinject","AccountGroupSchemaService","IamSchemaService","ProductSchemaService","SalesOrderSchemaService","TaskSchemaService","ContactSchemaService","factory","ɵfac","providedIn","AccountGroupService","init_account_group_data_service","__esmMin","init_operators","constructor","service","listData","request","listAuxiliaryData","upsertData","upsertAuxiliaryData","pipe","map","searchByAuxiliaryData","ɵɵinject","AuxiliaryFieldDataApiService","factory","ɵfac","providedIn","UserService","init_user_data_service","__esmMin","init_operators","constructor","service","listData","request","listUserAuxiliaryData","auxiliaryDataObjectId","pagingOptions","upsertData","upsertUserAuxiliaryData","fieldDataUpsertOperations","pipe","map","ɵɵinject","IAMService","factory","ɵfac","providedIn","ProductService","init_product_data_service","__esmMin","init_operators","constructor","service","listData","request","listAuxiliaryData","upsertData","upsertAuxiliaryData","pipe","map","ɵɵinject","ProductAuxiliaryFieldDataApiService","factory","ɵfac","providedIn","OrderService","init_order_data_service","__esmMin","init_operators","constructor","service","listData","request","listAuxiliaryData","salesOrderAuxiliaryDataObjectId","businessId","auxiliaryDataObjectId","objectId","split","orderId","pagingOptions","upsertData","upsertAuxiliaryData","fieldDataUpsertOperations","pipe","map","ɵɵinject","SalesOrdersAuxiliaryFieldDataApiService","factory","ɵfac","providedIn","TaskService","init_task_data_service","__esmMin","init_operators","constructor","service","listData","request","listAuxiliaryData","auxiliaryDataObjectId","partnerId","objectId","pagingOptions","upsertData","upsertAuxiliaryData","fieldDataUpsertOperations","pipe","map","ɵɵinject","TaskAuxiliaryFieldDataApiService","factory","ɵfac","providedIn","FieldDataService","init_field_data_service","__esmMin","init_esm","init_operators","constructor","accountService","userService","productService","orderService","taskService","listData","partnerId","objectType","objectId","paging","Error","request","auxiliaryDataObjectId","pagingOptions","selectService","upsertData","data","fieldDataUpsertOperations","searchByAuxiliaryData","filter","console","warn","of","hasCustomFields","auxiliaryDataObjectType","productId","cursor","pageSize","pipe","map","fields","objectSchema","JSON","parse","jsonSchema","Object","keys","properties","length","ɵɵinject","AccountGroupService","UserService","ProductService","OrderService","TaskService","factory","ɵfac","providedIn","ɵɵelementStart","ɵɵtext","ɵɵelementEnd","ɵɵadvance","ɵɵtextInterpolate1","ctx_r0","label","control","value","ɵɵtextInterpolate","ɵɵpipeBind1","validator_r2","errorMessage","ɵɵelementContainerStart","ɵɵtemplate","IntegerRendererComponent_ng_template_1_ng_container_4_glxy_error_1_Template","ɵɵproperty","hasError","errorCode","IntegerRendererComponent_ng_template_1_glxy_label_1_Template","ɵɵelement","IntegerRendererComponent_ng_template_1_ng_container_4_Template","ɵɵpipeBind2","ɵɵpureFunction1","_c0","toLowerCase","validators","IntegerFieldHandler","IntegerRendererComponent","IntegerRendererComponentModule","init_integer","__esmMin","init_forms","init_common","init_input","init_uiowa_digit_only","init_ngx_translate_core","init_form_field","constructor","fieldId","name","description","readOnly","formControl","UntypedFormControl","setValidators","map","v","validatorFn","render","viewContainerRef","clear","component","createComponent","instance","hasModification","dirty","upsertOperation","fieldDataId","deleteValue","integer","selectors","standalone","decls","vars","consts","template","rf","ctx","IntegerRendererComponent_div_0_Template","IntegerRendererComponent_ng_template_1_Template","ɵɵtemplateRefExtractor","formField_r3","CommonModule","MatInputModule","ReactiveFormsModule","DigitOnlyModule","TranslateModule","GalaxyFormFieldModule","ɵɵelementStart","ɵɵtext","ɵɵelementEnd","ɵɵadvance","ɵɵtextInterpolate1","ctx_r0","label","control","value","ɵɵtextInterpolate","ɵɵpipeBind2","ɵɵpureFunction1","_c1","length","ɵɵpipeBind1","validator_r2","errorMessage","ɵɵelementContainerStart","ɵɵtemplate","TextRendererComponent_ng_template_1_ng_container_6_glxy_error_1_Template","ɵɵproperty","hasError","errorCode","TextRendererComponent_ng_template_1_glxy_label_1_Template","ɵɵelement","TextRendererComponent_ng_template_1_glxy_hint_5_Template","TextRendererComponent_ng_template_1_ng_container_6_Template","_c0","toLowerCase","textInput_r3","focused","validators","TextFieldHandler","TextRendererComponent","TextRendererComponentModule","init_text","__esmMin","init_forms","init_common","init_input","init_ngx_translate_core","init_form_field","constructor","fieldId","name","description","readOnly","formControl","UntypedFormControl","setValidators","map","v","validatorFn","hasModification","dirty","upsertOperation","fieldDataId","deleteValue","string","render","viewContainerRef","clear","component","createComponent","instance","selectors","standalone","decls","vars","consts","template","rf","ctx","TextRendererComponent_div_0_Template","TextRendererComponent_ng_template_1_Template","ɵɵtemplateRefExtractor","formField_r4","CommonModule","MatInputModule","ReactiveFormsModule","TranslateModule","GalaxyFormFieldModule","ɵɵelementStart","ɵɵtext","ɵɵelementEnd","ɵɵadvance","ɵɵtextInterpolate1","ctx_r0","label","control","value","ɵɵpipeBind2","ɵɵtextInterpolate","ɵɵpipeBind1","validator_r2","errorMessage","ɵɵelementContainerStart","ɵɵtemplate","DateRendererComponent_ng_template_1_ng_container_7_glxy_error_1_Template","ɵɵproperty","hasError","errorCode","DateRendererComponent_ng_template_1_glxy_label_1_Template","ɵɵelement","DateRendererComponent_ng_template_1_ng_container_7_Template","datepicker_r3","ɵɵpureFunction1","_c0","toLowerCase","validators","DateFieldHandler","MY_FORMATS","DateRendererComponent","DateRendererComponentModule","init_date","__esmMin","init_forms","init_core","init_material_moment_adapter","init_common","init_datepicker","init_ngx_translate_core","init_form_field","constructor","fieldId","name","description","readOnly","formControl","UntypedFormControl","setValidators","map","v","validatorFn","render","viewContainerRef","clear","component","createComponent","instance","hasModification","dirty","upsertOperation","fieldDataId","deleteValue","date","parse","dateInput","display","monthYearLabel","dateA11yLabel","monthYearA11yLabel","selectors","standalone","features","ɵɵProvidersFeature","provide","DateAdapter","useClass","MomentDateAdapter","MAT_DATE_FORMATS","useValue","decls","vars","consts","template","rf","ctx","DateRendererComponent_div_0_Template","DateRendererComponent_ng_template_1_Template","ɵɵtemplateRefExtractor","formField_r4","CommonModule","ReactiveFormsModule","MatDatepickerModule","TranslateModule","GalaxyFormFieldModule","ɵɵelementStart","ɵɵtext","ɵɵelementEnd","ɵɵadvance","ɵɵtextInterpolate1","ctx_r0","label","dropdownOptionMap","get","control","value","ɵɵtextInterpolate","ɵɵproperty","dropdownOption_r3","ɵɵpipeBind1","validator_r4","errorMessage","ɵɵelementContainerStart","ɵɵtemplate","DropdownRendererComponent_ng_template_1_ng_container_6_glxy_error_1_Template","hasError","errorCode","DropdownRendererComponent_ng_template_1_glxy_label_1_Template","ɵɵtwoWayListener","$event","ɵɵrestoreView","_r2","ɵɵnextContext","i0","ɵɵtwoWayBindingSet","ɵɵresetView","DropdownRendererComponent_ng_template_1_mat_option_5_Template","DropdownRendererComponent_ng_template_1_ng_container_6_Template","ɵɵtwoWayProperty","dropdownOptions","validators","DropdownFieldHandler","DropdownRendererComponent","DropdownRenderComponentModule","init_dropdown","__esmMin","init_forms","init_common","init_select","init_ngx_translate_core","init_form_field","constructor","fieldId","name","readOnly","formControl","UntypedFormControl","setValidators","map","v","validatorFn","render","viewContainerRef","clear","component","createComponent","instance","hasModification","dirty","upsertOperation","fieldDataId","dropdownValue","Map","ngOnInit","currentValue","d","includes","invalidOption","push","forEach","set","setInvalidOptionValidator","invalidOptionValidator","invalid","addValidators","selectors","standalone","decls","vars","consts","template","rf","ctx","DropdownRendererComponent_div_0_Template","DropdownRendererComponent_ng_template_1_Template","ɵɵtemplateRefExtractor","formField_r5","CommonModule","MatSelectModule","ReactiveFormsModule","TranslateModule","GalaxyFormFieldModule","calculateCurrencyDisplay","event","str","target","value","replace","num","parseInt","key","isNaN","maxValue","minValue","init_currency","__esmMin","ɵɵelementStart","ɵɵtext","ɵɵelementEnd","ɵɵadvance","ɵɵtextInterpolate1","ctx_r0","label","readOnlyDisplay","ɵɵpipeBind1","validator_r3","errorMessage","ɵɵelementContainerStart","ɵɵtemplate","CurrencyRendererComponent_ng_template_1_ng_container_5_glxy_error_1_Template","ɵɵproperty","control","hasError","errorCode","ɵɵlistener","$event","ɵɵrestoreView","_r2","ɵɵnextContext","ɵɵresetView","key","CurrencyRendererComponent_ng_template_1_ng_container_5_Template","currencyCode","ɵɵpipeBind2","ɵɵpureFunction1","_c1","toLowerCase","validators","apiToGalaxy","noDecimalsJustPennies","import_autonumeric","CurrencyFieldHandler","CurrencyRendererComponent","CurrencyRendererComponentModule","init_currency","__esmMin","init_common","init_forms","init_input","init_ngx_translate_core","init_form_field","constructor","fieldId","name","value","readOnly","formControl","UntypedFormControl","parseInt","setValidators","map","v","validatorFn","render","viewContainerRef","clear","component","createComponent","instance","hasModification","dirty","upsertOperation","fieldDataId","deleteValue","currencyValue","maxValue","minValue","ngAfterViewInit","num","setInput","ngAfterContentInit","getReadOnlyDisplayName","event","calculateCurrencyDisplay","input","nativeElement","toFixed","setValue","markAsDirty","Number","isNaN","displayValue","formattedPrice","AutoNumeric","format","maximumValue","toString","minimumValue","selectors","viewQuery","rf","ctx","CurrencyRendererComponent_div_0_Template","CurrencyRendererComponent_ng_template_1_Template","ɵɵtemplateRefExtractor","formField_r4","CommonModule","GalaxyFormFieldModule","MatInputModule","ReactiveFormsModule","TranslateModule","init_renderers","__esmMin","init_integer","init_text","init_date","init_dropdown","init_currency","NotYetSupportedHandler","NotYetSupportedComponent","init_not_yet_supported","__esmMin","init_forms","constructor","formControl","UntypedFormControl","setValidators","notYetSupported","render","viewContainerRef","clear","createComponent","upsertOperation","Error","hasModification","selectors","standalone","decls","vars","consts","template","rf","ctx","ɵɵelementStart","ɵɵtext","ɵɵelementEnd","ɵɵadvance","ɵɵtextInterpolate1","ɵɵpipeBind1","chooseHandler","fieldId","fieldSchema","fieldData","showLabel","validators","readOnly","type","format","label","title","TextFieldHandler","description","IntegerFieldHandler","DateFieldHandler","DropdownFieldHandler","dropdownOptions","CurrencyFieldHandler","currencyCode","console","warn","NotYetSupportedHandler","init_renderer_utils","__esmMin","init_renderers","init_not_yet_supported","LoadingStatus","SavingStatus","CUSTOM_READ_ONLY_FIELDS","AuxiliaryFieldHandlerService","init_auxiliary_field_handler_service","__esmMin","init_esm","init_operators","init_renderer_utils","constructor","fieldDataService","schemaService","loadingStatus$$","ReplaySubject","loadingStatus$","asObservable","savingStatus$$","savingStatus$","init","partnerId","objectType","objectId","showLabel","readOnly","fieldHandlers$","buildFieldData$","pipe","map","handlers","filter","h","listData$","listData","pageSize","listSchemas$","listFieldSchemas","next","LOADING","combineLatest","take","catchError","err","ERROR","fullData","response","objectSchema","JSON","parse","jsonSchema","objectData","jsonData","fieldSchemas","fieldSchema","chooseHandler","fieldId","properties","includes","tap","length","OK","EMPTY","shareReplay","refCount","bufferSize","saveChanges","of","SAVING","switchMap","fieldHandlers","handler","hasModification","upsertOperation","fieldDataUpsertOperations","upsertData","ɵɵinject","FieldDataService","SchemaService","factory","ɵfac","RendererSelectorComponent","init_renderer_selector_component","__esmMin","constructor","viewContainerRef","ngOnInit","handler","render","ngOnChanges","ɵɵdirectiveInject","ViewContainerRef","selectors","inputs","standalone","features","ɵɵNgOnChangesFeature","decls","vars","template","rf","ctx","ɵɵelementContainer","ɵɵelementStart","ɵɵtext","ɵɵelementEnd","ɵɵadvance","ɵɵtextInterpolate1","ɵɵpipeBind1","ɵɵlistener","ɵɵrestoreView","_r1","tooltip_r2","ɵɵreference","ɵɵresetView","toggle","ɵɵproperty","handler_r3","description","ɵɵtemplate","AuxiliaryDataTableComponent_ng_container_0_mat_card_1_mat_cell_4_mat_icon_2_Template","name","ɵɵelement","handler_r4","ctx_r4","auxiliaryDataAdminURL","ɵɵsanitizeUrl","AuxiliaryDataTableComponent_ng_container_0_mat_card_1_mat_header_cell_9_a_1_Template","disableManage","ɵɵelementContainerStart","AuxiliaryDataTableComponent_ng_container_0_mat_card_1_mat_header_cell_3_Template","AuxiliaryDataTableComponent_ng_container_0_mat_card_1_mat_cell_4_Template","AuxiliaryDataTableComponent_ng_container_0_mat_card_1_mat_header_cell_6_Template","AuxiliaryDataTableComponent_ng_container_0_mat_card_1_mat_cell_7_Template","AuxiliaryDataTableComponent_ng_container_0_mat_card_1_mat_header_cell_9_Template","AuxiliaryDataTableComponent_ng_container_0_mat_card_1_mat_cell_10_Template","AuxiliaryDataTableComponent_ng_container_0_mat_card_1_mat_header_row_11_Template","AuxiliaryDataTableComponent_ng_container_0_mat_card_1_mat_row_12_Template","fieldHandlers_r6","trackByFn","Columns","Name","Value","Action","displayedColumns","AuxiliaryDataTableComponent_ng_container_0_mat_card_1_Template","loadingStatus$","LoadingStatus","OK","AuxiliaryDataTableComponent_glxy_empty_state_4_a_11_Template","ɵɵtextInterpolate","AuxiliaryDataTableComponent","init_auxiliary_data_table_component","__esmMin","init_operators","init_forms","init_auxiliary_field_handler_service","constructor","auxiliaryDataService","partnerId","objectId","formGroup","UntypedFormGroup","savingStatus$","ngOnInit","init","objectType","dataSource$","fieldHandlers$","pipe","tap","handlers","forEach","handler","setControl","fieldId","formControl","saveChanges","_","item","hasChanges","dirty","ɵɵdirectiveInject","AuxiliaryFieldHandlerService","selectors","inputs","standalone","decls","vars","consts","template","rf","ctx","AuxiliaryDataTableComponent_ng_container_0_Template","AuxiliaryDataTableComponent_ng_container_2_Template","AuxiliaryDataTableComponent_glxy_empty_state_4_Template","AuxiliaryDataTableComponent_glxy_empty_state_6_Template","LOADING","EMPTY","ERROR","en_devel_default","init_en_devel","__esmMin","init_auxiliary_data_card_component","__esmMin","init_auxiliary_data_panel_component","__esmMin","AuxiliaryDataModule","init_auxiliary_data_module","__esmMin","init_common","init_forms","init_button","init_card","init_datepicker","init_expansion","init_form_field","init_icon","init_input","init_progress_spinner","init_sort","init_table","init_tooltip","init_src","init_ngx_translate_core","init_button_loading_indicator","init_empty_state","init_galaxy_wrap","init_page","init_en_devel","init_auxiliary_field_handler_service","init_renderers","AuxiliaryFieldHandlerService","imports","CommonModule","ReactiveFormsModule","VaFormsModule","MatButtonModule","MatCardModule","MatIconModule","MatFormFieldModule","MatInputModule","MatTableModule","MatSortModule","MatDatepickerModule","MatTooltipModule","MatProgressSpinnerModule","VaTableModule","TranslateModule","GalaxyButtonLoadingIndicatorModule","LexiconModule","forChild","componentName","baseTranslation","en","GalaxyPageModule","GalaxyEmptyStateModule","MatExpansionModule","GalaxyWrapModule","DropdownRenderComponentModule","CurrencyRendererComponentModule","DateRendererComponentModule","IntegerRendererComponentModule","TextRendererComponentModule","init_auxiliary_data_accounts_table_service","__esmMin","init_auxiliary_data_accounts_table_data_model","__esmMin","AuxDataAccountsActionInjectionToken","init_auxiliary_data_accounts_table_actions_module","__esmMin","init_core","InjectionToken","init_auxiliary_data_accounts_table_internal_component","__esmMin","init_auxiliary_data_accounts_table_component","__esmMin","init_auxiliary_data_dialog_component","__esmMin","init_auxiliary_data_fields_component","__esmMin","UpdateSchemaFieldMaskOptions","init_schema_interface","__esmMin","init_auxiliary_data_fields_responsive_component","__esmMin","displayPendingChangesDialog","confirm","ComponentCanDeactivate","init_pending_changes_guard_service","__esmMin","unloadNotification","$event","canDeactivate","returnValue","pendingChangesDialog","hostBindings","rf","ctx","ɵɵlistener","ɵɵresolveWindow","DynamicOpenCloseTemplateRefService","init_dynamic_open_close_template_ref_service","__esmMin","init_esm","init_operators","init_pending_changes_guard_service","constructor","templateMap","Map","openTemplate$$","BehaviorSubject","hasPendingChanges$$","openTemplate$","pipe","map","t","templateRef","get","id","publishReplay","refCount","open$","a","updatePendingChanges","hasChanges","next","close","discardChanges","getValue","displayPendingChangesDialog","registerTemplate","template","set","open","window","setTimeout","toggle","factory","ɵfac","providedIn","FieldSelectedForEditService","init_field_selected_for_edit_service","__esmMin","init_esm","init_operators","constructor","selectedFieldId$$","BehaviorSubject","selectedFieldId$","asObservable","pipe","filter","id","editClicked$","map","createClicked$","skip","fieldCreated$$","Subject","createNewFieldClicked","next","editClickedForField","fieldId","factory","ɵfac","providedIn","objectTypeOptions","init_object_type_options","__esmMin","labelKey","value","ɵɵelementStart","ɵɵtext","ɵɵelementEnd","ɵɵadvance","ɵɵtextInterpolate1","currency_r1","symbol","ɵɵtemplate","CurrencyChoiceComponent_mat_option_5_span_2_Template","ɵɵproperty","code","CurrencyChoiceComponent","init_currency_choice_component","__esmMin","init_esm","constructor","AllowedCurrencyCodes","destroyed$$","Subject","ngOnDestroy","next","onBlur","isOpen","currencyFormControl","updateValueAndValidity","selectors","inputs","standalone","decls","vars","consts","template","rf","ctx","ɵɵlistener","$event","CurrencyChoiceComponent_mat_option_5_Template","ɵɵtextInterpolate","ɵɵpipeBind1","ɵɵelementStart","ɵɵtext","ɵɵelementEnd","ɵɵadvance","ɵɵtextInterpolate1","ɵɵpipeBind1","ExternalIdComponent","init_external_id_component","__esmMin","init_forms","init_popover","init_esm","init_operators","constructor","partnerId$","trackingService","changeDetector","schemaService","PopoverPositions","isExternalIdPopoverVisible","isSmallPopoverVisible","isExternalIdSet","externalIdNewValue","UntypedFormControl","Validators","pattern","destroy$","Subject","isCheckingDuplicate","ngOnInit","editExternalIdText","createNewField","externalIdFormControl","valueChanges","pipe","takeUntil","filter","_","tap","value","setValue","subscribe","externalIDSearch$","debounceTime","combineLatest","switchMap","pid","externalIdGet","getMultiFieldSchema","objectType","partnerId","externalId","resp","fieldSchemas","some","fieldSchema","fieldId","setErrors","duplicate","detectChanges","ngOnChanges","changes","name","currentValue","sanitizedId","sanitizeName","isDuplicateExternalId$","of","setExternalId","trackEvent","cancelExternalId","showExternalIdPopover","showSmallPopover","hideSmallPopover","toLowerCase","trim","replace","ngOnDestroy","next","unsubscribe","ɵɵdirectiveInject","ProductAnalyticsService","ChangeDetectorRef","SchemaService","selectors","inputs","standalone","features","ɵɵNgOnChangesFeature","decls","vars","consts","template","rf","ctx","ɵɵelementContainerStart","ɵɵtemplate","ExternalIdComponent_div_1_Template","ɵɵlistener","i0","ɵɵrestoreView","_r1","ɵɵresetView","updateValueAndValidity","ExternalIdComponent_mat_error_20_Template","ExternalIdComponent_mat_error_21_Template","ɵɵproperty","smallPopover_r3","externalIdPopover_r2","ɵɵpureFunction1","_c0","BottomRight","hasError","pristine","invalid","ɵɵelementStart","ɵɵtext","ɵɵelementEnd","ɵɵadvance","ɵɵtextInterpolate1","ɵɵpipeBind1","ɵɵproperty","option_r4","value","labelKey","ɵɵlistener","$event","ɵɵrestoreView","_r2","ctx_r2","ɵɵnextContext","ɵɵresetView","selectObjectType","ɵɵtemplate","FieldEditorComponent_glxy_form_field_4_mat_option_8_Template","ɵɵpropertyInterpolate","objectType","createNewField","objectTypeOptions","typeOption_r5","label","ɵɵelement","selectedCurrency","element_r6","controls","element_r7","_r8","addDropdownOption","addDropdownDisabled$","i_r10","_r9","index","removeDropdownOption","removeDropdownDisabled$","ɵɵelementContainerStart","FieldEditorComponent_table_36_th_2_Template","FieldEditorComponent_table_36_td_3_Template","FieldEditorComponent_table_36_th_5_Template","FieldEditorComponent_table_36_td_6_Template","FieldEditorComponent_table_36_th_8_Template","FieldEditorComponent_table_36_td_9_Template","FieldEditorComponent_table_36_tr_10_Template","FieldEditorComponent_table_36_tr_11_Template","dropdownTableRows$$","dropdownTableColumns","FieldEditorComponent","init_field_editor_component","__esmMin","init_core","init_forms","init_vendasta_account_group","init_src","init_esm","init_operators","init_object_type_options","canCreateNewField","createNewField$$","next","constructor","partnerId$","schemaService","selectedFieldService","dynamicOpenCloseService","snackbarService","translateService","trackingService","BehaviorSubject","showObjectTypeControl","changesCompleted","EventEmitter","pendingChanges","savingChanges","saveDisabled","name","UntypedFormControl","Validators","required","description","selectedType","externalId","_objectTypeOptions","typeOptions","AuxiliaryDataFieldType","AUXILIARY_DATA_FIELD_TYPE_STRING","AUXILIARY_DATA_FIELD_TYPE_INTEGER","AUXILIARY_DATA_FIELD_TYPE_DATE","AUXILIARY_DATA_FIELD_TYPE_DROPDOWN","AUXILIARY_DATA_FIELD_TYPE_CURRENCY","validTypeOptions$","pipe","map","filter","o","initialObjectType","showDropdownOptions$","valueChanges","startWith","dropdownOptions","UntypedFormArray","typeIsCurrency$","destroyed$$","Subject","dropdownOptionsLimit","ngOnInit","setValue","emitEvent","selectedFieldId$","selectedField$","combineLatest","switchMap","partnerId","fieldId","getFieldSchema","res","fieldSchema","shareReplay","bufferSize","refCount","take","tap","field","fieldName","fieldDescription","fieldType","clear","length","forEach","option","currencyCode","subscribe","takeUntil","resetDropdownOptions","dropdowns","emitSavingDisabled","syncDropdownsToTableRows","emitPendingChanges","ngOnDestroy","selectType","type","trackEvent","save","createNew","updateExisting","updateValueAndValidity","push","getDropdownFormGroup","UntypedFormGroup","i","removeAt","options","distinctUntilChanged","rows","newField","emit","schema","createFieldSchema","catchError","err","errorSnack","instant","console","error","EMPTY","successSnack","updatePendingChanges","close","fieldCreated$$","complete","changes","fieldMask","UpdateSchemaFieldMaskOptions","updateFieldSchema","updateFieldSchemaResponse","response","cancel","posthogEventProperties","asObservable","undefined","saving","typeIsDropdown","typeIsCurrency","invalid","dirty","p","ɵɵdirectiveInject","SchemaService","FieldSelectedForEditService","DynamicOpenCloseTemplateRefService","SnackbarService","TranslateService","ProductAnalyticsService","selectors","inputs","outputs","standalone","decls","vars","consts","template","rf","ctx","FieldEditorComponent_div_2_Template","FieldEditorComponent_glxy_form_field_4_Template","i0","_r1","FieldEditorComponent_mat_option_32_Template","FieldEditorComponent_aux_currency_choice_34_Template","FieldEditorComponent_table_36_Template","ɵɵtextInterpolate","ɵɵpureFunction1","_c0","nameInput_r11","focused","ɵɵpipeBind2","_c1","descriptionInput_r12","NgClass","NgForOf","NgIf","CurrencyChoiceComponent","ExternalIdComponent","GalaxyWrapComponent","MatButton","MatIcon","MatInput","MatSelect","MatOption","MatTable","MatHeaderCellDef","MatHeaderRowDef","MatColumnDef","MatCellDef","MatRowDef","MatHeaderCell","MatCell","MatHeaderRow","MatRow","MatTooltip","DefaultValueAccessor","NgControlStatus","MaxLengthValidator","FormControlDirective","AlertComponent","FormFieldComponent","LabelDirective","HintDirective","AsyncPipe","TranslatePipe","AuxDrawerComponent","init_drawer_component","__esmMin","init_core","init_common","init_sidenav","init_toolbar","init_icon","init_button","constructor","title","drawerContentRef","value","_drawerContentRef","close","clear","drawer","open","content","createEmbeddedView","selectors","viewQuery","rf","ctx","ViewContainerRef","ɵɵelementStart","ɵɵtext","ɵɵelementEnd","ɵɵlistener","i0","ɵɵrestoreView","_r1","ɵɵresetView","ɵɵelementContainer","ɵɵprojection","ɵɵproperty","ɵɵadvance","ɵɵtextInterpolate","CommonModule","MatButtonModule","MatIconButton","MatIconModule","MatIcon","MatSidenavModule","MatDrawer","MatDrawerContainer","MatDrawerContent","MatToolbarModule","MatToolbar","MatToolbarRow","styles","ɵɵelementStart","ɵɵtext","ɵɵelementEnd","ɵɵadvance","ɵɵtextInterpolate1","ɵɵpipeBind1","ɵɵlistener","ɵɵrestoreView","_r2","ctx_r2","ɵɵnextContext","ɵɵresetView","save","ɵɵproperty","reachedCreationLimit$","observed_r4","saveDisabled","ɵɵelement","ɵɵelementContainerStart","ɵɵtemplate","AuxiliaryDataPanelComponent_ng_container_7_button_1_Template","AuxiliaryDataPanelComponent_ng_container_7_span_3_Template","savingChanges$$","AuxiliaryDataPanelComponent","init_auxiliary_data_panel_component","__esmMin","init_core","init_esm","init_operators","init_object_type_options","constructor","createNewField","objectType","showObjectTypeControl","objectTypeSelected","EventEmitter","objectTypeOptions","_objectTypeOptions","pendingChanges$$","BehaviorSubject","savingDisabled$$","creatingNewField$$","createEditTitle$","pipe","map","creatingNew","drawer","drawerRef","ngOnChanges","next","selectObjectType","type","fieldEditor","cancel","close","disabled","pendingChanges","pending","savingChanges","saving","canDeactivate","value","selectors","viewQuery","rf","ctx","AuxiliaryDataPanelComponent_div_1_Template","$event","i0","_r1","AuxiliaryDataPanelComponent_ng_container_7_Template","ɵɵpureFunction1","_c1","NgIf","MatProgressSpinner","FieldEditorComponent","AlertComponent","MatButton","AsyncPipe","TranslatePipe","SELECTED_OBJECT_TYPE$$","VIEWING_ARCHIVED$$","init_tokens","__esmMin","init_core","InjectionToken","AuxiliaryDataTableService","init_auxiliary_data_table_service","__esmMin","init_vendasta_account_group","init_esm","init_operators","init_tokens","constructor","partnerId$","viewingArchived$$","selectedObjectType$$","schemaService","vaFilteredMatTableService","loading$$","BehaviorSubject","totalResults$","combineLatest","pipe","filter","loading","switchMap","pid","objectType","listFieldSchemas","value","map","resp","fieldSchemas","length","shareReplay","bufferSize","refCount","cursors","reload","resetPaging","load","request","pageIndex","pageSize","nextCursor","tap","next","withLatestFrom","take","response","pagingMetadata","retVal","fields","forEach","field","typeString","fieldType","AuxiliaryDataFieldType","AUXILIARY_DATA_FIELD_TYPE_STRING","AUXILIARY_DATA_FIELD_TYPE_INTEGER","AUXILIARY_DATA_FIELD_TYPE_DATE","AUXILIARY_DATA_FIELD_TYPE_DROPDOWN","AUXILIARY_DATA_FIELD_TYPE_CURRENCY","console","warn","fieldId","push","id","name","fieldName","description","fieldDescription","type","archived","externalId","ɵɵinject","VIEWING_ARCHIVED$$","SELECTED_OBJECT_TYPE$$","SchemaService","VaFilteredMatTableService","factory","ɵfac","providedIn","ɵɵtemplate","AuxiliaryDataPageComponent_11_ng_template_0_Template","ɵɵelementStart","ɵɵlistener","$event","ɵɵrestoreView","_r2","ctx_r2","ɵɵnextContext","ɵɵresetView","rowClicked","ɵɵelementEnd","ɵɵproperty","ɵɵpureFunction1","_c3","ɵɵpipeBind1","viewingArchived$$","tableService","initEmptyState_r4","_r5","selectObjectType","drawer_r6","creatingNewField$$","objectType$$","ɵɵtext","_r7","createNew","ɵɵadvance","ɵɵtextInterpolate1","ɵɵtextInterpolate","AuxiliaryDataPageComponent","init_auxiliary_data_page_component","__esmMin","init_esm","init_operators","init_pending_changes_guard_service","init_object_type_options","init_tokens","ComponentCanDeactivate","objectType","value","constructor","fieldSelectedForEditService","trackingService","translateService","BehaviorSubject","objectTypeOptions","_objectTypeOptions","rowClicked$$","Subject","destroyed$$","showCreateFieldButton$","combineLatest","loading$$","totalResults$","pipe","map","loading","total","startWith","ngOnInit","editClicked$","takeUntil","tap","next","openEditDrawer","trackEvent","subscribe","asObservable","withLatestFrom","of","drawer","drawerContentRef","filter","_","currentTemplate","fieldId","editClickedForField","activeTabIndex$","isViewArchived","fieldEditorPanel","open","instant","openCreateDrawer","ngOnDestroy","type","reload","archivedOrNotChange","event","index","row","id","archived","canDeactivate","panelComponent","onKeyUp","key","cancel","ɵɵdirectiveInject","VIEWING_ARCHIVED$$","SELECTED_OBJECT_TYPE$$","FieldSelectedForEditService","ProductAnalyticsService","AuxiliaryDataTableService","TranslateService","selectors","viewQuery","rf","ctx","i0","_r1","ɵɵelement","AuxiliaryDataPageComponent_11_Template","AuxiliaryDataPageComponent_ng_template_12_Template","ɵɵtemplateRefExtractor","AuxiliaryDataPageComponent_ng_template_14_Template","AuxiliaryDataPageComponent_ng_template_16_Template","ɵɵpropertyInterpolate","mainFieldsView_r8","_SELECTED_OBJECT_TYPE$$","_VIEWING_ARCHIVED$$","init_auxiliary_data_page_module","__esmMin","init_esm","init_auxiliary_data_page_component","init_src","BehaviorSubject","AuxiliaryDataPageComponent","NgClass","NgTemplateOutlet","VaFilteredMatTableComponent","MatAnchor","MatButton","EmptyStateComponent","EmptyStateHeroDirective","EmptyStateTitleDirective","EmptyStateActionsDirective","MatTab","MatTabGroup","AuxiliaryDataPanelComponent","AuxDrawerComponent","AsyncPipe","TranslatePipe","init_src","__esmMin","init_auxiliary_data_module","init_auxiliary_data_accounts_table_actions_module","init_auxiliary_data_accounts_table_internal_component","init_auxiliary_data_accounts_table_component","init_auxiliary_data_accounts_table_data_model","init_auxiliary_data_accounts_table_service","init_auxiliary_data_card_component","init_auxiliary_data_dialog_component","init_auxiliary_data_fields_component","init_auxiliary_data_panel_component","init_auxiliary_data_table_component","init_currency","init_field_data_service","init_renderer_utils","init_renderers","init_schema_interface","init_schema_service","init_auxiliary_data_fields_responsive_component","init_auxiliary_data_page_component","init_auxiliary_data_page_module","init_field_selected_for_edit_service"],"x_google_ignoreList":[0]}