{"version":3,"sources":["libs/galaxy/filter/chips/src/enums.ts","libs/galaxy/filter/chips/src/interface.ts","libs/galaxy/filter/chips/src/add-filter-modal/galaxy-add-filter-modal.component.ts","libs/galaxy/filter/chips/src/add-filter-modal/galaxy-add-filter-modal.component.html","libs/galaxy/filter/chips/src/custom-filter-chip.component.ts","libs/galaxy/filter/chips/src/filter-inputs/checkbox-filter-input.component.ts","libs/galaxy/filter/chips/src/filter-inputs/custom-filter-input.component.ts","libs/galaxy/filter/chips/src/filter-inputs/date-default-labels.ts","libs/galaxy/filter/chips/src/filter-inputs/date-filter-input.ts","libs/galaxy/filter/chips/src/filter-inputs/date-filter-input.html","libs/galaxy/filter/chips/src/filter-inputs/no-input.component.ts","libs/galaxy/filter/chips/src/filter-inputs/none-selected-input.component.ts","libs/galaxy/filter/chips/src/filter-inputs/radio-filter-input.component.ts","libs/galaxy/filter/chips/src/constants.ts","libs/galaxy/filter/chips/src/filter-inputs/string-filter-input.component.ts","libs/galaxy/tags/src/tags.component.ts","libs/galaxy/tags/src/tags.component.html","libs/galaxy/tags/src/tags.module.ts","libs/galaxy/tags/public_api.ts","libs/galaxy/tags/index.ts","libs/galaxy/filter/chips/src/filter-inputs/tags-filter-input.component.ts","libs/galaxy/filter/chips/src/filter-inputs/boolean-filter-input.component.ts","libs/galaxy/filter/chips/src/filter-operator-labels.ts","libs/galaxy/filter/chips/src/filter-inputs/float-filter-input.ts","libs/galaxy/filter/chips/src/filter-inputs/float-filter-input.html","libs/galaxy/filter/chips/src/edit-filter-modal/galaxy-edit-filter-modal.component.ts","libs/galaxy/filter/chips/src/edit-filter-modal/galaxy-edit-filter-modal.component.html","libs/galaxy/filter/chips/src/galaxy-filter-chips.component.ts","libs/galaxy/filter/chips/src/galaxy-filter-chips.component.html","libs/galaxy/filter/chips/src/filter-chips.module.ts","libs/galaxy/filter/chips/public_api.ts","libs/galaxy/filter/chips/index.ts","libs/crm/static/src/lib/shared-services/crm-services/field.service.ts","libs/crm/static/src/lib/shared-services/table-customization/_abstract-table-customization.service.ts","libs/crm/static/src/lib/shared-services/crm-services/crm-object-service/_contact.service.ts","libs/crm/static/src/lib/shared-services/crm-services/crm-object-service/_company.service.ts","libs/crm/static/src/lib/shared-services/crm-services/crm-object-service/_activity_object.service.ts","libs/crm/static/src/lib/shared-services/crm-services/crm-object-service/crm-object.service.ts","libs/crm/static/src/lib/shared-services/crm-services/crm-field-options.service.ts","libs/crm/static/src/lib/constants.ts","libs/crm/static/src/lib/shared-services/crm-services/activity.service.ts","libs/crm/static/src/lib/i18n/translate-by-object-type/translate-by-object-type.service.ts","libs/crm/static/src/lib/shared-services/crm-services/crm-form.service.ts","libs/crm/static/src/lib/shared-services/crm-services/crm-object-service/_abstract.service.ts","libs/crm/static/src/lib/shared-services/company-contact-cache.service.ts","libs/crm/static/src/lib/shared-services/crm-services/crm-object-service/crm-association.service.ts","libs/crm/static/src/lib/shared-services/crm-services/crm-object-service/crm-table-state.service.ts","libs/crm/static/src/lib/shared-services/crm-services/crm-object-service/index.ts","libs/crm/static/src/lib/shared-services/crm-services/index.ts","libs/crm/static/src/lib/shared-components/custom-table-cells/parent-company-name.component.ts","libs/crm/static/src/lib/shared-services/score.service.ts","libs/crm/static/src/lib/shared-components/custom-table-cells/score/score.component.ts","libs/crm/static/src/lib/shared-components/custom-table-cells/score/score.component.html","node_modules/@vendasta/platform-users/fesm2020/vendasta-platform-users.mjs","libs/crm/static/src/lib/shared-services/restricted-group.service.ts","libs/crm/static/src/lib/shared-services/table-customization/company-table-customization.service.ts","libs/crm/static/src/lib/shared-services/table-customization/index.ts","node_modules/@vendasta/crm-integrations/fesm2020/vendasta-crm-integrations.mjs","libs/crm/static/src/lib/shared-services/platform-api.service.ts","libs/crm/static/src/lib/shared-services/company-profile-cards-panel.service.ts","libs/crm/static/src/lib/shared-components/association-panel-components/edit-association-tags/edit-association-tags.component.ts","libs/crm/static/src/lib/shared-components/association-panel-components/edit-association-tags/edit-association-tags.component.html","libs/crm/static/src/lib/shared-components/association-panel-components/edit-association-dialog/edit-association-dialog.component.ts","libs/crm/static/src/lib/shared-components/association-panel-components/edit-association-dialog/edit-association-dialog.component.html","libs/crm/static/src/lib/shared-services/default-association-actions.service.ts","libs/crm/static/src/lib/shared-services/preview-object.service.ts","libs/crm/static/src/lib/shared-services/page-analytics.service.ts","libs/crm/static/src/lib/shared-services/content-injector/side-panel-content.service.ts","libs/crm/static/src/lib/shared-services/company-filters.service.ts","libs/crm/static/src/lib/utils.ts","libs/crm/static/src/lib/shared-services/activity-assignee.service.ts","libs/crm/static/src/lib/shared-services/index.ts","libs/crm/static/src/lib/shared-components/custom-table-cells/primary-company-name.component.ts","libs/crm/static/src/lib/shared-services/table-customization/contact-table-customization.service.ts","libs/crm/static/src/lib/shared-services/crm-services/crm-filters.service.ts","libs/crm/static/src/lib/tokens-and-interfaces.ts","libs/crm/static/src/lib/shared-components/custom-table-cells/task-status/task-status.component.ts","libs/crm/static/src/lib/shared-services/table-customization/task-table-customization.service.ts","libs/crm/static/src/assets/i18n/en_devel.json","libs/crm/static/src/lib/i18n/translation-module.ts","libs/crm/static/src/lib/i18n/translate-by-object-type/translate-by-object-type.pipe.ts","libs/crm/static/src/lib/i18n/index.ts","libs/crm/static/src/lib/shared-components/list-objects/delete-modal/delete-modal.component.ts","libs/crm/static/src/lib/shared-components/list-objects/delete-modal/delete-modal.component.html","libs/crm/static/src/lib/shared-components/list-objects/list-objects-table.service.ts","libs/crm/static/src/lib/shared-components/side-panel/side-panel.service.ts","libs/crm/static/src/lib/shared-components/side-panel/side-panel.component.ts","libs/crm/static/src/lib/shared-components/side-panel/side-panel.component.html","libs/crm/static/src/lib/shared-pipes/filter-visible-actions.pipe.ts","libs/crm/static/src/lib/shared-pipes/activity-effective-date.pipe.ts","libs/crm/static/src/lib/shared-pipes/is-task-overdue.pipe.ts","libs/crm/static/src/lib/shared-pipes/truncate.pipe.ts","libs/crm/static/src/lib/shared-pipes/index.ts","libs/galaxy/filter/chips/src/utils.ts","libs/crm/static/src/lib/shared-components/filter-view/filter-view.component.ts","libs/crm/static/src/lib/shared-components/filter-view/filter-view.component.html","libs/crm/static/src/lib/shared-components/filter-view/interfaces.ts","libs/crm/static/src/lib/shared-components/filter-view/index.ts","libs/crm/static/src/lib/shared-components/list-objects/list-objects-table.component.ts","libs/crm/static/src/lib/shared-components/list-objects/list-objects-table.component.html","libs/crm/static/src/lib/shared-components/list-objects/list-objects-page.component.ts","libs/crm/static/src/lib/shared-components/list-objects/directives/content.directive.ts","libs/crm/static/src/lib/shared-components/list-objects/directives/page-actions.directive.ts","libs/crm/static/src/lib/shared-components/side-panel/drawer.component.ts","libs/crm/static/src/lib/shared-components/side-panel/drawer.component.html","libs/crm/static/src/lib/shared-components/side-panel/index.ts","libs/crm/static/src/lib/shared-components/activities-timeline/activities/logger/constants.ts","node_modules/@babel/runtime/helpers/interopRequireDefault.js","node_modules/@babel/runtime/helpers/typeof.js","node_modules/date-fns/_lib/requiredArgs/index.js","node_modules/date-fns/isDate/index.js","node_modules/date-fns/toDate/index.js","node_modules/date-fns/isValid/index.js","node_modules/date-fns/_lib/toInteger/index.js","node_modules/date-fns/addMilliseconds/index.js","node_modules/date-fns/subMilliseconds/index.js","node_modules/date-fns/_lib/getUTCDayOfYear/index.js","node_modules/date-fns/_lib/startOfUTCISOWeek/index.js","node_modules/date-fns/_lib/getUTCISOWeekYear/index.js","node_modules/date-fns/_lib/startOfUTCISOWeekYear/index.js","node_modules/date-fns/_lib/getUTCISOWeek/index.js","node_modules/date-fns/_lib/defaultOptions/index.js","node_modules/date-fns/_lib/startOfUTCWeek/index.js","node_modules/date-fns/_lib/getUTCWeekYear/index.js","node_modules/date-fns/_lib/startOfUTCWeekYear/index.js","node_modules/date-fns/_lib/getUTCWeek/index.js","node_modules/date-fns/_lib/addLeadingZeros/index.js","node_modules/date-fns/_lib/format/lightFormatters/index.js","node_modules/date-fns/_lib/format/formatters/index.js","node_modules/date-fns/_lib/format/longFormatters/index.js","node_modules/date-fns/_lib/getTimezoneOffsetInMilliseconds/index.js","node_modules/date-fns/_lib/protectedTokens/index.js","node_modules/date-fns/locale/en-US/_lib/formatDistance/index.js","node_modules/date-fns/locale/_lib/buildFormatLongFn/index.js","node_modules/date-fns/locale/en-US/_lib/formatLong/index.js","node_modules/date-fns/locale/en-US/_lib/formatRelative/index.js","node_modules/date-fns/locale/_lib/buildLocalizeFn/index.js","node_modules/date-fns/locale/en-US/_lib/localize/index.js","node_modules/date-fns/locale/_lib/buildMatchFn/index.js","node_modules/date-fns/locale/_lib/buildMatchPatternFn/index.js","node_modules/date-fns/locale/en-US/_lib/match/index.js","node_modules/date-fns/locale/en-US/index.js","node_modules/date-fns/_lib/defaultLocale/index.js","node_modules/date-fns/format/index.js","node_modules/date-fns-tz/esm/_lib/tzIntlTimeZoneName/index.js","node_modules/date-fns-tz/esm/_lib/tzTokenizeDate/index.js","node_modules/date-fns-tz/esm/_lib/newDateUTC/index.js","node_modules/date-fns-tz/esm/_lib/tzParseTimezone/index.js","node_modules/date-fns-tz/esm/format/formatters/index.js","node_modules/date-fns-tz/esm/_lib/tzPattern/index.js","node_modules/date-fns-tz/esm/toDate/index.js","node_modules/date-fns-tz/esm/format/index.js","node_modules/date-fns-tz/esm/index.js","libs/crm/static/src/lib/shared-components/activities-timeline/activities/activity.interface.ts","libs/crm/static/src/lib/shared-components/activities-timeline/activities/logger/validators.ts","libs/crm/static/src/lib/shared-components/activities-timeline/activities/logger/task.component.ts","libs/crm/static/src/lib/shared-components/activities-timeline/activities/logger/task.component.html","libs/crm/static/src/lib/shared-components/activities-timeline/activities/logger/association.component.ts","libs/crm/static/src/lib/shared-components/activities-timeline/activities/logger/association.component.html","libs/crm/static/src/lib/shared-components/activities-timeline/activities/logger/association-field.component.ts","libs/crm/static/src/lib/shared-components/activities-timeline/activities/logger/contact-association.component.ts","libs/crm/static/src/lib/shared-components/activities-timeline/activities/logger/contact-association.component.html","libs/crm/static/src/lib/shared-components/activities-timeline/activities/logger/company-association.component.ts","libs/crm/static/src/lib/shared-components/activities-timeline/activities/logger/company-association.component.html","libs/crm/static/src/lib/crm-core.module.ts","libs/crm/static/src/lib/shared-components/association-panel-components/association-card/association-card.component.ts","libs/crm/static/src/lib/shared-components/association-panel-components/association-card/association-card.component.html","libs/crm/static/src/lib/shared-components/association-panel-components/association-card/tags/tags.component.ts","libs/crm/static/src/lib/shared-components/association-panel-components/association-card/tags/tags.component.html","libs/crm/static/src/lib/shared-components/association-panel-components/association-card/common-associaon-card-content/linkedin-icon.svg.ts","libs/crm/static/src/lib/shared-components/association-panel-components/association-card/common-associaon-card-content/common-association-card-content.component.ts","libs/crm/static/src/lib/shared-components/association-panel-components/association-card/common-associaon-card-content/common-association-card-content.component.html","libs/crm/static/src/lib/shared-components/association-panel-components/association-card/index.ts","node_modules/@vendasta/campaigns/fesm2020/vendasta-campaigns.mjs","libs/crm/static/src/lib/shared-components/association-panel-components/contact-campaign-association-card/add-campaign-dialog/start-campaign-dialog.component.ts","libs/crm/static/src/lib/shared-components/association-panel-components/contact-campaign-association-card/add-campaign-dialog/start-campaign-dialog.component.html","libs/crm/static/src/lib/shared-components/association-panel-components/contact-campaign-association-card/add-campaign-dialog/add-campaign-dialog.component.ts","libs/crm/static/src/lib/shared-components/association-panel-components/contact-campaign-association-card/add-campaign-dialog/add-campaign-dialog.component.html","libs/crm/static/src/lib/shared-components/select-object-type-modal/select-object-type-modal.component.ts","libs/crm/static/src/lib/shared-components/select-object-type-modal/select-object-type-modal.component.html","libs/crm/static/src/lib/shared-components/association-panel-components/remove-association-dialog/remove-association-dialog.component.ts","libs/crm/static/src/lib/shared-components/association-panel-components/remove-association-dialog/remove-association-dialog.component.html","libs/crm/static/src/lib/shared-components/association-panel-components/parent-child-company-associations-card/parent-child-company-associations-card.component.ts","libs/crm/static/src/lib/shared-components/association-panel-components/parent-child-company-associations-card/parent-child-company-associations-card.component.html","libs/crm/static/src/lib/shared-components/association-panel-components/select-associations-modal/select-associations-modal.component.ts","libs/crm/static/src/lib/shared-components/association-panel-components/select-associations-modal/select-associations-modal.component.html","libs/galaxy/contact-info-card/src/contact-info-on-hover/contact-info-on-hover.directive.ts","libs/galaxy/contact-info-card/src/contact-info-card/contact-info-card.component.ts","libs/galaxy/contact-info-card/src/contact-info-card/contact-info-card.component.html","libs/galaxy/contact-info-card/src/contact-info-card.module.ts","libs/galaxy/contact-info-card/public_api.ts","libs/galaxy/contact-info-card/index.ts","libs/crm/static/src/lib/shared-components/model-driven-form/field-validation.ts","libs/crm/static/src/lib/shared-components/model-driven-form/inline-edit.service.ts","libs/crm/static/src/lib/shared-components/model-driven-form/renderer-selector.component.ts","libs/crm/static/src/lib/shared-components/model-driven-form/renderers/model-driven-form-error/field-warning.service.ts","libs/crm/static/src/lib/shared-components/model-driven-form/validator-factory.service.ts","libs/crm/static/src/lib/shared-components/model-driven-form/renderers/model-driven-form-error/uniqueness-suggestion-card.component.ts","libs/crm/static/src/lib/shared-components/model-driven-form/renderers/model-driven-form-error/uniqueness-suggestion-card.component.html","libs/crm/static/src/lib/shared-components/model-driven-form/renderers/model-driven-form-error/model-driven-form-error.component.ts","libs/crm/static/src/lib/shared-components/model-driven-form/renderers/model-driven-form-error/model-driven-form-error.component.html","libs/crm/static/src/lib/shared-components/model-driven-form/renderers/boolean.ts","libs/crm/static/src/lib/shared-components/model-driven-form/renderers/stop-chrome-autofill.ts","libs/crm/static/src/lib/shared-components/model-driven-form/renderers/date.ts","libs/crm/static/src/lib/shared-components/model-driven-form/renderers/email_validator.ts","libs/crm/static/src/lib/shared-components/model-driven-form/renderers/integer.ts","libs/crm/static/src/lib/shared-components/model-driven-form/renderers/float/float.ts","libs/crm/static/src/lib/shared-components/model-driven-form/renderers/float/float.html","libs/crm/static/src/lib/shared-components/model-driven-form/renderers/float/float-field-handler.ts","node_modules/ngx-mat-select-search/fesm2020/ngx-mat-select-search.mjs","libs/crm/static/src/lib/shared-components/model-driven-form/renderers/model-driven-form-error/field-warning.directive.ts","libs/crm/static/src/lib/shared-components/model-driven-form/form/modes/form-button-group.component.ts","libs/crm/static/src/lib/shared-components/model-driven-form/renderers/model-driven-popover/model-driven-popover.component.ts","libs/crm/static/src/lib/shared-components/model-driven-form/renderers/model-driven-popover/model-driven-popover.component.html","libs/crm/static/src/lib/shared-components/model-driven-form/renderers/updater.service.ts","libs/crm/static/src/lib/shared-components/model-driven-form/renderers/phone/country-options.ts","libs/crm/static/src/lib/shared-components/model-driven-form/renderers/phone/country-code.service.ts","libs/crm/static/src/lib/shared-components/model-driven-form/renderers/phone/utils.ts","libs/crm/static/src/lib/shared-components/model-driven-form/renderers/phone/phone.ts","libs/crm/static/src/lib/shared-components/model-driven-form/renderers/phone/phone.html","libs/crm/static/src/lib/shared-components/model-driven-form/renderers/phone/phone-field-handler.ts","libs/crm/static/src/lib/shared-components/model-driven-form/renderers/tags.ts","libs/crm/static/src/lib/shared-components/model-driven-form/renderers/tags.html","node_modules/@angular/animations/fesm2022/browser.mjs","node_modules/@angular/platform-browser/fesm2022/animations.mjs","libs/crm/static/src/lib/shared-components/model-driven-form/renderers/text.ts","libs/crm/static/src/lib/shared-components/model-driven-form/renderers/score/score.ts","libs/crm/static/src/lib/shared-components/model-driven-form/renderers/score/score.html","libs/crm/static/src/lib/shared-components/model-driven-form/renderers/score/score-field-handler.ts","libs/crm/static/src/lib/shared-components/model-driven-form/renderers/custom.ts","libs/crm/static/src/lib/shared-components/model-driven-form/renderers/lifecycle-stage-selector/lifecycle-stage.ts","libs/crm/static/src/lib/shared-components/model-driven-form/renderers/lifecycle-stage-selector/lifecycle-stage.pipe.ts","libs/crm/static/src/lib/shared-components/model-driven-form/renderers/lifecycle-stage-selector/lifecycle-stage-pipe.module.ts","libs/crm/static/src/lib/shared-components/model-driven-form/renderers/lifecycle-stage-selector/lifecycle-stage-selector.component.ts","libs/crm/static/src/lib/shared-components/model-driven-form/renderers/lifecycle-stage-selector/lifecycle-stage-handler.ts","libs/crm/static/src/lib/shared-components/model-driven-form/renderers/email.ts","libs/crm/static/src/lib/shared-components/model-driven-form/renderers/geopoint.ts","libs/crm/static/src/lib/shared-components/model-driven-form/renderers/autocomplete.service.ts","libs/crm/static/src/lib/shared-components/model-driven-form/renderers/google-place-selector/google-place-selector.component.ts","libs/crm/static/src/lib/shared-components/model-driven-form/renderers/google-place-selector/google-place-selector.component.html","libs/crm/static/src/lib/shared-components/model-driven-form/renderer-selector.service.ts","libs/galaxy/sticky-footer/src/sticky-footer.component.ts","libs/galaxy/sticky-footer/src/sticky-footer.component.html","libs/galaxy/sticky-footer/src/sticky-footer.module.ts","libs/galaxy/sticky-footer/public_api.ts","libs/galaxy/sticky-footer/index.ts","libs/crm/static/src/lib/shared-components/model-driven-form/form/modes/base-model-driven-form.component.ts","libs/crm/static/src/lib/shared-components/model-driven-form/form/modes/form-loading-indicator.component.ts","node_modules/@angular-devkit/core/src/utils/strings.js","libs/crm/static/src/lib/shared-components/vertical-nav-tab/vertical-nav-card.component.ts","libs/crm/static/src/lib/shared-components/vertical-nav-tab/vertical-nav-tab.component.ts","libs/crm/static/src/lib/shared-components/vertical-nav-tab/vertical-nav-tab.component.html","libs/crm/static/src/lib/shared-components/vertical-nav-tab/index.ts","libs/crm/static/src/lib/shared-components/model-driven-form/form/modes/card-group-driven-form.component.ts","libs/crm/static/src/lib/shared-components/model-driven-form/form/modes/card-group-driven-form.component.html","libs/crm/static/src/lib/shared-components/model-driven-form/form/modes/panel-driven-form.component.ts","libs/crm/static/src/lib/shared-components/model-driven-form/form/modes/panel-driven-form.component.html","libs/crm/static/src/lib/shared-components/model-driven-form/form/modes/basic-field-group-form.component.ts","libs/crm/static/src/lib/shared-components/model-driven-form/form/modes/basic-field-group-form.component.html","libs/crm/static/src/lib/shared-components/model-driven-form/form/model-driven-form.component.ts","libs/crm/static/src/lib/shared-components/model-driven-form/form/model-driven-form.component.html","libs/crm/static/src/lib/shared-components/model-driven-form/index.ts","libs/crm/static/src/lib/shared-components/create-crm-object-modal/create-modal.component.ts","libs/crm/static/src/lib/shared-components/create-crm-object-modal/create-modal.component.html","libs/crm/static/src/lib/shared-components/create-crm-object-modal/create-crm-contact-modal.component.ts","libs/crm/static/src/lib/shared-components/create-crm-object-modal/index.ts","libs/crm/static/src/lib/shared-components/association-panel-components/company-to-contact-associations-card/company-to-contact-associations-card.component.ts","libs/crm/static/src/lib/shared-components/association-panel-components/company-to-contact-associations-card/company-to-contact-associations-card.component.html","libs/crm/static/src/lib/shared-components/association-panel-components/contact-to-company-associations-card/contact-to-company-associations-card.component.ts","libs/crm/static/src/lib/shared-components/association-panel-components/contact-to-company-associations-card/contact-to-company-associations-card.component.html","libs/crm/static/src/lib/shared-components/association-panel-components/index.ts","libs/crm/static/src/lib/shared-components/custom-table-cells/user/user.component.ts","libs/crm/static/src/lib/shared-components/custom-table-cells/due-date/due-date.component.ts","libs/crm/static/src/lib/shared-components/custom-table-cells/index.ts","libs/crm/static/src/lib/shared-components/list-objects/index.ts","libs/crm/static/src/lib/shared-components/collapsible-section/on-resize.directive.ts","libs/crm/static/src/lib/shared-components/collapsible-section/collapsible-section.component.ts","libs/crm/static/src/lib/shared-components/unknown-user-avatar/unknown-user-avatar.component.ts","libs/crm/static/src/lib/shared-components/activities-timeline/activities/activity-url-builder.ts","libs/crm/static/src/lib/shared-components/activities-timeline/activities/activity-communication.component.ts","libs/crm/static/src/lib/shared-components/activities-timeline/activities/activity-communication.component.html","libs/crm/static/src/lib/shared-components/chip/interfaces.ts","libs/crm/static/src/lib/shared-components/chip/chip.component.ts","libs/crm/static/src/lib/shared-components/chip/chip.component.html","libs/crm/static/src/lib/shared-components/chip-list/chip-list.component.ts","libs/crm/static/src/lib/shared-components/chip-list/chip-list.component.html","libs/crm/static/src/lib/shared-components/chip-list/index.ts","libs/crm/static/src/lib/shared-components/activities-timeline/activities/activity-logger.service.ts","libs/crm/static/src/lib/shared-components/activities-timeline/activities/logger/interfaces.ts","libs/crm/static/src/lib/shared-components/activities-timeline/activities/logger/logger-content.directive.ts","libs/crm/static/src/lib/shared-components/activities-timeline/activities/logger/call.component.ts","libs/crm/static/src/lib/shared-components/activities-timeline/activities/logger/call.component.html","libs/crm/static/src/lib/shared-components/activities-timeline/activities/logger/email.component.ts","libs/crm/static/src/lib/shared-components/activities-timeline/activities/logger/email.component.html","libs/crm/static/src/lib/shared-components/activities-timeline/activities/logger/meeting.component.ts","libs/crm/static/src/lib/shared-components/activities-timeline/activities/logger/meeting.component.html","libs/crm/static/src/lib/shared-components/activities-timeline/activities/logger/note.component.ts","libs/crm/static/src/lib/shared-components/activities-timeline/activities/logger/note.component.html","libs/crm/static/src/lib/shared-components/activities-timeline/activities/logger/team-association.component.ts","libs/crm/static/src/lib/shared-components/activities-timeline/activities/logger/team-association.component.html","libs/crm/static/src/lib/shared-components/activities-timeline/activities/logger/opportunity-association.component.ts","libs/crm/static/src/lib/shared-components/activities-timeline/activities/logger/opportunity-association.component.html","libs/crm/static/src/lib/shared-components/activities-timeline/activities/logger/tags.component.ts","libs/crm/static/src/lib/shared-components/activities-timeline/activities/logger/tags.component.html","libs/crm/static/src/lib/shared-components/activities-timeline/activities/logger/follow-up-task.component.ts","libs/crm/static/src/lib/shared-components/activities-timeline/activities/logger/follow-up-task.component.html","libs/crm/static/src/lib/shared-components/activities-timeline/activities/logger/index.ts","libs/crm/static/src/lib/shared-components/activities-timeline/activities/logger/communication.component.ts","libs/crm/static/src/lib/shared-components/activities-timeline/activities/logger/communication.component.html","libs/crm/static/src/lib/shared-components/activities-timeline/activities/activity-logger.component.ts","libs/crm/static/src/lib/shared-components/activities-timeline/activities/activity-logger.component.html","libs/crm/static/src/lib/shared-components/activities-timeline/activities/activity-template-options.directive.ts","libs/crm/static/src/lib/shared-components/activities-timeline/activities/activity-template.component.ts","libs/crm/static/src/lib/shared-components/activities-timeline/activities/activity-template.component.html","libs/crm/static/src/lib/shared-components/activities-timeline/activities/email.component.ts","libs/crm/static/src/lib/shared-components/activities-timeline/activities/email.component.html","libs/crm/static/src/lib/shared-components/activities-timeline/activities/logged-call.component.ts","libs/crm/static/src/lib/shared-components/activities-timeline/activities/logged-call.component.html","libs/crm/static/src/lib/shared-components/activities-timeline/activities/logged-communication.component.ts","libs/crm/static/src/lib/shared-components/activities-timeline/activities/logged-communication.component.html","libs/crm/static/src/lib/shared-components/activities-timeline/activities/logged-email.component.ts","libs/crm/static/src/lib/shared-components/activities-timeline/activities/logged-email.component.html","libs/crm/static/src/lib/shared-components/activities-timeline/activities/logged-meeting.component.ts","libs/crm/static/src/lib/shared-components/activities-timeline/activities/logged-meeting.component.html","libs/crm/static/src/lib/shared-components/activities-timeline/activities/logged-note.component.ts","libs/crm/static/src/lib/shared-components/activities-timeline/activities/logged-note.component.html","libs/crm/static/src/lib/shared-components/activities-timeline/activities/note.component.ts","libs/crm/static/src/lib/shared-components/activities-timeline/activities/note.component.html","node_modules/@vendasta/sales/fesm2020/vendasta-sales.mjs","libs/crm/static/src/lib/shared-components/activities-timeline/activities/record-change.component.ts","libs/crm/static/src/lib/shared-components/activities-timeline/activities/record-change.component.html","libs/crm/static/src/lib/shared-components/activities-timeline/activities/task.component.ts","libs/crm/static/src/lib/shared-components/activities-timeline/activities/task.component.html","libs/crm/static/src/lib/shared-components/activities-timeline/activities/index.ts","libs/crm/static/src/lib/shared-components/activities-timeline/timeline/timeline.service.ts","libs/crm/static/src/lib/shared-components/activities-timeline/activities/association-popover.component.ts","libs/crm/static/src/lib/shared-components/activities-timeline/activities/association-popover.component.html","libs/crm/static/src/lib/shared-components/activities-timeline/timeline/timeline-associated-object.pipe.ts","libs/crm/static/src/lib/shared-components/activities-timeline/activities/call.component.ts","libs/crm/static/src/lib/shared-components/activities-timeline/activities/call.component.html","node_modules/@vendasta/sales-opportunities/fesm2020/vendasta-sales-opportunities.mjs","libs/crm/static/src/lib/shared-components/activities-timeline/activities/opportunity-change.component.ts","libs/crm/static/src/lib/shared-components/activities-timeline/activities/opportunity-change.component.html","libs/crm/static/src/lib/shared-components/activities-timeline/timeline/timeline.component.ts","libs/crm/static/src/lib/shared-components/activities-timeline/timeline/timeline.component.html","libs/crm/static/src/lib/shared-components/activities-timeline/timeline/index.ts","libs/crm/static/src/lib/shared-components/activities-timeline/activity-timeline-filter.service.ts","libs/crm/static/src/lib/shared-components/activities-timeline/activities-timeline.component.ts","libs/crm/static/src/lib/shared-components/activities-timeline/activities-timeline.component.html","libs/crm/static/src/lib/shared-components/activities-timeline/index.ts","libs/crm/static/src/lib/shared-components/custom-filters/company-custom-filter/company-custom-filter-chip.component.ts","libs/crm/static/src/lib/shared-components/custom-filters/company-custom-filter/company-custom-filter-input.component.ts","libs/crm/static/src/lib/shared-components/abstract-custom-filters/abstract-assignee/abstract-assignee-filter-chip.component.ts","libs/crm/static/src/lib/shared-components/custom-filters/user/user-filter-chip.component.ts","libs/crm/static/src/lib/shared-components/abstract-custom-filters/abstract-assignee/abstract-assignee-filter-input.component.ts","libs/crm/static/src/lib/shared-components/custom-filters/user/user-filter-input.component.ts","libs/crm/static/src/lib/shared-components/custom-filters/index.ts","libs/crm/static/src/lib/shared-components/abstract-custom-filters/index.ts","libs/crm/static/src/lib/shared-components/index.ts","libs/crm/static/src/index.ts"],"sourcesContent":["export enum GalaxyDateDefault {\n DATE_DEFAULT_INVALID = 0,\n DATE_DEFAULT_TODAY = 1,\n DATE_DEFAULT_YESTERDAY = 2,\n DATE_DEFAULT_TOMORROW = 3,\n DATE_DEFAULT_THIS_WEEK = 4,\n DATE_DEFAULT_LAST_WEEK = 5,\n DATE_DEFAULT_NEXT_WEEK = 6,\n DATE_DEFAULT_THIS_MONTH = 7,\n DATE_DEFAULT_LAST_MONTH = 8,\n DATE_DEFAULT_NEXT_MONTH = 9,\n DATE_DEFAULT_THIS_QUARTER = 10,\n DATE_DEFAULT_LAST_QUARTER = 11,\n DATE_DEFAULT_NEXT_QUARTER = 12,\n DATE_DEFAULT_THIS_YEAR = 13,\n DATE_DEFAULT_LAST_YEAR = 14,\n DATE_DEFAULT_NEXT_YEAR = 15,\n}\n\nexport enum GalaxyFilterOperator {\n FILTER_OPERATOR_INVALID = 0,\n FILTER_OPERATOR_IS_EMPTY = 1,\n FILTER_OPERATOR_IS_NOT_EMPTY = 2,\n FILTER_OPERATOR_IS = 3,\n FILTER_OPERATOR_IS_NOT = 4,\n FILTER_OPERATOR_IS_ANY = 5,\n FILTER_OPERATOR_IS_NOT_ANY = 6,\n FILTER_OPERATOR_IS_ALL = 7,\n FILTER_OPERATOR_IS_NOT_ALL = 8,\n FILTER_OPERATOR_CONTAINS = 9,\n FILTER_OPERATOR_DOES_NOT_CONTAIN = 10,\n FILTER_OPERATOR_IS_EQUAL_TO = 11,\n FILTER_OPERATOR_IS_NOT_EQUAL_TO = 12,\n FILTER_OPERATOR_IS_GREATER_THAN = 13,\n FILTER_OPERATOR_IS_GREATER_THAN_OR_EQUAL_TO = 14,\n FILTER_OPERATOR_IS_LESS_THAN = 15,\n FILTER_OPERATOR_IS_LESS_THAN_OR_EQUAL_TO = 16,\n FILTER_OPERATOR_IS_BEFORE = 17,\n FILTER_OPERATOR_IS_BEFORE_OR_ON = 18,\n FILTER_OPERATOR_IS_AFTER = 19,\n FILTER_OPERATOR_IS_AFTER_OR_ON = 20,\n FILTER_OPERATOR_IS_BETWEEN = 21,\n FILTER_OPERATOR_IS_NOT_BETWEEN = 22,\n}\n\nexport enum GalaxyFilterType {\n FILTER_TYPE_INVALID = 0,\n FILTER_TYPE_STRING = 1,\n FILTER_TYPE_INTEGER = 2,\n FILTER_TYPE_DATE = 3,\n FILTER_TYPE_FLOAT = 4,\n FILTER_TYPE_BOOLEAN = 5,\n FILTER_TYPE_TAG = 6,\n FILTER_TYPE_CHECKBOX = 7,\n}\n","import * as e from './enums';\nimport { Observable } from 'rxjs';\nimport { Directive, EventEmitter, InjectionToken, Input, Output, Type } from '@angular/core';\n\n@Directive()\nexport abstract class GalaxyAbstractFilterInput {\n @Input() initialValue!: GalaxyFilterValueInterface[];\n @Output() valueChanges!: EventEmitter;\n\n abstract clearValue(): void;\n}\n\n@Directive()\nexport abstract class GalaxyAbstractFilterChip {\n @Input() initialValue!: GalaxyFilterValueInterface[];\n}\n\nexport interface GalaxyFilterChipDependencies {\n // listObjectFilters will return the list of filters that can be applied. They should be filtered by the searchTerm\n listObjectFilters(searchTerm: string): Observable;\n\n // getFieldOptions will return the list of options for a given fieldId.\n // This allows you to autocomplete a filter option for a user.\n getFieldOptions?(fieldId: string, search: string): Observable;\n\n // getInitialAppliedFilters will return the default list of filters that should be displayed.\n // This allows you to have an initial filter state\n getInitialAppliedFilters?(): Promise;\n\n // getFilterInputOverrides?(): Observable;\n // This allows you to override the search box for any field\n // The filter input implementation will still have to abide by the operators allowed for that filter\n getFilterInputOverrides?(): Observable;\n}\n\n// GalaxyFilterChipInjectionToken is the external token used by consumers to specify the dependencies.\nexport const GalaxyFilterChipInjectionToken = new InjectionToken(\n '[Galaxy]: dependencies for the table filter',\n);\n\n// InnerGalaxyFilterChipInjectionToken is used by the library to have defaults provided for the method implementations (NullObjectPattern).\nexport const InnerGalaxyFilterChipInjectionToken = new InjectionToken>(\n '[Galaxy]: inner dependencies for the table filter where all properties are required',\n);\n\nexport interface GalaxyFilterDefinitionInterface {\n fieldId: string;\n type?: e.GalaxyFilterType;\n hasFilterOptions?: boolean;\n supportedOperators?: e.GalaxyFilterOperator[];\n fieldName?: string;\n // presets cannot be removed, but can be cleared\n preset?: boolean;\n // locked value filers cannot have their values removed after they are set\n lockedValue?: boolean;\n}\nexport interface GalaxyFilterValueInterface {\n boolean?: boolean;\n integer?: number;\n float?: number;\n string?: string;\n date?: Date;\n dateDefault?: e.GalaxyDateDefault;\n}\n\nexport interface GalaxyFilterInterface {\n fieldId: string;\n filterId?: string; // unique for each instance of filter on frontend\n operator: e.GalaxyFilterOperator;\n values?: GalaxyFilterValueInterface[];\n floatTolerance?: number;\n}\n\nexport const GalaxySymbolsFilterOperators: { [key in e.GalaxyFilterOperator]: string } = {\n [e.GalaxyFilterOperator.FILTER_OPERATOR_INVALID]: 'GALAXY.FILTER.CHIP.SYMBOL.INVALID',\n [e.GalaxyFilterOperator.FILTER_OPERATOR_IS_EMPTY]: 'GALAXY.FILTER.CHIP.SYMBOL.IS_EMPTY',\n [e.GalaxyFilterOperator.FILTER_OPERATOR_IS_NOT_EMPTY]: 'GALAXY.FILTER.CHIP.SYMBOL.IS_NOT_EMPTY',\n [e.GalaxyFilterOperator.FILTER_OPERATOR_IS]: 'GALAXY.FILTER.CHIP.SYMBOL.IS',\n [e.GalaxyFilterOperator.FILTER_OPERATOR_IS_NOT]: 'GALAXY.FILTER.CHIP.SYMBOL.IS_NOT',\n [e.GalaxyFilterOperator.FILTER_OPERATOR_IS_ANY]: 'GALAXY.FILTER.CHIP.SYMBOL.IS_ANY',\n [e.GalaxyFilterOperator.FILTER_OPERATOR_IS_NOT_ANY]: 'GALAXY.FILTER.CHIP.SYMBOL.IS_NOT_ANY',\n [e.GalaxyFilterOperator.FILTER_OPERATOR_IS_ALL]: 'GALAXY.FILTER.CHIP.SYMBOL.IS_ALL',\n [e.GalaxyFilterOperator.FILTER_OPERATOR_IS_NOT_ALL]: 'GALAXY.FILTER.CHIP.SYMBOL.IS_NOT_ALL',\n [e.GalaxyFilterOperator.FILTER_OPERATOR_CONTAINS]: 'GALAXY.FILTER.CHIP.SYMBOL.CONTAINS',\n [e.GalaxyFilterOperator.FILTER_OPERATOR_DOES_NOT_CONTAIN]: 'GALAXY.FILTER.CHIP.SYMBOL.DOES_NOT_CONTAIN',\n [e.GalaxyFilterOperator.FILTER_OPERATOR_IS_EQUAL_TO]: 'GALAXY.FILTER.CHIP.SYMBOL.IS_EQUAL_TO',\n [e.GalaxyFilterOperator.FILTER_OPERATOR_IS_NOT_EQUAL_TO]: 'GALAXY.FILTER.CHIP.SYMBOL.IS_NOT_EQUAL_TO',\n [e.GalaxyFilterOperator.FILTER_OPERATOR_IS_GREATER_THAN]: 'GALAXY.FILTER.CHIP.SYMBOL.IS_GREATER_THAN',\n [e.GalaxyFilterOperator.FILTER_OPERATOR_IS_GREATER_THAN_OR_EQUAL_TO]:\n 'GALAXY.FILTER.CHIP.SYMBOL.IS_GREATER_THAN_OR_EQUAL_TO',\n [e.GalaxyFilterOperator.FILTER_OPERATOR_IS_LESS_THAN]: 'GALAXY.FILTER.CHIP.SYMBOL.IS_LESS_THAN',\n [e.GalaxyFilterOperator.FILTER_OPERATOR_IS_LESS_THAN_OR_EQUAL_TO]:\n 'GALAXY.FILTER.CHIP.SYMBOL.IS_LESS_THAN_OR_EQUAL_TO',\n [e.GalaxyFilterOperator.FILTER_OPERATOR_IS_BEFORE]: 'GALAXY.FILTER.CHIP.SYMBOL.IS_BEFORE',\n [e.GalaxyFilterOperator.FILTER_OPERATOR_IS_BEFORE_OR_ON]: 'GALAXY.FILTER.CHIP.SYMBOL.IS_BEFORE_OR_ON',\n [e.GalaxyFilterOperator.FILTER_OPERATOR_IS_AFTER]: 'GALAXY.FILTER.CHIP.SYMBOL.IS_AFTER',\n [e.GalaxyFilterOperator.FILTER_OPERATOR_IS_AFTER_OR_ON]: 'GALAXY.FILTER.CHIP.SYMBOL.IS_AFTER_OR_ON',\n [e.GalaxyFilterOperator.FILTER_OPERATOR_IS_BETWEEN]: 'GALAXY.FILTER.CHIP.SYMBOL.IS_BETWEEN',\n [e.GalaxyFilterOperator.FILTER_OPERATOR_IS_NOT_BETWEEN]: 'GALAXY.FILTER.CHIP.SYMBOL.IS_NOT_BETWEEN',\n};\n\nexport const GalaxyStringFilterValue: { [key in e.GalaxyDateDefault]: string } = {\n [e.GalaxyDateDefault.DATE_DEFAULT_INVALID]: 'GALAXY.FILTER.CHIP.DATE_DEFAULT.INVALID',\n [e.GalaxyDateDefault.DATE_DEFAULT_TODAY]: 'GALAXY.FILTER.CHIP.DATE_DEFAULT.TODAY',\n [e.GalaxyDateDefault.DATE_DEFAULT_YESTERDAY]: 'GALAXY.FILTER.CHIP.DATE_DEFAULT.YESTERDAY',\n [e.GalaxyDateDefault.DATE_DEFAULT_TOMORROW]: 'GALAXY.FILTER.CHIP.DATE_DEFAULT.TOMORROW',\n [e.GalaxyDateDefault.DATE_DEFAULT_THIS_WEEK]: 'GALAXY.FILTER.CHIP.DATE_DEFAULT.THIS_WEEK',\n [e.GalaxyDateDefault.DATE_DEFAULT_LAST_WEEK]: 'GALAXY.FILTER.CHIP.DATE_DEFAULT.LAST_WEEK',\n [e.GalaxyDateDefault.DATE_DEFAULT_NEXT_WEEK]: 'GALAXY.FILTER.CHIP.DATE_DEFAULT.NEXT_WEEK',\n [e.GalaxyDateDefault.DATE_DEFAULT_THIS_MONTH]: 'GALAXY.FILTER.CHIP.DATE_DEFAULT.THIS_MONTH',\n [e.GalaxyDateDefault.DATE_DEFAULT_LAST_MONTH]: 'GALAXY.FILTER.CHIP.DATE_DEFAULT.LAST_MONTH',\n [e.GalaxyDateDefault.DATE_DEFAULT_NEXT_MONTH]: 'GALAXY.FILTER.CHIP.DATE_DEFAULT.NEXT_MONTH',\n [e.GalaxyDateDefault.DATE_DEFAULT_THIS_QUARTER]: 'GALAXY.FILTER.CHIP.DATE_DEFAULT.THIS_QUARTER',\n [e.GalaxyDateDefault.DATE_DEFAULT_LAST_QUARTER]: 'GALAXY.FILTER.CHIP.DATE_DEFAULT.LAST_QUARTER',\n [e.GalaxyDateDefault.DATE_DEFAULT_NEXT_QUARTER]: 'GALAXY.FILTER.CHIP.DATE_DEFAULT.NEXT_QUARTER',\n [e.GalaxyDateDefault.DATE_DEFAULT_THIS_YEAR]: 'GALAXY.FILTER.CHIP.DATE_DEFAULT.THIS_YEAR',\n [e.GalaxyDateDefault.DATE_DEFAULT_LAST_YEAR]: 'GALAXY.FILTER.CHIP.DATE_DEFAULT.LAST_YEAR',\n [e.GalaxyDateDefault.DATE_DEFAULT_NEXT_YEAR]: 'GALAXY.FILTER.CHIP.DATE_DEFAULT.NEXT_YEAR',\n};\n\nexport interface GalaxyFilterInputOverride {\n fieldId: string;\n filterInput: Type;\n filterChip: Type;\n}\n","import { CommonModule } from '@angular/common';\nimport { Component, EventEmitter, inject, Input, Output } from '@angular/core';\nimport { ReactiveFormsModule, UntypedFormControl } from '@angular/forms';\nimport { MatDividerModule } from '@angular/material/divider';\nimport { MatIconModule } from '@angular/material/icon';\nimport { MatInputModule } from '@angular/material/input';\nimport { MatSelectModule } from '@angular/material/select';\nimport { TranslateModule } from '@ngx-translate/core';\nimport { GalaxyFormFieldModule } from '@vendasta/galaxy/form-field';\nimport { Observable, startWith, switchMap } from 'rxjs';\nimport { GalaxyFilterDefinitionInterface, InnerGalaxyFilterChipInjectionToken } from '../interface';\n\n@Component({\n selector: 'glxy-add-filter-modal',\n templateUrl: './galaxy-add-filter-modal.component.html',\n styleUrls: ['./galaxy-add-filter-modal.component.scss'],\n imports: [\n CommonModule,\n MatSelectModule,\n ReactiveFormsModule,\n TranslateModule,\n GalaxyFormFieldModule,\n MatIconModule,\n MatDividerModule,\n MatInputModule,\n ],\n standalone: true,\n})\nexport class GalaxyAddFilterModalComponent {\n @Input() filtersHeader = '';\n @Output() addFilter = new EventEmitter();\n\n searchControl: UntypedFormControl = new UntypedFormControl();\n\n filterDefinitions$: Observable;\n\n private readonly filtersDependencies = inject(InnerGalaxyFilterChipInjectionToken);\n constructor() {\n this.filterDefinitions$ = this.searchControl.valueChanges.pipe(\n startWith(''),\n switchMap((searchTerm) => {\n return this.filtersDependencies.listObjectFilters(searchTerm);\n }),\n );\n }\n\n emitNewFilter(filter: GalaxyFilterDefinitionInterface): void {\n this.addFilter.emit({\n ...filter,\n });\n }\n}\n","
\n \n \n \n
\n\n
\n \n

{{ filtersHeader | translate }}

\n \n {{ filterDefinition.fieldName }}\n

\n
\n","import { CommonModule } from '@angular/common';\nimport { AfterViewInit, ChangeDetectorRef, Component, Input, Type, ViewChild, ViewContainerRef } from '@angular/core';\nimport { GalaxyAbstractFilterChip, GalaxyFilterValueInterface } from './interface';\n\n@Component({\n selector: 'glxy-custom-filter-chip',\n template: ` `,\n imports: [CommonModule],\n standalone: true,\n})\nexport class GalaxyCustomFilterChipComponent implements GalaxyAbstractFilterChip, AfterViewInit {\n @Input({ required: true }) filterChip!: Type;\n _initialValues: GalaxyFilterValueInterface[] = [];\n @Input() set initialValue(values: GalaxyFilterValueInterface[]) {\n this._initialValues = values;\n }\n @ViewChild('chipOverrideComponent', { static: false, read: ViewContainerRef }) overrideRef?: ViewContainerRef;\n\n constructor(private ref: ChangeDetectorRef) {}\n\n ngAfterViewInit(): void {\n if (!this.filterChip) {\n console.error('No override found for filter chip');\n return;\n }\n\n const viewContainerRef = this.overrideRef;\n if (!viewContainerRef) return;\n viewContainerRef.clear();\n const componentRef = viewContainerRef.createComponent(this.filterChip);\n componentRef.instance.initialValue = this._initialValues;\n this.ref.detectChanges();\n }\n}\n","import { CommonModule } from '@angular/common';\nimport {\n Component,\n EventEmitter,\n forwardRef,\n Input,\n OnDestroy,\n Output,\n signal,\n Signal,\n computed,\n effect,\n inject,\n} from '@angular/core';\nimport { FormBuilder, FormControl, FormGroup, ReactiveFormsModule } from '@angular/forms';\nimport { MatInputModule } from '@angular/material/input';\nimport { TranslateModule } from '@ngx-translate/core';\nimport {\n GalaxyAbstractFilterInput,\n GalaxyFilterValueInterface,\n InnerGalaxyFilterChipInjectionToken,\n} from '../interface';\nimport { GalaxyFormFieldModule } from '@vendasta/galaxy/form-field';\nimport { Subscription, shareReplay } from 'rxjs';\nimport { MatAutocompleteModule } from '@angular/material/autocomplete';\nimport { distinctUntilChanged, filter, switchMap } from 'rxjs/operators';\nimport { toObservable, toSignal } from '@angular/core/rxjs-interop';\nimport { MatCheckboxModule } from '@angular/material/checkbox';\n\n@Component({\n selector: 'glxy-checkbox-filter-input',\n template: `\n \n \n {{ control.option }}\n \n \n `,\n providers: [\n { provide: GalaxyAbstractFilterInput, useExisting: forwardRef(() => GalaxyCheckboxFilterInputComponent) },\n ],\n imports: [\n CommonModule,\n TranslateModule,\n ReactiveFormsModule,\n MatInputModule,\n GalaxyFormFieldModule,\n MatAutocompleteModule,\n MatCheckboxModule,\n ],\n\n standalone: true,\n})\nexport class GalaxyCheckboxFilterInputComponent implements GalaxyAbstractFilterInput, OnDestroy {\n @Input() set fieldId(value: string) {\n this._fieldId.set(value);\n }\n @Input() set disabled(value: boolean) {\n if (value) {\n this.formGroup.disable();\n }\n }\n\n @Output() valueChanges = new EventEmitter();\n formGroup: FormGroup = new FormGroup({});\n\n _fieldId = signal('');\n availableOptions = signal([]);\n _initialValue = signal([]);\n formValueChanges = toSignal(this.formGroup.valueChanges);\n controls: Signal> = computed(() => {\n let controls: Array<{ formControl: FormControl; option: string }> = [];\n Object.keys(this.formValueChanges() ?? {}).forEach((option) => {\n controls = [...controls, { option, formControl: this.formGroup.get(option) as FormControl }];\n });\n return controls;\n });\n\n @Input() set initialValue(value: GalaxyFilterValueInterface[]) {\n this._initialValue.set(value);\n }\n\n subscriptions: Subscription[] = [];\n\n private readonly filtersDependencies = inject(InnerGalaxyFilterChipInjectionToken);\n\n constructor(private readonly formBuilder: FormBuilder) {\n effect(\n () => {\n const currentValues = this._initialValue().map((value) => value.string);\n const options = this.availableOptions();\n Object.keys(this.formGroup.controls).forEach((option) => {\n if (!options.includes(option)) {\n this.formGroup.removeControl(option);\n }\n });\n options.forEach((option) => {\n let control = this.formGroup.get(option);\n if (!control) {\n control = this.formBuilder.control(currentValues.includes(option));\n this.formGroup.addControl(option, control);\n }\n if (control.pristine) {\n control.setValue(currentValues.includes(option));\n }\n });\n },\n { allowSignalWrites: true },\n );\n\n const fieldId$ = toObservable(this._fieldId);\n\n this.subscriptions.push(\n this.formGroup.valueChanges\n .pipe(distinctUntilChanged((a, b) => Object.keys(a).sort().join('') === Object.keys(b).sort().join()))\n .subscribe((value) => {\n const values: GalaxyFilterValueInterface[] = [];\n Object.entries(value).forEach(([option, checked]) => {\n if (checked) {\n values.push({ string: option });\n }\n });\n this.valueChanges.emit(values);\n }),\n fieldId$\n .pipe(\n filter((fieldId) => fieldId.length > 0),\n switchMap((fieldId) => this.filtersDependencies.getFieldOptions(fieldId, '')),\n shareReplay(1),\n )\n .subscribe((options) => {\n this.availableOptions.set(options);\n }),\n );\n }\n\n ngOnDestroy(): void {\n this.subscriptions.forEach((subscription) => subscription.unsubscribe());\n }\n\n clearValue() {\n this.formGroup.reset();\n Object.values(this.formGroup.controls).forEach((control) => control.setValue(false));\n }\n}\n","import { CommonModule } from '@angular/common';\nimport {\n AfterViewInit,\n ChangeDetectorRef,\n Component,\n DestroyRef,\n EventEmitter,\n Input,\n Output,\n ViewChild,\n ViewContainerRef,\n forwardRef,\n inject,\n} from '@angular/core';\nimport { takeUntilDestroyed } from '@angular/core/rxjs-interop';\nimport { GalaxyAbstractFilterInput, GalaxyFilterInputOverride, GalaxyFilterValueInterface } from '../interface';\n\n@Component({\n selector: 'glxy-custom-filter-input',\n template: ` `,\n providers: [{ provide: GalaxyAbstractFilterInput, useExisting: forwardRef(() => GalaxyCustomFilterInputComponent) }],\n imports: [CommonModule],\n standalone: true,\n})\nexport class GalaxyCustomFilterInputComponent implements GalaxyAbstractFilterInput, AfterViewInit {\n @Input({ required: true }) filterOverride!: GalaxyFilterInputOverride;\n _initialValues: GalaxyFilterValueInterface[] = [];\n @Input() set initialValue(values: GalaxyFilterValueInterface[]) {\n this._initialValues = values;\n }\n @Output() valueChanges = new EventEmitter();\n @ViewChild('filterOverrideComponent', { static: false, read: ViewContainerRef }) overrideRef?: ViewContainerRef;\n\n private readonly destroyRef = inject(DestroyRef);\n constructor(private ref: ChangeDetectorRef) {}\n\n ngAfterViewInit(): void {\n if (!this.filterOverride) {\n console.error('No override found for filter input');\n return;\n }\n\n const viewContainerRef = this.overrideRef;\n if (!viewContainerRef) return;\n\n viewContainerRef.clear();\n const componentRef = viewContainerRef.createComponent(this.filterOverride.filterInput);\n componentRef.instance.initialValue = this._initialValues;\n componentRef.instance.valueChanges\n .pipe(takeUntilDestroyed(this.destroyRef))\n .subscribe((value: GalaxyFilterValueInterface[]) => {\n this.valueChanges.emit(value);\n });\n this.ref.detectChanges();\n }\n\n clearValue() {\n const viewContainerRef = this.overrideRef;\n viewContainerRef?.clear();\n this._initialValues = [];\n }\n}\n","import { GalaxyDateDefault } from '../enums';\nimport { DateOption } from './date-filter-input';\n\nexport const dateDefaultToLabel: DateOption[] = [\n {\n dateOption: GalaxyDateDefault.DATE_DEFAULT_INVALID,\n label: 'GALAXY.FILTER.CHIP.DATE_DEFAULT.INVALID',\n },\n {\n dateOption: GalaxyDateDefault.DATE_DEFAULT_TODAY,\n label: 'GALAXY.FILTER.CHIP.DATE_DEFAULT.TODAY',\n },\n {\n dateOption: GalaxyDateDefault.DATE_DEFAULT_TOMORROW,\n label: 'GALAXY.FILTER.CHIP.DATE_DEFAULT.TOMORROW',\n },\n {\n dateOption: GalaxyDateDefault.DATE_DEFAULT_YESTERDAY,\n label: 'GALAXY.FILTER.CHIP.DATE_DEFAULT.YESTERDAY',\n },\n {\n dateOption: GalaxyDateDefault.DATE_DEFAULT_THIS_WEEK,\n label: 'GALAXY.FILTER.CHIP.DATE_DEFAULT.THIS_WEEK',\n },\n {\n dateOption: GalaxyDateDefault.DATE_DEFAULT_NEXT_WEEK,\n label: 'GALAXY.FILTER.CHIP.DATE_DEFAULT.NEXT_WEEK',\n },\n {\n dateOption: GalaxyDateDefault.DATE_DEFAULT_LAST_WEEK,\n label: 'GALAXY.FILTER.CHIP.DATE_DEFAULT.LAST_WEEK',\n },\n {\n dateOption: GalaxyDateDefault.DATE_DEFAULT_THIS_MONTH,\n label: 'GALAXY.FILTER.CHIP.DATE_DEFAULT.THIS_MONTH',\n },\n {\n dateOption: GalaxyDateDefault.DATE_DEFAULT_NEXT_MONTH,\n label: 'GALAXY.FILTER.CHIP.DATE_DEFAULT.NEXT_MONTH',\n },\n {\n dateOption: GalaxyDateDefault.DATE_DEFAULT_LAST_MONTH,\n label: 'GALAXY.FILTER.CHIP.DATE_DEFAULT.LAST_MONTH',\n },\n {\n dateOption: GalaxyDateDefault.DATE_DEFAULT_THIS_QUARTER,\n label: 'GALAXY.FILTER.CHIP.DATE_DEFAULT.THIS_QUARTER',\n },\n {\n dateOption: GalaxyDateDefault.DATE_DEFAULT_NEXT_QUARTER,\n label: 'GALAXY.FILTER.CHIP.DATE_DEFAULT.NEXT_QUARTER',\n },\n {\n dateOption: GalaxyDateDefault.DATE_DEFAULT_LAST_QUARTER,\n label: 'GALAXY.FILTER.CHIP.DATE_DEFAULT.LAST_QUARTER',\n },\n {\n dateOption: GalaxyDateDefault.DATE_DEFAULT_THIS_YEAR,\n label: 'GALAXY.FILTER.CHIP.DATE_DEFAULT.THIS_YEAR',\n },\n {\n dateOption: GalaxyDateDefault.DATE_DEFAULT_NEXT_YEAR,\n label: 'GALAXY.FILTER.CHIP.DATE_DEFAULT.NEXT_YEAR',\n },\n {\n dateOption: GalaxyDateDefault.DATE_DEFAULT_LAST_YEAR,\n label: 'GALAXY.FILTER.CHIP.DATE_DEFAULT.LAST_YEAR',\n },\n];\n","import {\n Component,\n EventEmitter,\n forwardRef,\n Input,\n OnDestroy,\n WritableSignal,\n signal,\n Output,\n Signal,\n computed,\n} from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { GalaxyAbstractFilterInput, GalaxyFilterValueInterface } from '../interface';\nimport { GalaxyDateDefault } from '../enums';\nimport { GalaxyFilterOperator } from '../enums';\nimport { GalaxyFormFieldModule } from '@vendasta/galaxy/form-field';\nimport { combineLatest, map, Observable, startWith, Subscription, tap } from 'rxjs';\nimport { dateDefaultToLabel } from './date-default-labels';\nimport { FormControl, ReactiveFormsModule } from '@angular/forms';\nimport { TranslateModule } from '@ngx-translate/core';\nimport { MatSelectModule } from '@angular/material/select';\nimport { MatButtonModule } from '@angular/material/button';\nimport { MatInputModule } from '@angular/material/input';\nimport { DatePickerSelection, GalaxyDatepickerModule } from '@vendasta/galaxy/datepicker';\nimport { MatDatepickerModule } from '@angular/material/datepicker';\n\nexport interface DateOption {\n dateOption: GalaxyDateDefault;\n label: string;\n}\n\ninterface DateFilterInputState {\n operator: GalaxyFilterOperator;\n}\n\n@Component({\n selector: 'glxy-date-filter-input',\n templateUrl: './date-filter-input.html',\n styleUrls: ['./date-filter-input.scss'],\n providers: [{ provide: GalaxyAbstractFilterInput, useExisting: forwardRef(() => GalaxyDateFilterInputComponent) }],\n imports: [\n CommonModule,\n TranslateModule,\n MatSelectModule,\n MatButtonModule,\n MatInputModule,\n GalaxyFormFieldModule,\n ReactiveFormsModule,\n GalaxyDatepickerModule,\n MatDatepickerModule,\n ],\n standalone: true,\n})\nexport class GalaxyDateFilterInputComponent implements GalaxyAbstractFilterInput, OnDestroy {\n dateSelectionType: DatePickerSelection = DatePickerSelection.single;\n\n state: WritableSignal = signal({\n operator: GalaxyFilterOperator.FILTER_OPERATOR_IS,\n });\n\n @Input() set operator(value: GalaxyFilterOperator) {\n this.state.update((state) => ({ ...state, operator: value }));\n this.dateSelectionType =\n value === GalaxyFilterOperator.FILTER_OPERATOR_IS_BETWEEN ||\n value === GalaxyFilterOperator.FILTER_OPERATOR_IS_NOT_BETWEEN\n ? DatePickerSelection.range\n : DatePickerSelection.single;\n }\n\n @Input() set initialValue(value: GalaxyFilterValueInterface[]) {\n if (value?.length > 0 && value[0].date) {\n this.dateDefaultControl.setValue(GalaxyDateDefault.DATE_DEFAULT_INVALID);\n window.setTimeout(() => {\n if (value?.length > 0 && value[0].date) {\n if (value.length > 1 && value[1].date) {\n this.startDateControl.setValue(value[0].date);\n this.endDateControl.setValue(value[1].date);\n } else {\n this.dateControl.setValue(value[0].date);\n }\n }\n }, 0);\n this.valueChanges.emit(value);\n } else if (value?.length > 0 && value[0].dateDefault) {\n window.setTimeout(() => {\n if (value?.length > 0 && value[0].dateDefault) {\n this.dateDefaultControl.setValue(value[0].dateDefault, { emitEvent: true });\n }\n }, 0);\n this.valueChanges.emit(value);\n }\n }\n\n @Input() set disabled(value: boolean) {\n if (value) {\n this.dateControl.disable();\n this.startDateControl.disable();\n this.endDateControl.disable();\n this.dateDefaultControl.disable();\n }\n }\n\n @Output() valueChanges = new EventEmitter();\n\n dateDefaultOptions: Signal = computed(() => {\n const operator = this.state().operator;\n if (\n operator === GalaxyFilterOperator.FILTER_OPERATOR_IS_BETWEEN ||\n operator === GalaxyFilterOperator.FILTER_OPERATOR_IS_NOT_BETWEEN\n ) {\n this.dateDefaultControl.setValue(GalaxyDateDefault.DATE_DEFAULT_INVALID);\n return dateDefaultToLabel.filter((option) => option.dateOption === GalaxyDateDefault.DATE_DEFAULT_INVALID);\n }\n return dateDefaultToLabel;\n });\n\n dateDefaultControl: FormControl = new FormControl(\n GalaxyDateDefault.DATE_DEFAULT_INVALID,\n {\n nonNullable: true,\n },\n );\n\n dateControl: FormControl = new FormControl(undefined, { nonNullable: true });\n startDateControl: FormControl = new FormControl(undefined, { nonNullable: true });\n endDateControl: FormControl = new FormControl(undefined, { nonNullable: true });\n\n showDate$: Observable = this.dateDefaultControl.valueChanges.pipe(\n startWith(GalaxyDateDefault.DATE_DEFAULT_INVALID),\n map((dateDefault) => {\n return dateDefault === GalaxyDateDefault.DATE_DEFAULT_INVALID;\n }),\n );\n\n showDateRangePicker: Signal = computed(() => {\n const operator = this.state().operator;\n return (\n operator === GalaxyFilterOperator.FILTER_OPERATOR_IS_BETWEEN ||\n operator === GalaxyFilterOperator.FILTER_OPERATOR_IS_NOT_BETWEEN\n );\n });\n\n subscriptions: Subscription[] = [];\n\n constructor() {\n this.subscriptions.push(\n this.dateDefaultControl.valueChanges\n .pipe(\n tap((value) => {\n if (value !== GalaxyDateDefault.DATE_DEFAULT_INVALID) {\n this.valueChanges.emit([{ dateDefault: value }]);\n }\n }),\n )\n .subscribe(),\n );\n\n this.subscriptions.push(\n this.dateControl.valueChanges\n .pipe(\n tap((value) => {\n if (value) {\n this.valueChanges.emit([{ date: value }]);\n }\n }),\n )\n .subscribe(),\n );\n\n this.subscriptions.push(\n combineLatest([this.startDateControl.valueChanges, this.endDateControl.valueChanges])\n .pipe(\n tap(([startDate, endDate]) => {\n if (startDate && endDate) {\n this.valueChanges.emit([{ date: startDate }, { date: endDate }]);\n }\n }),\n )\n .subscribe(),\n );\n }\n\n ngOnDestroy(): void {\n this.subscriptions.forEach((subscription) => subscription.unsubscribe());\n }\n\n clearValue() {\n this.dateDefaultControl.setValue(GalaxyDateDefault.DATE_DEFAULT_INVALID);\n this.dateControl.setValue(undefined);\n }\n}\n","
\n \n \n \n {{ option.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","import { Component, EventEmitter, Input, Output } from '@angular/core';\nimport { GalaxyFilterValueInterface } from '../interface';\nimport { CommonModule } from '@angular/common';\n\n@Component({\n selector: 'glxy-no-input-filter-input',\n template: ``,\n providers: [],\n imports: [CommonModule],\n standalone: true,\n})\nexport class GalaxyNoInputFilterInputComponent {\n @Input() set initialValue(_: GalaxyFilterValueInterface[]) {\n this.valueChanges.emit([]);\n }\n @Output() valueChanges = new EventEmitter();\n}\n","import { CommonModule } from '@angular/common';\nimport { Component } from '@angular/core';\nimport { TranslateModule } from '@ngx-translate/core';\n\n@Component({\n selector: 'glxy-none-selected-input-filter-input',\n template: `

{{ 'GALAXY.FILTER.CHIP.INVALID_FILTER_TYPE' | translate }}

`,\n providers: [],\n imports: [CommonModule, TranslateModule],\n standalone: true,\n})\nexport class GalaxyNoneSelectedFilterInputComponent {}\n","import { CommonModule } from '@angular/common';\nimport { Component, EventEmitter, Input, OnDestroy, Output, effect, forwardRef, inject, signal } from '@angular/core';\nimport { toObservable } from '@angular/core/rxjs-interop';\nimport { FormControl, ReactiveFormsModule } from '@angular/forms';\nimport { MatAutocompleteModule } from '@angular/material/autocomplete';\nimport { MatInputModule } from '@angular/material/input';\nimport { MatRadioModule } from '@angular/material/radio';\nimport { TranslateModule } from '@ngx-translate/core';\nimport { GalaxyFormFieldModule } from '@vendasta/galaxy/form-field';\nimport { Subscription, shareReplay } from 'rxjs';\nimport { distinctUntilChanged, filter, switchMap } from 'rxjs/operators';\nimport {\n GalaxyAbstractFilterInput,\n GalaxyFilterValueInterface,\n InnerGalaxyFilterChipInjectionToken,\n} from '../interface';\n\n@Component({\n selector: 'glxy-radio-filter-input',\n template: `\n \n \n {{ option }}\n \n \n `,\n providers: [{ provide: GalaxyAbstractFilterInput, useExisting: forwardRef(() => GalaxyRadioFilterInputComponent) }],\n imports: [\n CommonModule,\n TranslateModule,\n ReactiveFormsModule,\n MatInputModule,\n GalaxyFormFieldModule,\n MatAutocompleteModule,\n MatRadioModule,\n ],\n\n standalone: true,\n})\nexport class GalaxyRadioFilterInputComponent implements GalaxyAbstractFilterInput, OnDestroy {\n @Input() set fieldId(value: string) {\n this._fieldId.set(value);\n }\n @Input() set disabled(value: boolean) {\n if (value) {\n this.formControl.disable();\n }\n }\n\n @Output() valueChanges = new EventEmitter();\n formControl: FormControl = new FormControl('');\n\n _fieldId = signal('');\n availableOptions = signal([]);\n _initialValue = signal([]);\n\n @Input() set initialValue(value: GalaxyFilterValueInterface[]) {\n this._initialValue.set(value);\n }\n\n subscriptions: Subscription[] = [];\n\n private readonly filtersDependencies = inject(InnerGalaxyFilterChipInjectionToken);\n\n constructor() {\n effect(\n () => {\n const initialValue = this._initialValue();\n if (initialValue.length > 0) {\n this.formControl.setValue(initialValue[0].string);\n }\n },\n { allowSignalWrites: true },\n );\n const fieldId$ = toObservable(this._fieldId);\n\n this.subscriptions.push(\n this.formControl.valueChanges.pipe(distinctUntilChanged()).subscribe((value) => {\n this.valueChanges.emit([{ string: value }]);\n }),\n fieldId$\n .pipe(\n filter((fieldId) => fieldId.length > 0),\n switchMap((fieldId) => this.filtersDependencies.getFieldOptions(fieldId, '')),\n shareReplay(1),\n )\n .subscribe((options) => {\n this.availableOptions.set(options);\n }),\n );\n }\n\n ngOnDestroy(): void {\n this.subscriptions.forEach((subscription) => subscription.unsubscribe());\n }\n\n clearValue() {\n this.formControl.reset();\n }\n}\n","import { GalaxyFilterOperator } from './enums';\n\nexport const SEARCH_DEBOUNCE_MS = 300;\n\nexport const FILTER_RANGE_OPERATORS = [\n GalaxyFilterOperator.FILTER_OPERATOR_IS_BETWEEN,\n GalaxyFilterOperator.FILTER_OPERATOR_IS_NOT_BETWEEN,\n];\n","import { CommonModule } from '@angular/common';\nimport {\n Component,\n EventEmitter,\n Input,\n OnDestroy,\n Output,\n Signal,\n computed,\n effect,\n forwardRef,\n inject,\n signal,\n} from '@angular/core';\nimport { toObservable, toSignal } from '@angular/core/rxjs-interop';\nimport { FormControl, ReactiveFormsModule } from '@angular/forms';\nimport { MatAutocompleteModule } from '@angular/material/autocomplete';\nimport { MatInputModule } from '@angular/material/input';\nimport { TranslateModule } from '@ngx-translate/core';\nimport { GalaxyFormFieldModule } from '@vendasta/galaxy/form-field';\nimport { Subscription, combineLatest, shareReplay } from 'rxjs';\nimport { debounceTime, filter, switchMap } from 'rxjs/operators';\nimport { SEARCH_DEBOUNCE_MS } from '../constants';\nimport {\n GalaxyAbstractFilterInput,\n GalaxyFilterValueInterface,\n InnerGalaxyFilterChipInjectionToken,\n} from '../interface';\n\n@Component({\n selector: 'glxy-string-filter-input',\n template: `\n \n \n \n \n {{ option }}\n \n \n \n `,\n providers: [{ provide: GalaxyAbstractFilterInput, useExisting: forwardRef(() => GalaxyStringFilterInputComponent) }],\n imports: [\n CommonModule,\n TranslateModule,\n ReactiveFormsModule,\n MatInputModule,\n GalaxyFormFieldModule,\n MatAutocompleteModule,\n ],\n\n standalone: true,\n})\nexport class GalaxyStringFilterInputComponent implements GalaxyAbstractFilterInput, OnDestroy {\n @Input() set fieldId(value: string) {\n this._fieldId.set(value);\n }\n @Output() valueChanges = new EventEmitter();\n formControl: FormControl = new FormControl('', { nonNullable: true });\n\n searchTerm = toSignal(this.formControl.valueChanges, { initialValue: '' });\n _fieldId = signal('');\n availableOptions = signal([]);\n\n @Input() set initialValue(value: GalaxyFilterValueInterface[]) {\n if (value?.length > 0 && value[0].string) {\n this.formControl.setValue(value[0].string);\n }\n }\n @Input() set disabled(value: boolean) {\n if (value) {\n this.formControl.disable();\n }\n }\n\n subscriptions: Subscription[] = [];\n filteredOptions: Signal = computed(() => this.availableOptions());\n\n private readonly filtersDependencies = inject(InnerGalaxyFilterChipInjectionToken);\n constructor() {\n effect(\n () => {\n const value = this.searchTerm();\n if (value === '') {\n this.valueChanges.emit([]);\n return;\n }\n this.valueChanges.emit([{ string: value }]);\n },\n { allowSignalWrites: true },\n );\n\n const searchTerm$ = toObservable(this.searchTerm);\n const fieldId$ = toObservable(this._fieldId);\n\n this.subscriptions.push(\n combineLatest([searchTerm$, fieldId$])\n .pipe(\n filter(([, fieldId]) => !!fieldId),\n debounceTime(SEARCH_DEBOUNCE_MS),\n switchMap(([searchTerm, fieldId]) => this.filtersDependencies.getFieldOptions(fieldId, searchTerm)),\n shareReplay(1),\n )\n .subscribe((options) => this.availableOptions.set(options)),\n );\n }\n\n ngOnDestroy(): void {\n this.subscriptions.forEach((subscription) => subscription.unsubscribe());\n }\n\n clearValue() {\n this.formControl.setValue('');\n }\n}\n","// we don't want to re-order the fields here because it's easier to read with the interfaces separated\n/* eslint @typescript-eslint/member-ordering: 0 */\n\nimport { BooleanInput, coerceBooleanProperty } from '@angular/cdk/coercion';\nimport { COMMA, ENTER } from '@angular/cdk/keycodes';\nimport {\n Component,\n ElementRef,\n EventEmitter,\n HostBinding,\n Input,\n OnDestroy,\n OnInit,\n Optional,\n Output,\n Self,\n ViewChild,\n} from '@angular/core';\nimport { ControlValueAccessor, FormControl, NgControl } from '@angular/forms';\nimport { MatAutocompleteSelectedEvent } from '@angular/material/autocomplete';\nimport { MatChipInputEvent } from '@angular/material/chips';\nimport { MatFormFieldControl } from '@angular/material/form-field';\nimport { TranslateService } from '@ngx-translate/core';\nimport { Observable, Subject, map } from 'rxjs';\n\n@Component({\n selector: 'glxy-tags-input',\n styleUrls: ['./tags.component.scss'],\n templateUrl: './tags.component.html',\n})\nexport class TagsComponent implements OnInit, OnDestroy, MatFormFieldControl, ControlValueAccessor {\n @ViewChild('searchInput') searchInput?: ElementRef;\n\n private static nextId = 0;\n\n @Output() searchText = new EventEmitter();\n @Input() maxTagLength = 50;\n @Input() maxTags: number | null = null;\n\n _availableTags: string[] = [];\n @Input() set availableTags(tags: string[]) {\n this._availableTags = tags;\n }\n get availableTags(): string[] {\n if (this.uniqueTags) {\n return this._availableTags.filter((tag) => !this.chosenTagsControl.value.includes(tag));\n }\n return this._availableTags;\n }\n\n @Input() uniqueTags = true;\n @Input() autocompleteOnly = false;\n\n chosenTagsControl: FormControl = new FormControl([], { nonNullable: true });\n searchControl: FormControl = new FormControl('', { nonNullable: true });\n separatorKeysCodes: number[] = [ENTER, COMMA];\n\n maxTagLengthReached$: Observable = this.searchControl.valueChanges.pipe(\n map((searchTerm) => searchTerm.length >= this.maxTagLength),\n );\n maxTagLengthReachedMessage: string;\n\n constructor(\n @Optional() @Self() public ngControl: NgControl,\n private _elementRef: ElementRef,\n private readonly translate: TranslateService,\n ) {\n if (this.ngControl != null) {\n // Setting the value accessor directly (instead of using\n // the providers) to avoid running into a circular import.\n this.ngControl.valueAccessor = this;\n }\n\n this.maxTagLengthReachedMessage = this.translate.instant('GALAXY.TAGS.STRING_LIMIT_HINT', {\n maxLength: this.maxTagLength || 0,\n });\n }\n\n ngOnInit(): void {\n this.searchControl.valueChanges.subscribe((searchTerm) => {\n this.searchText.emit(searchTerm);\n });\n }\n\n ngOnDestroy(): void {\n this.stateChanges.complete();\n }\n\n /**\n * TagsComponent-specific fields\n */\n private addTag(tag: string): void {\n if (this.uniqueTags && this.chosenTagsControl.value.includes(tag)) {\n return;\n }\n\n if (this.autocompleteOnly && !this._availableTags.includes(tag)) {\n return;\n }\n\n const tags = this.chosenTagsControl.value || [];\n this.value = [...tags, tag];\n }\n\n private touchControls(): void {\n this.chosenTagsControl.markAsDirty();\n this.chosenTagsControl.markAsTouched();\n this.chosenTagsControl.updateValueAndValidity();\n this.searchControl.setValue('');\n this.searchControl.updateValueAndValidity();\n this.onTouched();\n }\n\n addNewTagByTokenEnd(event: MatChipInputEvent): void {\n const value = (event.value || '').trim();\n if (value) {\n this.addTag(value);\n }\n event?.chipInput?.clear();\n this.touchControls();\n }\n\n removeTag(tagIndex: number): void {\n if (tagIndex >= 0) {\n const tags = [...this.chosenTagsControl.value];\n tags.splice(tagIndex, 1);\n this.value = tags;\n }\n this.touchControls();\n }\n\n selectExistingTagFromAutocomplete(event: MatAutocompleteSelectedEvent): void {\n if (this.searchInput) this.searchInput.nativeElement.value = '';\n this.searchControl.setValue('');\n\n const tag = event?.option?.viewValue;\n if (tag) {\n this.addTag(tag);\n }\n this.touchControls();\n }\n\n /**\n * Implement MatFormFieldControl interface\n */\n @Input()\n get disabled(): boolean {\n return this._disabled;\n }\n set disabled(value: BooleanInput) {\n this._disabled = coerceBooleanProperty(value);\n this.stateChanges.next();\n }\n protected _disabled = false;\n\n @Input()\n get required(): boolean {\n return this._required;\n }\n set required(value: BooleanInput) {\n this._required = coerceBooleanProperty(value);\n this.stateChanges.next();\n }\n protected _required = false;\n\n @Input()\n get value(): string[] | null {\n return this.chosenTagsControl.value;\n }\n set value(tags: string[] | null) {\n this.chosenTagsControl.setValue(tags ?? []);\n this.onChange(tags);\n this.stateChanges.next();\n }\n\n @Input()\n get placeholder() {\n return this._placeholder;\n }\n set placeholder(plh) {\n this._placeholder = plh;\n this.stateChanges.next();\n }\n protected _placeholder = 'GALAXY.TAGS.PLACEHOLDER';\n\n get empty(): boolean {\n return this.value?.length === 0;\n }\n\n get errorState(): boolean {\n return this.ngControl.errors !== null && !!this.ngControl.touched;\n }\n\n @HostBinding('[id]') id = `tags-control-${TagsComponent.nextId++}`;\n @HostBinding('[class.floating]') get shouldLabelFloat(): boolean {\n return false;\n }\n\n readonly stateChanges = new Subject();\n focused = false;\n readonly controlType = 'tags-input';\n autofilled?: boolean;\n userAriaDescribedBy?: string;\n onChange: (value: string[] | null) => void = () => ({});\n onTouched: () => void = () => ({});\n\n setDescribedByIds(ids: string[]): void {\n this._elementRef.nativeElement.setAttribute('aria-describedby', ids.join(' '));\n }\n onContainerClick(): void {\n this._elementRef.nativeElement.focus();\n }\n\n /**\n * Implement ControlValueAccessor interface\n */\n writeValue(value: string[]): void {\n this.value = value;\n }\n registerOnChange(fn: (v: string[] | null) => void): void {\n this.onChange = fn;\n }\n registerOnTouched(fn: () => void): void {\n this.onTouched = fn;\n }\n setDisabledState?(isDisabled: boolean): void {\n this.disabled = isDisabled;\n }\n}\n","\n \n \n \n {{ tag || '-' }}\n cancel\n \n \n = maxTags\"\n [placeholder]=\"_placeholder | translate\"\n maxlength=\"{{ maxTagLength }}\"\n [formControl]=\"searchControl\"\n [matAutocomplete]=\"auto\"\n [matChipInputFor]=\"chipGrid\"\n [matChipInputAddOnBlur]=\"false\"\n [matChipInputSeparatorKeyCodes]=\"separatorKeysCodes\"\n (matChipInputTokenEnd)=\"addNewTagByTokenEnd($event)\"\n />\n \n \n {{ tag }}\n \n\n","import { CommonModule } from '@angular/common';\nimport { NgModule } from '@angular/core';\nimport { ReactiveFormsModule } from '@angular/forms';\nimport { MatIconModule } from '@angular/material/icon';\nimport { MatAutocompleteModule } from '@angular/material/autocomplete';\nimport { MatChipsModule } from '@angular/material/chips';\nimport { MatInputModule } from '@angular/material/input';\nimport { TranslateModule } from '@ngx-translate/core';\nimport { GalaxyBadgeModule } from '@vendasta/galaxy/badge';\nimport { GalaxyFormFieldModule } from '@vendasta/galaxy/form-field';\nimport { GalaxyTooltipModule } from '@vendasta/galaxy/tooltip';\nimport { TagsComponent } from './tags.component';\n\nexport const MODULE_IMPORTS = [\n CommonModule,\n MatAutocompleteModule,\n MatChipsModule,\n MatIconModule,\n MatInputModule,\n ReactiveFormsModule,\n TranslateModule,\n\n GalaxyBadgeModule,\n GalaxyFormFieldModule,\n GalaxyTooltipModule,\n];\n\nexport const MODULE_DECLARATIONS = [TagsComponent];\n\n@NgModule({\n declarations: MODULE_DECLARATIONS,\n exports: MODULE_DECLARATIONS,\n imports: MODULE_IMPORTS,\n})\nexport class GalaxyTagsModule {}\n","export * from './src/tags.module';\n","// Export things like public API, and interfaces from here.\nexport * from './public_api';\n","import { CommonModule } from '@angular/common';\nimport {\n Component,\n computed,\n effect,\n EventEmitter,\n forwardRef,\n inject,\n Input,\n OnDestroy,\n Output,\n signal,\n} from '@angular/core';\nimport { toObservable, toSignal } from '@angular/core/rxjs-interop';\nimport { FormControl, ReactiveFormsModule } from '@angular/forms';\nimport { TranslateModule } from '@ngx-translate/core';\nimport { GalaxyFormFieldModule } from '@vendasta/galaxy/form-field';\nimport { GalaxyTagsModule } from '@vendasta/galaxy/tags';\nimport { debounceTime, distinctUntilChanged, filter, Subscription, switchMap } from 'rxjs';\nimport { SEARCH_DEBOUNCE_MS } from '../constants';\nimport {\n GalaxyAbstractFilterInput,\n GalaxyFilterValueInterface,\n InnerGalaxyFilterChipInjectionToken,\n} from '../interface';\n\nconst MAX_TAG_LENGTH = 100;\n\n@Component({\n selector: 'glxy-tags-filter-input',\n template: `\n \n \n \n \n `,\n providers: [{ provide: GalaxyAbstractFilterInput, useExisting: forwardRef(() => GalaxyTagsFilterInputComponent) }],\n imports: [CommonModule, TranslateModule, ReactiveFormsModule, GalaxyTagsModule, GalaxyFormFieldModule],\n standalone: true,\n})\nexport class GalaxyTagsFilterInputComponent implements GalaxyAbstractFilterInput, OnDestroy {\n MAX_TAG_LENGTH = MAX_TAG_LENGTH;\n\n _tagsFieldId = signal('');\n searchTerm = signal('');\n availableTags = signal([]);\n\n @Input() set tagsFieldId(value: string) {\n this._tagsFieldId.set(value);\n }\n\n @Input() set initialValue(value: GalaxyFilterValueInterface[]) {\n const tags: string[] = value.map((val) => val?.string || '').filter((tag) => tag.length > 0);\n this.formControl.setValue(tags);\n }\n\n @Input() maxTags: number | null = null;\n @Input() set disabled(value: boolean) {\n if (value) {\n this.formControl.disable();\n }\n }\n\n @Output() valueChanges = new EventEmitter();\n formControl: FormControl = new FormControl([], { nonNullable: true });\n\n subscriptions: Subscription[] = [];\n\n private readonly filtersDependencies = inject(InnerGalaxyFilterChipInjectionToken);\n constructor() {\n const tagsUsed = toSignal(this.formControl.valueChanges, { initialValue: [] });\n effect(\n () => {\n const filterValues = tagsUsed().map((tag) => ({ string: tag }));\n this.valueChanges.emit(filterValues);\n },\n { allowSignalWrites: true },\n );\n\n const options$ = toObservable(\n computed(() => {\n return {\n searchTerm: this.searchTerm(),\n tagsFieldId: this._tagsFieldId(),\n };\n }),\n );\n\n const availableTags$ = options$.pipe(\n filter((options) => options.tagsFieldId.length > 0),\n distinctUntilChanged(),\n debounceTime(SEARCH_DEBOUNCE_MS),\n switchMap((o) => this.filtersDependencies.getFieldOptions(o.tagsFieldId, o.searchTerm)),\n );\n\n this.subscriptions.push(availableTags$.subscribe((availableTags) => this.availableTags.set(availableTags)));\n }\n\n ngOnDestroy(): void {\n this.subscriptions.forEach((subscription) => subscription.unsubscribe());\n }\n\n searchTextChanged(searchTerm: string) {\n this.searchTerm.set(searchTerm);\n }\n\n clearValue() {\n this.formControl.setValue([]);\n }\n}\n","import { CommonModule } from '@angular/common';\nimport { Component, EventEmitter, Input, OnDestroy, Output, effect, forwardRef, inject, signal } from '@angular/core';\nimport { toObservable } from '@angular/core/rxjs-interop';\nimport { FormControl, ReactiveFormsModule } from '@angular/forms';\nimport { MatAutocompleteModule } from '@angular/material/autocomplete';\nimport { MatInputModule } from '@angular/material/input';\nimport { MatRadioModule } from '@angular/material/radio';\nimport { TranslateModule } from '@ngx-translate/core';\nimport { GalaxyFormFieldModule } from '@vendasta/galaxy/form-field';\nimport { Subscription, shareReplay } from 'rxjs';\nimport { distinctUntilChanged, filter, switchMap } from 'rxjs/operators';\nimport {\n GalaxyAbstractFilterInput,\n GalaxyFilterValueInterface,\n InnerGalaxyFilterChipInjectionToken,\n} from '../interface';\n\n@Component({\n selector: 'glxy-boolean-filter-input',\n template: `\n \n \n {{ option }}\n \n \n `,\n styleUrls: ['./boolean-filter-input.component.scss'],\n providers: [{ provide: GalaxyAbstractFilterInput, useExisting: forwardRef(() => GalaxyBooleanFilterInputComponent) }],\n imports: [\n CommonModule,\n TranslateModule,\n ReactiveFormsModule,\n MatInputModule,\n GalaxyFormFieldModule,\n MatAutocompleteModule,\n MatRadioModule,\n ],\n standalone: true,\n})\nexport class GalaxyBooleanFilterInputComponent implements GalaxyAbstractFilterInput, OnDestroy {\n @Input() set fieldId(value: string) {\n this._fieldId.set(value);\n }\n\n @Output() valueChanges = new EventEmitter();\n formControl: FormControl = new FormControl('');\n\n _fieldId = signal('');\n availableOptions = signal(['True', 'False']);\n _initialValue = signal([]);\n\n @Input() set initialValue(value: GalaxyFilterValueInterface[]) {\n this._initialValue.set(value);\n }\n @Input() set disabled(value: boolean) {\n if (value) {\n this.formControl.disable();\n }\n }\n\n subscriptions: Subscription[] = [];\n\n private readonly filtersDependencies = inject(InnerGalaxyFilterChipInjectionToken);\n\n constructor() {\n effect(\n () => {\n const initialValue = this._initialValue();\n if (initialValue.length > 0) {\n this.formControl.setValue(initialValue[0].boolean ? 'True' : 'False');\n }\n },\n { allowSignalWrites: true },\n );\n const fieldId$ = toObservable(this._fieldId);\n\n this.subscriptions.push(\n this.formControl.valueChanges.pipe(distinctUntilChanged()).subscribe((value) => {\n if (value === 'True') {\n this.valueChanges.emit([{ boolean: true }]);\n } else if (value === 'False') {\n this.valueChanges.emit([{ boolean: false }]);\n }\n }),\n fieldId$\n .pipe(\n filter((fieldId) => fieldId.length > 0),\n switchMap((fieldId) => this.filtersDependencies.getFieldOptions(fieldId, '')),\n shareReplay(1),\n )\n .subscribe((options) => {\n this.availableOptions.set(options);\n }),\n );\n }\n\n ngOnDestroy(): void {\n this.subscriptions.forEach((subscription) => subscription.unsubscribe());\n }\n\n clearValue() {\n this.formControl.reset();\n }\n}\n","import { GalaxyFilterOperator } from './enums';\n\nexport const filterOperatorToLabel: Record = {\n [GalaxyFilterOperator.FILTER_OPERATOR_INVALID]: 'GALAXY.FILTER.CHIP.OPERATOR.INVALID',\n [GalaxyFilterOperator.FILTER_OPERATOR_IS_EMPTY]: 'GALAXY.FILTER.CHIP.OPERATOR.IS_EMPTY',\n [GalaxyFilterOperator.FILTER_OPERATOR_IS_NOT_EMPTY]: 'GALAXY.FILTER.CHIP.OPERATOR.IS_NOT_EMPTY',\n [GalaxyFilterOperator.FILTER_OPERATOR_IS]: 'GALAXY.FILTER.CHIP.OPERATOR.IS',\n [GalaxyFilterOperator.FILTER_OPERATOR_IS_NOT]: 'GALAXY.FILTER.CHIP.OPERATOR.IS_NOT',\n [GalaxyFilterOperator.FILTER_OPERATOR_IS_ANY]: 'GALAXY.FILTER.CHIP.OPERATOR.IS_ANY',\n [GalaxyFilterOperator.FILTER_OPERATOR_IS_NOT_ANY]: 'GALAXY.FILTER.CHIP.OPERATOR.IS_NOT_ANY',\n [GalaxyFilterOperator.FILTER_OPERATOR_IS_ALL]: 'GALAXY.FILTER.CHIP.OPERATOR.IS_ALL',\n [GalaxyFilterOperator.FILTER_OPERATOR_IS_NOT_ALL]: 'GALAXY.FILTER.CHIP.OPERATOR.IS_NOT_ALL',\n [GalaxyFilterOperator.FILTER_OPERATOR_CONTAINS]: 'GALAXY.FILTER.CHIP.OPERATOR.CONTAINS',\n [GalaxyFilterOperator.FILTER_OPERATOR_DOES_NOT_CONTAIN]: 'GALAXY.FILTER.CHIP.OPERATOR.DOES_NOT_CONTAIN',\n [GalaxyFilterOperator.FILTER_OPERATOR_IS_EQUAL_TO]: 'GALAXY.FILTER.CHIP.OPERATOR.IS_EQUAL_TO',\n [GalaxyFilterOperator.FILTER_OPERATOR_IS_NOT_EQUAL_TO]: 'GALAXY.FILTER.CHIP.OPERATOR.IS_NOT_EQUAL_TO',\n [GalaxyFilterOperator.FILTER_OPERATOR_IS_GREATER_THAN]: 'GALAXY.FILTER.CHIP.OPERATOR.IS_GREATER_THAN',\n [GalaxyFilterOperator.FILTER_OPERATOR_IS_GREATER_THAN_OR_EQUAL_TO]:\n 'GALAXY.FILTER.CHIP.OPERATOR.IS_GREATER_THAN_OR_EQUAL_TO',\n [GalaxyFilterOperator.FILTER_OPERATOR_IS_LESS_THAN]: 'GALAXY.FILTER.CHIP.OPERATOR.IS_LESS_THAN',\n [GalaxyFilterOperator.FILTER_OPERATOR_IS_LESS_THAN_OR_EQUAL_TO]:\n 'GALAXY.FILTER.CHIP.OPERATOR.IS_LESS_THAN_OR_EQUAL_TO',\n [GalaxyFilterOperator.FILTER_OPERATOR_IS_BEFORE]: 'GALAXY.FILTER.CHIP.OPERATOR.IS_BEFORE',\n [GalaxyFilterOperator.FILTER_OPERATOR_IS_BEFORE_OR_ON]: 'GALAXY.FILTER.CHIP.OPERATOR.IS_BEFORE_OR_ON',\n [GalaxyFilterOperator.FILTER_OPERATOR_IS_AFTER]: 'GALAXY.FILTER.CHIP.OPERATOR.IS_AFTER',\n [GalaxyFilterOperator.FILTER_OPERATOR_IS_AFTER_OR_ON]: 'GALAXY.FILTER.CHIP.OPERATOR.IS_AFTER_OR_ON',\n [GalaxyFilterOperator.FILTER_OPERATOR_IS_BETWEEN]: 'GALAXY.FILTER.CHIP.OPERATOR.IS_BETWEEN',\n [GalaxyFilterOperator.FILTER_OPERATOR_IS_NOT_BETWEEN]: 'GALAXY.FILTER.CHIP.OPERATOR.IS_NOT_BETWEEN',\n};\n","import { Component, EventEmitter, forwardRef, Input, Output } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { GalaxyAbstractFilterInput, GalaxyFilterValueInterface } from '../interface';\nimport { GalaxyFilterOperator } from '../enums';\nimport { GalaxyFormFieldModule } from '@vendasta/galaxy/form-field';\nimport { BehaviorSubject, combineLatest, debounceTime, startWith } from 'rxjs';\nimport { FormControl, ReactiveFormsModule } from '@angular/forms';\nimport { TranslateModule } from '@ngx-translate/core';\nimport { MatInputModule } from '@angular/material/input';\nimport { takeUntilDestroyed } from '@angular/core/rxjs-interop';\n\ntype SelectionType = 'single' | 'range';\n\n@Component({\n selector: 'glxy-float-filter-input',\n templateUrl: './float-filter-input.html',\n styleUrls: ['./float-filter-input.scss'],\n providers: [{ provide: GalaxyAbstractFilterInput, useExisting: forwardRef(() => GalaxyFloatFilterInputComponent) }],\n imports: [CommonModule, TranslateModule, MatInputModule, GalaxyFormFieldModule, ReactiveFormsModule],\n standalone: true,\n})\nexport class GalaxyFloatFilterInputComponent implements GalaxyAbstractFilterInput {\n @Input() set operator(value: GalaxyFilterOperator) {\n this.setSelectionType(value);\n }\n\n @Input() set initialValue(value: GalaxyFilterValueInterface[]) {\n if (value?.length === 1) {\n this.setValue(value[0]);\n } else if (value?.length === 2) {\n this.setRangeValue(value[0], value[1]);\n }\n }\n\n @Input() set disabled(value: boolean) {\n if (value) {\n this.valueControl.disable();\n this.endValueControl.disable();\n }\n }\n\n @Output() valueChanges = new EventEmitter();\n\n readonly selectionType$$ = new BehaviorSubject('single');\n readonly valueControl = new FormControl(undefined, { nonNullable: true });\n readonly endValueControl = new FormControl(undefined, { nonNullable: true });\n\n constructor() {\n combineLatest([\n this.selectionType$$,\n this.valueControl.valueChanges.pipe(startWith(undefined)),\n this.endValueControl.valueChanges.pipe(startWith(undefined)),\n ])\n .pipe(takeUntilDestroyed(), debounceTime(100))\n .subscribe(([selectionType, value, endValue]) => {\n if (selectionType === 'single') {\n this.valueChanges.emit([{ float: value }]);\n } else {\n this.valueChanges.emit([{ float: value }, { float: endValue }]);\n }\n });\n }\n\n clearValue() {\n this.valueControl.reset();\n this.endValueControl.reset();\n }\n\n private setSelectionType(operator: GalaxyFilterOperator): void {\n const rangeOperators = [\n GalaxyFilterOperator.FILTER_OPERATOR_IS_BETWEEN,\n GalaxyFilterOperator.FILTER_OPERATOR_IS_NOT_BETWEEN,\n ];\n this.selectionType$$.next(rangeOperators.includes(operator) ? 'range' : 'single');\n }\n\n private setValue(value: GalaxyFilterValueInterface): void {\n this.valueControl.setValue(value.float);\n this.endValueControl.setValue(undefined);\n }\n\n private setRangeValue(startValue: GalaxyFilterValueInterface, endValue: GalaxyFilterValueInterface): void {\n this.valueControl.setValue(startValue.float);\n this.endValueControl.setValue(endValue.float);\n }\n}\n","
\n @if ((selectionType$$ | async) === 'single') {\n \n \n \n } @else {\n \n \n \n \n \n \n \n }\n
\n","import { CommonModule } from '@angular/common';\nimport {\n Component,\n computed,\n EventEmitter,\n inject,\n Input,\n Output,\n signal,\n ViewChild,\n WritableSignal,\n} from '@angular/core';\nimport { toSignal } from '@angular/core/rxjs-interop';\nimport { FormControl, ReactiveFormsModule } from '@angular/forms';\nimport { MatButtonModule } from '@angular/material/button';\nimport { MatInputModule } from '@angular/material/input';\nimport { MatSelectModule } from '@angular/material/select';\nimport { TranslateModule } from '@ngx-translate/core';\nimport { GalaxyFormFieldModule } from '@vendasta/galaxy/form-field';\nimport { GalaxyFilterOperator, GalaxyFilterType } from '../enums';\nimport { GalaxyCheckboxFilterInputComponent } from '../filter-inputs/checkbox-filter-input.component';\nimport { GalaxyCustomFilterInputComponent } from '../filter-inputs/custom-filter-input.component';\nimport { GalaxyDateFilterInputComponent } from '../filter-inputs/date-filter-input';\nimport { GalaxyNoInputFilterInputComponent } from '../filter-inputs/no-input.component';\nimport { GalaxyNoneSelectedFilterInputComponent } from '../filter-inputs/none-selected-input.component';\nimport { GalaxyRadioFilterInputComponent } from '../filter-inputs/radio-filter-input.component';\nimport { GalaxyStringFilterInputComponent } from '../filter-inputs/string-filter-input.component';\nimport { GalaxyTagsFilterInputComponent } from '../filter-inputs/tags-filter-input.component';\nimport { GalaxyBooleanFilterInputComponent } from '../filter-inputs/boolean-filter-input.component';\nimport { filterOperatorToLabel } from '../filter-operator-labels';\nimport {\n GalaxyAbstractFilterInput,\n GalaxyFilterDefinitionInterface,\n GalaxyFilterInterface,\n GalaxyFilterValueInterface,\n InnerGalaxyFilterChipInjectionToken,\n} from '../interface';\nimport { GalaxyFloatFilterInputComponent } from '../filter-inputs/float-filter-input';\n\nenum FilterInputType {\n FILTER_INPUT_TYPE_NO_OPERATOR_SELECTED = 'NoOperatorSelected',\n FILTER_INPUT_TYPE_NO_INPUT = 'NoInputFilter',\n FILTER_INPUT_TYPE_SINGLE_SELECT_STRING = 'SingleSelectStringInput',\n FILTER_INPUT_TYPE_SINGLE_SELECT_TAG = 'SingleSelectTagInput',\n FILTER_INPUT_TYPE_MULTI_SELECT_TAG = 'MultiSelectTagInput',\n FILTER_INPUT_TYPE_DATE_SELECT = 'DateSelectInput',\n FILTER_INPUT_TYPE_MULTI_SELECT_STRING = 'MultiSelectStringInput',\n FILTER_INPUT_TYPE_SINGLE_SELECT_RADIO = 'SingleSelectRadioInput',\n FILTER_INPUT_TYPE_MULTI_SELECT_CHECKBOX = 'MultiSelectCheckboxInput',\n FILTER_INPUT_TYPE_CUSTOM_INPUT = 'CustomInput',\n FILTER_INPUT_TYPE_FLOAT = 'FloatInput',\n FILTER_INPUT_TYPE_BOOLEAN = 'BooleanInput',\n}\n\n@Component({\n selector: 'glxy-edit-filter-modal',\n templateUrl: './galaxy-edit-filter-modal.component.html',\n styleUrls: ['./galaxy-edit-filter-modal.component.scss'],\n imports: [\n CommonModule,\n TranslateModule,\n MatSelectModule,\n MatButtonModule,\n MatInputModule,\n GalaxyFormFieldModule,\n ReactiveFormsModule,\n GalaxyStringFilterInputComponent,\n GalaxyNoInputFilterInputComponent,\n GalaxyNoneSelectedFilterInputComponent,\n GalaxyTagsFilterInputComponent,\n GalaxyDateFilterInputComponent,\n GalaxyNoInputFilterInputComponent,\n GalaxyNoneSelectedFilterInputComponent,\n GalaxyTagsFilterInputComponent,\n GalaxyCheckboxFilterInputComponent,\n GalaxyRadioFilterInputComponent,\n GalaxyCustomFilterInputComponent,\n GalaxyFloatFilterInputComponent,\n GalaxyBooleanFilterInputComponent,\n ],\n standalone: true,\n})\nexport class GalaxyEditFilterModalComponent {\n @ViewChild(GalaxyAbstractFilterInput) filterInput!: GalaxyAbstractFilterInput;\n\n @Output() applyFilterChanges = new EventEmitter();\n\n FilterInputType = FilterInputType;\n\n selectedOperatorControl: FormControl = new FormControl(\n GalaxyFilterOperator.FILTER_OPERATOR_IS,\n { nonNullable: true },\n );\n\n // this flows in one direction: from the filter inputs into this component\n // attempting to set it within this component will result in it being overwritten\n // if you need to clear the filter input, use the clearValue() method\n filterValues: WritableSignal = signal([]);\n\n // we expect this to be set once and never change\n _initialFilter: WritableSignal = signal(null);\n\n @Input() set initialFilter(initialFilter: GalaxyFilterInterface | null) {\n if (initialFilter) {\n this.selectedOperatorControl.setValue(initialFilter.operator);\n }\n if (this.filterDefinition?.lockedValue) {\n this.selectedOperatorControl.disable();\n }\n this._initialFilter.set(initialFilter);\n }\n\n @Input({ required: true }) filterDefinition!: GalaxyFilterDefinitionInterface;\n\n operatorOptions = computed(() => this.getOperatorOptions(this._initialFilter()));\n inputType = computed(() => {\n const foundOverride = this.filterInputOverrides().find(\n (override) => override.fieldId === this._initialFilter()?.fieldId,\n );\n const inputType = this.getInputType(this._initialFilter(), this.selectedOperator());\n if (foundOverride && inputType !== FilterInputType.FILTER_INPUT_TYPE_NO_INPUT) {\n return FilterInputType.FILTER_INPUT_TYPE_CUSTOM_INPUT;\n }\n return inputType;\n });\n\n operatorControl = toSignal(this.selectedOperatorControl.valueChanges, {\n initialValue: this.selectedOperatorControl.value,\n });\n\n selectedOperator = computed(() => this.operatorControl());\n\n // used to validate that the filter input has been set when applying it\n filterValuesSet = computed(() => {\n return this.filterValues().length > 0;\n });\n\n // float tolerance will be set to 0.001 if a float filter is present\n filterFloatTolerance = computed(() => {\n const filterValues = this.filterValues();\n if (filterValues?.findIndex((value) => value.float !== undefined) >= 0) {\n return 0.001;\n }\n return undefined;\n });\n\n private readonly filtersDependencies = inject(InnerGalaxyFilterChipInjectionToken);\n filterInputOverrides = toSignal(this.filtersDependencies.getFilterInputOverrides(), {\n initialValue: [],\n });\n filterOverride = computed(() => {\n return this.filterInputOverrides().find((override) => override.fieldId === this._initialFilter()?.fieldId);\n });\n\n applyFilter() {\n const selectedOperator = this.selectedOperator();\n const filterValues = this.filterValues();\n const _filterValuesSet = this.filterValuesSet();\n const filter = this._initialFilter();\n const floatTolerance = this.filterFloatTolerance();\n\n const operatorHasNoInput = [\n GalaxyFilterOperator.FILTER_OPERATOR_IS_NOT_EMPTY,\n GalaxyFilterOperator.FILTER_OPERATOR_IS_EMPTY,\n ].includes(selectedOperator);\n if (\n selectedOperator === GalaxyFilterOperator.FILTER_OPERATOR_INVALID ||\n (!_filterValuesSet && !operatorHasNoInput && !this.filterDefinition.preset) // presets are never removed, so they can have an empty value\n ) {\n return;\n }\n\n // take initial filter and apply delta\n if (filter) {\n filter.operator = selectedOperator;\n filter.values = filterValues;\n filter.floatTolerance = floatTolerance;\n\n this.applyFilterChanges.emit(filter);\n }\n }\n\n getOperatorOptions(filter: GalaxyFilterInterface | null): OperatorOption[] {\n if (!filter) {\n return [];\n }\n const supportedOperators = this.filterDefinition.supportedOperators;\n if (supportedOperators === undefined) {\n return [];\n }\n\n return supportedOperators.map((operator) => ({\n operator: operator,\n label: filterOperatorToLabel[operator],\n }));\n }\n\n filterValuesChanged(filterValues: GalaxyFilterValueInterface[]) {\n this.filterValues.set(filterValues);\n }\n\n private getInputType(filter: GalaxyFilterInterface | null, operator: GalaxyFilterOperator): FilterInputType {\n if (this.filterDefinition.type === GalaxyFilterType.FILTER_TYPE_CHECKBOX) {\n if (\n [\n GalaxyFilterOperator.FILTER_OPERATOR_IS,\n GalaxyFilterOperator.FILTER_OPERATOR_IS_NOT,\n GalaxyFilterOperator.FILTER_OPERATOR_IS_EQUAL_TO,\n GalaxyFilterOperator.FILTER_OPERATOR_IS_NOT_EQUAL_TO,\n ].includes(operator)\n ) {\n return FilterInputType.FILTER_INPUT_TYPE_SINGLE_SELECT_RADIO;\n }\n return FilterInputType.FILTER_INPUT_TYPE_MULTI_SELECT_CHECKBOX;\n }\n if (\n [GalaxyFilterOperator.FILTER_OPERATOR_IS_NOT_EMPTY, GalaxyFilterOperator.FILTER_OPERATOR_IS_EMPTY].includes(\n operator,\n )\n ) {\n return FilterInputType.FILTER_INPUT_TYPE_NO_INPUT;\n } else if (this.filterDefinition.type === GalaxyFilterType.FILTER_TYPE_DATE) {\n return FilterInputType.FILTER_INPUT_TYPE_DATE_SELECT;\n } else if (this.filterDefinition.type === GalaxyFilterType.FILTER_TYPE_FLOAT) {\n return FilterInputType.FILTER_INPUT_TYPE_FLOAT;\n } else if (\n [\n GalaxyFilterOperator.FILTER_OPERATOR_IS,\n GalaxyFilterOperator.FILTER_OPERATOR_IS_NOT,\n GalaxyFilterOperator.FILTER_OPERATOR_CONTAINS,\n GalaxyFilterOperator.FILTER_OPERATOR_DOES_NOT_CONTAIN,\n ].includes(operator)\n ) {\n switch (this.filterDefinition.type) {\n case GalaxyFilterType.FILTER_TYPE_STRING:\n return FilterInputType.FILTER_INPUT_TYPE_SINGLE_SELECT_STRING;\n case GalaxyFilterType.FILTER_TYPE_TAG:\n return FilterInputType.FILTER_INPUT_TYPE_SINGLE_SELECT_TAG;\n case GalaxyFilterType.FILTER_TYPE_BOOLEAN:\n return FilterInputType.FILTER_INPUT_TYPE_BOOLEAN;\n }\n } else if (\n [\n GalaxyFilterOperator.FILTER_OPERATOR_IS_ANY,\n GalaxyFilterOperator.FILTER_OPERATOR_IS_NOT_ANY,\n GalaxyFilterOperator.FILTER_OPERATOR_IS_ALL,\n GalaxyFilterOperator.FILTER_OPERATOR_IS_NOT_ALL,\n ].includes(operator)\n ) {\n switch (this.filterDefinition.type) {\n case GalaxyFilterType.FILTER_TYPE_TAG:\n return FilterInputType.FILTER_INPUT_TYPE_MULTI_SELECT_TAG;\n case GalaxyFilterType.FILTER_TYPE_STRING:\n return FilterInputType.FILTER_INPUT_TYPE_MULTI_SELECT_STRING;\n }\n }\n return FilterInputType.FILTER_INPUT_TYPE_NO_OPERATOR_SELECTED;\n }\n}\n\nexport interface OperatorOption {\n operator: GalaxyFilterOperator;\n label: string;\n}\n","\n
\n {{ filterDefinition?.fieldName ?? '' }}\n
\n
\n
\n
1; else operatorLabel\" class=\"col field-col\">\n \n \n \n {{ operatorOption.label | translate }}\n \n \n \n
\n \n
\n {{ operatorOptions()[0].label | translate }}\n
\n \n
\n {{ 'GALAXY.FILTER.CHIP.OPERATOR.IS' | translate }}\n
\n
\n
\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n
\n 1\">\n \n \n
\n
\n\n\n \n\n","import { CommonModule, DatePipe } from '@angular/common';\nimport {\n Component,\n EventEmitter,\n Input,\n OnInit,\n Output,\n Signal,\n Type,\n ViewChild,\n WritableSignal,\n computed,\n effect,\n inject,\n signal,\n} from '@angular/core';\nimport { toSignal } from '@angular/core/rxjs-interop';\nimport { ReactiveFormsModule } from '@angular/forms';\nimport { MatChipsModule } from '@angular/material/chips';\nimport { MatIconModule } from '@angular/material/icon';\nimport { MatSelectModule } from '@angular/material/select';\nimport { TranslateModule, TranslateService } from '@ngx-translate/core';\nimport { GalaxyFormFieldModule } from '@vendasta/galaxy/form-field';\nimport { GalaxyPopoverModule, PopoverComponent, PopoverPositions as pops } from '@vendasta/galaxy/popover';\nimport { formatDate } from '@vendasta/galaxy/utility/date-utils';\nimport { of } from 'rxjs';\nimport { v4 as uuidv4 } from 'uuid';\nimport { GalaxyAddFilterModalComponent } from './add-filter-modal/galaxy-add-filter-modal.component';\nimport { GalaxyCustomFilterChipComponent } from './custom-filter-chip.component';\nimport { GalaxyEditFilterModalComponent } from './edit-filter-modal/galaxy-edit-filter-modal.component';\nimport { GalaxyDateDefault, GalaxyFilterOperator, GalaxyFilterType } from './enums';\nimport {\n GalaxyAbstractFilterChip,\n GalaxyFilterChipDependencies,\n GalaxyFilterChipInjectionToken,\n GalaxyFilterDefinitionInterface,\n GalaxyFilterInputOverride,\n GalaxyFilterInterface,\n GalaxyStringFilterValue,\n GalaxySymbolsFilterOperators,\n InnerGalaxyFilterChipInjectionToken,\n} from './interface';\nimport { FILTER_RANGE_OPERATORS } from './constants';\n\ninterface SelectedFilterInterface {\n filter: GalaxyFilterInterface;\n definition: GalaxyFilterDefinitionInterface;\n}\n\n@Component({\n standalone: true,\n selector: 'glxy-filter-chips',\n templateUrl: './galaxy-filter-chips.component.html',\n styleUrls: ['./galaxy-filter-chips.component.scss'],\n imports: [\n CommonModule,\n MatSelectModule,\n ReactiveFormsModule,\n TranslateModule,\n GalaxyFormFieldModule,\n MatIconModule,\n GalaxyPopoverModule,\n GalaxyEditFilterModalComponent,\n MatChipsModule,\n GalaxyAddFilterModalComponent,\n DatePipe,\n GalaxyCustomFilterChipComponent,\n ],\n providers: [\n DatePipe,\n {\n provide: InnerGalaxyFilterChipInjectionToken,\n useFactory: () => {\n const deps = inject(GalaxyFilterChipInjectionToken);\n const depsWithDefaults: Required = {\n listObjectFilters: deps.listObjectFilters.bind(deps),\n getFieldOptions: deps.getFieldOptions?.bind?.(deps) ?? (() => of([])),\n getInitialAppliedFilters: deps.getInitialAppliedFilters?.bind?.(deps) ?? (async () => []),\n getFilterInputOverrides: deps.getFilterInputOverrides?.bind?.(deps) ?? (() => of([])),\n };\n return depsWithDefaults;\n },\n },\n ],\n})\nexport class GalaxyFilterChipsComponent implements OnInit {\n @ViewChild('addFilterPopover') addFilterPopover!: PopoverComponent;\n @ViewChild('editFilterPopover') editFilterPopover!: PopoverComponent;\n\n @Input() addFiltersHeader = '';\n // showAddFilter defaults to true. It can be useful if you only wish to use preset filters.\n @Input() showAddFilter = true;\n @Output() filtersChanged = new EventEmitter();\n\n private readonly filtersDependencies = inject(InnerGalaxyFilterChipInjectionToken);\n\n filterDefinitions: Signal = toSignal(\n this.filtersDependencies.listObjectFilters(''),\n );\n filters: WritableSignal = signal([]);\n\n selectedFilter: WritableSignal = signal(null);\n filterInputOverrides = toSignal(this.filtersDependencies.getFilterInputOverrides());\n filterOverrideMap = computed(() => {\n const overrideMap = new Map();\n for (const override of this.filterInputOverrides() || []) {\n overrideMap.set(override.fieldId, override);\n }\n return overrideMap;\n });\n\n popoverPositions = [pops.BottomLeft, pops.Bottom, pops.BottomRight, pops.TopLeft, pops.TopRight];\n filtersChips: Signal = computed(() =>\n this.filtersToFilterChips(this.filterDefinitions(), this.filters(), this.filterOverrideMap()),\n );\n canClear = computed(() => {\n const nonPresetFilters = this.filters().filter((f) => {\n const def = this.filterDefinitions()?.find((d) => d.fieldId === f?.fieldId);\n return !def?.lockedValue || !def?.preset || f?.values?.length;\n });\n return nonPresetFilters.length >= 1;\n });\n constructor(\n private readonly translate: TranslateService,\n private readonly datePipe: DatePipe,\n ) {\n effect(() => this.filtersChanged.emit(this.filters()), { allowSignalWrites: true });\n }\n\n ngOnInit(): void {\n this.filtersDependencies\n .getInitialAppliedFilters()\n .then((filters) => this.filters.set(filters))\n .catch((err) => console.error(`failed to load default filters: ${err}`));\n }\n\n newFilterId(): string {\n return `filter-${uuidv4()}`;\n }\n\n clearFilters(): void {\n this.filters.update((filters) => {\n const presetFilters = filters.filter((f) => {\n const def = this.filterDefinitions()?.find((d) => d.fieldId === f?.fieldId);\n return def?.preset && !def?.lockedValue;\n });\n const presetResettedFilterValues = presetFilters.map((f) => {\n return { ...f, values: [] };\n });\n const lockedFilterValues = filters.filter((f) => {\n const def = this.filterDefinitions()?.find((d) => d.fieldId === f?.fieldId);\n return def?.lockedValue;\n });\n return [...presetResettedFilterValues, ...lockedFilterValues];\n });\n }\n\n clearFilterValue(filter: FilterChipInterface): void {\n this.filters.update((filters) => {\n return filters.map((f) => {\n if (f?.filterId === filter.filterId) {\n return { ...f, values: [] };\n }\n return f;\n });\n });\n }\n\n removeFilter(filter: GalaxyFilterInterface): void {\n this.filters.update((filters) => filters.filter((f) => f?.filterId !== filter?.filterId));\n }\n\n // we won't actually add a filter until its details are filled in\n selectNewFilterFromDefinition(filterDefinition: GalaxyFilterDefinitionInterface): void {\n let defaultOperator = GalaxyFilterOperator.FILTER_OPERATOR_IS;\n if (filterDefinition?.type === GalaxyFilterType.FILTER_TYPE_TAG) {\n defaultOperator = GalaxyFilterOperator.FILTER_OPERATOR_IS_ALL;\n } else if (filterDefinition?.type === GalaxyFilterType.FILTER_TYPE_FLOAT) {\n defaultOperator = GalaxyFilterOperator.FILTER_OPERATOR_IS_EQUAL_TO;\n // Initially set dropdown to first supported operator if available\n } else if (filterDefinition?.supportedOperators?.[0]) {\n defaultOperator = filterDefinition.supportedOperators[0];\n }\n const filter: GalaxyFilterInterface = {\n fieldId: filterDefinition.fieldId ?? '',\n operator: defaultOperator,\n };\n this.selectFilter(filter);\n }\n\n selectFilter(filter: GalaxyFilterInterface | null): void {\n if (!filter) {\n this.selectedFilter.set(null);\n return;\n }\n const definition = this.filterDefinitions()?.find((d) => d.fieldId === filter?.fieldId) ?? null;\n if (!definition) {\n this.selectedFilter.set(null);\n return;\n }\n\n const selected = {\n filter: {\n fieldId: filter.fieldId,\n filterId: filter.filterId,\n operator: filter.operator,\n values: filter.values,\n floatTolerance: filter.floatTolerance,\n },\n definition: definition,\n };\n this.selectedFilter.set(selected);\n }\n\n openAddFilter(): void {\n this.selectFilter(null);\n this.addFilterPopover.open();\n }\n\n openEditFilter(filter: GalaxyFilterInterface): void {\n this.selectFilter(filter ?? this.selectedFilter()?.filter);\n }\n\n addSelectedFilter(filter: GalaxyFilterInterface): void {\n filter.filterId = this.newFilterId();\n this.filters.update((filters) => [...filters, filter]);\n this.closePopovers();\n }\n\n updateSelectedFilter(filter: GalaxyFilterInterface): void {\n this.filters.update((filters) => filters.map((f) => (f?.filterId === filter.filterId ? filter : f)));\n this.closePopovers();\n }\n\n closePopovers() {\n // editing could occur from either popover, so try to close both\n if (this.editFilterPopover) {\n this.editFilterPopover.close();\n }\n if (this.addFilterPopover) {\n this.addFilterPopover.close();\n }\n this.selectFilter(null);\n }\n\n private getFilterChipOverride(\n filter: GalaxyFilterInterface,\n filterInputOverrides: Map,\n ): Type | null {\n const filterOverride = filterInputOverrides.get(filter.fieldId);\n if (!filterOverride || !filterOverride.filterChip) {\n return null;\n }\n return filterOverride.filterChip;\n }\n\n private filtersToFilterChips(\n definition: GalaxyFilterDefinitionInterface[] | undefined,\n filters?: GalaxyFilterInterface[],\n filterOverrideMap?: Map,\n ): FilterChipInterface[] {\n if (!filters) {\n return [];\n }\n const newFilters: FilterChipInterface[] = filters.map((filter) => {\n const definitionForFilter = definition?.find((d) => d.fieldId === filter.fieldId);\n const filterValues = filter?.values;\n const operatorSymbol =\n GalaxySymbolsFilterOperators[filter?.operator || GalaxyFilterOperator.FILTER_OPERATOR_INVALID];\n const symbol = filterValues && filterValues.length > 0 ? this.translate.instant(operatorSymbol) : '';\n\n if (\n !filterValues?.length &&\n (filter.operator === GalaxyFilterOperator.FILTER_OPERATOR_IS_NOT_EMPTY ||\n filter.operator === GalaxyFilterOperator.FILTER_OPERATOR_IS_EMPTY)\n ) {\n return {\n ...filter,\n definition: definitionForFilter,\n operatorSymbol: this.translate.instant(operatorSymbol),\n canHaveEmptyValue: true,\n };\n }\n\n if (!filterValues?.length) {\n return {\n ...filter,\n definition: definitionForFilter,\n operatorSymbol: symbol,\n };\n }\n\n const hasStringProperty = Object.prototype.hasOwnProperty.call(filterValues[0], 'string');\n\n if (hasStringProperty) {\n if (filterValues.length <= 1) {\n return {\n ...filter,\n definition: definitionForFilter,\n operatorSymbol: symbol,\n selectedValue: filterValues[0].string,\n };\n } else {\n return {\n ...filter,\n definition: definitionForFilter,\n operatorSymbol: symbol,\n selectedValue: filterValues[0].string + ' +' + (filterValues.length - 1),\n };\n }\n }\n\n // handle float filter chips\n if (filterValues[0].float !== undefined) {\n const from = filterValues[0].float.toString();\n if (FILTER_RANGE_OPERATORS.includes(filter.operator)) {\n const to = filterValues[1]?.float?.toString() ?? '';\n return {\n ...filter,\n definition: definitionForFilter,\n operatorSymbol: symbol,\n selectedValue: `${from} - ${to}`,\n };\n }\n return {\n ...filter,\n definition: definitionForFilter,\n operatorSymbol: symbol,\n selectedValue: from,\n };\n }\n\n const hasBooleanProperty = Object.prototype.hasOwnProperty.call(filterValues[0], 'boolean');\n if (hasBooleanProperty) {\n return {\n ...filter,\n definition: definitionForFilter,\n operatorSymbol: symbol,\n selectedValue: filterValues[0].boolean ? 'True' : 'False',\n };\n }\n\n const dateDefaultStringFilter = [\n GalaxyFilterOperator.FILTER_OPERATOR_IS,\n GalaxyFilterOperator.FILTER_OPERATOR_IS_NOT,\n GalaxyFilterOperator.FILTER_OPERATOR_IS_BEFORE,\n GalaxyFilterOperator.FILTER_OPERATOR_IS_BEFORE_OR_ON,\n GalaxyFilterOperator.FILTER_OPERATOR_IS_AFTER,\n GalaxyFilterOperator.FILTER_OPERATOR_IS_AFTER_OR_ON,\n ];\n const { dateDefault = GalaxyDateDefault.DATE_DEFAULT_INVALID } = filterValues[0];\n let translateFilter = this.translate.instant(GalaxyStringFilterValue[dateDefault]);\n if (filterValues[0].date) {\n translateFilter = formatDate(filterValues[0].date);\n }\n\n if (\n dateDefaultStringFilter.includes(filter.operator || GalaxyFilterOperator.FILTER_OPERATOR_INVALID) &&\n !hasStringProperty\n ) {\n return {\n ...filter,\n definition: definitionForFilter,\n operatorSymbol: symbol,\n selectedValue: translateFilter,\n };\n }\n\n if (\n filter.operator === GalaxyFilterOperator.FILTER_OPERATOR_IS_NOT_BETWEEN ||\n filter.operator === GalaxyFilterOperator.FILTER_OPERATOR_IS_BETWEEN\n ) {\n const fromDate = this.datePipe.transform(filterValues[0].date?.toString(), 'shortDate');\n const toDate = this.datePipe.transform(filterValues[1].date?.toString(), 'shortDate');\n\n return {\n ...filter,\n definition: definitionForFilter,\n operatorSymbol: symbol,\n selectedValue: fromDate + ' - ' + toDate,\n };\n }\n\n return {\n ...filter,\n definition: definitionForFilter,\n };\n });\n const filtersWithOverride: FilterChipInterface[] = newFilters.map((filter) => {\n const overrideChip = this.getFilterChipOverride(filter, filterOverrideMap ?? new Map());\n if (overrideChip !== null && !filter.canHaveEmptyValue) {\n return {\n ...filter,\n customChip: overrideChip,\n };\n }\n return filter;\n });\n return filtersWithOverride;\n }\n}\n\ninterface FilterChipInterface extends GalaxyFilterInterface {\n definition?: GalaxyFilterDefinitionInterface;\n operatorSymbol?: string;\n selectedValue?: string;\n canHaveEmptyValue?: boolean;\n customChip?: Type;\n}\n","
\n \n \n \n \n {{ filter.definition?.fieldName }}\n \n {{ filter.operatorSymbol }}\n \n \n \n \n \n \n {{ filter.selectedValue }}\n \n \n \n \n cancel\n \n\n \n \n \n \n \n\n
\n \n add\n {{ 'GALAXY.FILTER.CHIP.ADD_FILTER' | translate }}\n \n \n \n \n \n \n \n \n \n \n
\n
\n","import { GalaxyFilterChipsComponent } from './galaxy-filter-chips.component';\nimport { NgModule } from '@angular/core';\n\nexport const MODULE_IMPORTS = [GalaxyFilterChipsComponent];\n\nexport const MODULE_EXPORTS = [GalaxyFilterChipsComponent];\n\n@NgModule({\n // This module uses standalone components - we just use the module to remain consistent\n declarations: [],\n imports: MODULE_IMPORTS,\n exports: MODULE_EXPORTS,\n})\nexport class GalaxyFilterChipsModule {}\n","export * from './src/filter-chips.module';\nexport * from './src/enums';\nexport * from './src/interface';\n","// Export things like public API, and interfaces from here.\nexport * from './public_api';\n","import { Injectable } from '@angular/core';\nimport { FormGroup } from '@angular/forms';\nimport { Environment, EnvironmentService } from '@galaxy/core';\nimport { CrmObjectInterface, FieldValueInterface } from '@vendasta/crm';\n\nexport const StandardExternalIds = {\n FirstName: 'standard__first_name',\n LastName: 'standard__last_name',\n PhoneNumber: 'standard__phone_number',\n Email: 'standard__email',\n Tags: 'standard__tags',\n ActivityRecordChangeType: 'standard__record_change_type',\n ContactCompanyName: 'standard__contact_company_name',\n ChangeRecordChangeType: 'standard__change_record_change_type',\n};\n\n// these are not external_ids\n// system fields do not have a UUID generated for them but are instead set from a predefined set of values\nexport const SystemFieldIds = {\n ActivityCreated: 'system__activity_created',\n ActivityUpdated: 'system__activity_updated',\n ActivityEffectiveDate: 'system__activity_effective',\n ActivityID: 'system__activity_id',\n ActivityType: 'system__activity_activity_type',\n ActivityOwnerID: 'system__activity_owner_id',\n ContactCreated: 'system__contact_created',\n ContactUpdated: 'system__contact_updated',\n ContactID: 'system__contact_id',\n ContactExternalID: 'system__contact_external_id',\n ContactOwnerID: 'system__contact_owner_id',\n ContactGroupID: 'system__contact_group_id',\n CompanyCreated: 'system__company_created',\n CompanyUpdated: 'system__company_updated',\n CompanyID: 'system__company_id',\n CompanyExternalID: 'system__company_external_id',\n CompanyOwnerID: 'system__company_owner_id',\n CompanyGroupID: 'system__company_group_id',\n};\n\nexport const ContactCustomColumns = {\n FullName: 'fullName',\n FullAddress: 'fullAddress',\n PrimaryCompanyName: 'primaryCompanyName',\n};\n\nexport const CompanyCustomColumns = {\n FullAddress: 'fullAddress',\n ParentCompanyName: 'parentCompanyName',\n};\n\nexport const TaskCustomColumns = {\n AssignedTo: 'assignedTo',\n};\n\nexport const StandardIds = {\n ActivityManuallyLogged: 'FieldID-836fb592-2def-4607-8ff6-58a9fd915034',\n ActivityNoteBody: 'FieldID-88134dbb-5bec-4a96-ac83-6896eacf6ead',\n ActivityNoteTitle: 'FieldID-47fbed3b-824e-4d94-959e-ea5accbd10a3',\n ActivityEmailType: 'FieldID-6fbd0e7d-0af4-4f0e-8816-01aa2c4433d6',\n ActivityEmailDirection: 'FieldID-56236ac1-44a9-4cde-8020-5ff41881923f',\n ActivityEmailStatus: 'FieldID-5a15fea4-cc20-498c-a55b-97938775f00e',\n ActivityEmailBody: 'FieldID-be2d2528-0126-4914-ab53-ffc1ffb03a08',\n ActivityEmailSubject: 'FieldID-6d18abbb-bb6f-4c75-98e2-2333fb6315d3',\n ActivityEmailHeaders: 'FieldID-07775d45-b2b8-44fa-9418-f40bb296eea2',\n ActivityEmailDate: 'FieldID-85b69e6e-64de-45ee-b865-c44144e37d60',\n ActivityCampaignID: 'FieldID-96b1b1b8-6534-4b2c-a974-5c45cf05e556',\n ActivityCallDirection: 'FieldID-cfc68004-2622-4c2d-a370-ef7f03b35d4b',\n ActivityCallOutcome: 'FieldID-74f24db8-bd19-4f42-84a0-00791769469e',\n ActivityCallDuration: 'FieldID-22498095-16f0-44cd-ae44-d2abfce09663',\n ActivityCallFromNumber: 'FieldID-80835376-c944-4f60-8dec-8ffdf779f2a1',\n ActivityCallToNumber: 'FieldID-9643b618-e11f-4e03-80a2-6e01384faca9',\n ActivityCallRecordingURL: 'FieldID-c4888a86-f334-452f-a6a5-c23ecffdd2e0',\n ActivityCallBody: 'FieldID-3bfa5b22-d263-4cf1-bf57-70fe644d95a6',\n ActivityCallStatus: 'FieldID-a56c7fe2-a1b7-4a90-9142-67e10e87d303',\n ActivityCallDate: 'FieldID-d3125adc-2ad3-4227-9c39-291a536d28fe',\n ActivityCallRecordingUrl: 'FieldID-c4888a86-f334-452f-a6a5-c23ecffdd2e0',\n ActivityMeetingBody: 'FieldID-e6661bd3-df23-4859-b073-8ab14a46ce8d',\n ActivityMeetingInternalNotes: 'FieldID-82d7e564-4fec-4cab-809e-8abfeb8cd961',\n ActivityMeetingURL: 'FieldID-7eb03173-ba5b-4ec7-b4c7-3e32257871d3',\n ActivityMeetingLocation: 'FieldID-4e388221-1b84-46e5-88c1-70bcc8df63d1',\n ActivityMeetingStartTime: 'FieldID-019f1d17-8663-4a82-8895-eb9e94320d1e',\n ActivityMeetingEndTime: 'FieldID-296520b8-6289-4924-a3b7-5c7bb085c3e2',\n ActivityMeetingOutcome: 'FieldID-98fe825a-82b3-4f4b-ae5f-0fcc08369668',\n ActivityMeetingStatus: 'FieldID-a7b66d53-12e3-4f22-a42c-6f0ccc26ab56',\n ActivityMeetingDuration: 'FieldID-f1118e0f-bbcc-4ae9-b0a6-d95c1db37777',\n ActivityName: 'FieldID-be62ace6-9cd8-4899-b283-82ea9c2facb1',\n ActivitySourceName: 'FieldID-508a87c7-8c3e-4664-a3dc-6626fafb3fce',\n ActivityTaskBody: 'FieldID-5cbae7eb-51a6-4de5-ace2-99f41d2869af',\n ActivityTaskDueDate: 'FieldID-aa757187-94a4-422f-88b1-2b4b7d236f85',\n ActivityTaskPriority: 'FieldID-5ee74662-8a88-40df-b2bd-e1899cf7533b',\n ActivityTaskStatus: 'FieldID-b4d2e328-5792-4226-baad-163509af6cd9',\n ActivityTaskType: 'FieldID-79ba5085-0c91-4d5e-bb40-8c4302817408',\n ActivityTags: 'FieldID-244bd78f-8022-4bc6-a746-daf1427f0d6f',\n ActivityCommunicationChannel: 'FieldID-e684b889-06e9-4f17-901a-974e423ac44e',\n ActivityCommunicationOutcome: 'FieldID-4574fcba-ae33-4f40-ad33-dfb5c12d5f7b',\n ActivityCommunicationDirection: 'FieldID-fb96f396-b75e-4eb2-8411-c1399f734745',\n ActivityCommunicationFromId: 'FieldID-180dc101-2ba3-414d-9f1f-62cd62248d62',\n ActivityCommunicationToId: 'FieldID-d1045c66-f262-4631-b5cc-efea42b6f04d',\n ActivityCommunicationBody: 'FieldID-326742c0-d5ac-480c-b73e-0c1e6085f14a',\n ActivityCommunicationDate: 'FieldID-1ab5f7a8-4517-4992-a31b-2af9d2735870',\n ActivityUrl: 'FieldID-e1b74b4f-9f6c-4fb5-a251-4621b89a14ed',\n ActivityUrlName: 'FieldID-26c17f01-6ca8-4a3c-8bb2-ddf3ba4a5677',\n ActivityOpportunityChangeID: 'FieldID-f004651a-1d60-4e0a-8ee5-8b6615834f71',\n ActivityOpportunityChangePipelineStage: 'FieldID-6c06383b-ce77-40e4-8b62-c45b3b8fc262',\n ActivityOpportunityChangeLostReason: 'FieldID-799f1ae7-f934-4b7b-b114-79600c17244f',\n ActivityOpportunityChangeNotes: 'FieldID-47338101-7d63-484b-82b8-b728e8abc623',\n ActivityOpportunityChangeUpdatedDate: 'FieldID-1ee17946-c5f5-447d-b301-b4fd836aa41e',\n ActivityOpportunityChangeSalespersonID: 'FieldID-02489de8-fc56-4175-bc4b-a9b16d9e12eb',\n CompanyName: 'FieldID-b2a5d86e-f9ae-11ed-be56-0242ac120002',\n CompanyPrimaryAddressLine1: 'FieldID-36785fbc-9c40-4938-92e3-b262d40ef6bb',\n CompanyPrimaryAddressLine2: 'FieldID-ac4c2ea1-f8d1-4bdd-8a42-a1ad4127eef6',\n CompanyPrimaryAddressCity: 'FieldID-33b7b0a0-82ed-471b-baa1-87ab958f90d2',\n CompanyPrimaryAddressState: 'FieldID-184fe9c2-b3a8-47c5-85dc-7c3a285c17ac',\n CompanyPrimaryAddressPostalCode: 'FieldID-b0e75bc5-59f7-4c54-98a8-510b9ec982ec',\n CompanyPrimaryAddressCountry: 'FieldID-daa0c91f-8a0e-4c90-be9c-e53a73789edc',\n CompanyPrimaryAddressGooglePlaceID: 'FieldID-ecba7574-ed05-4e89-98f2-d49a2c307a69',\n CompanyPrimaryAddressLatitudeLongitude: 'FieldID-017480ce-49d4-4453-8622-c1e2633eae73',\n CompanyWebsite: 'FieldID-f25628fb-eeb3-4d99-8737-44b403758837',\n CompanyPhoneNumber: 'FieldID-fc7ff4ae-b753-4650-9961-42b07bcc6ac6',\n CompanyTags: 'FieldID-b74e203d-bab3-4c78-83d0-ac96f44d1061',\n CompanyLifecycleStage: 'FieldID-865f4984-2fa2-462c-82d0-f78ad1477fb0',\n CompanyTimezone: 'FieldID-3ebce03e-260b-4573-93b0-85f5582ade3d',\n CompanyParentCompanyID: 'FieldID-92bb3816-a000-4075-a56d-51458f99d7ab',\n CompanyGoogleReviewScore: 'FieldID-c1fd51d0-3971-4ffd-addb-9afb08ab1d8d',\n CompanyLeadScore: 'FieldID-512d33e1-6682-4848-9b0e-5190f8e7c2a3',\n CompanyGBPClaimed: 'FieldID-63d04854-7d4a-4e2e-9358-0c349a51f66c',\n ContactPrimaryCompanyID: 'FieldID-e4d82132-ed77-4a2f-8625-1163a04efba1',\n ContactPrimaryAddressLine1: 'FieldID-59dc9adf-6401-4af4-91cb-666ce81acc37',\n ContactPrimaryAddressLine2: 'FieldID-623fb8a0-c224-4952-af4c-a4e1e3bd5b70',\n ContactPrimaryAddressCity: 'FieldID-4fe28279-6e83-4e7c-b310-9474dcd5034d',\n ContactPrimaryAddressState: 'FieldID-a215813c-8225-4c21-b646-01b370eefd47',\n ContactPrimaryAddressPostalCode: 'FieldID-3ba73c58-3fa9-4fbf-b28b-8709837685bc',\n ContactPrimaryAddressCountry: 'FieldID-aa50a455-c00b-4d6b-98f7-f833332b1b5c',\n CompanyPrimarySalespersonID: 'FieldID-1d95f7ec-48f5-407e-ae13-22bf13420a7f',\n CompanySourceName: 'FieldID-2cf065dc-7627-4247-97d9-77b594ecebe4',\n ContactPrimarySalespersonID: 'FieldID-46d1bf91-111a-44d6-a029-9f6722e51fc9',\n CompanyAdditionalSalespersonIDs: 'FieldID-1f3217bc-0712-41b9-aa79-9923b18ebae8',\n ContactAdditionalSalespersonIDs: 'FieldID-3febf407-1d0d-4e06-a962-8774560a2dbc',\n ContactLifecycleStage: 'FieldID-5a74c326-94d8-45ab-90ab-fa319d4812e7',\n ContactJobTitle: 'FieldID-7dba3c94-e95a-49c4-aeb2-765621e4bb87',\n ContactLinkedInURL: 'FieldID-b7ef3c20-810d-4a82-80ab-177a95dd7d6e',\n ContactSourceName: 'FieldID-d80132b7-4fbe-45dd-92d3-a313286567ac',\n RecordChangedByUserID: 'FieldID-e7c112b0-15da-4400-8ad7-94150856bdbd',\n RecordChangeFieldIDsList: 'FieldID-7714b53d-f29f-43ac-a038-91daaf1bdcc8',\n RecordChangeReferenceFieldID: 'FieldID-b12f7278-2aee-465e-a37d-75fd0d248724',\n CompanyNextTaskDueDate: 'FieldID-bd887f68-c188-4124-9378-0f0c5e08e067',\n ContactNextTaskDueDate: 'FieldID-4b174b2a-74bc-4dc6-aa78-c77e27e27fce',\n};\n\nexport const PlatformExtensionFieldIds = {\n AccountGroupID: 'FieldID-12c064c5-3260-478e-952d-04a3a7e83b15',\n LatestSnapshotID: 'FieldID-60e8f540-6ad5-4e04-a08d-ac6fd1a331e7',\n UserID: 'FieldID-2ccc0de0-89be-499a-968d-b6d1d59b77a1',\n};\n\n// these are not external_ids, not system fields, and have the same value across all environments\nconst fieldIds: string[] = [\n StandardIds.ActivityManuallyLogged,\n StandardIds.ActivityNoteBody,\n StandardIds.ActivityNoteTitle,\n StandardIds.ActivityEmailType,\n StandardIds.ActivityEmailDirection,\n StandardIds.ActivityEmailStatus,\n StandardIds.ActivityEmailBody,\n StandardIds.ActivityEmailSubject,\n StandardIds.ActivityEmailHeaders,\n StandardIds.ActivityEmailDate,\n StandardIds.ActivityCampaignID,\n StandardIds.ActivityCallDirection,\n StandardIds.ActivityCallOutcome,\n StandardIds.ActivityCallDuration,\n StandardIds.ActivityCallFromNumber,\n StandardIds.ActivityCallToNumber,\n StandardIds.ActivityCallRecordingURL,\n StandardIds.ActivityCallBody,\n StandardIds.ActivityCallStatus,\n StandardIds.ActivityCallDate,\n StandardIds.ActivityCallRecordingUrl,\n StandardIds.ActivityMeetingBody,\n StandardIds.ActivityMeetingInternalNotes,\n StandardIds.ActivityMeetingURL,\n StandardIds.ActivityMeetingLocation,\n StandardIds.ActivityMeetingStartTime,\n StandardIds.ActivityMeetingEndTime,\n StandardIds.ActivityMeetingOutcome,\n StandardIds.ActivityMeetingStatus,\n StandardIds.ActivityMeetingDuration,\n StandardIds.ActivityName,\n StandardIds.ActivitySourceName,\n StandardIds.ActivityTaskBody,\n StandardIds.ActivityTaskDueDate,\n StandardIds.ActivityTaskPriority,\n StandardIds.ActivityTaskStatus,\n StandardIds.ActivityTaskType,\n StandardIds.ActivityTags,\n StandardIds.ActivityCommunicationChannel,\n StandardIds.ActivityCommunicationOutcome,\n StandardIds.ActivityCommunicationBody,\n StandardIds.ActivityCommunicationDate,\n StandardIds.ActivityCommunicationFromId,\n StandardIds.ActivityCommunicationToId,\n StandardIds.ActivityUrl,\n StandardIds.ActivityUrlName,\n StandardIds.ActivityOpportunityChangeID,\n StandardIds.ActivityOpportunityChangePipelineStage,\n StandardIds.ActivityOpportunityChangeLostReason,\n StandardIds.ActivityOpportunityChangeNotes,\n StandardIds.ActivityOpportunityChangeUpdatedDate,\n StandardIds.ActivityOpportunityChangeSalespersonID,\n StandardIds.CompanyName,\n StandardIds.CompanyParentCompanyID,\n StandardIds.CompanyNextTaskDueDate,\n StandardIds.CompanyPrimaryAddressLine1,\n StandardIds.CompanyPrimaryAddressLine2,\n StandardIds.CompanyPrimaryAddressCity,\n StandardIds.CompanyPrimaryAddressState,\n StandardIds.CompanyPrimaryAddressPostalCode,\n StandardIds.CompanyPrimaryAddressCountry,\n StandardIds.CompanyPrimaryAddressLatitudeLongitude,\n StandardIds.CompanyPrimaryAddressGooglePlaceID,\n StandardIds.CompanyGBPClaimed,\n StandardIds.CompanyGoogleReviewScore,\n StandardIds.CompanyWebsite,\n StandardIds.CompanyPhoneNumber,\n StandardIds.CompanyPrimarySalespersonID,\n StandardIds.CompanyAdditionalSalespersonIDs,\n StandardIds.CompanyLeadScore,\n StandardIds.ContactPrimaryCompanyID,\n StandardIds.ContactPrimaryAddressLine1,\n StandardIds.ContactPrimaryAddressLine2,\n StandardIds.ContactPrimaryAddressCity,\n StandardIds.ContactPrimaryAddressState,\n StandardIds.ContactPrimaryAddressPostalCode,\n StandardIds.ContactPrimaryAddressCountry,\n StandardIds.ContactPrimarySalespersonID,\n StandardIds.ContactAdditionalSalespersonIDs,\n StandardIds.ContactJobTitle,\n StandardIds.ContactLinkedInURL,\n StandardIds.RecordChangedByUserID,\n StandardIds.RecordChangeFieldIDsList,\n StandardIds.RecordChangeReferenceFieldID,\n StandardIds.ContactNextTaskDueDate,\n];\n\nconst renderableReadonlyFields: string[] = [StandardIds.CompanyLeadScore];\n\nconst demoFieldIds: { [name: string]: string } = {\n [StandardExternalIds.FirstName]: 'FieldID-3a287668-9112-4e10-864d-ae553fe2c1dc',\n [StandardExternalIds.LastName]: 'FieldID-b9d359dd-c415-4c31-a241-8e66af668f2c',\n [StandardExternalIds.PhoneNumber]: 'FieldID-da943860-ae6a-49f9-9210-56935d764ecb',\n [StandardExternalIds.Email]: 'FieldID-f2b5c6ff-a141-412e-89c7-269b7546cb63',\n [StandardExternalIds.Tags]: 'FieldID-e458cc1b-2873-4026-9eae-d0fe01c2385d',\n [StandardExternalIds.ActivityRecordChangeType]: 'FieldID-fb7ca0a7-e1a9-43a9-8ead-dd6ea20dda11',\n [StandardExternalIds.ContactCompanyName]: 'FieldID-7451a249-08ea-4fcc-8e2e-b2770ceaf636',\n [StandardExternalIds.ChangeRecordChangeType]: 'FieldID-e7c112b0-15da-4400-8ad7-94150856bdbd',\n [StandardIds.CompanyPrimarySalespersonID]: 'FieldID-1d95f7ec-48f5-407e-ae13-22bf13420a7f',\n [StandardIds.CompanyLifecycleStage]: 'FieldID-865f4984-2fa2-462c-82d0-f78ad1477fb0',\n};\n\nconst prodFieldIds: { [name: string]: string } = {\n [StandardExternalIds.FirstName]: 'FieldID-211d398a-d905-43f8-a8e2-c1c952d4f5cc',\n [StandardExternalIds.LastName]: 'FieldID-a1c64750-0a8e-457b-8575-bcada69db4a1',\n [StandardExternalIds.PhoneNumber]: 'FieldID-1bcd68e1-2234-4a0c-9c70-21d9a6ff0ce8',\n [StandardExternalIds.Email]: 'FieldID-d2fea894-1e23-4bf6-b488-2cd7a8359dde',\n [StandardExternalIds.Tags]: 'FieldID-a7b68b66-6820-4a44-9717-f8f4e1d399ce',\n [StandardExternalIds.ActivityRecordChangeType]: 'FieldID-fb7ca0a7-e1a9-43a9-8ead-dd6ea20dda11',\n [StandardExternalIds.ContactCompanyName]: 'FieldID-7451a249-08ea-4fcc-8e2e-b2770ceaf636',\n [StandardExternalIds.ChangeRecordChangeType]: 'FieldID-e7c112b0-15da-4400-8ad7-94150856bdbd',\n [StandardIds.CompanyPrimarySalespersonID]: 'FieldID-1d95f7ec-48f5-407e-ae13-22bf13420a7f',\n [StandardIds.CompanyLifecycleStage]: 'FieldID-865f4984-2fa2-462c-82d0-f78ad1477fb0',\n};\n\n@Injectable({ providedIn: 'root' })\nexport class CrmFieldService {\n constructor(private readonly environmentService: EnvironmentService) {}\n\n // identifier can be a system field ID or an external ID\n getFieldId(identifier: string): string {\n if (Object.values(SystemFieldIds).includes(identifier)) {\n return identifier;\n }\n\n if (Object.values(PlatformExtensionFieldIds).includes(identifier)) {\n return identifier;\n }\n\n if (fieldIds.includes(identifier)) {\n return identifier;\n }\n\n const environment = this.environmentService.getEnvironment();\n switch (environment) {\n case Environment.DEMO:\n if (!(identifier in demoFieldIds)) {\n throw new Error(\n `Unknown identifier (${identifier}) specified for ${this.environmentService.getEnvironmentString()} environment`,\n );\n }\n return demoFieldIds[identifier];\n case Environment.PROD:\n if (!(identifier in prodFieldIds)) {\n throw new Error(\n `Unknown identifier (${identifier}) specified for ${this.environmentService.getEnvironmentString()} environment`,\n );\n }\n return prodFieldIds[identifier];\n default:\n throw new Error(\n `Unknown environment (${this.environmentService.getEnvironmentString()}) specified when getting field ID`,\n );\n }\n }\n\n // identifier can be a system field ID or an external ID\n getFieldValueFromCrmObject(crmObject: CrmObjectInterface, identifier: string): FieldValueInterface | null {\n if (!crmObject.fields) {\n return null;\n }\n\n const fieldId = this.getFieldId(identifier);\n const fieldValue = crmObject.fields.find((field) => field.fieldId === fieldId);\n if (!fieldValue) {\n return null;\n }\n return fieldValue;\n }\n\n getFieldIdFromFormField(field: string): string {\n switch (field) {\n case 'noteBody':\n return StandardIds.ActivityNoteBody;\n case 'loggedNoteTags':\n return StandardIds.ActivityTags;\n case 'loggedEmailDescription':\n return StandardIds.ActivityEmailBody;\n case 'loggedEmailDirection':\n return StandardIds.ActivityEmailDirection;\n case 'loggedEmailDate':\n return StandardIds.ActivityEmailDate;\n case 'loggedCallNote':\n return StandardIds.ActivityCallBody;\n case 'loggedCallDirection':\n return StandardIds.ActivityCallDirection;\n case 'loggedCallDate':\n return StandardIds.ActivityCallDate;\n case 'loggedCallStatus':\n return StandardIds.ActivityCallStatus;\n case 'loggedCallOutcome':\n return StandardIds.ActivityCallOutcome;\n case 'loggedMeetingNote':\n return StandardIds.ActivityMeetingBody;\n case 'loggedMeetingDate':\n return StandardIds.ActivityMeetingStartTime;\n case 'loggedMeetingStatus':\n return StandardIds.ActivityMeetingStatus;\n case 'loggedMeetingOutcome':\n return StandardIds.ActivityMeetingOutcome;\n case 'loggedMeetingDuration':\n return StandardIds.ActivityMeetingDuration;\n case 'taskName':\n return StandardIds.ActivityName;\n case 'taskInstructions':\n return StandardIds.ActivityTaskBody;\n case 'taskDueDate':\n return StandardIds.ActivityTaskDueDate;\n case 'taskPriority':\n return StandardIds.ActivityTaskPriority;\n case 'taskType':\n return StandardIds.ActivityTaskType;\n case 'loggedCommunicationBody':\n return StandardIds.ActivityCommunicationBody;\n case 'loggedCommunicationChannel':\n return StandardIds.ActivityCommunicationChannel;\n case 'loggedCommunicationOutcome':\n return StandardIds.ActivityCommunicationOutcome;\n case 'loggedCommunicationDate':\n return StandardIds.ActivityCommunicationDate;\n default:\n return '';\n }\n }\n\n getFieldMaskFromFormFields(fields: string[]): string[] {\n const fieldIds: string[] = [];\n fields.forEach((field) => {\n const id = this.getFieldIdFromFormField(field);\n if (id) {\n fieldIds.push(`fields.${id}`);\n }\n });\n return fieldIds;\n }\n\n getFieldMaskFromFormGroup(formGroup?: FormGroup): string[] {\n if (!formGroup) return [];\n const dirtyFields = [];\n for (const field in formGroup.controls) {\n const control = formGroup.get(field);\n if (control?.dirty) {\n dirtyFields.push(field);\n }\n }\n return this.getFieldMaskFromFormFields(dirtyFields);\n }\n\n shouldRenderReadonlyField(identifier: string): boolean {\n return renderableReadonlyFields.includes(identifier);\n }\n}\n","import { Injectable } from '@angular/core';\nimport { CRMFilterOverride, TableCustomCell } from '../../tokens-and-interfaces';\nimport { CrmObjectInterface, FieldSchemaInterface, SortByInterface } from '@vendasta/crm';\nimport { Observable } from 'rxjs';\nimport { GalaxyColumnDef, Row, CellData, CustomCell } from '@vendasta/galaxy/table';\nimport { GalaxyFilterDefinitionInterface } from '@vendasta/galaxy/filter/chips';\nimport { CrmFieldService, StandardIds } from '../crm-services/field.service';\n\nexport type CustomRowStyle = (row: Row) => RowStyle;\n\nexport interface RowStyle {\n color?: string;\n 'text-decoration'?: string;\n}\n\nexport interface ColumnDataInterface {\n [columnId: string]: CellData;\n}\n\nexport interface TableCustomizationServiceInterface {\n defaultSortingOptions?: SortByInterface[];\n\n customizeColumns(columns: GalaxyColumnDef[], isMobile: boolean): GalaxyColumnDef[];\n\n customizeRowData(\n crmObject: CrmObjectInterface,\n schemaMap: { [schemaId: string]: FieldSchemaInterface },\n columnData: ColumnDataInterface,\n ): void;\n\n getRowFullName(crmObject: CrmObjectInterface): string;\n\n customizeFilters(filters: GalaxyFilterDefinitionInterface[]): Observable;\n\n getAssociationInfo(crmObject: CrmObjectInterface): string;\n}\n\n@Injectable()\n// TODO: transform/split part of this into overall customization service if\n// ends up having to be used everywhere\nexport abstract class TableCustomizationService implements TableCustomizationServiceInterface {\n constructor(protected readonly crmFieldService: CrmFieldService) {}\n\n private addCustomCell(\n tableCustomCell: TableCustomCell,\n crmObject: CrmObjectInterface,\n columnData: ColumnDataInterface,\n ): void {\n const cellValue = tableCustomCell.fieldIds.map((fieldId) => {\n return this.crmFieldService.getFieldValueFromCrmObject(crmObject, fieldId);\n });\n\n columnData[tableCustomCell.columnDefinition.id] = {\n cellType: 'custom',\n value: cellValue,\n component: tableCustomCell.customCellComponent,\n } as CustomCell;\n }\n\n protected addCustomCells(\n tableCustomCells: TableCustomCell[],\n crmObject: CrmObjectInterface,\n columnData: ColumnDataInterface,\n ): void {\n for (const tableCustomCell of tableCustomCells) {\n this.addCustomCell(tableCustomCell, crmObject, columnData);\n }\n }\n\n protected addCustomColumns(customColumns: GalaxyColumnDef[], columns: GalaxyColumnDef[]): GalaxyColumnDef[] {\n const joinedColumns = [\n // default custom columns as hidden true\n ...columns,\n ...customColumns.map((customColumn) => ({ ...customColumn, hidden: true })),\n ];\n const dedupedColumns = joinedColumns.filter((column, index, self) => self.indexOf(column) === index);\n\n return dedupedColumns;\n }\n\n protected overrideCustomFilters(\n filters: GalaxyFilterDefinitionInterface[],\n overrides: CRMFilterOverride[],\n ): GalaxyFilterDefinitionInterface[] {\n for (const override of overrides) {\n const findFieldIDIndex = filters.findIndex((f) => f.fieldId === override.fieldId);\n if (findFieldIDIndex >= 0 && filters[findFieldIDIndex]) {\n filters[findFieldIDIndex].fieldName = override.title;\n }\n }\n return filters;\n }\n\n abstract customizeColumns(columns: GalaxyColumnDef[], isMobile: boolean): GalaxyColumnDef[];\n\n abstract customizeRowData(\n crmObject: CrmObjectInterface,\n schemaMap: { [schemaId: string]: FieldSchemaInterface },\n columnData: ColumnDataInterface,\n ): void;\n\n abstract getRowFullName(crmObject: CrmObjectInterface): string;\n\n abstract customizeFilters(filters: GalaxyFilterDefinitionInterface[]): Observable;\n\n abstract getAssociationInfo(crmObject: CrmObjectInterface): string;\n}\n\n@Injectable()\nexport abstract class ActivityTableCustomizationService extends TableCustomizationService {\n getRowFullName(crmObject: CrmObjectInterface): string {\n const name = this.crmFieldService.getFieldId(StandardIds.ActivityName);\n const nameData = crmObject.fields?.find((f) => f.fieldId === name);\n return nameData?.stringValue || '';\n }\n\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n getAssociationInfo(crmObject: CrmObjectInterface): string {\n return '';\n }\n}\n","import { HttpResponse } from '@angular/common/http';\nimport { Injectable } from '@angular/core';\nimport {\n CreateCrmObjectRequestInterface,\n CreateCrmObjectResponseInterface,\n CRMApiService,\n DeleteCrmObjectRequestInterface,\n GetMultiCrmObjectRequestInterface,\n GetMultiCrmObjectResponseInterface,\n ListCrmObjectsRequestInterface,\n ListCrmObjectsResponseInterface,\n ListFieldOptionsRequestInterface,\n ListFieldOptionsResponseInterface,\n ListFiltersRequestInterface,\n ListFiltersResponseInterface,\n UpdateCrmObjectRequestInterface,\n ValidateCrmObjectRequestInterface,\n ValidateCrmObjectResponseInterface,\n} from '@vendasta/crm';\nimport { Observable } from 'rxjs';\nimport { AbstractCrmObjectService } from './_abstract.service';\n\n@Injectable({ providedIn: 'root' })\nexport class ContactService implements AbstractCrmObjectService {\n constructor(private readonly service: CRMApiService) {}\n\n createCrmObject(request: CreateCrmObjectRequestInterface): Observable {\n return this.service.createContact(request);\n }\n\n deleteCrmObject(request: DeleteCrmObjectRequestInterface): Observable> {\n return this.service.deleteContact(request);\n }\n\n validateCrmObject(request: ValidateCrmObjectRequestInterface): Observable {\n return this.service.validateContact(request);\n }\n\n updateCrmObject(request: UpdateCrmObjectRequestInterface): Observable> {\n return this.service.updateContact(request);\n }\n\n listObjects(request: ListCrmObjectsRequestInterface): Observable {\n return this.service.listContacts(request);\n }\n\n listObjectsFilters(request: ListFiltersRequestInterface): Observable {\n return this.service.listContactsFilters(request);\n }\n\n getMultiObject(request: GetMultiCrmObjectRequestInterface): Observable {\n return this.service.getMultiContact(request);\n }\n\n listFieldOptions(request: ListFieldOptionsRequestInterface): Observable {\n return this.service.listContactFieldOptions(request);\n }\n}\n","import { HttpResponse } from '@angular/common/http';\nimport { Injectable } from '@angular/core';\nimport {\n CRMCompanyApiService,\n CreateCrmObjectRequestInterface,\n CreateCrmObjectResponseInterface,\n DeleteCrmObjectRequestInterface,\n GetMultiCrmObjectRequestInterface,\n GetMultiCrmObjectResponseInterface,\n ListCrmObjectsRequestInterface,\n ListCrmObjectsResponseInterface,\n ListFieldOptionsRequestInterface,\n ListFieldOptionsResponseInterface,\n ListFiltersRequestInterface,\n ListFiltersResponseInterface,\n UpdateCrmObjectRequestInterface,\n ValidateCrmObjectRequestInterface,\n ValidateCrmObjectResponseInterface,\n StartBulkCompanyCreateRequestInterface,\n StartBulkCompanyCreateResponseInterface,\n} from '@vendasta/crm';\nimport { Observable } from 'rxjs';\nimport { AbstractCrmObjectService } from './_abstract.service';\n\n@Injectable({ providedIn: 'root' })\nexport class CompanyService implements AbstractCrmObjectService {\n constructor(private readonly service: CRMCompanyApiService) {}\n\n createCrmObject(request: CreateCrmObjectRequestInterface): Observable {\n return this.service.createCompany(request);\n }\n\n deleteCrmObject(request: DeleteCrmObjectRequestInterface): Observable> {\n return this.service.deleteCompany(request);\n }\n\n validateCrmObject(request: ValidateCrmObjectRequestInterface): Observable {\n return this.service.validateCompany(request);\n }\n\n updateCrmObject(request: UpdateCrmObjectRequestInterface): Observable> {\n return this.service.updateCompany(request);\n }\n\n listObjects(request: ListCrmObjectsRequestInterface): Observable {\n return this.service.listCompanies(request);\n }\n\n listObjectsFilters(request: ListFiltersRequestInterface): Observable {\n return this.service.listCompaniesFilters(request);\n }\n\n getMultiObject(request: GetMultiCrmObjectRequestInterface): Observable {\n return this.service.getMultiCompany(request);\n }\n\n listFieldOptions(request: ListFieldOptionsRequestInterface): Observable {\n return this.service.listCompanyFieldOptions(request);\n }\n\n startBulkCreate(\n request: StartBulkCompanyCreateRequestInterface,\n ): Observable {\n return this.service.startBulkCompanyCreate(request);\n }\n}\n","import {\n CreateCrmObjectRequestInterface,\n CreateCrmObjectResponseInterface,\n CRMActivityApiService,\n DeleteCrmObjectRequestInterface,\n GetMultiCrmObjectRequestInterface,\n GetMultiCrmObjectResponseInterface,\n ListCrmObjectsRequestInterface,\n ListCrmObjectsResponseInterface,\n ListFieldOptionsRequestInterface,\n ListFieldOptionsResponseInterface,\n ListFiltersRequestInterface,\n ListFiltersResponseInterface,\n UpdateCrmObjectRequestInterface,\n ValidateCrmObjectRequestInterface,\n ValidateCrmObjectResponseInterface,\n} from '@vendasta/crm';\nimport { AbstractCrmObjectService } from './_abstract.service';\nimport { Observable } from 'rxjs';\nimport { HttpResponse } from '@angular/common/http';\nimport { map } from 'rxjs/operators';\nimport { Injectable } from '@angular/core';\n\n@Injectable({ providedIn: 'root' })\nexport class ActivityObjectService implements AbstractCrmObjectService {\n constructor(private readonly activityApiService: CRMActivityApiService) {}\n\n createCrmObject(request: CreateCrmObjectRequestInterface): Observable {\n return this.activityApiService.createActivity(request);\n }\n\n deleteCrmObject(request: DeleteCrmObjectRequestInterface): Observable> {\n return this.activityApiService.deleteActivity(request);\n }\n\n getMultiObject(request: GetMultiCrmObjectRequestInterface): Observable {\n return this.activityApiService.getMultiActivity(request).pipe(\n map((response) => {\n return {\n crmObjects: response.activities,\n };\n }),\n );\n }\n\n listFieldOptions(request: ListFieldOptionsRequestInterface): Observable {\n return this.activityApiService.listActivityFieldOptions(request);\n }\n\n listObjects(request: ListCrmObjectsRequestInterface): Observable {\n return this.activityApiService.listActivities(request);\n }\n\n listObjectsFilters(request: ListFiltersRequestInterface): Observable {\n return this.activityApiService.listActivityFilters(request);\n }\n\n updateCrmObject(request: UpdateCrmObjectRequestInterface): Observable> {\n return this.activityApiService.updateActivity({\n namespace: request.namespace,\n activity: request.crmObject,\n fieldMask: request.fieldMask,\n });\n }\n\n validateCrmObject(request: ValidateCrmObjectRequestInterface): Observable {\n return this.activityApiService.validateActivity(request);\n }\n}\n","import { HttpResponse } from '@angular/common/http';\nimport { Inject, Injectable } from '@angular/core';\nimport {\n CreateCrmObjectRequestInterface,\n CreateCrmObjectResponseInterface,\n CrmObjectInterface,\n DateDefault,\n DeleteCrmObjectRequestInterface,\n FilterGroupOperator,\n FilterInterface,\n FilterOperator,\n GetMultiCrmObjectRequestInterface,\n GetMultiCrmObjectResponseInterface,\n ListActivitiesResponseInterface,\n ListCrmObjectsRequestInterface,\n ListCrmObjectsResponseInterface,\n ListFieldOptionsRequestInterface,\n ListFieldOptionsResponseInterface,\n ListFiltersRequestInterface,\n ListFiltersResponseInterface,\n SortDirection,\n UpdateCrmObjectRequestInterface,\n ValidateCrmObjectRequestInterface,\n ValidateCrmObjectResponseInterface,\n} from '@vendasta/crm';\nimport { map, Observable, switchMap, take } from 'rxjs';\nimport { AbstractCrmObjectService } from './_abstract.service';\nimport { ContactService } from './_contact.service';\nimport { CompanyService } from './_company.service';\nimport { GalaxyDateDefault, GalaxyFilterInterface, GalaxyFilterOperator } from '@vendasta/galaxy/filter/chips';\nimport {\n FilterGroupInterface,\n FilterValueInterface,\n} from '@vendasta/crm/lib/_internal/interfaces/galaxy-filters.interface';\nimport { ActivityObjectService } from './_activity_object.service';\nimport { SortByInterface } from '@vendasta/crm/lib/_internal/interfaces/crm-objects.interface';\nimport { MatSort } from '@angular/material/sort';\nimport { CrmInjectionToken, CrmDependencies, ObjectType } from '../../../tokens-and-interfaces';\n\n@Injectable()\nexport class CrmObjectService {\n constructor(\n @Inject(CrmInjectionToken) private readonly config: CrmDependencies,\n private readonly contactService: ContactService,\n private readonly companyService: CompanyService,\n private readonly activityService: ActivityObjectService,\n ) {}\n\n createCrmObject(objectType: ObjectType, crmObject: CrmObjectInterface): Observable {\n return this.config.namespace$.pipe(\n take(1),\n switchMap((namespace: string) => {\n const request: CreateCrmObjectRequestInterface = {\n namespace: namespace,\n crmObject: crmObject,\n };\n return this.selectService(objectType).createCrmObject(request);\n }),\n take(1),\n );\n }\n\n deleteCrmObject(objectType: ObjectType, objectId: string): Observable> {\n return this.config.namespace$.pipe(\n take(1),\n switchMap((namespace: string) => {\n const request: DeleteCrmObjectRequestInterface = {\n namespace: namespace,\n crmObjectId: objectId,\n };\n return this.selectService(objectType).deleteCrmObject(request);\n }),\n take(1),\n );\n }\n\n validateCrmObject(\n objectType: ObjectType,\n crmObject: CrmObjectInterface,\n ): Observable {\n return this.config.namespace$.pipe(\n take(1),\n switchMap((namespace: string) => {\n const request: ValidateCrmObjectRequestInterface = {\n namespace: namespace,\n crmObject: crmObject,\n };\n return this.selectService(objectType).validateCrmObject(request);\n }),\n take(1),\n );\n }\n\n updateCrmObject(objectType: ObjectType, crmObject: CrmObjectInterface): Observable> {\n const paths: string[] = [];\n crmObject.fields?.forEach((field) => {\n paths.push(`fields.${field.fieldId}`);\n });\n\n return this.config.namespace$.pipe(\n take(1),\n switchMap((namespace: string) => {\n const request: UpdateCrmObjectRequestInterface = {\n namespace: namespace,\n crmObject: crmObject,\n fieldMask: {\n paths: paths,\n },\n };\n return this.selectService(objectType).updateCrmObject(request);\n }),\n take(1),\n );\n }\n\n convertSortBy(sorting: MatSort[] | undefined): SortByInterface[] | undefined {\n if (!sorting) {\n return undefined;\n }\n const sortBy: SortByInterface[] = [];\n\n for (const sort of sorting) {\n if (sort.direction === '') {\n return;\n }\n if (sort.direction === 'asc') {\n sortBy.push({\n fieldId: sort.active,\n sortDirection: SortDirection.SORT_DIRECTION_ASCENDING,\n });\n }\n if (sort.direction === 'desc') {\n sortBy.push({\n fieldId: sort.active,\n sortDirection: SortDirection.SORT_DIRECTION_DESCENDING,\n });\n }\n }\n return sortBy;\n }\n\n convertFilters(filters: GalaxyFilterInterface[] | undefined): FilterGroupInterface | undefined {\n if (!filters) {\n return undefined;\n }\n const filterGroup = {} as FilterGroupInterface;\n filterGroup.operator = FilterGroupOperator.FILTER_GROUP_OPERATOR_AND;\n filterGroup.filters = [];\n filters.forEach((inputFilter) => {\n if (!inputFilter.fieldId || !inputFilter.operator) {\n return;\n }\n const filterOperator: FilterOperator = inputFilter.operator\n ? FilterOperator[GalaxyFilterOperator[inputFilter.operator]]\n : undefined;\n const filterGroupFilter: FilterInterface = {\n fieldId: inputFilter.fieldId,\n operator: filterOperator,\n values: [],\n floatTolerance: inputFilter.floatTolerance,\n };\n filterGroupFilter.values = inputFilter.values?.map((v) => {\n const dateDefault: DateDefault = v.dateDefault ? DateDefault[GalaxyDateDefault[v.dateDefault]] : undefined;\n return {\n boolean: v.boolean,\n integer: v.integer,\n string: v.string,\n date: v.date,\n dateDefault: dateDefault,\n float: v.float,\n } as FilterValueInterface;\n });\n filterGroup.filters?.push(filterGroupFilter);\n });\n return filterGroup;\n }\n\n listObjects(\n objectType: ObjectType,\n request: ListCrmObjectsRequestInterface,\n ): Observable {\n return this.config.namespace$.pipe(\n switchMap((namespace) =>\n this.selectService(objectType)\n .listObjects({ ...request, namespace: namespace })\n .pipe(\n take(1),\n map((response) => {\n if (objectType === 'Activity') {\n response.crmObjects = (response as ListActivitiesResponseInterface).activities;\n }\n return response;\n }),\n ),\n ),\n );\n }\n\n listObjectsFilters(\n objectType: ObjectType,\n request: ListFiltersRequestInterface,\n ): Observable {\n return this.config.namespace$.pipe(\n take(1),\n switchMap((namespace) =>\n this.selectService(objectType)\n .listObjectsFilters({ ...request, namespace: namespace })\n .pipe(take(1)),\n ),\n );\n }\n\n getMultiObject(objectType: ObjectType, crmObjectIds: string[]): Observable {\n return this.config.namespace$.pipe(\n take(1),\n switchMap((namespace: string) => {\n const request: GetMultiCrmObjectRequestInterface = {\n namespace: namespace,\n crmObjectIds: crmObjectIds,\n };\n return this.selectService(objectType).getMultiObject(request);\n }),\n take(1),\n );\n }\n\n listFieldOptions(\n objectType: ObjectType,\n request: ListFieldOptionsRequestInterface,\n ): Observable {\n return this.config.namespace$.pipe(\n take(1),\n switchMap((namespace) =>\n this.selectService(objectType).listFieldOptions({\n ...request,\n namespace: namespace,\n }),\n ),\n take(1),\n );\n }\n\n private selectService(objectType: ObjectType): AbstractCrmObjectService {\n switch (objectType) {\n case 'Contact':\n return this.contactService;\n case 'Company':\n return this.companyService;\n case 'Activity':\n return this.activityService;\n }\n }\n}\n","import { Injectable } from '@angular/core';\nimport { Observable } from 'rxjs';\nimport { map } from 'rxjs/operators';\nimport { CrmObjectService } from './crm-object-service/crm-object.service';\nimport { ObjectType } from '../../tokens-and-interfaces';\n\n@Injectable()\nexport class CrmFieldOptionsService {\n constructor(private readonly objectService: CrmObjectService) {}\n\n getFieldOptions(fieldId: string, search: string, objectType: ObjectType): Observable {\n return this.objectService\n .listFieldOptions(objectType, {\n fieldId: fieldId,\n pageSize: 10,\n searchTerm: search,\n })\n .pipe(map((response) => response?.options || []));\n }\n}\n","import { RecordChangeType } from './tokens-and-interfaces';\n\nexport const businessAccountLink = '/businesses/accounts/%s/details';\nexport const salesCenterLink = '/sales/redirect?nextUrl=/info/%s';\nexport const SNACKBAR_DURATION = 10000;\nexport const SEARCH_DEBOUNCE_MS = 300;\nexport const LIST_OBJECTS_DEFAULT_PAGE_SIZE = 25;\nexport const LIST_OBJECTS_PAGE_SIZE_OPTIONS = [LIST_OBJECTS_DEFAULT_PAGE_SIZE, 50, 100];\nexport const SYSTEM_NAMESPACE = 'system';\nexport const ACTIVITIES_TIMELINE_PAGE_SIZE = 10;\nexport const VALID_RECORD_CHANGE_TYPES = ['CREATED', 'IMPORTANT_FIELD_UPDATED'] as RecordChangeType[];\nexport const AVATAR_WIDTH = 36;\nexport const RESERVED_TAGS = ['primary'];\nexport const PRIMARY_TAG = 'Primary';\nexport const DEFAULT_TAG_SEARCH_SIZE = 10;\n// paths cannot start with a slash\nexport const PAGE_ROUTES = {\n CONTACT: {\n ROOT: 'contact',\n SUBROUTES: {\n LIST: 'list',\n CREATE: 'create',\n EDIT: 'edit/:crmObjectId',\n BULK_IMPORT: 'bulk-import',\n PROFILE: 'profile/:crmObjectId',\n },\n USER: 'bc-admin',\n },\n COMPANY: {\n ROOT: 'company',\n SUBROUTES: {\n LIST: 'list',\n CREATE: 'create',\n EDIT: 'edit/:crmObjectId',\n PROFILE: 'profile/:crmObjectId',\n },\n ACCOUNT: 'manage-accounts',\n },\n TASK: {\n ROOT: 'task',\n SUBROUTES: {\n LIST: 'list',\n },\n },\n PROSPECT: {\n ROOT: 'prospect',\n SUBROUTES: {\n BUSINESSES: 'find-businesses',\n },\n },\n PERMISSION_REQUIRED: 'permission-required',\n};\n\nexport const enum BREAKPOINT_WIDTH {\n NAV = '768px',\n TABLET = '1150px',\n MOBILE = '768px',\n}\n","import { Inject, Injectable } from '@angular/core';\nimport {\n ListActivitiesRequestInterface,\n ListActivitiesResponseInterface,\n CRMActivityApiService,\n ActivityInterface,\n Activity,\n FieldMaskInterface,\n} from '@vendasta/crm';\nimport { Observable } from 'rxjs';\nimport { map, switchMap, take } from 'rxjs/operators';\nimport { CrmDependencies, CrmInjectionToken } from '../../tokens-and-interfaces';\n\n@Injectable()\nexport class ActivityService {\n constructor(\n @Inject(CrmInjectionToken) private readonly config: CrmDependencies,\n private readonly activityService: CRMActivityApiService,\n ) {}\n\n listActivities(request: ListActivitiesRequestInterface): Observable {\n return this.config.namespace$.pipe(\n switchMap((namespace) => this.activityService.listActivities({ ...request, namespace: namespace }).pipe(take(1))),\n );\n }\n\n createActivity(activity: ActivityInterface): Observable {\n return this.config.namespace$.pipe(\n switchMap((namespace) =>\n this.activityService.createActivity({ namespace: namespace, activity: activity }).pipe(\n map((response) => response.crmObjectId),\n take(1),\n ),\n ),\n );\n }\n\n getMultiActivities(crmObjectIds: string[]): Observable {\n return this.config.namespace$.pipe(\n switchMap((namespace) =>\n this.activityService\n .getMultiActivity({ namespace: namespace, crmObjectIds: crmObjectIds })\n .pipe(map((response) => response.activities)),\n ),\n );\n }\n\n updateActivity(activity: ActivityInterface, fieldMask: FieldMaskInterface): Observable {\n const fieldMaskPaths = fieldMask?.paths?.length ?? 0;\n if (fieldMaskPaths === 0) {\n throw new Error('Field mask with at least one path is required for updating an activity');\n }\n\n return this.config.namespace$.pipe(\n switchMap((namespace) =>\n this.activityService.updateActivity({ namespace: namespace, activity: activity, fieldMask: fieldMask }),\n ),\n map(() => null),\n );\n }\n}\n","import { Injectable } from '@angular/core';\nimport { TranslateService } from '@ngx-translate/core';\nimport { ActivityType, ObjectType } from '../../tokens-and-interfaces';\n\n/*\n this reference tracks which translation keys are object-specific\n while we could just assume a convention of `objectType.KEY` for all object-specific keys\n this book-keeping provides some safety around the completeness of the translation files\n*/\nconst objectSpecificTranslationKeys: string[] = [\n 'TITLE',\n 'ADD_OBJECT_BUTTON',\n 'PROSPECT_OBJECT_BUTTON',\n 'RECORD_CHANGE_ACTIVITY.CREATED',\n 'RECORD_CHANGE_ACTIVITY.CREATED_VIA',\n 'RECORD_CHANGE_ACTIVITY.IMPORTANT_FIELD_UPDATED',\n 'RECORD_CHANGE_ACTIVITY.IMPORTANT_FIELD_UPDATED_SALESPERSON',\n 'RECORD_CHANGE_ACTIVITY.IMPORTANT_FIELD_UPDATED_SALESPERSON_NOT_ASSIGNED',\n 'RECORD_CHANGE_ACTIVITY.IMPORTANT_FIELD_UPDATED_SALESPERSON_UNKNOWN',\n 'LIST_OBJECTS_TABLE.EMPTY_TABLE.IMAGE_ALT',\n 'LIST_OBJECTS_TABLE.EMPTY_TABLE.HEADER',\n 'LIST_OBJECTS_TABLE.EMPTY_TABLE.HINT',\n 'LIST_OBJECTS_TABLE.ACTIONS.EDIT.TITLE',\n 'LIST_OBJECTS_TABLE.ACTIONS.DELETE.ACTION',\n 'LIST_OBJECTS_TABLE.ACTIONS.DELETE.TITLE',\n 'LIST_OBJECTS_TABLE.ACTIONS.DELETE.CANCEL',\n 'LIST_OBJECTS_TABLE.ACTIONS.DELETE.CONFIRM',\n 'LIST_OBJECTS_TABLE.ACTIONS.DELETE.CONFIRMATION_MESSAGE',\n 'LIST_OBJECTS_TABLE.ACTIONS.DELETE.SUCCESS',\n 'LIST_OBJECTS_TABLE.ACTIONS.DELETE.ERROR',\n `LIST_OBJECTS_TABLE.ACTIONS.DELETE_SELECTED.ACTION`,\n `LIST_OBJECTS_TABLE.ACTIONS.DELETE_SELECTED.TITLE`,\n `LIST_OBJECTS_TABLE.ACTIONS.DELETE_SELECTED.CANCEL`,\n `LIST_OBJECTS_TABLE.ACTIONS.DELETE_SELECTED.CONFIRM`,\n `LIST_OBJECTS_TABLE.ACTIONS.DELETE_SELECTED.CONFIRMATION_MESSAGE`,\n `LIST_OBJECTS_TABLE.ACTIONS.DELETE_SELECTED.SUCCESS`,\n `LIST_OBJECTS_TABLE.ACTIONS.DELETE_SELECTED.ERROR`,\n 'LIST_OBJECTS_TABLE.SELECT_ALL.SELECT_ALL_OBJECTS',\n 'LIST_OBJECTS_TABLE.SELECT_ALL.TOTAL_SELECTED',\n 'LIST_OBJECTS_TABLE.SELECT_ALL.CLEAR_SELECTION',\n 'CREATE_PAGE.TITLE',\n 'EDIT_PAGE.TITLE',\n 'EDIT_PAGE.SAVE.SUCCESS',\n 'CREATE_PAGE.SAVE.SUCCESS',\n 'CREATE_PAGE.SAVE.ERROR',\n 'CREATE_PAGE.LOAD.ERROR',\n 'TABLE_FILTERS.HEADER',\n 'STANDARD_FIELD_RULES.UNIQUE_FIELD_VALUE.ENFORCED',\n 'STANDARD_FIELD_RULES.UNIQUE_FIELD_VALUE.WARNING',\n 'PROFILE_PAGE.EDIT',\n 'PROFILE_PAGE.TITLE',\n 'PROFILE_PAGE.ABOUT_TAB',\n 'PROFILE_PAGE.ACTIVITIES_TIMELINE_TAB',\n 'PROFILE_PAGE.ASSOCIATIONS_TAB',\n 'PROFILE_PAGE.PREVIOUS_PAGE_TITLE',\n 'VIEW_OBJECT',\n 'SELECT_MODAL.ONE_SELECTED',\n 'SELECT_MODAL.MORE_SELECTED',\n 'SELECT_MODAL.NO_SELECTED',\n];\n\n@Injectable()\nexport class TranslateByObjectTypeService {\n constructor(private readonly translateService: TranslateService) {}\n\n private getTranslationKeyByObjectType(objectType: ObjectType | ActivityType, partialTranslationKey: string): string {\n if (!objectSpecificTranslationKeys.includes(partialTranslationKey)) {\n console.warn(`Translation key ${partialTranslationKey} is not supported for object type ${objectType}`);\n return `PARTIAL.${partialTranslationKey}`;\n }\n return `${objectType.toUpperCase()}.${partialTranslationKey}`;\n }\n\n getTranslationByObjectType(\n objectType: ObjectType | ActivityType,\n partialTranslationKey: string,\n // eslint-disable-next-line @typescript-eslint/ban-types\n interpolateParams?: Object,\n ): string {\n const translationKey = this.getTranslationKeyByObjectType(objectType, partialTranslationKey);\n const translation = this.translateService.instant(translationKey, interpolateParams);\n if (translationKey === translation) {\n console.warn(`Missing translation for object specific key ${translationKey}`);\n }\n return translation;\n }\n}\n","import { Inject, Injectable } from '@angular/core';\nimport { TranslateService } from '@ngx-translate/core';\nimport {\n CRMFieldLayoutApiService,\n CRMFieldSchemaApiService,\n CrmObjectInterface,\n FieldGroupInterface as CrmFieldGroupInterface,\n FieldSchema,\n FieldSchemaInterface as CrmFieldSchemaInterface,\n FieldType,\n FieldValueInterface as CrmFieldValueInterface,\n ListFieldGroupsResponseInterface,\n ListFieldSchemaResponseInterface,\n PagedRequestOptionsInterface,\n ValidateCrmObjectResponseValidationErrorInterface,\n ValidateCrmObjectResponseValidationErrorSeverity as ErrorSeverity,\n} from '@vendasta/crm';\nimport {\n EMPTY,\n forkJoin,\n Observable,\n of,\n expand,\n map,\n reduce,\n shareReplay,\n switchMap,\n take,\n combineLatest,\n filter,\n} from 'rxjs';\nimport { CrmObjectService } from './crm-object-service/crm-object.service';\nimport { TranslateByObjectTypeService } from '../../i18n/translate-by-object-type/translate-by-object-type.service';\nimport {\n CrmInjectionToken,\n CrmDependencies,\n FieldGroupInterface,\n FieldInterface,\n FieldSchemaInterface,\n FieldValueInterface,\n ObjectType,\n} from '../../tokens-and-interfaces';\nimport { SystemFieldIds } from './field.service';\n\nconst MAX_SERVER_PAGE_SIZE = 200;\n\nexport interface ValidateErrorsWithFieldSchemas {\n errors: ValidateCrmObjectResponseValidationErrorInterface[];\n fieldSchemaMap: Map;\n}\n\n@Injectable()\nexport class CrmFormService {\n constructor(\n @Inject(CrmInjectionToken) private readonly config: CrmDependencies,\n private readonly crmObjectService: CrmObjectService,\n private readonly crmFieldSchemaApiService: CRMFieldSchemaApiService,\n private readonly crmFieldLayoutApiService: CRMFieldLayoutApiService,\n private readonly translationService: TranslateService,\n private readonly translateByObjectTypeService: TranslateByObjectTypeService,\n ) {}\n\n private handleValidationErrors(objectType: ObjectType, validationResponse: ValidateErrorsWithFieldSchemas): void {\n const invalidSeverityErrors = (validationResponse.errors ?? []).filter(\n (e) => e.severity === ErrorSeverity.VALIDATION_ERROR_SEVERITY_INVALID,\n );\n // only display first error for now\n if (invalidSeverityErrors.length) {\n const firstError = invalidSeverityErrors[0];\n const firstErrorSchema = validationResponse.fieldSchemaMap.get(firstError.details?.uniquenessCheck?.fieldId);\n if (firstError.message) {\n throw new Error(\n this.translateByObjectTypeService.getTranslationByObjectType(objectType, firstError?.message, {\n label: firstErrorSchema?.fieldName?.toLowerCase() || '',\n }),\n );\n }\n throw new Error();\n }\n }\n\n /*\n * TODO: this will probably start to lag when there's a lot of fields.\n * We should probably change to using tabs for different sets of fields later.\n */\n listAllObjectFields$(objectType: ObjectType): Observable {\n return of({\n fieldSchemas: [],\n pagingMetadata: {\n nextCursor: '',\n hasMore: true,\n },\n }).pipe(\n expand((resp: ListFieldSchemaResponseInterface) => {\n if (!resp?.pagingMetadata?.hasMore) {\n return EMPTY;\n }\n return this.listObjectFieldsNextPage$(objectType, {\n cursor: resp.pagingMetadata.nextCursor,\n pageSize: MAX_SERVER_PAGE_SIZE,\n });\n }),\n reduce((acc: CrmFieldSchemaInterface[], val) => [...acc, ...(val?.fieldSchemas || [])], []),\n );\n }\n\n private listObjectFieldsNextPage$(\n objectType: ObjectType,\n paging: PagedRequestOptionsInterface,\n ): Observable {\n // listing for a specific namespace will include standard fields as well\n return this.config.namespace$.pipe(\n take(1),\n switchMap((namespace) =>\n this.crmFieldSchemaApiService.listFieldSchema({\n namespace: namespace,\n crmObjectType: objectType,\n pagingOptions: paging,\n }),\n ),\n );\n }\n\n /*\n * TODO: this will probably start to lag when there's a lot of fields.\n * We should probably change to using tabs for different sets of fields later.\n */\n listAllObjectFieldGroups$(objectType: ObjectType): Observable {\n return of({\n fieldSchemas: [],\n pagingMetadata: {\n nextCursor: '',\n hasMore: true,\n },\n }).pipe(\n expand((resp: ListFieldGroupsResponseInterface) => {\n if (!resp?.pagingMetadata?.hasMore) {\n return EMPTY;\n }\n return this.listObjectFieldGroupsNextPage$(objectType, {\n cursor: resp.pagingMetadata.nextCursor,\n pageSize: MAX_SERVER_PAGE_SIZE,\n });\n }),\n reduce((acc: CrmFieldGroupInterface[], val) => [...acc, ...(val?.fieldGroups || [])], []),\n );\n }\n\n private listObjectFieldGroupsNextPage$(\n objectType: ObjectType,\n paging: PagedRequestOptionsInterface,\n ): Observable {\n return this.config.namespace$.pipe(\n take(1),\n switchMap((namespace) =>\n this.crmFieldLayoutApiService.listFieldGroups({\n namespace: namespace,\n crmObjectType: objectType,\n pagingOptions: paging,\n }),\n ),\n );\n }\n\n private crmFieldGroupToFormFieldGroup(crmFieldGroup: CrmFieldGroupInterface): FieldGroupInterface {\n return {\n description: crmFieldGroup.description,\n fieldIds: crmFieldGroup.fieldIds || [],\n };\n }\n\n listAllObjectFormFieldGroups$(objectType: ObjectType): Observable {\n return this.listAllObjectFieldGroups$(objectType).pipe(\n map((crmFieldGroups) => crmFieldGroups.map(this.crmFieldGroupToFormFieldGroup)),\n );\n }\n\n private crmFieldSchemasToFormFieldSchemas(crmFieldSchemas: CrmFieldSchemaInterface[]): FieldSchemaInterface[] {\n return crmFieldSchemas.map((crmFieldSchema) => {\n return {\n fieldId: crmFieldSchema.fieldId || '',\n fieldType: crmFieldSchema.fieldType || FieldType.FIELD_TYPE_INVALID,\n fieldName: crmFieldSchema.fieldName || '',\n fieldDescription: crmFieldSchema.fieldDescription || '',\n dropdownOptions: crmFieldSchema.dropdownOptions || [],\n currencyCode: crmFieldSchema.currencyCode || '',\n value: null,\n readOnly: crmFieldSchema.readonly,\n };\n });\n }\n\n listAllFormFields$(objectType: ObjectType): Observable {\n return this.listAllObjectFields$(objectType).pipe(\n map((crmFieldSchemas) => this.crmFieldSchemasToFormFieldSchemas(crmFieldSchemas)),\n shareReplay({ bufferSize: 1, refCount: true }),\n );\n }\n\n private getCrmFieldValueToFormValue(crmFieldValue: CrmFieldValueInterface, fieldType: FieldType): any {\n switch (fieldType) {\n case FieldType.FIELD_TYPE_INTEGER:\n case FieldType.FIELD_TYPE_CURRENCY:\n return crmFieldValue.integerValue;\n case FieldType.FIELD_TYPE_STRING:\n case FieldType.FIELD_TYPE_DROPDOWN:\n case FieldType.FIELD_TYPE_EMAIL:\n case FieldType.FIELD_TYPE_PHONE:\n return crmFieldValue.stringValue;\n case FieldType.FIELD_TYPE_BOOLEAN:\n return crmFieldValue.booleanValue;\n case FieldType.FIELD_TYPE_TAG:\n case FieldType.FIELD_TYPE_STRING_LIST:\n return crmFieldValue.stringValues?.values || [];\n case FieldType.FIELD_TYPE_DATETIME:\n case FieldType.FIELD_TYPE_DATE:\n return crmFieldValue.dateValue;\n case FieldType.FIELD_TYPE_FLOAT:\n return crmFieldValue.floatValue;\n default:\n return null;\n }\n }\n\n private compareStringList(currentValue: CrmFieldValueInterface, modifiedValue: CrmFieldValueInterface): boolean {\n const currentValues = currentValue.stringValues?.values || [];\n const modifiedValues = modifiedValue.stringValues?.values || [];\n const sortedCurrentValues = currentValues.sort();\n const sortedModifiedValues = modifiedValues.sort();\n\n if (sortedCurrentValues.length !== sortedModifiedValues.length) {\n return true;\n }\n for (const [index, value] of sortedCurrentValues.entries()) {\n if (value !== sortedModifiedValues[index]) {\n return true;\n }\n }\n return false;\n }\n\n private isFieldValueEmpty(value: CrmFieldValueInterface, fieldType: FieldType): boolean {\n switch (fieldType) {\n case FieldType.FIELD_TYPE_INTEGER:\n return value.integerValue == null;\n case FieldType.FIELD_TYPE_STRING:\n case FieldType.FIELD_TYPE_DROPDOWN:\n case FieldType.FIELD_TYPE_EMAIL:\n case FieldType.FIELD_TYPE_PHONE:\n return value.stringValue == null;\n case FieldType.FIELD_TYPE_BOOLEAN:\n return value.booleanValue == null;\n case FieldType.FIELD_TYPE_TAG:\n case FieldType.FIELD_TYPE_STRING_LIST:\n return value.stringValues?.values == null;\n case FieldType.FIELD_TYPE_DATETIME:\n case FieldType.FIELD_TYPE_DATE:\n return value.dateValue == null;\n default:\n return true;\n }\n }\n\n private isModifiedFieldValue(\n currentValue: CrmFieldValueInterface,\n modifiedValue: CrmFieldValueInterface,\n fieldType: FieldType,\n ): boolean {\n switch (fieldType) {\n case FieldType.FIELD_TYPE_INTEGER:\n return currentValue.integerValue !== modifiedValue.integerValue;\n case FieldType.FIELD_TYPE_STRING:\n case FieldType.FIELD_TYPE_DROPDOWN:\n case FieldType.FIELD_TYPE_EMAIL:\n case FieldType.FIELD_TYPE_PHONE:\n return currentValue.stringValue !== modifiedValue.stringValue;\n case FieldType.FIELD_TYPE_BOOLEAN:\n return currentValue.booleanValue !== modifiedValue.booleanValue;\n case FieldType.FIELD_TYPE_TAG:\n case FieldType.FIELD_TYPE_STRING_LIST:\n return this.compareStringList(currentValue, modifiedValue);\n case FieldType.FIELD_TYPE_DATETIME:\n case FieldType.FIELD_TYPE_DATE:\n return currentValue.dateValue.getTime() !== modifiedValue.dateValue.getTime();\n default:\n return false;\n }\n }\n\n private initializeFormFieldSchemaWithCrmObject(\n fieldSchema: FieldSchemaInterface,\n crmObject: CrmObjectInterface,\n ): void {\n if (!fieldSchema?.fieldId || !crmObject?.fields) {\n return;\n }\n\n const crmObjectFieldValue = crmObject.fields.find((crmObjectField) => {\n return crmObjectField.fieldId === fieldSchema.fieldId;\n });\n\n if (!crmObjectFieldValue) {\n return;\n }\n\n fieldSchema.value = this.getCrmFieldValueToFormValue(crmObjectFieldValue, fieldSchema.fieldType);\n }\n\n listAllFormFieldsInitializedWithCrmObject$(\n objectType: ObjectType,\n crmObjectId: string,\n ): Observable {\n return forkJoin([\n this.crmObjectService.getMultiObject(objectType, [crmObjectId]),\n this.listAllFormFields$(objectType),\n ]).pipe(\n map(([getMultiResponse, fieldSchemas]) => {\n if (getMultiResponse?.crmObjects?.length === 0 || !getMultiResponse?.crmObjects?.[0].crmObjectId) {\n throw new Error(this.translationService.instant('CRM_FORM_SERVICE.RESOURCE_NOT_FOUND_ERROR'));\n } else {\n const crmObject = getMultiResponse.crmObjects[0];\n fieldSchemas.forEach((field) => {\n this.initializeFormFieldSchemaWithCrmObject(field, crmObject);\n });\n }\n return fieldSchemas;\n }),\n );\n }\n\n validateCrmObject$(\n objectType: ObjectType,\n crmObject: CrmObjectInterface,\n ): Observable {\n const validationErrors$ = this.crmObjectService\n .validateCrmObject(objectType, crmObject)\n .pipe(map((response) => response.errors || []));\n const fieldSchemaMap$ = this.listAllFormFields$(objectType).pipe(\n map((schemas) => {\n const schemaMap = new Map();\n for (const schema of schemas) {\n schemaMap.set(schema.fieldId, schema);\n }\n return schemaMap;\n }),\n );\n return forkJoin([validationErrors$, fieldSchemaMap$]).pipe(\n map(([validationErrors, fieldSchemaMap]) => {\n return {\n errors: validationErrors,\n fieldSchemaMap: fieldSchemaMap,\n };\n }),\n );\n }\n\n validateAndCreateCrmObject$(objectType: ObjectType, fields: FieldInterface[]): Observable {\n return of(null).pipe(\n map(() => fields.filter((field) => field.hasModification()).map((field) => field.fieldValue())),\n map((fields) =>\n fields.filter((fieldValue) => {\n return fieldValue?.stringValue !== '';\n }),\n ),\n switchMap((fieldValues) => {\n const crmObject: CrmObjectInterface = {\n fields: fieldValues,\n };\n const validationResponse$ = this.validateCrmObject$(objectType, crmObject);\n return forkJoin([of(fieldValues), validationResponse$]);\n }),\n switchMap(([fieldValues, validationResponse]) => {\n this.handleValidationErrors(objectType, validationResponse);\n if (!fieldValues?.length) {\n return of(null);\n }\n const crmObject: CrmObjectInterface = {};\n fieldValues = this.setSystemFields(crmObject, fieldValues);\n crmObject.fields = fieldValues;\n\n return this.crmObjectService.createCrmObject(objectType, crmObject).pipe(\n map((resp) => {\n crmObject.crmObjectId = resp.crmObjectId;\n return crmObject;\n }),\n );\n }),\n );\n }\n\n private setSystemFields(crmObject: CrmObjectInterface, fieldValues: FieldValueInterface[]): FieldValueInterface[] {\n const contactOwnerID = fieldValues.find((field) => field.fieldId === SystemFieldIds.ContactOwnerID);\n if (contactOwnerID) {\n crmObject.ownerId = contactOwnerID.stringValue;\n fieldValues = fieldValues.filter((field) => field.fieldId !== SystemFieldIds.ContactOwnerID);\n }\n const contactGroupID = fieldValues.find((field) => field.fieldId === SystemFieldIds.ContactGroupID);\n if (contactGroupID) {\n crmObject.groupId = contactGroupID.stringValue;\n fieldValues = fieldValues.filter((field) => field.fieldId !== SystemFieldIds.ContactGroupID);\n }\n const companyOwnerID = fieldValues.find((field) => field.fieldId === SystemFieldIds.CompanyOwnerID);\n if (companyOwnerID) {\n crmObject.ownerId = companyOwnerID.stringValue;\n fieldValues = fieldValues.filter((field) => field.fieldId !== SystemFieldIds.CompanyOwnerID);\n }\n const companyGroupID = fieldValues.find((field) => field.fieldId === SystemFieldIds.CompanyGroupID);\n if (companyGroupID) {\n crmObject.groupId = companyGroupID.stringValue;\n fieldValues = fieldValues.filter((field) => field.fieldId !== SystemFieldIds.CompanyGroupID);\n }\n return fieldValues;\n }\n\n validateAndUpdateCrmObject$(\n objectType: ObjectType,\n crmObjectId: string,\n fields: FieldInterface[],\n ): Observable {\n return this.validateCrmObject$(objectType, {\n crmObjectId: crmObjectId,\n fields: fields.map((field) => field.fieldValue()),\n }).pipe(\n switchMap((validationResponse) => {\n this.handleValidationErrors(objectType, validationResponse);\n\n const modifiedFieldValues = fields\n .filter((field) => field.hasModification())\n .map((field) => field.fieldValue());\n if (!modifiedFieldValues?.length) {\n return of(null);\n }\n\n return this.crmObjectService\n .updateCrmObject(objectType, {\n crmObjectId: crmObjectId,\n fields: modifiedFieldValues,\n })\n .pipe(map(() => ({ crmObjectId: crmObjectId, fields: fields.map((field) => field.fieldValue()) })));\n }),\n );\n }\n\n validateAndUpdateCrmObjectField$(\n objectType: ObjectType,\n crmObjectId: string,\n modifiedValue: FieldValueInterface,\n ): Observable {\n const fieldSchema$: Observable = this.config.namespace$.pipe(\n take(1),\n switchMap((namespace) =>\n this.crmFieldSchemaApiService.getMultiFieldSchema({\n namespace: namespace,\n crmObjectType: objectType,\n fieldId: [modifiedValue.fieldId],\n }),\n ),\n map((response) => !!response?.fieldSchemas && response?.fieldSchemas[0]),\n );\n const currentCrmObject$ = this.crmObjectService.getMultiObject(objectType, [crmObjectId]).pipe(\n take(1),\n map((response) => {\n if (response.crmObjects.length === 0 || !(response?.crmObjects[0] && response.crmObjects[0].crmObjectId)) {\n return null;\n }\n return response.crmObjects[0];\n }),\n filter((crmObject) => !!crmObject),\n );\n const validationValues$ = combineLatest([currentCrmObject$, fieldSchema$]).pipe(\n map(([currentObject, fieldSchema]) => {\n const currentObjectFields = currentObject?.fields || [];\n const currentValueIndex = currentObjectFields.findIndex(\n (fieldValue) => fieldValue?.fieldId === modifiedValue.fieldId,\n );\n if (this.isFieldValueEmpty(modifiedValue, fieldSchema.fieldType)) {\n return [];\n }\n if (currentValueIndex === -1) {\n return [...currentObjectFields, modifiedValue];\n }\n const currentValue = currentObjectFields[currentValueIndex];\n if (!this.isModifiedFieldValue(currentValue, modifiedValue, fieldSchema.fieldType)) {\n return [];\n }\n\n currentObjectFields[currentValueIndex] = modifiedValue;\n return [...currentObjectFields];\n }),\n );\n const validationResponse$ = validationValues$.pipe(\n take(1),\n switchMap((fieldValues) => {\n if (!fieldValues?.length) {\n return EMPTY;\n }\n\n return this.validateCrmObject$(objectType, {\n crmObjectId: crmObjectId,\n fields: fieldValues,\n });\n }),\n );\n\n return combineLatest([validationResponse$, validationValues$]).pipe(\n take(1),\n switchMap(([validationResponse, validationValues]) => {\n if (!validationValues?.length) {\n return of(null);\n }\n this.handleValidationErrors(objectType, validationResponse);\n\n return this.crmObjectService\n .updateCrmObject(objectType, {\n crmObjectId: crmObjectId,\n fields: [modifiedValue],\n })\n .pipe(map(() => ({ crmObjectId: crmObjectId, fields: [modifiedValue] })));\n }),\n );\n }\n}\n","export {};\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6W10sInNvdXJjZXMiOlsiX2Fic3RyYWN0LnNlcnZpY2UudHMiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSHR0cFJlc3BvbnNlIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uL2h0dHAnO1xuaW1wb3J0IHtcbiAgQ3JlYXRlQ3JtT2JqZWN0UmVxdWVzdEludGVyZmFjZSxcbiAgQ3JlYXRlQ3JtT2JqZWN0UmVzcG9uc2VJbnRlcmZhY2UsXG4gIERlbGV0ZUNybU9iamVjdFJlcXVlc3RJbnRlcmZhY2UsXG4gIEdldE11bHRpQ3JtT2JqZWN0UmVxdWVzdEludGVyZmFjZSxcbiAgR2V0TXVsdGlDcm1PYmplY3RSZXNwb25zZUludGVyZmFjZSxcbiAgTGlzdENybU9iamVjdHNSZXF1ZXN0SW50ZXJmYWNlLFxuICBMaXN0Q3JtT2JqZWN0c1Jlc3BvbnNlSW50ZXJmYWNlLFxuICBMaXN0RmllbGRPcHRpb25zUmVxdWVzdEludGVyZmFjZSxcbiAgTGlzdEZpZWxkT3B0aW9uc1Jlc3BvbnNlSW50ZXJmYWNlLFxuICBMaXN0RmlsdGVyc1JlcXVlc3RJbnRlcmZhY2UsXG4gIExpc3RGaWx0ZXJzUmVzcG9uc2VJbnRlcmZhY2UsXG4gIFVwZGF0ZUNybU9iamVjdFJlcXVlc3RJbnRlcmZhY2UsXG4gIFZhbGlkYXRlQ3JtT2JqZWN0UmVxdWVzdEludGVyZmFjZSxcbiAgVmFsaWRhdGVDcm1PYmplY3RSZXNwb25zZUludGVyZmFjZSxcbn0gZnJvbSAnQHZlbmRhc3RhL2NybSc7XG5pbXBvcnQgeyBPYnNlcnZhYmxlIH0gZnJvbSAncnhqcyc7XG5cbmV4cG9ydCBpbnRlcmZhY2UgQWJzdHJhY3RDcm1PYmplY3RTZXJ2aWNlIHtcbiAgY3JlYXRlQ3JtT2JqZWN0KHJlcXVlc3Q6IENyZWF0ZUNybU9iamVjdFJlcXVlc3RJbnRlcmZhY2UpOiBPYnNlcnZhYmxlPENyZWF0ZUNybU9iamVjdFJlc3BvbnNlSW50ZXJmYWNlPjtcblxuICBkZWxldGVDcm1PYmplY3QocmVxdWVzdDogRGVsZXRlQ3JtT2JqZWN0UmVxdWVzdEludGVyZmFjZSk6IE9ic2VydmFibGU8SHR0cFJlc3BvbnNlPG51bGw+PjtcblxuICB2YWxpZGF0ZUNybU9iamVjdChyZXF1ZXN0OiBWYWxpZGF0ZUNybU9iamVjdFJlcXVlc3RJbnRlcmZhY2UpOiBPYnNlcnZhYmxlPFZhbGlkYXRlQ3JtT2JqZWN0UmVzcG9uc2VJbnRlcmZhY2U+O1xuXG4gIHVwZGF0ZUNybU9iamVjdChyZXF1ZXN0OiBVcGRhdGVDcm1PYmplY3RSZXF1ZXN0SW50ZXJmYWNlKTogT2JzZXJ2YWJsZTxIdHRwUmVzcG9uc2U8bnVsbD4+O1xuXG4gIGxpc3RPYmplY3RzKHJlcXVlc3Q6IExpc3RDcm1PYmplY3RzUmVxdWVzdEludGVyZmFjZSk6IE9ic2VydmFibGU8TGlzdENybU9iamVjdHNSZXNwb25zZUludGVyZmFjZT47XG5cbiAgbGlzdE9iamVjdHNGaWx0ZXJzKHJlcXVlc3Q6IExpc3RGaWx0ZXJzUmVxdWVzdEludGVyZmFjZSk6IE9ic2VydmFibGU8TGlzdEZpbHRlcnNSZXNwb25zZUludGVyZmFjZT47XG5cbiAgZ2V0TXVsdGlPYmplY3QocmVxdWVzdDogR2V0TXVsdGlDcm1PYmplY3RSZXF1ZXN0SW50ZXJmYWNlKTogT2JzZXJ2YWJsZTxHZXRNdWx0aUNybU9iamVjdFJlc3BvbnNlSW50ZXJmYWNlPjtcblxuICBsaXN0RmllbGRPcHRpb25zKHJlcXVlc3Q6IExpc3RGaWVsZE9wdGlvbnNSZXF1ZXN0SW50ZXJmYWNlKTogT2JzZXJ2YWJsZTxMaXN0RmllbGRPcHRpb25zUmVzcG9uc2VJbnRlcmZhY2U+O1xufVxuIl0sIm1hcHBpbmdzIjoiIiwiaWdub3JlTGlzdCI6W119","import { Injectable } from '@angular/core';\nimport { Observable } from 'rxjs';\n\n@Injectable({\n providedIn: 'root',\n})\nexport class CompanyContactCacheService {\n // A HashMap to store the cache. The key is the page and the value is the data.\n private cache = new Map>();\n private ttlCache = new Map();\n\n // The 'set' method for storing data in the cache.\n set(key: string, data: Observable, ttl = 0): void {\n this.cache.set(key, data);\n if (ttl > 0) {\n this.ttlCache.set(key, Date.now() + ttl);\n }\n }\n\n // The 'get' method for retrieving data from the cache.\n get(key: string): Observable {\n const ttl = this.ttlCache.get(key);\n if (ttl && ttl > 0 && ttl < Date.now()) {\n this.clear(key);\n }\n\n // We retrieve the data from the cache\n return this.cache.get(key);\n }\n\n // The 'clear' method to clear data from the cache.\n clear(key: string): void {\n // We remove the data from the cache\n this.cache.delete(key);\n }\n}\n","import { EMPTY, Observable, combineLatest, of, take, zip } from 'rxjs';\nimport { catchError, expand, map, reduce, shareReplay, switchMap } from 'rxjs/operators';\n\nimport { Inject, Injectable } from '@angular/core';\nimport { MatDialog } from '@angular/material/dialog';\nimport {\n AssociationInterface,\n CRMAssociationApiService,\n DeleteAssociationRequestInterface,\n FilterGroupOperator,\n FilterOperator,\n GetMultiCrmObjectResponseInterface,\n ListAssociationsRequestInterface,\n ListAssociationsResponseInterface,\n ListAssociationsResponse,\n TagInterface,\n GetMultiCrmObjectRequestInterface,\n} from '@vendasta/crm';\nimport { CrmObjectInterface } from '@vendasta/crm/lib/_internal/interfaces/crm-objects.interface';\n\nimport { CompanyService } from './_company.service';\nimport { ContactService } from './_contact.service';\nimport { CrmDependencies, CrmInjectionToken } from '../../../tokens-and-interfaces';\nimport { CompanyContactCacheService } from '../../company-contact-cache.service';\n\nexport interface Association {\n associationId: string;\n associationType: string;\n tags: string[];\n associatedObject: CrmObjectInterface;\n}\n\nexport interface SelectedObjects {\n crmObjects: CrmObjectInterface[];\n objects: { id: string; name?: string }[];\n}\n\nexport interface CreateAssocResponse {\n createdCount: string;\n totalCount: string;\n error: boolean;\n}\n\ntype associationDirection = 'from' | 'to';\n\n@Injectable()\nexport class CrmAssociationService {\n crmObjectIdToAssociate = '';\n copyCrmObjects: SelectedObjects = { crmObjects: [], objects: [] };\n\n constructor(\n @Inject(CrmInjectionToken) private readonly config: CrmDependencies,\n private readonly companyService: CompanyService,\n private contactService: ContactService,\n private readonly crmAssociationApiService: CRMAssociationApiService,\n public modal: MatDialog,\n protected readonly companyContactCacheService: CompanyContactCacheService,\n ) {}\n\n setCopyCrmObjects(objects: SelectedObjects): void {\n this.copyCrmObjects = objects;\n }\n\n setCrmObjectIdToAssociate(crmObjectIdToAssociate: string): void {\n this.crmObjectIdToAssociate = crmObjectIdToAssociate;\n }\n\n getRemainingCompanyAssociationsForContacts$(contactId: string): Observable {\n const namespace$ = this.config.namespace$;\n const associations$: Observable = namespace$.pipe(\n switchMap((namespace: string) => {\n return of({\n associations: [],\n pagingMetadata: {\n hasMore: true,\n nextCursor: '',\n },\n }).pipe(\n expand((resp: ListAssociationsResponseInterface) => {\n if (!resp.pagingMetadata?.hasMore) {\n return EMPTY;\n }\n return this.crmAssociationApiService.listAssociation({\n namespace: namespace,\n pagingOptions: {\n pageSize: 25,\n cursor: resp.pagingMetadata?.nextCursor,\n },\n filtersV2: {\n operator: FilterGroupOperator.FILTER_GROUP_OPERATOR_AND,\n filters: [\n {\n fieldId: 'from_id',\n operator: FilterOperator.FILTER_OPERATOR_IS,\n values: [\n {\n string: contactId,\n },\n ],\n },\n {\n fieldId: 'association_type',\n operator: FilterOperator.FILTER_OPERATOR_IS,\n values: [\n {\n string: 'Contact-Company',\n },\n ],\n },\n ],\n },\n } as ListAssociationsRequestInterface);\n }),\n reduce(\n (acc: AssociationInterface[], val: ListAssociationsResponseInterface): AssociationInterface[] => [\n ...acc,\n ...(val?.associations || []),\n ],\n [] as AssociationInterface[],\n ),\n );\n }),\n );\n const companies$: Observable = combineLatest([namespace$, associations$]).pipe(\n switchMap(([namespace, response]) => {\n if (!response?.length) {\n return of({\n crmObjects: [],\n });\n }\n\n const companyIds: string[] = response.map((associationResponse) => {\n return associationResponse?.toId || '';\n });\n\n if (companyIds?.length === 0) {\n return of({\n crmObjects: [],\n });\n }\n\n return this.companyService.getMultiObject({\n namespace: namespace,\n crmObjectIds: companyIds,\n } as GetMultiCrmObjectRequestInterface);\n }),\n );\n\n return combineLatest([associations$, companies$]).pipe(\n map(([associations, companies]) => {\n if (!companies?.crmObjects?.length) {\n return [];\n }\n\n return associations?.map((association) => {\n const company = companies?.crmObjects?.find((company) => {\n return company?.crmObjectId === association.toId;\n });\n const tags = association.tags?.map((tag) => {\n return tag.tagValue;\n });\n return {\n associationId: association.associationId,\n associationType: association.associationType,\n tags: tags,\n associatedObject: company,\n } as Association;\n });\n }),\n );\n }\n\n getCompanyAssociationsForContact$(contactId: string): Observable {\n const namespace$ = this.config.namespace$;\n\n const associations$ = namespace$.pipe(\n switchMap((namespace) => {\n return this.crmAssociationApiService.listAssociation({\n namespace: namespace,\n pagingOptions: {\n pageSize: 5,\n },\n filtersV2: {\n operator: FilterGroupOperator.FILTER_GROUP_OPERATOR_AND,\n filters: [\n {\n fieldId: 'from_id',\n operator: FilterOperator.FILTER_OPERATOR_IS,\n values: [\n {\n string: contactId,\n },\n ],\n },\n {\n fieldId: 'association_type',\n operator: FilterOperator.FILTER_OPERATOR_IS,\n values: [\n {\n string: 'Contact-Company',\n },\n ],\n },\n ],\n },\n } as ListAssociationsRequestInterface);\n }),\n );\n\n const companies$ = this.getCompaniesWithAssociations$(namespace$, associations$, 'to');\n\n return this.joinAssociationsWithObjects$(associations$, companies$, 'to');\n }\n\n getCompanyAssociationObjectIdsForContact$(contactId: string): Observable {\n const namespace$ = this.config.namespace$;\n\n const associations$ = namespace$.pipe(\n switchMap((namespace) => {\n return this.crmAssociationApiService.listAssociation({\n namespace: namespace,\n pagingOptions: {\n pageSize: 5,\n },\n filtersV2: {\n operator: FilterGroupOperator.FILTER_GROUP_OPERATOR_AND,\n filters: [\n {\n fieldId: 'from_id',\n operator: FilterOperator.FILTER_OPERATOR_IS,\n values: [\n {\n string: contactId,\n },\n ],\n },\n {\n fieldId: 'association_type',\n operator: FilterOperator.FILTER_OPERATOR_IS,\n values: [\n {\n string: 'Contact-Company',\n },\n ],\n },\n ],\n },\n } as ListAssociationsRequestInterface);\n }),\n );\n\n return associations$.pipe(\n map((associations) => {\n return (\n associations?.associations?.map((asc) => {\n return asc.toId;\n }) || []\n );\n }),\n );\n }\n\n getRemainingContactAssociationsForCompanies$(companyId: string): Observable {\n const namespace$ = this.config.namespace$;\n const associations$: Observable = namespace$.pipe(\n switchMap((namespace: string) => {\n return of({\n associations: [],\n pagingMetadata: {\n hasMore: true,\n nextCursor: '',\n },\n }).pipe(\n expand((resp: ListAssociationsResponseInterface) => {\n if (!resp.pagingMetadata?.hasMore) {\n return EMPTY;\n }\n return this.crmAssociationApiService.listAssociation({\n namespace: namespace,\n pagingOptions: {\n pageSize: 25,\n cursor: resp.pagingMetadata?.nextCursor,\n },\n filtersV2: {\n operator: FilterGroupOperator.FILTER_GROUP_OPERATOR_AND,\n filters: [\n {\n fieldId: 'to_id',\n operator: FilterOperator.FILTER_OPERATOR_IS,\n values: [\n {\n string: companyId,\n },\n ],\n },\n {\n fieldId: 'association_type',\n operator: FilterOperator.FILTER_OPERATOR_IS,\n values: [\n {\n string: 'Contact-Company',\n },\n ],\n },\n ],\n },\n } as ListAssociationsRequestInterface);\n }),\n take(9), // Limiting here to avoid breaking the interface (200 users)\n reduce(\n (acc: AssociationInterface[], val: ListAssociationsResponseInterface): AssociationInterface[] => [\n ...acc,\n ...(val?.associations || []),\n ],\n [] as AssociationInterface[],\n ),\n );\n }),\n );\n const contacts$: Observable = combineLatest([namespace$, associations$]).pipe(\n switchMap(([namespace, response]) => {\n if (!response?.length) {\n return of({\n crmObjects: [],\n });\n }\n\n const contactIds: string[] = response.map((associationResponse) => {\n return associationResponse?.fromId || '';\n });\n\n if (contactIds?.length === 0) {\n return of({\n crmObjects: [],\n });\n }\n\n return this.contactService.getMultiObject({\n namespace: namespace,\n crmObjectIds: contactIds,\n } as GetMultiCrmObjectRequestInterface);\n }),\n );\n\n return combineLatest([associations$, contacts$]).pipe(\n map(([associations, contacts]) => {\n if (!contacts?.crmObjects?.length) {\n return [];\n }\n\n return associations?.map((association) => {\n const contact = contacts?.crmObjects?.find((contact) => {\n return contact?.crmObjectId === association.fromId;\n });\n const tags = association.tags?.map((tag) => {\n return tag.tagValue;\n });\n return {\n associationId: association.associationId,\n associationType: association.associationType,\n tags: tags,\n associatedObject: contact,\n } as Association;\n });\n }),\n shareReplay({ bufferSize: 1, refCount: false }),\n );\n }\n\n getChildCompanyAssociationsForCompany$(companyID: string): Observable {\n const namespace$ = this.config.namespace$;\n\n const associations$ = namespace$.pipe(\n switchMap((namespace) => {\n return this.crmAssociationApiService.listAssociation({\n namespace: namespace,\n pagingOptions: {\n pageSize: 5,\n },\n filtersV2: {\n operator: FilterGroupOperator.FILTER_GROUP_OPERATOR_AND,\n filters: [\n {\n fieldId: 'to_id',\n operator: FilterOperator.FILTER_OPERATOR_IS,\n values: [\n {\n string: companyID,\n },\n ],\n },\n {\n fieldId: 'association_type',\n operator: FilterOperator.FILTER_OPERATOR_IS,\n values: [\n {\n string: 'Company-Company',\n },\n ],\n },\n {\n fieldId: 'tags',\n operator: FilterOperator.FILTER_OPERATOR_IS_ANY,\n values: [\n {\n string: 'Parent',\n },\n ],\n },\n ],\n },\n } as ListAssociationsRequestInterface);\n }),\n );\n\n const companies$ = this.getCompaniesWithAssociations$(namespace$, associations$, 'from');\n return this.joinAssociationsWithObjects$(associations$, companies$, 'from');\n }\n\n getParentCompanyAssociationsForCompany$(companyID: string): Observable {\n const namespace$ = this.config.namespace$;\n\n const associations$ = namespace$.pipe(\n switchMap((namespace) => {\n return this.crmAssociationApiService.listAssociation({\n namespace: namespace,\n pagingOptions: {\n pageSize: 1,\n },\n filtersV2: {\n operator: FilterGroupOperator.FILTER_GROUP_OPERATOR_AND,\n filters: [\n {\n fieldId: 'from_id',\n operator: FilterOperator.FILTER_OPERATOR_IS,\n values: [\n {\n string: companyID,\n },\n ],\n },\n {\n fieldId: 'association_type',\n operator: FilterOperator.FILTER_OPERATOR_IS,\n values: [\n {\n string: 'Company-Company',\n },\n ],\n },\n {\n fieldId: 'tags',\n operator: FilterOperator.FILTER_OPERATOR_IS_ANY,\n values: [\n {\n string: 'Parent',\n },\n ],\n },\n ],\n },\n } as ListAssociationsRequestInterface);\n }),\n );\n\n const companies$ = this.getCompaniesWithAssociations$(namespace$, associations$, 'to');\n return this.joinAssociationsWithObjects$(associations$, companies$, 'to');\n }\n\n private getCompaniesWithAssociations$(\n namespace$: Observable,\n associations$: Observable,\n direction: associationDirection,\n ): Observable {\n return combineLatest([namespace$, associations$]).pipe(\n switchMap(([namespace, response]) => {\n if (!response?.associations?.length) {\n return of({\n crmObjects: [],\n });\n }\n\n const ids = response.associations.map((association) => {\n if (direction === 'from') {\n return association.fromId;\n }\n return association.toId;\n });\n return this.companyService.getMultiObject({\n namespace: namespace,\n crmObjectIds: ids,\n } as GetMultiCrmObjectRequestInterface);\n }),\n );\n }\n\n private joinAssociationsWithObjects$(\n associations$: Observable,\n objects$: Observable,\n direction?: associationDirection,\n ) {\n return combineLatest([associations$, objects$]).pipe(\n map(([associations, objects]) => {\n if (!objects?.crmObjects?.length) {\n return [];\n }\n return associations.associations.map((association) => {\n const contact = objects?.crmObjects?.find((contact) => {\n if (direction === 'from') {\n return contact?.crmObjectId === association.fromId;\n }\n return contact?.crmObjectId === association.toId;\n });\n const tags = association.tags?.map((tag) => {\n return tag.tagValue;\n });\n return {\n associationId: association.associationId,\n associationType: association.associationType,\n tags: tags,\n associatedObject: contact,\n } as Association;\n });\n }),\n );\n }\n\n getCachedContactAssociationsForCompany$(companyId: string): Observable {\n let cachedContacts = this.companyContactCacheService.get(companyId);\n if (!cachedContacts) {\n const associatedContacts = this.getRemainingContactAssociationsForCompanies$(companyId);\n this.companyContactCacheService.set(companyId, associatedContacts);\n cachedContacts = associatedContacts;\n }\n return cachedContacts;\n }\n\n getContactAssociationsForCompany$(companyId: string) {\n const namespace$ = this.config.namespace$;\n\n const associations$ = namespace$.pipe(\n switchMap((namespace) => {\n return this.crmAssociationApiService.listAssociation({\n namespace: namespace,\n pagingOptions: {\n pageSize: 5,\n },\n filtersV2: {\n operator: FilterGroupOperator.FILTER_GROUP_OPERATOR_AND,\n filters: [\n {\n fieldId: 'to_id',\n operator: FilterOperator.FILTER_OPERATOR_IS,\n values: [\n {\n string: companyId,\n },\n ],\n },\n {\n fieldId: 'association_type',\n operator: FilterOperator.FILTER_OPERATOR_IS,\n values: [\n {\n string: 'Contact-Company',\n },\n ],\n },\n ],\n },\n } as ListAssociationsRequestInterface);\n }),\n );\n\n const contacts$ = this.getContactsWithAssociations$(namespace$, associations$, 'from');\n\n return this.joinAssociationsWithObjects$(associations$, contacts$, 'from');\n }\n\n private getContactsWithAssociations$(\n namespace$: Observable,\n associations$: Observable,\n direction: associationDirection,\n ): Observable {\n return combineLatest([namespace$, associations$]).pipe(\n switchMap(([namespace, response]) => {\n if (!response?.associations?.length) {\n return of({\n crmObjects: [],\n });\n }\n\n const contactIds = response.associations.map((association) => {\n if (direction === 'from') {\n return association.fromId;\n }\n return association.toId;\n });\n return this.contactService.getMultiObject({\n namespace: namespace,\n crmObjectIds: contactIds,\n } as GetMultiCrmObjectRequestInterface);\n }),\n );\n }\n removeAssociation(id: string): Observable {\n return this.config.namespace$.pipe(\n switchMap((namespace) => {\n return this.crmAssociationApiService.deleteAssociation({\n associationId: id,\n namespace: namespace,\n } as DeleteAssociationRequestInterface);\n }),\n map(() => {\n return true;\n }),\n take(1),\n );\n }\n\n createContactCompanyAssociation$(\n associationType: string,\n primarySelection?: string | null,\n tagMap?: Map | null,\n ): Observable<{ respCount: CreateAssocResponse; copyCrmObjectsUpdated: Association[] }> {\n const primaryAssociation = new Map();\n const associationTagValues = new Map();\n\n const savedData$ = this.copyCrmObjects.objects.map((row) => {\n const association = {\n associationType: associationType,\n fromId: this.crmObjectIdToAssociate,\n toId: row.id,\n tags: [] as { tagValue: string }[],\n };\n\n if (row.id === primarySelection) {\n association.tags.push({\n tagValue: 'Primary',\n });\n primaryAssociation.set(row.id, true);\n }\n\n if (tagMap) {\n const tags = tagMap?.get(row.id);\n if (tags) {\n tags.forEach((tag) => {\n association.tags.push({\n tagValue: tag,\n });\n });\n }\n }\n\n associationTagValues.set(\n row.id,\n association.tags.map((tag) => tag.tagValue),\n );\n\n return this.config.namespace$.pipe(\n take(1),\n switchMap((namespace) => {\n return this.crmAssociationApiService.createAssociation({ namespace, association });\n }),\n catchError((error) => {\n console.error(error);\n return of(null);\n }),\n );\n });\n\n const callEndpoint = zip(...savedData$);\n return callEndpoint.pipe(\n take(1),\n map((data) => {\n let errorOccurred = false;\n const checkError = data.map((item) => {\n if (item === null) {\n errorOccurred = true;\n return null;\n }\n return item;\n });\n const filteredData = data.filter((item) => item !== null);\n const filteredCopy = this.copyCrmObjects.crmObjects.filter((_, index) => checkError[index] !== null);\n const respCount = {\n createdCount: String(filteredData.length),\n totalCount: String(data.length),\n error: errorOccurred,\n } as CreateAssocResponse;\n const copyCrmObjectsUpdated = filteredCopy.map((obj, index) => {\n return {\n ...obj,\n associationId: filteredData[index]?.associationId ?? '',\n tags: associationTagValues.get(obj.crmObjectId ?? '') || [],\n } as Association;\n });\n\n return { respCount, copyCrmObjectsUpdated };\n }),\n );\n }\n\n createAssociation$(\n associationType: string,\n tags: string[],\n fallbackToNoTags: boolean,\n direction: associationDirection = 'from',\n ): Observable<{\n respCount: CreateAssocResponse;\n copyCrmObjectsUpdated: Association[];\n }> {\n const savedData$ = this.copyCrmObjects.objects.map((row) => {\n const associationTags: TagInterface[] = [];\n for (const tag of tags) {\n associationTags.push({ tagValue: tag } as TagInterface);\n }\n const association = {\n associationType: associationType,\n fromId: row.id,\n toId: this.crmObjectIdToAssociate,\n tags: associationTags,\n };\n if (direction === 'to') {\n association.fromId = this.crmObjectIdToAssociate;\n association.toId = row.id;\n }\n\n return this.config.namespace$.pipe(\n take(1),\n switchMap((namespace) => {\n // Try creating the association with the provided namespace and association, and retry once if there's an error\n return this.crmAssociationApiService.createAssociation({ namespace, association }).pipe(\n catchError(() => {\n if (!fallbackToNoTags) {\n // If fallbackToNoTags is false, return null as nill and handeled in the next steps\n return of(null);\n }\n association.tags = [];\n return this.crmAssociationApiService.createAssociation({ namespace, association }).pipe(\n catchError(() => {\n // If there's another error during the second attempt, return null as nill and handeled in the next steps\n return of(null);\n }),\n );\n }),\n );\n }),\n );\n });\n\n const callEndpoint = zip(...savedData$);\n return callEndpoint.pipe(\n take(1),\n map((data) => {\n let errorOccurred = false;\n const checkError = data.map((item) => {\n if (item === null) {\n errorOccurred = true;\n return null;\n }\n return item;\n });\n const filteredData = data.filter((item) => item !== null);\n const filteredCopy = this.copyCrmObjects.crmObjects.filter((_, index) => checkError[index] !== null);\n const respCount = {\n createdCount: String(filteredData.length),\n totalCount: String(data.length),\n error: errorOccurred,\n } as CreateAssocResponse;\n const copyCrmObjectsUpdated = filteredCopy.map((obj, index) => {\n return {\n ...obj,\n associationId: filteredData[index]?.associationId ?? '',\n } as Association;\n });\n\n return { respCount, copyCrmObjectsUpdated };\n }),\n map((copyCrmObjectsUpdated) => {\n return copyCrmObjectsUpdated;\n }),\n );\n }\n\n listAssociationFieldOptions(\n associationType: string,\n fieldId: string,\n pageSize: number,\n searchTerm: string,\n ): Observable {\n return this.config.namespace$.pipe(\n take(1),\n switchMap((namespace) => {\n return this.crmAssociationApiService.listAssociationFieldOptions({\n namespace,\n associationType,\n fieldId,\n pageSize,\n searchTerm,\n });\n }),\n map((response) => {\n return response.options ?? [];\n }),\n );\n }\n\n updateAssociationTags(id: string, tags: string[]): Observable {\n return this.config.namespace$.pipe(\n take(1),\n switchMap((namespace) => {\n return this.crmAssociationApiService.updateAssociation({\n namespace,\n associationId: id,\n tags: tags.map((t) => ({ tagValue: t })),\n });\n }),\n map(() => true),\n );\n }\n\n getAssociation(id: string): Observable {\n return this.config.namespace$.pipe(\n take(1),\n switchMap((namespace) => {\n return this.crmAssociationApiService.getMultiAssociation({\n namespace,\n associationIds: [id],\n });\n }),\n map((response) => response?.associations?.length > 0 && response?.associations[0]),\n );\n }\n}\n","import { BreakpointObserver } from '@angular/cdk/layout';\nimport { Inject, Injectable, WritableSignal, signal } from '@angular/core';\nimport { GalaxyColumnDef } from '@vendasta/galaxy/table';\nimport { Observable, of } from 'rxjs';\nimport { distinctUntilChanged, map, take } from 'rxjs/operators';\nimport { BREAKPOINT_WIDTH } from '../../../constants';\nimport { CrmInjectionToken, CrmDependencies, ObjectType } from '../../../tokens-and-interfaces';\n\ninterface TableState {\n localStorageKey: string[];\n}\n\n@Injectable()\nexport class CrmTableStateService {\n MOBILE_BREAKPOINT = `(max-width: ${BREAKPOINT_WIDTH.MOBILE})`;\n isMobile$: Observable = this.breakpointObserver.observe([this.MOBILE_BREAKPOINT]).pipe(\n map((result) => result.matches),\n distinctUntilChanged(),\n );\n tableState: WritableSignal = signal({\n localStorageKey: [],\n });\n\n constructor(\n @Inject(CrmInjectionToken) private readonly config: CrmDependencies,\n private readonly breakpointObserver: BreakpointObserver,\n ) {}\n\n initializeLocalStorageColumns(columns: GalaxyColumnDef[]): Observable {\n return of(false).pipe(\n map((isMobile) => {\n if (isMobile) {\n return columns;\n }\n let lcColumns: GalaxyColumnDef[] = [];\n for (const i in this.tableState().localStorageKey) {\n const ls = localStorage.getItem(this.tableState().localStorageKey[i]);\n if (!ls) {\n continue;\n }\n lcColumns = JSON.parse(ls);\n break;\n }\n columns.forEach((column) => {\n const localStorageColumnIndex = lcColumns?.findIndex((c) => c.id === column.id);\n if (localStorageColumnIndex < 0) {\n lcColumns.push(column);\n } else {\n const localStorageColumn = lcColumns[localStorageColumnIndex];\n lcColumns[localStorageColumnIndex] = {\n ...localStorageColumn,\n ...column,\n _position: localStorageColumn._position,\n hidden: localStorageColumn.hidden,\n };\n }\n });\n const lcColumnsCleaned = lcColumns.filter((c) => columns.find((column) => column.id === c.id));\n\n localStorage.setItem(this.tableState().localStorageKey[0], JSON.stringify(lcColumnsCleaned));\n return lcColumnsCleaned;\n }),\n );\n }\n\n public setLocalStorageColumns(columns: GalaxyColumnDef[]): void {\n this.isMobile$.pipe(take(1)).subscribe((isMobile) => {\n if (!columns?.length || isMobile) {\n return;\n }\n localStorage.setItem(this.tableState().localStorageKey[0], JSON.stringify(columns));\n });\n }\n\n setLocalStorageKey(objectType: ObjectType): void {\n const localStorageKey: string[] = [];\n const appName = this.config.appID;\n if (appName) {\n localStorageKey.push(`crm-${appName}-${objectType}-table-state`);\n }\n localStorageKey.push(`crm-${objectType}-table-state`);\n this.tableState.set({\n localStorageKey: localStorageKey,\n });\n }\n}\n","export * from './_abstract.service';\nexport * from './_activity_object.service';\nexport * from './_company.service';\nexport * from './_contact.service';\nexport * from './crm-association.service';\nexport * from './crm-object.service';\nexport * from './crm-table-state.service';\n","export { ActivityService } from './activity.service';\nexport { CrmFieldOptionsService } from './crm-field-options.service';\nexport { CrmFiltersService } from './crm-filters.service';\nexport * from './crm-form.service';\nexport * from './field.service';\nexport * from './crm-object-service';\n","import { Component, Inject } from '@angular/core';\nimport { RouterLink } from '@angular/router';\nimport { CommonModule } from '@angular/common';\nimport { BlankValueComponent, CustomCellComponent } from '@vendasta/galaxy/table';\nimport { BehaviorSubject, combineLatest, Observable, of } from 'rxjs';\nimport { map, switchMap, take } from 'rxjs/operators';\nimport { CrmFieldService, StandardIds, CrmObjectService } from '../../shared-services';\nimport { CrmInjectionToken, CrmDependencies } from '../../tokens-and-interfaces';\nimport { PAGE_ROUTES } from '../../constants';\n\nconst NO_VALUE_FOR_COMPANY_NAME = '';\ninterface ParentCompanyNameData {\n displayValue: string;\n link: string;\n}\n\n@Component({\n template: `\n \n \n \n \n \n \n \n \n \n
\n
\n \n {{ displayName }}\n \n \n \n \n `,\n standalone: true,\n styleUrls: ['./shared.scss'],\n imports: [RouterLink, CommonModule, BlankValueComponent],\n})\nexport class ParentCompanyNameComponent extends CustomCellComponent {\n NO_VALUE_FOR_COMPANY_NAME = NO_VALUE_FOR_COMPANY_NAME;\n private companyId$$ = new BehaviorSubject('');\n set value(newValue: string) {\n this.companyId$$.next(newValue);\n }\n\n displayValue$ = this.companyId$$.pipe(\n switchMap((parentCompanyID) => {\n if (!parentCompanyID) {\n return of(null);\n }\n return this.crmObjectService.getMultiObject('Company', [parentCompanyID]);\n }),\n map((getMultiResponse) => {\n if (getMultiResponse?.crmObjects?.length === 0 || !getMultiResponse?.crmObjects?.[0].crmObjectId) {\n return null;\n }\n return this.crmFieldService.getFieldValueFromCrmObject(getMultiResponse?.crmObjects[0], StandardIds.CompanyName);\n }),\n map((companyNameFieldValue) => companyNameFieldValue?.stringValue ?? this.NO_VALUE_FOR_COMPANY_NAME),\n );\n link$ = this.config.viewProfileFlag$.pipe(\n take(1),\n switchMap((featureFlag) => {\n if (featureFlag) {\n return this.config.routePrefix$;\n } else {\n return of('');\n }\n }),\n map((routePrefix) => {\n if (!routePrefix || !this.companyId$$.getValue()) {\n return '';\n }\n const parentCompanyProfileViewRoute = `${PAGE_ROUTES.COMPANY.ROOT}/${PAGE_ROUTES.COMPANY.SUBROUTES.PROFILE}`;\n return `${routePrefix}/${parentCompanyProfileViewRoute}`.replace(':crmObjectId', this.companyId$$.getValue());\n }),\n );\n componentData$: Observable = combineLatest([this.displayValue$, this.link$]).pipe(\n map(([displayValue, link]) => ({ displayValue, link })),\n );\n\n constructor(\n @Inject(CrmInjectionToken) private readonly config: CrmDependencies,\n private readonly crmFieldService: CrmFieldService,\n private readonly crmObjectService: CrmObjectService,\n ) {\n super();\n }\n}\n","import { Inject, Injectable } from '@angular/core';\nimport { CrmDependencies, CrmInjectionToken } from '../tokens-and-interfaces';\nimport { ScoringApiService } from '@vendasta/crm';\nimport { Observable, shareReplay } from 'rxjs';\nimport { map, switchMap } from 'rxjs/operators';\n\n@Injectable()\nexport class ScoreService {\n constructor(\n @Inject(CrmInjectionToken) private readonly config: CrmDependencies,\n private scoringApiService: ScoringApiService,\n ) {}\n\n private crmObjectId = '';\n setObjectId(objectId: string): void {\n this.crmObjectId = objectId;\n }\n\n getScoreForProfile$(fieldId: string): Observable {\n return this.getScore$(this.crmObjectId, fieldId);\n }\n\n getScoreForTableRow$(companyId: string, fieldId: string): Observable {\n return this.getScore$(companyId, fieldId);\n }\n\n private getScore$(companyId: string, fieldId: string): Observable {\n return this.config.namespace$.pipe(\n switchMap((namespace) => {\n return this.scoringApiService.getScore({\n namespace: namespace,\n scoringIdentifier: {\n crmObjectId: companyId,\n crmObjectType: 'Company',\n label: fieldId,\n },\n });\n }),\n map((response) => response?.score ?? null),\n shareReplay(1),\n );\n }\n}\n","import { Component, signal, WritableSignal } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { BlankValueComponent, CustomCellComponent } from '@vendasta/galaxy/table';\nimport { FieldValueInterface } from '@vendasta/crm';\nimport { takeUntilDestroyed, toObservable } from '@angular/core/rxjs-interop';\nimport { switchMap } from 'rxjs/operators';\nimport { StandardIds, SystemFieldIds } from '../../../shared-services';\nimport { of } from 'rxjs';\nimport { ScoreService } from '../../../shared-services/score.service';\n\nconst NO_VALUE_FOR_SCORE = '';\n\n@Component({\n templateUrl: './score.component.html',\n standalone: true,\n styleUrls: ['../shared.scss'],\n imports: [CommonModule, BlankValueComponent],\n providers: [ScoreService],\n})\nexport class LeadScoreCellComponent extends CustomCellComponent {\n NO_VALUE_FOR_SCORE = NO_VALUE_FOR_SCORE;\n private fieldValues = signal([]);\n protected score: WritableSignal' | null> = signal(null);\n\n set value(newValues: FieldValueInterface[]) {\n this.fieldValues.set(newValues);\n }\n\n constructor(private readonly scoreService: ScoreService) {\n super();\n toObservable(this.fieldValues)\n .pipe(\n switchMap((fieldValues) => {\n const companyId = fieldValues.find(\n (fieldValue) => fieldValue?.fieldId === SystemFieldIds.CompanyID,\n )?.stringValue;\n const isScoreSet: boolean =\n fieldValues.find((fieldValue) => fieldValue?.fieldId === StandardIds.CompanyLeadScore)?.floatValue !==\n undefined;\n if (!companyId || !isScoreSet) {\n return of(null);\n }\n return this.scoreService.getScoreForTableRow$(companyId, StandardIds.CompanyLeadScore);\n }),\n takeUntilDestroyed(),\n )\n .subscribe((result) => {\n if (!result) {\n this.score.set(NO_VALUE_FOR_SCORE);\n return;\n }\n\n this.score.set(result);\n });\n }\n}\n","@if (this.score(); as score) {\n @if (score !== NO_VALUE_FOR_SCORE) {\n {{ score }}\n } @else {\n \n }\n} @else {\n
\n}\n","import * as i0 from '@angular/core';\nimport { Injectable } from '@angular/core';\nimport * as i1 from '@angular/common/http';\nimport { HttpHeaders } from '@angular/common/http';\nimport { map } from 'rxjs/operators';\n\n// *********************************\n// Code generated by sdkgen\n// DO NOT EDIT!.\n//\n// Enums.\n// *********************************\nvar ResourceScope = /*#__PURE__*/function (ResourceScope) {\n ResourceScope[ResourceScope[\"RESOURCE_SCOPE_INVALID\"] = 0] = \"RESOURCE_SCOPE_INVALID\";\n ResourceScope[ResourceScope[\"RESOURCE_SCOPE_NONE\"] = 1] = \"RESOURCE_SCOPE_NONE\";\n ResourceScope[ResourceScope[\"RESOURCE_SCOPE_OWN\"] = 2] = \"RESOURCE_SCOPE_OWN\";\n ResourceScope[ResourceScope[\"RESOURCE_SCOPE_TEAM\"] = 3] = \"RESOURCE_SCOPE_TEAM\";\n ResourceScope[ResourceScope[\"RESOURCE_SCOPE_ALL\"] = 4] = \"RESOURCE_SCOPE_ALL\";\n return ResourceScope;\n}(ResourceScope || {});\n// *********************************\n// Code generated by sdkgen\n// DO NOT EDIT!.\n//\n// Enums Index.\n// *********************************\n\nfunction enumStringToValue$4(enumRef, value) {\n if (typeof value === 'number') {\n return value;\n }\n return enumRef[value];\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.cursor !== 'undefined') {\n toReturn['cursor'] = this.cursor;\n }\n if (typeof this.pageSize !== 'undefined') {\n toReturn['pageSize'] = this.pageSize;\n }\n return toReturn;\n }\n}\nclass PagedResponseMetadata {\n static fromProto(proto) {\n let m = new PagedResponseMetadata();\n m = Object.assign(m, proto);\n if (proto.totalResults) {\n m.totalResults = parseInt(proto.totalResults, 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.nextCursor !== 'undefined') {\n toReturn['nextCursor'] = this.nextCursor;\n }\n if (typeof this.hasMore !== 'undefined') {\n toReturn['hasMore'] = this.hasMore;\n }\n if (typeof this.totalResults !== 'undefined') {\n toReturn['totalResults'] = this.totalResults;\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 ListAssociatedUsersRequest {\n static fromProto(proto) {\n let m = new ListAssociatedUsersRequest();\n m = Object.assign(m, proto);\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.partnerId !== 'undefined') {\n toReturn['partnerId'] = this.partnerId;\n }\n if (typeof this.accountId !== 'undefined') {\n toReturn['accountId'] = this.accountId;\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 ListAssociatedUsersResponse {\n static fromProto(proto) {\n let m = new ListAssociatedUsersResponse();\n m = Object.assign(m, proto);\n if (proto.associations) {\n m.associations = proto.associations.map(UserAssociations.fromProto);\n }\n if (proto.pagingMetadata) {\n m.pagingMetadata = PagedResponseMetadata.fromProto(proto.pagingMetadata);\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.associations !== 'undefined' && this.associations !== null) {\n toReturn['associations'] = 'toApiJson' in this.associations ? this.associations.toApiJson() : this.associations;\n }\n if (typeof this.pagingMetadata !== 'undefined' && this.pagingMetadata !== null) {\n toReturn['pagingMetadata'] = 'toApiJson' in this.pagingMetadata ? this.pagingMetadata.toApiJson() : this.pagingMetadata;\n }\n return toReturn;\n }\n}\nclass UserAssociations {\n static fromProto(proto) {\n let m = new UserAssociations();\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.userId !== 'undefined') {\n toReturn['userId'] = this.userId;\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 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$1(enumRef, value) {\n if (typeof value === 'number') {\n return value;\n }\n return enumRef[value];\n}\nclass GetPermissionsRequest {\n static fromProto(proto) {\n let m = new GetPermissionsRequest();\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.partnerId !== 'undefined') {\n toReturn['partnerId'] = this.partnerId;\n }\n if (typeof this.userId !== 'undefined') {\n toReturn['userId'] = this.userId;\n }\n if (typeof this.fieldMask !== 'undefined' && this.fieldMask !== null) {\n toReturn['fieldMask'] = 'toApiJson' in this.fieldMask ? this.fieldMask.toApiJson() : this.fieldMask;\n }\n return toReturn;\n }\n}\nclass GetPermissionsResponse {\n static fromProto(proto) {\n let m = new GetPermissionsResponse();\n m = Object.assign(m, proto);\n if (proto.permissions) {\n m.permissions = Permissions.fromProto(proto.permissions);\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.permissions !== 'undefined' && this.permissions !== null) {\n toReturn['permissions'] = 'toApiJson' in this.permissions ? this.permissions.toApiJson() : this.permissions;\n }\n return toReturn;\n }\n}\nclass Namespace {\n static fromProto(proto) {\n let m = new Namespace();\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.namespaceId !== 'undefined') {\n toReturn['namespaceId'] = this.namespaceId;\n }\n if (typeof this.namespaceType !== 'undefined') {\n toReturn['namespaceType'] = this.namespaceType;\n }\n return toReturn;\n }\n}\nclass Permissions {\n static fromProto(proto) {\n let m = new Permissions();\n m = Object.assign(m, proto);\n if (proto.namespace) {\n m.namespace = proto.namespace.map(Namespace.fromProto);\n }\n if (proto.contacts) {\n m.contacts = Resource.fromProto(proto.contacts);\n }\n if (proto.activities) {\n m.activities = Resource.fromProto(proto.activities);\n }\n if (proto.companies) {\n m.companies = Resource.fromProto(proto.companies);\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.userId !== 'undefined') {\n toReturn['userId'] = this.userId;\n }\n if (typeof this.namespace !== 'undefined' && this.namespace !== null) {\n toReturn['namespace'] = 'toApiJson' in this.namespace ? this.namespace.toApiJson() : this.namespace;\n }\n if (typeof this.contacts !== 'undefined' && this.contacts !== null) {\n toReturn['contacts'] = 'toApiJson' in this.contacts ? this.contacts.toApiJson() : this.contacts;\n }\n if (typeof this.activities !== 'undefined' && this.activities !== null) {\n toReturn['activities'] = 'toApiJson' in this.activities ? this.activities.toApiJson() : this.activities;\n }\n if (typeof this.companies !== 'undefined' && this.companies !== null) {\n toReturn['companies'] = 'toApiJson' in this.companies ? this.companies.toApiJson() : this.companies;\n }\n if (typeof this.restrictedToMarketId !== 'undefined') {\n toReturn['restrictedToMarketId'] = this.restrictedToMarketId;\n }\n return toReturn;\n }\n}\nclass Resource {\n static fromProto(proto) {\n let m = new Resource();\n m = Object.assign(m, proto);\n if (proto.readScope) {\n m.readScope = enumStringToValue$1(ResourceScope, proto.readScope);\n }\n if (proto.writeScope) {\n m.writeScope = enumStringToValue$1(ResourceScope, proto.writeScope);\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.readScope !== 'undefined') {\n toReturn['readScope'] = this.readScope;\n }\n if (typeof this.writeScope !== 'undefined') {\n toReturn['writeScope'] = this.writeScope;\n }\n return toReturn;\n }\n}\nclass UpdatePermissionsRequest {\n static fromProto(proto) {\n let m = new UpdatePermissionsRequest();\n m = Object.assign(m, proto);\n if (proto.permissions) {\n m.permissions = Permissions.fromProto(proto.permissions);\n }\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.permissions !== 'undefined' && this.permissions !== null) {\n toReturn['permissions'] = 'toApiJson' in this.permissions ? this.permissions.toApiJson() : this.permissions;\n }\n if (typeof this.fieldMask !== 'undefined' && this.fieldMask !== null) {\n toReturn['fieldMask'] = 'toApiJson' in this.fieldMask ? this.fieldMask.toApiJson() : this.fieldMask;\n }\n return toReturn;\n }\n}\nfunction enumStringToValue(enumRef, value) {\n if (typeof value === 'number') {\n return value;\n }\n return enumRef[value];\n}\nclass Access {\n static fromProto(proto) {\n let m = new Access();\n m = Object.assign(m, proto);\n return m;\n }\n constructor(kwargs) {\n if (!kwargs) {\n return;\n }\n Object.assign(this, kwargs);\n }\n toApiJson() {\n const toReturn = {};\n if (typeof this.scope !== 'undefined') {\n toReturn['scope'] = this.scope;\n }\n if (typeof this.public !== 'undefined') {\n toReturn['public'] = this.public;\n }\n return toReturn;\n }\n}\n\n// *********************************\n// Code generated by sdkgen\n// DO NOT EDIT!.\n//\n// Objects Index.\n// *********************************\n\nconst environment = (window ? window['environment'] : 'prod') ?? 'prod';\nconst hostMap = {\n 'local': 'platform-users-api.vendasta-local.com',\n 'test': '',\n 'demo': 'platform-users-demo.apigateway.co',\n 'prod': 'platform-users-prod.apigateway.co',\n 'production': 'platform-users-prod.apigateway.co'\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(t) {\n return new (t || HostService)();\n };\n HostService.ɵprov = /* @__PURE__ */i0.ɵɵdefineInjectable({\n token: HostService,\n factory: HostService.ɵfac,\n providedIn: 'root'\n });\n return HostService;\n})();\n(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && void 0;\n})();\n\n// *********************************\n// Code generated by sdkgen\n// DO NOT EDIT!.\n//\n// API Service.\n// *********************************\nlet PermissionsApiService = /*#__PURE__*/(() => {\n class PermissionsApiService {\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 getPermissions(r) {\n const request = r.toApiJson ? r : new GetPermissionsRequest(r);\n return this.http.post(this._host + \"/platformusers.v1.PermissionsService/GetPermissions\", request.toApiJson(), this.apiOptions()).pipe(map(resp => GetPermissionsResponse.fromProto(resp)));\n }\n updatePermissions(r) {\n const request = r.toApiJson ? r : new UpdatePermissionsRequest(r);\n return this.http.post(this._host + \"/platformusers.v1.PermissionsService/UpdatePermissions\", request.toApiJson(), {\n ...this.apiOptions(),\n observe: 'response'\n });\n }\n }\n PermissionsApiService.ɵfac = function PermissionsApiService_Factory(t) {\n return new (t || PermissionsApiService)(i0.ɵɵinject(i1.HttpClient), i0.ɵɵinject(HostService));\n };\n PermissionsApiService.ɵprov = /* @__PURE__ */i0.ɵɵdefineInjectable({\n token: PermissionsApiService,\n factory: PermissionsApiService.ɵfac,\n providedIn: 'root'\n });\n return PermissionsApiService;\n})();\n(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && void 0;\n})();\n\n// *********************************\n// Code generated by sdkgen\n// DO NOT EDIT!.\n//\n// API Service.\n// *********************************\nlet SMBAssociationsApiService = /*#__PURE__*/(() => {\n class SMBAssociationsApiService {\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 listAssociatedUsers(r) {\n const request = r.toApiJson ? r : new ListAssociatedUsersRequest(r);\n return this.http.post(this._host + \"/platformusers.v1.SMBAssociationsService/ListAssociatedUsers\", request.toApiJson(), this.apiOptions()).pipe(map(resp => ListAssociatedUsersResponse.fromProto(resp)));\n }\n }\n SMBAssociationsApiService.ɵfac = function SMBAssociationsApiService_Factory(t) {\n return new (t || SMBAssociationsApiService)(i0.ɵɵinject(i1.HttpClient), i0.ɵɵinject(HostService));\n };\n SMBAssociationsApiService.ɵprov = /* @__PURE__ */i0.ɵɵdefineInjectable({\n token: SMBAssociationsApiService,\n factory: SMBAssociationsApiService.ɵfac,\n providedIn: 'root'\n });\n return SMBAssociationsApiService;\n})();\n(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && void 0;\n})();\n\n// *********************************\n// Code generated by sdkgen\n// DO NOT EDIT!.\n//\n// Index.\n// *********************************\n\n// MANUALLY CREATED FILE\n// Don't delete this by mistake when you update the SDK with mscli!\n\n/**\n * Generated bundle index. Do not edit.\n */\n\nexport { Access, FieldMask, GetPermissionsRequest, GetPermissionsResponse, HostService, ListAssociatedUsersRequest, ListAssociatedUsersResponse, Namespace, PagedRequestOptions, PagedResponseMetadata, Permissions, PermissionsApiService, Resource, ResourceScope, SMBAssociationsApiService, UpdatePermissionsRequest, UserAssociations };\n","import { inject, Injectable } from '@angular/core';\nimport { PermissionsApiService, GetPermissionsRequestInterface } from '@vendasta/platform-users';\nimport { CrmInjectionToken } from '../tokens-and-interfaces';\nimport { combineLatest, switchMap, of, map, shareReplay, Observable } from 'rxjs';\nimport { FeatureFlagsApiService } from '@vendasta/partner';\nimport { IAMService, UserIdentifier } from '@vendasta/iamv2';\nimport { catchError } from 'rxjs/operators';\nimport { User } from '@vendasta/iamv2/lib/user/user';\n\nconst PartnerCenterClientAppID = 'partner-center-client';\nconst ShellClientAppID = 'shell-client';\nconst AppsRestrictedByMarkets = [PartnerCenterClientAppID, ShellClientAppID];\n\n@Injectable()\nexport class RestrictedGroupService {\n private readonly config = inject(CrmInjectionToken);\n private readonly permissionsApiService = inject(PermissionsApiService);\n private readonly featureFlagService = inject(FeatureFlagsApiService);\n private readonly iamService = inject(IAMService);\n\n private featureEnabled$ = this.config.namespace$.pipe(\n switchMap((namespace: string) => {\n const isNotSupported = !AppsRestrictedByMarkets.includes(this.config.appID || '');\n if (isNotSupported) {\n return of({\n hasAccess: [true],\n });\n }\n\n return this.featureFlagService.batchGetStatus({\n featureIds: ['crm_market_restriction'],\n partnerId: namespace || '',\n });\n }),\n map((response) => {\n return response?.hasAccess.length > 0 && response?.hasAccess[0];\n }),\n );\n private currentUser$ = this.config.currentUserId$.pipe(\n switchMap((userId) => {\n const uniqueUserIdentifiers = [new UserIdentifier({ userId: userId })];\n\n return this.iamService.getMultiUsers(uniqueUserIdentifiers);\n }),\n map((response) => response && response[0]),\n catchError(() => {\n return of(null);\n }),\n );\n private currentGroupId$ = combineLatest([\n this.config.currentUserId$,\n this.currentUser$,\n this.config.namespace$,\n this.featureEnabled$,\n ]).pipe(\n switchMap(([userId, user, namespace, featureEnabled]: [string, User | null, string, boolean]) => {\n const roles = user?.roles;\n const hasDeveloperRole = 'developer' in roles;\n const isSuperAdmin = roles['partner']?.attributes?.attributes['is_super_admin']?.boolAttribute === true;\n const isNotSupported = !AppsRestrictedByMarkets.includes(this.config.appID || '');\n if (!featureEnabled || isNotSupported || hasDeveloperRole || isSuperAdmin) {\n return of('');\n }\n\n return this.permissionsApiService.getPermissions({\n partnerId: namespace,\n userId: userId,\n } as GetPermissionsRequestInterface);\n }),\n map((response) => {\n if (typeof response === 'string') {\n return '';\n }\n return response?.permissions?.restrictedToMarketId ?? '';\n }),\n shareReplay(1),\n );\n\n getCurrentGroupId(): Observable {\n return this.currentGroupId$;\n }\n}\n","import { Inject, Injectable } from '@angular/core';\nimport { ColumnDataInterface, TableCustomizationService } from './_abstract-table-customization.service';\nimport { firstValueFrom, Observable, of, combineLatest } from 'rxjs';\nimport { CrmObjectInterface, FieldSchemaInterface } from '@vendasta/crm';\nimport { CompanyCustomColumns, CrmFieldService, StandardIds, SystemFieldIds } from '../crm-services/field.service';\nimport { TranslateService } from '@ngx-translate/core';\nimport { CrmDependencies, CrmInjectionToken } from '../../tokens-and-interfaces';\nimport { map, take } from 'rxjs/operators';\nimport { PAGE_ROUTES } from '../../constants';\nimport { CustomCell, GalaxyColumnDef } from '@vendasta/galaxy/table';\nimport {\n GalaxyFilterDefinitionInterface,\n GalaxyFilterInterface,\n GalaxyFilterOperator,\n} from '@vendasta/galaxy/filter/chips';\nimport { ParentCompanyNameComponent } from '../../shared-components/custom-table-cells/parent-company-name.component';\nimport { LeadScoreCellComponent } from '../../shared-components/custom-table-cells/score/score.component';\nimport { RestrictedGroupService } from '../restricted-group.service';\n\nconst LeadScoreColumnCell = {\n fieldIds: [StandardIds.CompanyLeadScore, SystemFieldIds.CompanyID],\n columnDefinition: {\n id: StandardIds.CompanyLeadScore,\n },\n customCellComponent: LeadScoreCellComponent,\n};\n@Injectable()\nexport class CompanyTableCustomizationService extends TableCustomizationService {\n private profileLink$: Observable;\n\n public static getRowFullAddress(crmObject: CrmObjectInterface, crmFieldService: CrmFieldService): string {\n const addressLineOne = crmFieldService.getFieldId(StandardIds.CompanyPrimaryAddressLine1);\n const addressLineTwo = crmFieldService.getFieldId(StandardIds.CompanyPrimaryAddressLine2);\n const city = crmFieldService.getFieldId(StandardIds.CompanyPrimaryAddressCity);\n const state = crmFieldService.getFieldId(StandardIds.CompanyPrimaryAddressState);\n const postalCode = crmFieldService.getFieldId(StandardIds.CompanyPrimaryAddressPostalCode);\n const country = crmFieldService.getFieldId(StandardIds.CompanyPrimaryAddressCountry);\n\n const addressLineOneData = crmObject.fields?.find((f) => f.fieldId === addressLineOne);\n const addressLineTwoData = crmObject.fields?.find((f) => f.fieldId === addressLineTwo);\n const cityData = crmObject.fields?.find((f) => f.fieldId === city);\n const stateData = crmObject.fields?.find((f) => f.fieldId === state);\n const postalCodeData = crmObject.fields?.find((f) => f.fieldId === postalCode);\n const countryData = crmObject.fields?.find((f) => f.fieldId === country);\n\n const fullAddress = [\n addressLineOneData?.stringValue,\n addressLineTwoData?.stringValue,\n cityData?.stringValue,\n stateData?.stringValue,\n countryData?.stringValue,\n postalCodeData?.stringValue,\n ];\n\n return fullAddress.filter((value) => value !== undefined).join(', ');\n }\n\n constructor(\n protected override readonly crmFieldService: CrmFieldService,\n private readonly translate: TranslateService,\n @Inject(CrmInjectionToken) private readonly config: CrmDependencies,\n private readonly restrictedGroupService: RestrictedGroupService,\n ) {\n super(crmFieldService);\n this.profileLink$ = this.config.routePrefix$.pipe(\n map((prefix) => {\n const viewRoute = `${PAGE_ROUTES.COMPANY.ROOT}/${PAGE_ROUTES.COMPANY.SUBROUTES.PROFILE}`;\n return prefix ? `${prefix}/${viewRoute}` : '';\n }),\n );\n }\n\n private hideIDColumns(columns: GalaxyColumnDef[]): GalaxyColumnDef[] {\n const columnIdentifiersToHide = [\n SystemFieldIds.CompanyExternalID,\n SystemFieldIds.CompanyID,\n StandardIds.CompanyParentCompanyID,\n this.crmFieldService.getFieldId(StandardIds.CompanyPrimaryAddressLine1),\n this.crmFieldService.getFieldId(StandardIds.CompanyPrimaryAddressLine2),\n this.crmFieldService.getFieldId(StandardIds.CompanyPrimaryAddressCity),\n this.crmFieldService.getFieldId(StandardIds.CompanyPrimaryAddressState),\n this.crmFieldService.getFieldId(StandardIds.CompanyPrimaryAddressPostalCode),\n this.crmFieldService.getFieldId(StandardIds.CompanyPrimaryAddressCountry),\n this.crmFieldService.getFieldId(StandardIds.CompanyWebsite),\n ];\n\n for (const identifier of columnIdentifiersToHide) {\n const index = columns.findIndex((c) => c.id === identifier);\n if (index >= 0) {\n columns[index].hidden = true;\n }\n }\n\n for (const nameCol of columns.filter((c) => c.id === StandardIds.CompanyName)) {\n nameCol.sticky = true;\n }\n\n return columns;\n }\n\n customizeColumnsMobile(columns: GalaxyColumnDef[]): GalaxyColumnDef[] {\n const columnIdentifiersToShow = new Map([\n [this.crmFieldService.getFieldId(StandardIds.CompanyName), true],\n [this.crmFieldService.getFieldId(StandardIds.CompanyWebsite), true],\n ]);\n\n columns.forEach((column) => {\n column.hidden = !columnIdentifiersToShow.get(column.id);\n });\n return [...columns];\n }\n\n private addCompanyProfileLink(crmObject: CrmObjectInterface, columnData: ColumnDataInterface): void {\n const companyNameField = this.crmFieldService.getFieldId(StandardIds.CompanyName);\n this.profileLink$.pipe(take(1)).subscribe((profileLink) => {\n profileLink = profileLink.replace(':crmObjectId', crmObject.crmObjectId || '');\n columnData[companyNameField] = {\n cellType: 'text',\n value: this.getRowFullName(crmObject),\n link: profileLink,\n };\n });\n }\n\n customizeRowData(\n crmObject: CrmObjectInterface,\n schemaMap: { [schemaId: string]: FieldSchemaInterface },\n columnData: ColumnDataInterface,\n ): void {\n this.customizeNextTaskDueDateCellData(columnData);\n this.addCompanyProfileLink(crmObject, columnData);\n this.addPrimaryCompanyNameRowData(crmObject, schemaMap, columnData);\n this.addFullAddressColumnData(crmObject, schemaMap, columnData);\n this.addCustomCells(this.config.company?.tableCustomCells || [], crmObject, columnData);\n }\n\n private customizeNextTaskDueDateCellData(columnData: ColumnDataInterface): void {\n const cell = columnData[this.crmFieldService.getFieldId(StandardIds.CompanyNextTaskDueDate)];\n if (cell) {\n cell.cellType = 'timestamp';\n }\n }\n\n private addFullAddressColumnData(\n crmObject: CrmObjectInterface,\n schemaMap: { [schemaId: string]: FieldSchemaInterface },\n columnData: ColumnDataInterface,\n ): void {\n columnData[CompanyCustomColumns.FullAddress] = {\n cellType: 'text',\n value: this.getRowFullAddress(crmObject),\n };\n }\n\n customizeColumns(columns: GalaxyColumnDef[], isMobile: boolean): GalaxyColumnDef[] {\n let customizedColumns = this.hideIDColumns(columns);\n customizedColumns = this.addFullAddressColumn(customizedColumns);\n customizedColumns = this.addParentCompanyNameColumn(customizedColumns);\n const customCells = this.config.company?.tableCustomCells || [];\n customCells.push(LeadScoreColumnCell);\n customizedColumns = this.addCustomColumns(\n customCells.map((c) => c.columnDefinition),\n customizedColumns,\n );\n if (isMobile) {\n customizedColumns = this.customizeColumnsMobile(customizedColumns);\n }\n return [...customizedColumns];\n }\n\n getRowFullName(crmObject: CrmObjectInterface): string {\n const name = this.crmFieldService.getFieldId(StandardIds.CompanyName);\n const nameData = crmObject.fields?.find((f) => f.fieldId === name);\n return nameData?.stringValue || '';\n }\n\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n getAssociationInfo(crmObject: CrmObjectInterface): string {\n return '';\n }\n\n getRowFullAddress(crmObject: CrmObjectInterface): string {\n return CompanyTableCustomizationService.getRowFullAddress(crmObject, this.crmFieldService);\n }\n\n private addFullAddressColumn(columns: GalaxyColumnDef[]): GalaxyColumnDef[] {\n return [\n ...columns,\n {\n id: CompanyCustomColumns.FullAddress,\n title: this.translate.instant('LIST_OBJECTS_TABLE.CUSTOM_COLUMNS.FULL_ADDRESS'),\n sortable: false,\n },\n ];\n }\n\n private addParentCompanyNameColumn(columns: GalaxyColumnDef[]): GalaxyColumnDef[] {\n return [\n {\n id: CompanyCustomColumns.ParentCompanyName,\n title: 'Parent company name',\n hidden: true,\n },\n ...columns,\n ];\n }\n\n private async addPrimaryCompanyNameRowData(\n crmObject: CrmObjectInterface,\n schemaMap: { [schemaId: string]: FieldSchemaInterface },\n columnData: ColumnDataInterface,\n ): Promise {\n let parentCompanyID = '';\n const parentCompanyIDFieldValue = this.crmFieldService.getFieldValueFromCrmObject(\n crmObject,\n StandardIds.CompanyParentCompanyID,\n );\n if (parentCompanyIDFieldValue?.stringValue) {\n parentCompanyID = parentCompanyIDFieldValue.stringValue;\n }\n columnData[CompanyCustomColumns.ParentCompanyName] = {\n cellType: 'custom',\n value: parentCompanyID,\n component: ParentCompanyNameComponent,\n } as CustomCell;\n }\n\n private makeGroupFilterRestricted(\n restrictedToGroupId: string,\n filters: GalaxyFilterDefinitionInterface[],\n ): GalaxyFilterDefinitionInterface[] {\n if (!restrictedToGroupId) {\n return filters;\n }\n const groupIDIndex = filters.findIndex((f) => f.fieldId === SystemFieldIds.CompanyGroupID);\n if (groupIDIndex > -1) {\n filters[groupIDIndex].preset = true;\n filters[groupIDIndex].lockedValue = true;\n }\n return filters;\n }\n\n customizeFilters(filters: GalaxyFilterDefinitionInterface[]): Observable {\n const overrides$ = this.config.company?.filterInputOverrides$ ?? of([]);\n const appliedOverrides$ = overrides$.pipe(map((overrides) => this.overrideCustomFilters(filters, overrides)));\n return combineLatest([this.restrictedGroupService.getCurrentGroupId(), appliedOverrides$]).pipe(\n map(([restrictedMarketId, filters]: [string, GalaxyFilterDefinitionInterface[]]) =>\n this.makeGroupFilterRestricted(restrictedMarketId, filters),\n ),\n );\n }\n\n async getInitialFilters(): Promise {\n return firstValueFrom(this.restrictedGroupService.getCurrentGroupId()).then((selectedGroupId) => {\n if (!selectedGroupId) {\n return [];\n }\n return [\n {\n fieldId: SystemFieldIds.CompanyGroupID,\n filterId: 'filterCompanyByRestrictedGroupID',\n operator: GalaxyFilterOperator.FILTER_OPERATOR_IS,\n values: [\n {\n string: selectedGroupId,\n },\n ],\n },\n ];\n });\n }\n}\n","export * from './_abstract-table-customization.service';\nexport * from './company-table-customization.service';\nexport * from './contact-table-customization.service';\nexport * from './task-table-customization.service';\n","import * as i0 from '@angular/core';\nimport { Injectable } from '@angular/core';\nimport * as i1 from '@angular/common/http';\nimport { HttpHeaders } from '@angular/common/http';\nimport { map } from 'rxjs/operators';\n\n// *********************************\n// Code generated by sdkgen\n// DO NOT EDIT!.\n//\n// Enums.\n// *********************************\nvar MappingType = /*#__PURE__*/function (MappingType) {\n MappingType[MappingType[\"MAPPING_TYPE_UNSPECIFIED\"] = 0] = \"MAPPING_TYPE_UNSPECIFIED\";\n MappingType[MappingType[\"MAPPING_TYPE_LOOKUP_CUSTOM_FIELD\"] = 1] = \"MAPPING_TYPE_LOOKUP_CUSTOM_FIELD\";\n MappingType[MappingType[\"MAPPING_TYPE_CUSTOM_FIELD\"] = 2] = \"MAPPING_TYPE_CUSTOM_FIELD\";\n MappingType[MappingType[\"MAPPING_TYPE_SYSTEM_FIELD\"] = 3] = \"MAPPING_TYPE_SYSTEM_FIELD\";\n return MappingType;\n}(MappingType || {});\nvar MergeStrategyType = /*#__PURE__*/function (MergeStrategyType) {\n MergeStrategyType[MergeStrategyType[\"MERGE_STRATEGY_UNSPECIFIED\"] = 0] = \"MERGE_STRATEGY_UNSPECIFIED\";\n MergeStrategyType[MergeStrategyType[\"MERGE_STRATEGY_ALWAYS_OVERWRITE\"] = 1] = \"MERGE_STRATEGY_ALWAYS_OVERWRITE\";\n MergeStrategyType[MergeStrategyType[\"MERGE_STRATEGY_OVERWRITE_IF_EMPTY\"] = 2] = \"MERGE_STRATEGY_OVERWRITE_IF_EMPTY\";\n MergeStrategyType[MergeStrategyType[\"MERGE_STRATEGY_OVERWRITE_IF_NEWER\"] = 3] = \"MERGE_STRATEGY_OVERWRITE_IF_NEWER\";\n MergeStrategyType[MergeStrategyType[\"MERGE_STRATEGY_COMBINE\"] = 4] = \"MERGE_STRATEGY_COMBINE\";\n return MergeStrategyType;\n}(MergeStrategyType || {});\n// *********************************\n// Code generated by sdkgen\n// DO NOT EDIT!.\n//\n// Enums.\n// *********************************\nvar AddContactAsIamUserForCompanyStatus = /*#__PURE__*/function (AddContactAsIamUserForCompanyStatus) {\n AddContactAsIamUserForCompanyStatus[AddContactAsIamUserForCompanyStatus[\"ADD_CONTACT_AS_IAM_USER_FOR_COMPANY_STATUS_INVALID\"] = 0] = \"ADD_CONTACT_AS_IAM_USER_FOR_COMPANY_STATUS_INVALID\";\n AddContactAsIamUserForCompanyStatus[AddContactAsIamUserForCompanyStatus[\"ADD_CONTACT_AS_IAM_USER_FOR_COMPANY_STATUS_IN_PROGRESS\"] = 1] = \"ADD_CONTACT_AS_IAM_USER_FOR_COMPANY_STATUS_IN_PROGRESS\";\n AddContactAsIamUserForCompanyStatus[AddContactAsIamUserForCompanyStatus[\"ADD_CONTACT_AS_IAM_USER_FOR_COMPANY_STATUS_SUCCEEDED\"] = 2] = \"ADD_CONTACT_AS_IAM_USER_FOR_COMPANY_STATUS_SUCCEEDED\";\n AddContactAsIamUserForCompanyStatus[AddContactAsIamUserForCompanyStatus[\"ADD_CONTACT_AS_IAM_USER_FOR_COMPANY_STATUS_FAILED\"] = 3] = \"ADD_CONTACT_AS_IAM_USER_FOR_COMPANY_STATUS_FAILED\";\n return AddContactAsIamUserForCompanyStatus;\n}(AddContactAsIamUserForCompanyStatus || {});\nvar CreateAccountGroupForCompanyStatus = /*#__PURE__*/function (CreateAccountGroupForCompanyStatus) {\n CreateAccountGroupForCompanyStatus[CreateAccountGroupForCompanyStatus[\"CREATE_ACCOUNT_GROUP_FOR_COMPANY_STATUS_UNSPECIFIED\"] = 0] = \"CREATE_ACCOUNT_GROUP_FOR_COMPANY_STATUS_UNSPECIFIED\";\n CreateAccountGroupForCompanyStatus[CreateAccountGroupForCompanyStatus[\"CREATE_ACCOUNT_GROUP_FOR_COMPANY_STATUS_IN_PROGRESS\"] = 1] = \"CREATE_ACCOUNT_GROUP_FOR_COMPANY_STATUS_IN_PROGRESS\";\n CreateAccountGroupForCompanyStatus[CreateAccountGroupForCompanyStatus[\"CREATE_ACCOUNT_GROUP_FOR_COMPANY_STATUS_SUCCEEDED\"] = 2] = \"CREATE_ACCOUNT_GROUP_FOR_COMPANY_STATUS_SUCCEEDED\";\n CreateAccountGroupForCompanyStatus[CreateAccountGroupForCompanyStatus[\"CREATE_ACCOUNT_GROUP_FOR_COMPANY_STATUS_FAILED\"] = 3] = \"CREATE_ACCOUNT_GROUP_FOR_COMPANY_STATUS_FAILED\";\n return CreateAccountGroupForCompanyStatus;\n}(CreateAccountGroupForCompanyStatus || {});\n// *********************************\n// Code generated by sdkgen\n// DO NOT EDIT!.\n//\n// Enums Index.\n// *********************************\n\nfunction enumStringToValue$3(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$2(enumRef, value) {\n if (typeof value === 'number') {\n return value;\n }\n return enumRef[value];\n}\nclass CreateIntegrationRequest {\n static fromProto(proto) {\n let m = new CreateIntegrationRequest();\n m = Object.assign(m, proto);\n if (proto.integration) {\n m.integration = Integration.fromProto(proto.integration);\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.integration !== 'undefined' && this.integration !== null) {\n toReturn['integration'] = 'toApiJson' in this.integration ? this.integration.toApiJson() : this.integration;\n }\n return toReturn;\n }\n}\nclass CreateIntegrationResponse {\n static fromProto(proto) {\n let m = new CreateIntegrationResponse();\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.integrationId !== 'undefined') {\n toReturn['integrationId'] = this.integrationId;\n }\n return toReturn;\n }\n}\nclass MergeStrategyMergeConfigDateOverwriteConfig {\n static fromProto(proto) {\n let m = new MergeStrategyMergeConfigDateOverwriteConfig();\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.dateCriteriaFieldId !== 'undefined') {\n toReturn['dateCriteriaFieldId'] = this.dateCriteriaFieldId;\n }\n return toReturn;\n }\n}\nclass DeleteIntegrationRequest {\n static fromProto(proto) {\n let m = new DeleteIntegrationRequest();\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.integrationId !== 'undefined') {\n toReturn['integrationId'] = this.integrationId;\n }\n return toReturn;\n }\n}\nclass FieldMapping {\n static fromProto(proto) {\n let m = new FieldMapping();\n m = Object.assign(m, proto);\n if (proto.type) {\n m.type = enumStringToValue$2(MappingType, proto.type);\n }\n if (proto.mergeStrategy) {\n m.mergeStrategy = MergeStrategy.fromProto(proto.mergeStrategy);\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.fieldId !== 'undefined') {\n toReturn['fieldId'] = this.fieldId;\n }\n if (typeof this.type !== 'undefined') {\n toReturn['type'] = this.type;\n }\n if (typeof this.jsonPath !== 'undefined') {\n toReturn['jsonPath'] = this.jsonPath;\n }\n if (typeof this.mergeStrategy !== 'undefined' && this.mergeStrategy !== null) {\n toReturn['mergeStrategy'] = 'toApiJson' in this.mergeStrategy ? this.mergeStrategy.toApiJson() : this.mergeStrategy;\n }\n return toReturn;\n }\n}\nclass GetMultiIntegrationRequest {\n static fromProto(proto) {\n let m = new GetMultiIntegrationRequest();\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.integrationIds !== 'undefined') {\n toReturn['integrationIds'] = this.integrationIds;\n }\n return toReturn;\n }\n}\nclass GetMultiIntegrationResponse {\n static fromProto(proto) {\n let m = new GetMultiIntegrationResponse();\n m = Object.assign(m, proto);\n if (proto.integrations) {\n m.integrations = proto.integrations.map(Integration.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.integrations !== 'undefined' && this.integrations !== null) {\n toReturn['integrations'] = 'toApiJson' in this.integrations ? this.integrations.toApiJson() : this.integrations;\n }\n return toReturn;\n }\n}\nclass Integration {\n static fromProto(proto) {\n let m = new Integration();\n m = Object.assign(m, proto);\n if (proto.fieldMappings) {\n m.fieldMappings = proto.fieldMappings.map(FieldMapping.fromProto);\n }\n if (proto.created) {\n m.created = new Date(proto.created);\n }\n if (proto.updated) {\n m.updated = new Date(proto.updated);\n }\n if (proto.deleted) {\n m.deleted = new Date(proto.deleted);\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.integrationId !== 'undefined') {\n toReturn['integrationId'] = this.integrationId;\n }\n if (typeof this.objectType !== 'undefined') {\n toReturn['objectType'] = this.objectType;\n }\n if (typeof this.objectSubtype !== 'undefined') {\n toReturn['objectSubtype'] = this.objectSubtype;\n }\n if (typeof this.lookupMappingIds !== 'undefined') {\n toReturn['lookupMappingIds'] = this.lookupMappingIds;\n }\n if (typeof this.fieldMappings !== 'undefined' && this.fieldMappings !== null) {\n toReturn['fieldMappings'] = 'toApiJson' in this.fieldMappings ? this.fieldMappings.toApiJson() : this.fieldMappings;\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.updated !== 'undefined' && this.updated !== null) {\n toReturn['updated'] = 'toApiJson' in this.updated ? this.updated.toApiJson() : this.updated;\n }\n if (typeof this.deleted !== 'undefined' && this.deleted !== null) {\n toReturn['deleted'] = 'toApiJson' in this.deleted ? this.deleted.toApiJson() : this.deleted;\n }\n return toReturn;\n }\n}\nclass MergeStrategyMergeConfig {\n static fromProto(proto) {\n let m = new MergeStrategyMergeConfig();\n m = Object.assign(m, proto);\n if (proto.dateOverwriteConfig) {\n m.dateOverwriteConfig = MergeStrategyMergeConfigDateOverwriteConfig.fromProto(proto.dateOverwriteConfig);\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.dateOverwriteConfig !== 'undefined' && this.dateOverwriteConfig !== null) {\n toReturn['dateOverwriteConfig'] = 'toApiJson' in this.dateOverwriteConfig ? this.dateOverwriteConfig.toApiJson() : this.dateOverwriteConfig;\n }\n return toReturn;\n }\n}\nclass MergeStrategy {\n static fromProto(proto) {\n let m = new MergeStrategy();\n m = Object.assign(m, proto);\n if (proto.type) {\n m.type = enumStringToValue$2(MergeStrategyType, proto.type);\n }\n if (proto.config) {\n m.config = MergeStrategyMergeConfig.fromProto(proto.config);\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.type !== 'undefined') {\n toReturn['type'] = this.type;\n }\n if (typeof this.config !== 'undefined' && this.config !== null) {\n toReturn['config'] = 'toApiJson' in this.config ? this.config.toApiJson() : this.config;\n }\n return toReturn;\n }\n}\nclass UpdateIntegrationRequest {\n static fromProto(proto) {\n let m = new UpdateIntegrationRequest();\n m = Object.assign(m, proto);\n if (proto.integration) {\n m.integration = Integration.fromProto(proto.integration);\n }\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.integration !== 'undefined' && this.integration !== null) {\n toReturn['integration'] = 'toApiJson' in this.integration ? this.integration.toApiJson() : this.integration;\n }\n if (typeof this.fieldMask !== 'undefined' && this.fieldMask !== null) {\n toReturn['fieldMask'] = 'toApiJson' in this.fieldMask ? this.fieldMask.toApiJson() : this.fieldMask;\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 DeleteObjectRequest {\n static fromProto(proto) {\n let m = new DeleteObjectRequest();\n m = Object.assign(m, proto);\n return m;\n }\n constructor(kwargs) {\n if (!kwargs) {\n return;\n }\n Object.assign(this, kwargs);\n }\n toApiJson() {\n const toReturn = {};\n if (typeof this.namespace !== 'undefined') {\n toReturn['namespace'] = this.namespace;\n }\n if (typeof this.integrationId !== 'undefined') {\n toReturn['integrationId'] = this.integrationId;\n }\n if (typeof this.jsonData !== 'undefined') {\n toReturn['jsonData'] = this.jsonData;\n }\n return toReturn;\n }\n}\nclass UpsertObjectRequest {\n static fromProto(proto) {\n let m = new UpsertObjectRequest();\n m = Object.assign(m, proto);\n return m;\n }\n constructor(kwargs) {\n if (!kwargs) {\n return;\n }\n Object.assign(this, kwargs);\n }\n toApiJson() {\n const toReturn = {};\n if (typeof this.namespace !== 'undefined') {\n toReturn['namespace'] = this.namespace;\n }\n if (typeof this.integrationId !== 'undefined') {\n toReturn['integrationId'] = this.integrationId;\n }\n if (typeof this.jsonData !== 'undefined') {\n toReturn['jsonData'] = this.jsonData;\n }\n return toReturn;\n }\n}\nclass UpsertObjectResponse {\n static fromProto(proto) {\n let m = new UpsertObjectResponse();\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.crmObjectId !== 'undefined') {\n toReturn['crmObjectId'] = this.crmObjectId;\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 AddContactAsIamUserForCompanyRequest {\n static fromProto(proto) {\n let m = new AddContactAsIamUserForCompanyRequest();\n m = Object.assign(m, proto);\n return m;\n }\n constructor(kwargs) {\n if (!kwargs) {\n return;\n }\n Object.assign(this, kwargs);\n }\n toApiJson() {\n const toReturn = {};\n if (typeof this.namespace !== 'undefined') {\n toReturn['namespace'] = this.namespace;\n }\n if (typeof this.contactId !== 'undefined') {\n toReturn['contactId'] = this.contactId;\n }\n if (typeof this.companyId !== 'undefined') {\n toReturn['companyId'] = this.companyId;\n }\n return toReturn;\n }\n}\nclass AddContactAsIamUserForCompanyStatusResponse {\n static fromProto(proto) {\n let m = new AddContactAsIamUserForCompanyStatusResponse();\n m = Object.assign(m, proto);\n if (proto.status) {\n m.status = enumStringToValue(AddContactAsIamUserForCompanyStatus, 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.status !== 'undefined') {\n toReturn['status'] = this.status;\n }\n return toReturn;\n }\n}\nclass CreateAccountGroupForCompanyRequest {\n static fromProto(proto) {\n let m = new CreateAccountGroupForCompanyRequest();\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.companyId !== 'undefined') {\n toReturn['companyId'] = this.companyId;\n }\n if (typeof this.namespace !== 'undefined') {\n toReturn['namespace'] = this.namespace;\n }\n return toReturn;\n }\n}\nclass GetAccountGroupForCompanyRequest {\n static fromProto(proto) {\n let m = new GetAccountGroupForCompanyRequest();\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.companyId !== 'undefined') {\n toReturn['companyId'] = this.companyId;\n }\n if (typeof this.namespace !== 'undefined') {\n toReturn['namespace'] = this.namespace;\n }\n return toReturn;\n }\n}\nclass GetAccountGroupForCompanyResponse {\n static fromProto(proto) {\n let m = new GetAccountGroupForCompanyResponse();\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 return toReturn;\n }\n}\nclass GetCreateAccountGroupForCompanyStatusRequest {\n static fromProto(proto) {\n let m = new GetCreateAccountGroupForCompanyStatusRequest();\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.companyId !== 'undefined') {\n toReturn['companyId'] = this.companyId;\n }\n if (typeof this.namespace !== 'undefined') {\n toReturn['namespace'] = this.namespace;\n }\n return toReturn;\n }\n}\nclass GetCreateAccountGroupForCompanyStatusResponse {\n static fromProto(proto) {\n let m = new GetCreateAccountGroupForCompanyStatusResponse();\n m = Object.assign(m, proto);\n if (proto.status) {\n m.status = enumStringToValue(CreateAccountGroupForCompanyStatus, 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.status !== 'undefined') {\n toReturn['status'] = this.status;\n }\n if (typeof this.accountGroupId !== 'undefined') {\n toReturn['accountGroupId'] = this.accountGroupId;\n }\n return toReturn;\n }\n}\nclass IsContactIamUserForCompanyRequest {\n static fromProto(proto) {\n let m = new IsContactIamUserForCompanyRequest();\n m = Object.assign(m, proto);\n return m;\n }\n constructor(kwargs) {\n if (!kwargs) {\n return;\n }\n Object.assign(this, kwargs);\n }\n toApiJson() {\n const toReturn = {};\n if (typeof this.namespace !== 'undefined') {\n toReturn['namespace'] = this.namespace;\n }\n if (typeof this.contactId !== 'undefined') {\n toReturn['contactId'] = this.contactId;\n }\n if (typeof this.companyId !== 'undefined') {\n toReturn['companyId'] = this.companyId;\n }\n return toReturn;\n }\n}\nclass IsContactIamUserForCompanyResponse {\n static fromProto(proto) {\n let m = new IsContactIamUserForCompanyResponse();\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.isIamUser !== 'undefined') {\n toReturn['isIamUser'] = this.isIamUser;\n }\n return toReturn;\n }\n}\nclass RemoveContactAsIamUserForCompanyRequest {\n static fromProto(proto) {\n let m = new RemoveContactAsIamUserForCompanyRequest();\n m = Object.assign(m, proto);\n return m;\n }\n constructor(kwargs) {\n if (!kwargs) {\n return;\n }\n Object.assign(this, kwargs);\n }\n toApiJson() {\n const toReturn = {};\n if (typeof this.namespace !== 'undefined') {\n toReturn['namespace'] = this.namespace;\n }\n if (typeof this.contactId !== 'undefined') {\n toReturn['contactId'] = this.contactId;\n }\n if (typeof this.companyId !== 'undefined') {\n toReturn['companyId'] = this.companyId;\n }\n return toReturn;\n }\n}\n\n// *********************************\n// Code generated by sdkgen\n// DO NOT EDIT!.\n//\n// Objects Index.\n// *********************************\n\nconst environment = (window ? window['environment'] : 'prod') ?? 'prod';\nconst hostMap = {\n 'local': 'crm-integrations-api.vendasta-local.com',\n 'test': '',\n 'demo': 'crm-integrations-demo.apigateway.co',\n 'prod': 'crm-integrations-prod.apigateway.co',\n 'production': 'crm-integrations-prod.apigateway.co'\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(t) {\n return new (t || HostService)();\n };\n HostService.ɵprov = /* @__PURE__ */i0.ɵɵdefineInjectable({\n token: HostService,\n factory: HostService.ɵfac,\n providedIn: 'root'\n });\n return HostService;\n})();\n(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && void 0;\n})();\n\n// *********************************\n// Code generated by sdkgen\n// DO NOT EDIT!.\n//\n// API Service.\n// *********************************\nlet DataIngestionApiService = /*#__PURE__*/(() => {\n class DataIngestionApiService {\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 upsertObject(r) {\n const request = r.toApiJson ? r : new UpsertObjectRequest(r);\n return this.http.post(this._host + \"/crm_integrations.v1.DataIngestionService/UpsertObject\", request.toApiJson(), this.apiOptions()).pipe(map(resp => UpsertObjectResponse.fromProto(resp)));\n }\n deleteObject(r) {\n const request = r.toApiJson ? r : new DeleteObjectRequest(r);\n return this.http.post(this._host + \"/crm_integrations.v1.DataIngestionService/DeleteObject\", request.toApiJson(), {\n ...this.apiOptions(),\n observe: 'response'\n });\n }\n }\n DataIngestionApiService.ɵfac = function DataIngestionApiService_Factory(t) {\n return new (t || DataIngestionApiService)(i0.ɵɵinject(i1.HttpClient), i0.ɵɵinject(HostService));\n };\n DataIngestionApiService.ɵprov = /* @__PURE__ */i0.ɵɵdefineInjectable({\n token: DataIngestionApiService,\n factory: DataIngestionApiService.ɵfac,\n providedIn: 'root'\n });\n return DataIngestionApiService;\n})();\n(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && void 0;\n})();\n\n// *********************************\n// Code generated by sdkgen\n// DO NOT EDIT!.\n//\n// API Service.\n// *********************************\nlet IntegrationApiService = /*#__PURE__*/(() => {\n class IntegrationApiService {\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 createIntegration(r) {\n const request = r.toApiJson ? r : new CreateIntegrationRequest(r);\n return this.http.post(this._host + \"/crm_integrations.v1.IntegrationService/CreateIntegration\", request.toApiJson(), this.apiOptions()).pipe(map(resp => CreateIntegrationResponse.fromProto(resp)));\n }\n updateIntegration(r) {\n const request = r.toApiJson ? r : new UpdateIntegrationRequest(r);\n return this.http.post(this._host + \"/crm_integrations.v1.IntegrationService/UpdateIntegration\", request.toApiJson(), {\n ...this.apiOptions(),\n observe: 'response'\n });\n }\n deleteIntegration(r) {\n const request = r.toApiJson ? r : new DeleteIntegrationRequest(r);\n return this.http.post(this._host + \"/crm_integrations.v1.IntegrationService/DeleteIntegration\", request.toApiJson(), {\n ...this.apiOptions(),\n observe: 'response'\n });\n }\n getMultiIntegration(r) {\n const request = r.toApiJson ? r : new GetMultiIntegrationRequest(r);\n return this.http.post(this._host + \"/crm_integrations.v1.IntegrationService/GetMultiIntegration\", request.toApiJson(), this.apiOptions()).pipe(map(resp => GetMultiIntegrationResponse.fromProto(resp)));\n }\n }\n IntegrationApiService.ɵfac = function IntegrationApiService_Factory(t) {\n return new (t || IntegrationApiService)(i0.ɵɵinject(i1.HttpClient), i0.ɵɵinject(HostService));\n };\n IntegrationApiService.ɵprov = /* @__PURE__ */i0.ɵɵdefineInjectable({\n token: IntegrationApiService,\n factory: IntegrationApiService.ɵfac,\n providedIn: 'root'\n });\n return IntegrationApiService;\n})();\n(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && void 0;\n})();\n\n// *********************************\n// Code generated by sdkgen\n// DO NOT EDIT!.\n//\n// API Service.\n// *********************************\nlet PlatformApiService = /*#__PURE__*/(() => {\n class PlatformApiService {\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 createAccountGroupForCompany(r) {\n const request = r.toApiJson ? r : new CreateAccountGroupForCompanyRequest(r);\n return this.http.post(this._host + \"/crm_integrations.v1.PlatformService/CreateAccountGroupForCompany\", request.toApiJson(), {\n ...this.apiOptions(),\n observe: 'response'\n });\n }\n getCreateAccountGroupForCompanyStatus(r) {\n const request = r.toApiJson ? r : new GetCreateAccountGroupForCompanyStatusRequest(r);\n return this.http.post(this._host + \"/crm_integrations.v1.PlatformService/GetCreateAccountGroupForCompanyStatus\", request.toApiJson(), this.apiOptions()).pipe(map(resp => GetCreateAccountGroupForCompanyStatusResponse.fromProto(resp)));\n }\n getAccountGroupForCompany(r) {\n const request = r.toApiJson ? r : new GetAccountGroupForCompanyRequest(r);\n return this.http.post(this._host + \"/crm_integrations.v1.PlatformService/GetAccountGroupForCompany\", request.toApiJson(), this.apiOptions()).pipe(map(resp => GetAccountGroupForCompanyResponse.fromProto(resp)));\n }\n addContactAsIamUserForCompany(r) {\n const request = r.toApiJson ? r : new AddContactAsIamUserForCompanyRequest(r);\n return this.http.post(this._host + \"/crm_integrations.v1.PlatformService/AddContactAsIamUserForCompany\", request.toApiJson(), this.apiOptions()).pipe(map(resp => AddContactAsIamUserForCompanyStatusResponse.fromProto(resp)));\n }\n isContactIamUserForCompany(r) {\n const request = r.toApiJson ? r : new IsContactIamUserForCompanyRequest(r);\n return this.http.post(this._host + \"/crm_integrations.v1.PlatformService/IsContactIamUserForCompany\", request.toApiJson(), this.apiOptions()).pipe(map(resp => IsContactIamUserForCompanyResponse.fromProto(resp)));\n }\n removeContactAsIamUserForCompany(r) {\n const request = r.toApiJson ? r : new RemoveContactAsIamUserForCompanyRequest(r);\n return this.http.post(this._host + \"/crm_integrations.v1.PlatformService/RemoveContactAsIamUserForCompany\", request.toApiJson(), {\n ...this.apiOptions(),\n observe: 'response'\n });\n }\n }\n PlatformApiService.ɵfac = function PlatformApiService_Factory(t) {\n return new (t || PlatformApiService)(i0.ɵɵinject(i1.HttpClient), i0.ɵɵinject(HostService));\n };\n PlatformApiService.ɵprov = /* @__PURE__ */i0.ɵɵdefineInjectable({\n token: PlatformApiService,\n factory: PlatformApiService.ɵfac,\n providedIn: 'root'\n });\n return PlatformApiService;\n})();\n(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && void 0;\n})();\n\n// *********************************\n// Code generated by sdkgen\n// DO NOT EDIT!.\n//\n// Index.\n// *********************************\n\n// MANUALLY CREATED FILE\n// Don't delete this by mistake when you update the SDK with mscli!\n\n/**\n * Generated bundle index. Do not edit.\n */\n\nexport { AddContactAsIamUserForCompanyRequest, AddContactAsIamUserForCompanyStatus, AddContactAsIamUserForCompanyStatusResponse, CreateAccountGroupForCompanyRequest, CreateAccountGroupForCompanyStatus, CreateIntegrationRequest, CreateIntegrationResponse, DataIngestionApiService, DeleteIntegrationRequest, DeleteObjectRequest, FieldMapping, FieldMask, GetAccountGroupForCompanyRequest, GetAccountGroupForCompanyResponse, GetCreateAccountGroupForCompanyStatusRequest, GetCreateAccountGroupForCompanyStatusResponse, GetMultiIntegrationRequest, GetMultiIntegrationResponse, HostService, Integration, IntegrationApiService, IsContactIamUserForCompanyRequest, IsContactIamUserForCompanyResponse, MappingType, MergeStrategy, MergeStrategyMergeConfig, MergeStrategyMergeConfigDateOverwriteConfig, MergeStrategyType, PlatformApiService, RemoveContactAsIamUserForCompanyRequest, UpdateIntegrationRequest, UpsertObjectRequest, UpsertObjectResponse };\n","import {\n AddContactAsIamUserForCompanyRequest,\n AddContactAsIamUserForCompanyStatus,\n CreateAccountGroupForCompanyRequest,\n CreateAccountGroupForCompanyStatus,\n GetCreateAccountGroupForCompanyStatusRequest,\n PlatformApiService,\n RemoveContactAsIamUserForCompanyRequest,\n} from '@vendasta/crm-integrations';\nimport { Inject, Injectable } from '@angular/core';\nimport { CrmDependencies, CrmInjectionToken } from '../tokens-and-interfaces';\nimport { Observable, of } from 'rxjs';\nimport { catchError, map, switchMap, take } from 'rxjs/operators';\nimport { HttpErrorResponse } from '@angular/common/http';\nimport { IsContactIamUserForCompanyRequest } from '@vendasta/crm-integrations';\n\nexport interface CompanyAccountGroupStatus {\n status: CreateAccountGroupForCompanyStatus;\n accountGroupId: string;\n}\n\n@Injectable()\nexport class CrmPlatformApiService {\n constructor(\n @Inject(CrmInjectionToken) private readonly config: CrmDependencies,\n private platformAPIService: PlatformApiService,\n ) {}\n\n createAccountGroupForCompany(companyId: string): Observable {\n return this.config.namespace$.pipe(\n switchMap((namespace) => {\n const request = {\n namespace: namespace,\n companyId: companyId,\n } as CreateAccountGroupForCompanyRequest;\n return this.platformAPIService.createAccountGroupForCompany(request);\n }),\n map((response) => response.ok),\n take(1),\n );\n }\n\n getCreateAccountGroupForCompanyStatus(companyId: string): Observable {\n return this.config.namespace$.pipe(\n switchMap((namespace) => {\n const request = {\n namespace: namespace,\n companyId: companyId,\n } as GetCreateAccountGroupForCompanyStatusRequest;\n return this.platformAPIService.getCreateAccountGroupForCompanyStatus(request);\n }),\n map((response) => {\n return { status: response.status, accountGroupId: response.accountGroupId };\n }),\n take(1),\n );\n }\n\n getAccountGroupForCompany(companyId: string): Observable {\n return this.config.namespace$.pipe(\n switchMap((namespace) => {\n const request = {\n namespace: namespace,\n companyId: companyId,\n } as GetCreateAccountGroupForCompanyStatusRequest;\n return this.platformAPIService.getAccountGroupForCompany(request);\n }),\n map((response) => response.accountGroupId),\n take(1),\n );\n }\n\n addContactAsIamUserForCompany(contactId: string, companyId: string): Observable {\n return this.config.namespace$.pipe(\n switchMap((namespace) => {\n const request = {\n namespace: namespace,\n contactId: contactId,\n companyId: companyId,\n } as AddContactAsIamUserForCompanyRequest;\n return this.platformAPIService.addContactAsIamUserForCompany(request);\n }),\n catchError((error) => {\n return of(error);\n }),\n map((response) => {\n if (response instanceof HttpErrorResponse) {\n return null;\n }\n return response.status;\n }),\n take(1),\n );\n }\n\n removeContactAsIamUserForCompany(contactId: string, companyId: string): Observable {\n return this.config.namespace$.pipe(\n switchMap((namespace) => {\n const request = {\n namespace: namespace,\n contactId: contactId,\n companyId: companyId,\n } as RemoveContactAsIamUserForCompanyRequest;\n return this.platformAPIService.removeContactAsIamUserForCompany(request);\n }),\n map((response) => response.ok),\n take(1),\n );\n }\n\n isContactIamUserForCompany(contactId: string, companyId: string): Observable {\n return this.config.namespace$.pipe(\n switchMap((namespace) => {\n const request = {\n namespace: namespace,\n contactId: contactId,\n companyId: companyId,\n } as IsContactIamUserForCompanyRequest;\n return this.platformAPIService.isContactIamUserForCompany(request);\n }),\n map((response) => {\n return !!response.isIamUser;\n }),\n take(1),\n );\n }\n}\n","import { Inject, Injectable, signal } from '@angular/core';\nimport { EMPTY, Observable, retry, take } from 'rxjs';\nimport { CrmInjectionToken, CrmDependencies, ProfileCard } from '../tokens-and-interfaces';\nimport { SNACKBAR_DURATION } from '../constants';\nimport { SnackbarService } from '@vendasta/galaxy/snackbar-service';\nimport { map, switchMap } from 'rxjs/operators';\nimport { CreateAccountGroupForCompanyStatus } from '@vendasta/crm-integrations';\nimport { CompanyAccountGroupStatus } from './platform-api.service';\nimport { CrmPlatformApiService } from './platform-api.service';\n\n@Injectable()\nexport class CompanyProfileCardsPanelService {\n public readonly companyProfileCards$: Observable;\n public loadingAccountGroup = signal(false);\n\n constructor(\n @Inject(CrmInjectionToken) private readonly config: CrmDependencies,\n private platformAPIService: CrmPlatformApiService,\n private snackbarService: SnackbarService,\n ) {\n this.companyProfileCards$ = this.config.company?.profileCards$ ?? EMPTY;\n }\n\n justInTimeAccountGroupCreation(companyId: string, afterCreatedCallback: (accountGroupId: string) => void): void {\n this.loadingAccountGroup.set(true);\n this.createAccountGroupForCompany(companyId)\n .pipe(take(1))\n .subscribe({\n next: (accountGroupId) => {\n if (accountGroupId.length > 0) {\n afterCreatedCallback(accountGroupId);\n }\n this.loadingAccountGroup.set(false);\n },\n error: () => {\n this.snackbarService.openErrorSnack('ASSOCIATIONS.COMPANY.ERROR', {\n duration: SNACKBAR_DURATION,\n });\n this.loadingAccountGroup.set(false);\n },\n });\n }\n\n //todo: make private function.\n createAccountGroupForCompany(companyId: string): Observable {\n return this.platformAPIService.createAccountGroupForCompany(companyId).pipe(\n switchMap(() => this.waitForAccountGroupUpdate(companyId)),\n map((accountStatus) => {\n if (\n accountStatus.status === CreateAccountGroupForCompanyStatus.CREATE_ACCOUNT_GROUP_FOR_COMPANY_STATUS_SUCCEEDED\n ) {\n return accountStatus.accountGroupId;\n } else {\n throw new Error('Failed to create account group for company');\n }\n }),\n );\n }\n\n private waitForAccountGroupUpdate(companyId: string): Observable {\n return this.platformAPIService.getCreateAccountGroupForCompanyStatus(companyId).pipe(\n map((accountStatus) => {\n if (\n accountStatus.status === CreateAccountGroupForCompanyStatus.CREATE_ACCOUNT_GROUP_FOR_COMPANY_STATUS_SUCCEEDED\n ) {\n // success. Stop retrying.\n return { status: accountStatus.status, accountGroupId: accountStatus.accountGroupId };\n } else if (\n accountStatus.status === CreateAccountGroupForCompanyStatus.CREATE_ACCOUNT_GROUP_FOR_COMPANY_STATUS_FAILED\n ) {\n // failure. Stop retrying.\n return { status: accountStatus.status, accountGroupId: '' };\n }\n // throw error to poll again\n throw false;\n }),\n retry({ delay: 1000 }),\n );\n }\n}\n","import { Component, DestroyRef, EventEmitter, Input, Output, signal } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { TranslateModule } from '@ngx-translate/core';\nimport { MatDialogModule } from '@angular/material/dialog';\nimport { MatButtonModule } from '@angular/material/button';\nimport { CrmAssociationService } from '../../../shared-services/crm-services/crm-object-service/crm-association.service';\nimport { FormControl, ReactiveFormsModule } from '@angular/forms';\nimport { GalaxyTagsModule } from '@vendasta/galaxy/tags';\nimport { catchError, debounceTime, map, Observable, of, switchMap, tap } from 'rxjs';\nimport { toObservable, takeUntilDestroyed } from '@angular/core/rxjs-interop';\nimport { GalaxyFormFieldModule } from '@vendasta/galaxy/form-field';\nimport { DEFAULT_TAG_SEARCH_SIZE, RESERVED_TAGS, SEARCH_DEBOUNCE_MS } from '../../../constants';\n\n@Component({\n selector: 'crm-edit-association-tags',\n standalone: true,\n imports: [\n CommonModule,\n TranslateModule,\n MatDialogModule,\n MatButtonModule,\n GalaxyTagsModule,\n ReactiveFormsModule,\n GalaxyFormFieldModule,\n ],\n templateUrl: './edit-association-tags.component.html',\n styleUrls: ['./edit-association-tags.component.scss'],\n})\nexport class EditAssociationTagsComponent {\n @Input() set tags(tags: string[]) {\n this.tagsControl.setValue(tags);\n }\n @Input({ required: true }) associationType: string;\n @Output() tagsChanged = new EventEmitter();\n\n tagsControl = new FormControl([]);\n\n searchTextChanged = signal('');\n filteredTags$ = toObservable(this.searchTextChanged).pipe(\n takeUntilDestroyed(this.destroyRef),\n debounceTime(SEARCH_DEBOUNCE_MS),\n switchMap((searchText) => this.listTags(searchText)),\n catchError(() => {\n return of([]);\n }),\n map((tags) => {\n return tags.filter((tag) => !RESERVED_TAGS.includes(tag?.toLowerCase()));\n }),\n );\n\n constructor(private readonly destroyRef: DestroyRef, private readonly crmAssociationService: CrmAssociationService) {\n this.tagsControl.valueChanges\n .pipe(\n takeUntilDestroyed(),\n tap((tags) => this.tagsChanged.emit(tags)),\n )\n .subscribe();\n }\n\n private listTags(value: string): Observable {\n return this.crmAssociationService.listAssociationFieldOptions(\n this.associationType,\n 'tags',\n DEFAULT_TAG_SEARCH_SIZE,\n value,\n );\n }\n}\n","\n {{ 'ASSOCIATIONS.MODAL.TITLE_TAGS' | translate }}\n {{ 'ASSOCIATIONS.MODAL.DESCRIPTION_TAGS' | translate }}\n \n\n","import { Component, Inject } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { MAT_DIALOG_DATA, MatDialogModule, MatDialogRef } from '@angular/material/dialog';\nimport { MatButtonModule } from '@angular/material/button';\nimport { CrmAssociationService } from '../../../shared-services/crm-services/crm-object-service/crm-association.service';\nimport { SnackbarService } from '@vendasta/galaxy/snackbar-service';\nimport { TranslateModule } from '@ngx-translate/core';\nimport { EditAssociationTagsComponent } from '../edit-association-tags/edit-association-tags.component';\nimport { map, switchMap } from 'rxjs';\nimport { PRIMARY_TAG, RESERVED_TAGS, SNACKBAR_DURATION } from '../../../constants';\n\nexport interface EditAssociationData {\n associationId: string;\n associationName: string;\n}\n\n@Component({\n selector: 'crm-edit-association-dialog',\n standalone: true,\n imports: [CommonModule, TranslateModule, MatDialogModule, MatButtonModule, EditAssociationTagsComponent],\n templateUrl: './edit-association-dialog.component.html',\n styleUrls: ['./edit-association-dialog.component.scss'],\n})\nexport class EditAssociationDialogComponent {\n private initialAssociation$ = this.crmAssociationService.getAssociation(this.data.associationId);\n private isPrimary$ = this.initialAssociation$.pipe(\n map((association) => (association?.tags ?? []).map((tag) => tag?.tagValue ?? '').filter((tag) => tag)),\n map((tags) => tags.includes(PRIMARY_TAG)),\n );\n initialTags$ = this.initialAssociation$.pipe(\n map((association) => (association?.tags ?? []).map((tag) => tag?.tagValue ?? '').filter((tag) => tag)),\n map((tags) => tags.filter((t) => !RESERVED_TAGS.includes(t.toLowerCase()))),\n );\n associationType$ = this.initialAssociation$.pipe(map((association) => association?.associationType ?? ''));\n tagsToSave: string[] = [];\n\n constructor(\n public dialogRef: MatDialogRef,\n @Inject(MAT_DIALOG_DATA) public data: EditAssociationData,\n private readonly crmAssociationService: CrmAssociationService,\n private readonly snackService: SnackbarService,\n ) {}\n\n save(): void {\n this.isPrimary$\n .pipe(\n switchMap((isPrimary) => {\n let tagsToSave = [...this.tagsToSave];\n if (isPrimary) {\n tagsToSave = [PRIMARY_TAG, ...tagsToSave];\n }\n return this.crmAssociationService.updateAssociationTags(this.data.associationId, tagsToSave);\n }),\n )\n .subscribe({\n next: () => {\n this.snackService.openSuccessSnack('ASSOCIATIONS.EDIT_ASSOCIATION_DIALOG.SUCCESS', {\n duration: SNACKBAR_DURATION,\n });\n this.dialogRef.close(true);\n },\n error: () => {\n this.snackService.openErrorSnack('ASSOCIATIONS.EDIT_ASSOCIATION_DIALOG.ERROR', {\n duration: SNACKBAR_DURATION,\n });\n },\n });\n }\n\n cancel(): void {\n this.dialogRef?.close();\n }\n\n tagsChanged(tags: string[]): void {\n this.tagsToSave = (tags || []).slice();\n }\n}\n","

\n {{ 'ASSOCIATIONS.EDIT_ASSOCIATION_DIALOG.TITLE' | translate }}\n

\n\n

{{ data.associationName }}

\n \n \n \n
\n\n \n \n\n","import { Injectable } from '@angular/core';\nimport { MatDialog } from '@angular/material/dialog';\nimport {\n EditAssociationData,\n EditAssociationDialogComponent,\n} from '../shared-components/association-panel-components/edit-association-dialog/edit-association-dialog.component';\nimport { Association, CrmAssociationService } from './crm-services/crm-object-service/crm-association.service';\nimport { CrmObjectService } from './crm-services/crm-object-service/crm-object.service';\nimport { Observable, switchMap, of, map, combineLatest, shareReplay } from 'rxjs';\nimport { CardData } from '../tokens-and-interfaces';\n\nexport function combineAssociationsWithChanges(associations: Association[], changes: Association[]): Association[] {\n const combinedData = [...associations];\n for (const updatedAssociation of changes) {\n const updatedAssociationIndex = combinedData.findIndex((a) => a.associationId === updatedAssociation.associationId);\n if (updatedAssociationIndex > -1) {\n combinedData[updatedAssociationIndex] = updatedAssociation;\n }\n }\n return [...combinedData];\n}\n\n@Injectable()\nexport class DefaultAssociationActionsService {\n constructor(\n private readonly dialog: MatDialog,\n private readonly associationService: CrmAssociationService,\n private readonly objectService: CrmObjectService,\n ) {}\n\n reloadAssociations(cardData: CardData): Observable {\n const association$ = this.associationService.getAssociation(cardData.associationId ?? '').pipe(shareReplay(1));\n const crmObject$ = association$.pipe(\n switchMap((association) => {\n switch (cardData.type) {\n case 'business':\n return this.objectService.getMultiObject('Company', [association.toId]);\n case 'user':\n return this.objectService.getMultiObject('Contact', [association.fromId]);\n default:\n return of({ crmObjects: [] });\n }\n }),\n map((response) => response?.crmObjects?.length > 0 && response.crmObjects[0]),\n );\n\n return combineLatest([association$, crmObject$]).pipe(\n map(([association, crmObject]) => ({\n associationId: association.associationId,\n associationType: association.associationType,\n tags: (association?.tags || []).map((tag) => tag.tagValue),\n associatedObject: crmObject,\n })),\n );\n }\n\n editTagsAction(cardData: CardData): Observable {\n let associationName = '';\n if (cardData.type === 'business') {\n associationName = cardData.businessName ?? '';\n } else if (cardData.type === 'user') {\n associationName = cardData.userName ?? '';\n }\n const dialogRef = this.dialog.open(EditAssociationDialogComponent, {\n data: {\n associationId: cardData.associationId,\n associationName: associationName,\n } as EditAssociationData,\n width: '500px',\n });\n return dialogRef.afterClosed().pipe(\n switchMap((success) => {\n if (success) {\n // associations have to be reloaded because list endpoint does not\n // immediately return the tags\n return this.reloadAssociations(cardData);\n }\n return of(null);\n }),\n );\n }\n}\n","import { Injectable } from '@angular/core';\nimport { CrmObjectInterface } from '@vendasta/crm';\nimport { BehaviorSubject } from 'rxjs';\nimport { ObjectType } from '../tokens-and-interfaces';\nimport { SystemFieldIds } from '../shared-services/crm-services/field.service';\n\n@Injectable()\nexport class PreviewObjectService {\n private previewCrmObject$$: BehaviorSubject =\n new BehaviorSubject(null);\n\n private createDatesForPreview(previewObject: CrmObjectInterface, objectType: ObjectType): void {\n let objectCreatedFieldId: string;\n let objectUpdatedFieldId: string;\n switch (objectType) {\n case 'Contact':\n objectCreatedFieldId = SystemFieldIds.ContactCreated;\n objectUpdatedFieldId = SystemFieldIds.ContactUpdated;\n break;\n case 'Company':\n objectCreatedFieldId = SystemFieldIds.CompanyCreated;\n objectUpdatedFieldId = SystemFieldIds.CompanyUpdated;\n break;\n }\n\n // guarantee preview object will show proper dates for updated/created columns\n const createdDateIndex = previewObject.fields?.findIndex((f) => f.fieldId === objectCreatedFieldId) || -1;\n const updatedDateIndex = previewObject.fields?.findIndex((f) => f.fieldId === objectUpdatedFieldId) || -1;\n if (\n createdDateIndex !== -1 &&\n !!previewObject?.fields &&\n previewObject?.fields[createdDateIndex]?.dateValue === null\n ) {\n previewObject.fields[createdDateIndex].dateValue = new Date();\n } else if (createdDateIndex === -1 && !!previewObject?.fields) {\n previewObject.fields.push({\n fieldId: SystemFieldIds.ContactCreated,\n externalId: SystemFieldIds.ContactCreated,\n dateValue: new Date(),\n });\n }\n if (\n updatedDateIndex !== -1 &&\n !!previewObject?.fields &&\n previewObject?.fields[updatedDateIndex]?.dateValue === null\n ) {\n previewObject.fields[updatedDateIndex].dateValue = new Date();\n } else if (updatedDateIndex === -1 && !!previewObject?.fields) {\n previewObject.fields.push({\n fieldId: SystemFieldIds.ContactUpdated,\n externalId: SystemFieldIds.ContactUpdated,\n dateValue: new Date(),\n });\n }\n }\n\n setPreviewCrmObject(previewObject: CrmObjectInterface | null, objectType: ObjectType): void {\n if (previewObject === null) {\n this.previewCrmObject$$.next(null);\n return;\n }\n this.createDatesForPreview(previewObject, objectType);\n\n // do a deep copy of the object, only adding the ID if necessary\n const deepCopyObject: CrmObjectInterface = JSON.parse(JSON.stringify(previewObject));\n this.previewCrmObject$$.next(deepCopyObject);\n }\n\n clearPreview(): void {\n this.previewCrmObject$$.next(null);\n }\n\n withPreview(crmObjects: CrmObjectInterface[]): CrmObjectInterface[] {\n const crmObjectsCopy = [...crmObjects];\n this.applyCrmObjectPreview(crmObjectsCopy);\n return crmObjectsCopy;\n }\n\n private applyCrmObjectPreview(crmObjects: CrmObjectInterface[]): void {\n const previewCrmObject = this.previewCrmObject$$.getValue();\n if (previewCrmObject === null) {\n return;\n }\n\n // don't display the preview and (stale / already returned) value at the same time\n const existsAlreadyAtIndex = crmObjects.findIndex((obj) => obj.crmObjectId === previewCrmObject.crmObjectId);\n if (existsAlreadyAtIndex !== -1) {\n crmObjects.splice(existsAlreadyAtIndex, 1);\n }\n\n // show the preview at the top of the table\n crmObjects.unshift(previewCrmObject);\n }\n}\n","import { Injectable } from '@angular/core';\nimport { ProductAnalyticsService } from '@vendasta/product-analytics';\nimport { Properties } from 'posthog-js';\nimport { ObjectType } from '../tokens-and-interfaces';\n\n@Injectable()\nexport class CRMTrackingService {\n private eventName = 'crm';\n\n constructor(private readonly trackingService: ProductAnalyticsService) {}\n\n trackEvent(objectType: ObjectType, action: string, properties?: Properties): void {\n this.trackingService.trackEvent(\n this.eventName,\n `${this.eventName}-${objectType?.toLowerCase()}`,\n action,\n 0,\n properties,\n );\n }\n}\n","import { TemplatePortal, ComponentPortal, DomPortal } from '@angular/cdk/portal';\nimport { Observable, ReplaySubject } from 'rxjs';\nimport { Injectable } from '@angular/core';\n\nexport type Portal = TemplatePortal | ComponentPortal | DomPortal;\n\n@Injectable({\n providedIn: 'root',\n})\nexport class SidePanelContentService {\n private activePortal$$ = new ReplaySubject(1);\n\n setContent(content: Portal) {\n this.activePortal$$.next(content);\n }\n\n getContent(): Observable {\n return this.activePortal$$.asObservable();\n }\n\n clearContent(): void {\n this.activePortal$$.next(null);\n }\n}\n","import { BehaviorSubject, catchError, Observable, of } from 'rxjs';\nimport { CrmObjectInterface, ListCrmObjectsRequestInterface, ListCrmObjectsResponseInterface } from '@vendasta/crm';\nimport { map, switchMap } from 'rxjs/operators';\nimport { CrmInjectionToken, CrmDependencies } from '../tokens-and-interfaces';\nimport { CrmObjectService } from './crm-services/crm-object-service/crm-object.service';\nimport { CrmFieldService, StandardIds } from './crm-services/field.service';\nimport { Inject, Injectable } from '@angular/core';\n\nexport interface CompanyDisplayName extends CrmObjectInterface {\n displayName: string;\n}\n\n@Injectable({\n providedIn: 'root',\n})\nexport class CompanyFiltersService {\n searchTerm$$: BehaviorSubject = new BehaviorSubject('');\n\n constructor(\n private crmObjectService: CrmObjectService,\n private crmFieldService: CrmFieldService,\n @Inject(CrmInjectionToken) private readonly crmConfig: CrmDependencies,\n ) {}\n\n private listObjects(\n namespace: string,\n cursor: string,\n pageSize: number,\n search: string,\n ): Observable {\n const request: ListCrmObjectsRequestInterface = {\n namespace: namespace,\n pagingOptions: {\n cursor: cursor,\n pageSize: pageSize,\n },\n search: {\n searchTerm: search,\n },\n };\n return this.crmObjectService.listObjects('Company', request);\n }\n\n listReadableCompanies(searchTerm: string): Observable {\n return this.crmConfig.namespace$.pipe(\n switchMap((namespace) => this.listObjects(namespace, '', 10, searchTerm)),\n map((response) => this.getReadableParentCompanies(response.crmObjects || [])),\n catchError((error) => {\n console.error(error);\n return of([]);\n }),\n );\n }\n\n getReadableParentCompanies = (parentCompanies: CrmObjectInterface[]): CompanyDisplayName[] =>\n parentCompanies.map(\n (company) =>\n ({\n ...company,\n displayName: this.crmFieldService.getFieldValueFromCrmObject(company, StandardIds.CompanyName)?.stringValue,\n } as CompanyDisplayName),\n );\n\n getMultiCompany(companyIds: string[]): Observable {\n return this.crmObjectService.getMultiObject('Company', companyIds).pipe(\n map((response) => {\n if (!response || response?.crmObjects?.length === 0 || !response?.crmObjects?.[0].crmObjectId) {\n return {} as CompanyDisplayName[];\n }\n let crmObj: CrmObjectInterface[] = [];\n for (const crmObject of response.crmObjects) {\n crmObj = [...crmObj, crmObject];\n }\n return this.getReadableParentCompanies(crmObj);\n }),\n );\n }\n}\n","import { User } from '@vendasta/iamv2';\nimport { UserWithDisplayName } from './tokens-and-interfaces';\n\nexport function userFilterFn(user: UserWithDisplayName, searchTerm: string): boolean {\n searchTerm = searchTerm?.toLowerCase();\n const includesFullName = user.displayName.toLowerCase().includes(searchTerm);\n const includesFirstName = user.firstName.toLowerCase().includes(searchTerm);\n const includesLastName = user.lastName.toLowerCase().includes(searchTerm);\n const includesUserId = user.userId.toLowerCase().includes(searchTerm);\n const includesEmail = user.email.toLowerCase().includes(searchTerm);\n return includesFullName || includesFirstName || includesLastName || includesUserId || includesEmail;\n}\n\nexport function convertToReadableUsers(users: User[]): UserWithDisplayName[] {\n return users.map(\n (user) =>\n ({\n ...user,\n displayName: `${user?.firstName ?? ''} ${user?.lastName ?? ''}`.trim() ?? user?.userId,\n } as UserWithDisplayName),\n );\n}\n","import { IAMService, User, UserIdentifier } from '@vendasta/iamv2';\nimport { Inject, Injectable } from '@angular/core';\nimport { combineLatest, map, Observable, of, ReplaySubject } from 'rxjs';\nimport { CrmObjectService, SystemFieldIds } from './crm-services';\nimport { CrmDependencies, CrmInjectionToken, UserWithDisplayName } from '../tokens-and-interfaces';\nimport { convertToReadableUsers } from '../utils';\nimport { catchError, filter, shareReplay, switchMap } from 'rxjs/operators';\nimport { takeUntilDestroyed } from '@angular/core/rxjs-interop';\n\n@Injectable()\nexport class ActivityAssigneeService {\n private readonly allUsers$$: ReplaySubject = new ReplaySubject(1);\n public readonly allUsers$ = this.allUsers$$.asObservable();\n\n constructor(\n @Inject(CrmInjectionToken) private readonly config: CrmDependencies,\n @Inject(IAMService) private readonly iamService: IAMService,\n private readonly crmObjectService: CrmObjectService,\n ) {\n this.config.namespace$\n .pipe(\n filter((id) => !!id),\n takeUntilDestroyed(),\n switchMap((namespace) =>\n this.crmObjectService.listFieldOptions('Activity', {\n namespace: namespace,\n fieldId: SystemFieldIds.ActivityOwnerID,\n pageSize: 100,\n }),\n ),\n map((resp) => resp.options ?? []),\n map((userIds) => userIds.map((userId) => new UserIdentifier({ userId }))),\n switchMap((userIds) => this.iamService.getMultiUsers(userIds)),\n map((users) => convertToReadableUsers(users)),\n catchError((error) => {\n console.error(error);\n return of([]);\n }),\n )\n .subscribe((users) => this.allUsers$$.next(users));\n }\n\n getMultiUsers(userIds: string[]): Observable {\n const cachedUser$ = this.allUsers$.pipe(\n map((users) => {\n const userHashMap = new Map();\n userIds.forEach((userId) =>\n userHashMap.set(\n userId,\n users.find((u) => u.userId === userId),\n ),\n );\n return userHashMap;\n }),\n shareReplay(1),\n );\n\n const fetchedMissingUsers$ = cachedUser$.pipe(\n map((cachedUsers) => userIds.filter((userId) => cachedUsers.get(userId) === undefined)),\n switchMap((idsToGet) => {\n if (idsToGet.length === 0) {\n return of([] as User[]);\n }\n return this.iamService.getMultiUsers(idsToGet.map((userId) => new UserIdentifier({ userId })));\n }),\n catchError((error) => {\n console.error(error);\n return of([] as User[]);\n }),\n map((users) => convertToReadableUsers(users)),\n );\n\n return combineLatest([cachedUser$, fetchedMissingUsers$]).pipe(\n map(([cachedUsers, fetchedUsers]) => {\n fetchedUsers.forEach((user) => cachedUsers.set(user.userId, user));\n return [...cachedUsers.values()].filter(Boolean) as UserWithDisplayName[];\n }),\n );\n }\n}\n","export * from './crm-services';\nexport * from './table-customization';\n\nexport * from './company-profile-cards-panel.service';\nexport * from './default-association-actions.service';\nexport * from './platform-api.service';\nexport { PreviewObjectService } from './preview-object.service';\nexport { CRMTrackingService } from './page-analytics.service';\nexport { BrandingService } from './white-label.service';\nexport { SidePanelContentService } from './content-injector/side-panel-content.service';\nexport * from './company-filters.service';\nexport * from './activity-assignee.service';\nexport { CompanyContactCacheService } from './company-contact-cache.service';\nexport { ScoreService } from './score.service';\nexport { RestrictedGroupService } from './restricted-group.service';\n","import { CommonModule } from '@angular/common';\nimport { Component, Inject } from '@angular/core';\nimport { RouterLink } from '@angular/router';\nimport { BlankValueComponent, CustomCellComponent } from '@vendasta/galaxy/table';\nimport { BehaviorSubject, Observable, combineLatest, of } from 'rxjs';\nimport { map, switchMap, take } from 'rxjs/operators';\nimport { CrmObjectService, CrmFieldService, StandardIds } from '../../shared-services';\nimport { PAGE_ROUTES } from '../../constants';\nimport { CrmInjectionToken, CrmDependencies } from '../../tokens-and-interfaces';\n\nconst NO_VALUE_FOR_COMPANY_NAME = '';\ninterface PrimaryCompanyNameData {\n displayValue: string;\n link: string;\n}\n\n@Component({\n template: `\n \n \n \n \n \n \n \n \n \n
\n
\n \n {{ displayName }}\n \n \n \n \n `,\n standalone: true,\n styleUrls: ['./shared.scss'],\n imports: [RouterLink, CommonModule, BlankValueComponent],\n})\nexport class PrimaryCompanyNameComponent extends CustomCellComponent {\n NO_VALUE_FOR_COMPANY_NAME = NO_VALUE_FOR_COMPANY_NAME;\n private companyId$$ = new BehaviorSubject('');\n set value(newValue: string) {\n this.companyId$$.next(newValue);\n }\n\n displayValue$ = this.companyId$$.pipe(\n switchMap((contactPrimaryCompanyID) => {\n if (!contactPrimaryCompanyID) {\n return of(null);\n }\n return this.crmObjectService.getMultiObject('Company', [contactPrimaryCompanyID]);\n }),\n map((getMultiResponse) => {\n if (getMultiResponse?.crmObjects?.length === 0 || !getMultiResponse?.crmObjects?.[0].crmObjectId) {\n return null;\n }\n return this.crmFieldService.getFieldValueFromCrmObject(getMultiResponse?.crmObjects[0], StandardIds.CompanyName);\n }),\n map((companyNameFieldValue) => companyNameFieldValue?.stringValue ?? this.NO_VALUE_FOR_COMPANY_NAME),\n );\n link$ = this.config.viewProfileFlag$.pipe(\n take(1),\n switchMap((featureFlag) => {\n if (featureFlag) {\n return this.config.routePrefix$;\n } else {\n return of('');\n }\n }),\n map((routePrefix) => {\n if (!routePrefix || !this.companyId$$.getValue()) {\n return '';\n }\n const primaryCompanyProfileViewRoute = `${PAGE_ROUTES.COMPANY.ROOT}/${PAGE_ROUTES.COMPANY.SUBROUTES.PROFILE}`;\n return `${routePrefix}/${primaryCompanyProfileViewRoute}`.replace(':crmObjectId', this.companyId$$.getValue());\n }),\n );\n componentData$: Observable = combineLatest([this.displayValue$, this.link$]).pipe(\n map(([displayValue, link]) => ({ displayValue, link })),\n );\n\n constructor(\n @Inject(CrmInjectionToken) private readonly config: CrmDependencies,\n private readonly crmFieldService: CrmFieldService,\n private readonly crmObjectService: CrmObjectService,\n ) {\n super();\n }\n}\n","import { Inject, Injectable } from '@angular/core';\nimport { ColumnDataInterface, TableCustomizationService } from './_abstract-table-customization.service';\nimport { BehaviorSubject, combineLatest, firstValueFrom, Observable, of } from 'rxjs';\nimport { CrmDependencies, CrmInjectionToken } from '../../tokens-and-interfaces';\nimport {\n ContactCustomColumns,\n CrmFieldService,\n StandardExternalIds,\n StandardIds,\n SystemFieldIds,\n} from '../crm-services/field.service';\nimport { TranslateService } from '@ngx-translate/core';\nimport { map, switchMap, take } from 'rxjs/operators';\nimport { PAGE_ROUTES } from '../../constants';\nimport { CrmObjectInterface, FieldSchemaInterface } from '@vendasta/crm';\nimport { PrimaryCompanyNameComponent } from '../../shared-components/custom-table-cells/primary-company-name.component';\nimport { format, ParsedNumber, parseNumber } from 'libphonenumber-js';\nimport { GalaxyColumnDef, CustomCell } from '@vendasta/galaxy/table';\nimport {\n GalaxyFilterDefinitionInterface,\n GalaxyFilterInterface,\n GalaxyFilterOperator,\n} from '@vendasta/galaxy/filter/chips';\nimport { RestrictedGroupService } from '../restricted-group.service';\n\n@Injectable()\nexport class ContactTableCustomizationService extends TableCustomizationService {\n private contactLinkBuild$$ = new BehaviorSubject('');\n\n constructor(\n @Inject(CrmInjectionToken) private readonly config: CrmDependencies,\n protected override readonly crmFieldService: CrmFieldService,\n private readonly translate: TranslateService,\n private readonly restrictedGroupService: RestrictedGroupService,\n ) {\n super(crmFieldService);\n\n this.config.viewProfileFlag$\n .pipe(\n take(1),\n switchMap((featureFlag) => {\n if (featureFlag) {\n return this.config.routePrefix$;\n } else {\n return of('');\n }\n }),\n )\n .subscribe((routePrefix) => {\n if (!routePrefix) {\n return;\n }\n const contactProfileViewRoute = `${PAGE_ROUTES.CONTACT.ROOT}/${PAGE_ROUTES.CONTACT.SUBROUTES.PROFILE}`;\n if (routePrefix) {\n this.contactLinkBuild$$.next(`${routePrefix}/${contactProfileViewRoute}`);\n }\n });\n }\n\n private hideIDColumns(columns: GalaxyColumnDef[]): GalaxyColumnDef[] {\n const columnIdentifiersToHide = [\n this.crmFieldService.getFieldId(StandardExternalIds.FirstName),\n this.crmFieldService.getFieldId(StandardExternalIds.LastName),\n SystemFieldIds.ContactExternalID,\n SystemFieldIds.ContactID,\n StandardIds.ContactPrimaryCompanyID,\n ContactCustomColumns.FullAddress,\n ];\n for (const identifier of columnIdentifiersToHide) {\n const index = columns.findIndex((c) => c.id === identifier);\n if (index >= 0) {\n columns[index].hidden = true;\n }\n }\n return columns;\n }\n\n private addPrimaryCompanyNameColumn(columns: GalaxyColumnDef[]): GalaxyColumnDef[] {\n return [\n {\n id: ContactCustomColumns.PrimaryCompanyName,\n title: this.translate.instant('CONTACT.LIST_OBJECTS_TABLE.CUSTOM_COLUMNS.PRIMARY_COMPANY_NAME'),\n hidden: true,\n },\n ...columns,\n ];\n }\n\n private async addPrimaryCompanyNameRowData(\n crmObject: CrmObjectInterface,\n schemaMap: { [schemaId: string]: FieldSchemaInterface },\n columnData: ColumnDataInterface,\n ): Promise {\n let contactPrimaryCompanyID = '';\n const contactPrimaryCompanyIDFieldValue = this.crmFieldService.getFieldValueFromCrmObject(\n crmObject,\n StandardIds.ContactPrimaryCompanyID,\n );\n if (contactPrimaryCompanyIDFieldValue?.stringValue) {\n contactPrimaryCompanyID = contactPrimaryCompanyIDFieldValue.stringValue;\n }\n\n columnData[ContactCustomColumns.PrimaryCompanyName] = {\n cellType: 'custom',\n value: contactPrimaryCompanyID,\n component: PrimaryCompanyNameComponent,\n } as CustomCell;\n }\n\n private addFullNameColumn(columns: GalaxyColumnDef[]): GalaxyColumnDef[] {\n return [\n {\n id: ContactCustomColumns.FullName,\n title: this.translate.instant('CONTACT.LIST_OBJECTS_TABLE.CUSTOM_COLUMNS.FULL_NAME'),\n sticky: true,\n sortable: false,\n },\n ...columns,\n ];\n }\n\n private formatPhoneNumber(phoneNumber: string): string {\n const parsedNumber = parseNumber(phoneNumber, {\n defaultCountry: 'US',\n });\n if (Object.keys(parsedNumber).length === 0) {\n return '';\n }\n\n return format(parsedNumber as ParsedNumber, 'INTERNATIONAL');\n }\n\n private addFullNameRowData(\n crmObject: CrmObjectInterface,\n schemaMap: { [schemaId: string]: FieldSchemaInterface },\n columnData: ColumnDataInterface,\n ): void {\n columnData[ContactCustomColumns.FullName] = {\n cellType: 'text',\n value: this.getRowFullName(crmObject),\n link: this.contactLinkBuild$$.value.replace(':crmObjectId', crmObject.crmObjectId || ''),\n };\n }\n\n getRowFullName(crmObject: CrmObjectInterface): string {\n const firstName = this.crmFieldService.getFieldId(StandardExternalIds.FirstName);\n const lastName = this.crmFieldService.getFieldId(StandardExternalIds.LastName);\n const email = this.crmFieldService.getFieldId(StandardExternalIds.Email);\n const phone = this.crmFieldService.getFieldId(StandardExternalIds.PhoneNumber);\n\n const firstNameData = crmObject.fields?.find((f) => f.fieldId === firstName);\n const lastNameData = crmObject.fields?.find((f) => f.fieldId === lastName);\n const emailData = crmObject.fields?.find((f) => f.fieldId === email);\n const phoneData = crmObject.fields?.find((f) => f.fieldId === phone);\n\n if (firstNameData?.stringValue || lastNameData?.stringValue) {\n return `${firstNameData?.stringValue ?? ''} ${lastNameData?.stringValue ?? ''}`.trim();\n } else {\n if (emailData) {\n return emailData.stringValue || '';\n } else {\n return this.formatPhoneNumber(phoneData?.stringValue || '') || '';\n }\n }\n }\n\n getAssociationInfo(crmObject: CrmObjectInterface): string {\n const email = this.crmFieldService.getFieldId(StandardExternalIds.Email);\n const emailData = crmObject.fields?.find((f) => f.fieldId === email);\n return emailData?.stringValue || '';\n }\n\n private addFullAddressColumnData(\n crmObject: CrmObjectInterface,\n schemaMap: { [schemaId: string]: FieldSchemaInterface },\n columnData: ColumnDataInterface,\n ): void {\n columnData[ContactCustomColumns.FullAddress] = {\n cellType: 'text',\n value: this.getRowFullAddress(crmObject),\n };\n }\n\n customizeRowData(\n crmObject: CrmObjectInterface,\n schemaMap: { [schemaId: string]: FieldSchemaInterface },\n columnData: ColumnDataInterface,\n ): void {\n this.customizeNextTaskDueDateCellData(columnData);\n this.addFullNameRowData(crmObject, schemaMap, columnData);\n this.addPrimaryCompanyNameRowData(crmObject, schemaMap, columnData);\n this.addFullAddressColumnData(crmObject, schemaMap, columnData);\n this.addCustomCells(this.config.contact?.tableCustomCells || [], crmObject, columnData);\n }\n\n private customizeNextTaskDueDateCellData(columnData: ColumnDataInterface): void {\n const cell = columnData[this.crmFieldService.getFieldId(StandardIds.ContactNextTaskDueDate)];\n if (cell) {\n cell.cellType = 'timestamp';\n }\n }\n\n customizeColumns(columns: GalaxyColumnDef[], isMobile: boolean): GalaxyColumnDef[] {\n let customizedColumns = this.hideIDColumns(columns);\n customizedColumns = this.addPrimaryCompanyNameColumn(customizedColumns);\n customizedColumns = this.addFullNameColumn(customizedColumns);\n customizedColumns = this.addFullAddressColumn(customizedColumns);\n\n const customCells = this.config.contact?.tableCustomCells || [];\n customizedColumns = this.addCustomColumns(\n customCells.map((c) => c.columnDefinition),\n customizedColumns,\n );\n if (isMobile) {\n customizedColumns = this.customizeColumnsMobile(customizedColumns);\n }\n return [...customizedColumns];\n }\n\n customizeColumnsMobile(columns: GalaxyColumnDef[]): GalaxyColumnDef[] {\n const columnIdentifiersToShow = new Map([\n [this.crmFieldService.getFieldId(StandardExternalIds.Email), true],\n [ContactCustomColumns.FullName, true],\n ]);\n\n columns.forEach((column) => {\n column.hidden = !columnIdentifiersToShow.get(column.id);\n });\n return [...columns];\n }\n\n getRowFullAddress(crmObject: CrmObjectInterface): string {\n const addressLineOne = this.crmFieldService.getFieldId(StandardIds.ContactPrimaryAddressLine1);\n const addressLineTwo = this.crmFieldService.getFieldId(StandardIds.ContactPrimaryAddressLine2);\n const city = this.crmFieldService.getFieldId(StandardIds.ContactPrimaryAddressCity);\n const state = this.crmFieldService.getFieldId(StandardIds.ContactPrimaryAddressState);\n const postalCode = this.crmFieldService.getFieldId(StandardIds.ContactPrimaryAddressPostalCode);\n const country = this.crmFieldService.getFieldId(StandardIds.ContactPrimaryAddressCountry);\n\n const addressLineOneData = crmObject.fields?.find((f) => f.fieldId === addressLineOne);\n const addressLineTwoData = crmObject.fields?.find((f) => f.fieldId === addressLineTwo);\n const cityData = crmObject.fields?.find((f) => f.fieldId === city);\n const stateData = crmObject.fields?.find((f) => f.fieldId === state);\n const postalCodeData = crmObject.fields?.find((f) => f.fieldId === postalCode);\n const countryData = crmObject.fields?.find((f) => f.fieldId === country);\n\n const fullAddress = [\n addressLineOneData?.stringValue,\n addressLineTwoData?.stringValue,\n cityData?.stringValue,\n stateData?.stringValue,\n countryData?.stringValue,\n postalCodeData?.stringValue,\n ];\n\n return fullAddress.filter((value) => value !== undefined).join(', ');\n }\n\n private addFullAddressColumn(columns: GalaxyColumnDef[]): GalaxyColumnDef[] {\n return [\n {\n id: ContactCustomColumns.FullAddress,\n title: this.translate.instant('LIST_OBJECTS_TABLE.CUSTOM_COLUMNS.FULL_ADDRESS'),\n hidden: true,\n sortable: false,\n },\n ...columns,\n ];\n }\n\n private makeGroupFilterRestricted(\n restrictedToGroupId: string,\n filters: GalaxyFilterDefinitionInterface[],\n ): GalaxyFilterDefinitionInterface[] {\n if (!restrictedToGroupId) {\n return filters;\n }\n const groupIDIndex = filters.findIndex((f) => f.fieldId === SystemFieldIds.ContactGroupID);\n if (groupIDIndex > -1) {\n filters[groupIDIndex].preset = true;\n filters[groupIDIndex].lockedValue = true;\n }\n return filters;\n }\n\n customizeFilters(filters: GalaxyFilterDefinitionInterface[]): Observable {\n const overrides$ = this.config.contact?.filterInputOverrides$ ?? of([]);\n const appliedOverrides$ = overrides$.pipe(map((overrides) => this.overrideCustomFilters(filters, overrides)));\n return combineLatest([this.restrictedGroupService.getCurrentGroupId(), appliedOverrides$]).pipe(\n map(([restrictedMarketId, filters]: [string, GalaxyFilterDefinitionInterface[]]) =>\n this.makeGroupFilterRestricted(restrictedMarketId, filters),\n ),\n );\n }\n\n async getInitialFilters(): Promise {\n return firstValueFrom(this.restrictedGroupService.getCurrentGroupId()).then((selectedGroupId) => {\n if (!selectedGroupId) {\n return [];\n }\n return [\n {\n fieldId: SystemFieldIds.ContactGroupID,\n filterId: 'filterContactByRestrictedGroupID',\n operator: GalaxyFilterOperator.FILTER_OPERATOR_IS,\n values: [\n {\n string: selectedGroupId,\n },\n ],\n },\n ];\n });\n }\n}\n","import { Inject, Injectable } from '@angular/core';\nimport { BehaviorSubject, firstValueFrom, Observable, of } from 'rxjs';\nimport { map, switchMap } from 'rxjs/operators';\nimport { CrmObjectService } from './crm-object-service/crm-object.service';\nimport {\n GalaxyFilterDefinitionInterface,\n GalaxyFilterType,\n GalaxyFilterOperator,\n GalaxyFilterInterface,\n} from '@vendasta/galaxy/filter/chips';\nimport { TaskTableCustomizationService } from '../table-customization/task-table-customization.service';\nimport { ContactTableCustomizationService } from '../table-customization/contact-table-customization.service';\nimport { CompanyTableCustomizationService } from '../table-customization/company-table-customization.service';\nimport { CrmInjectionToken, ActivityType, CrmDependencies, ObjectType } from '../../tokens-and-interfaces';\nimport { FilterOperator, FilterType } from '@vendasta/crm';\n\n// right now filters are sorted manually in the backend, the page size needs to cover the amount of system + standard + extensions + custom filters (up to 100)\nconst FILTER_PAGE_SIZE = 200;\n\nfunction convertToGalaxyFilterType(type: FilterType): GalaxyFilterType {\n return GalaxyFilterType[FilterType[type]];\n}\nfunction convertToGalaxyFilterOperator(operator: FilterOperator): GalaxyFilterOperator {\n return GalaxyFilterOperator[FilterOperator[operator]];\n}\nfunction convertToGalaxyFilterOperators(operators: FilterOperator[]): GalaxyFilterOperator[] {\n return operators.map((o) => convertToGalaxyFilterOperator(o));\n}\n\n@Injectable()\nexport class CrmFiltersService {\n private initialFilters$$ = new BehaviorSubject([]);\n initialFilters$ = this.initialFilters$$.asObservable();\n\n constructor(\n @Inject(CrmInjectionToken) private readonly config: CrmDependencies,\n private readonly crmObjectService: CrmObjectService,\n private readonly contactTableCustomization: ContactTableCustomizationService,\n private readonly companyTableCustomization: CompanyTableCustomizationService,\n private readonly taskTableCustomization: TaskTableCustomizationService,\n ) {}\n\n private customizeFilters(\n filters: GalaxyFilterDefinitionInterface[],\n objectType: ObjectType,\n activityType?: ActivityType,\n ): Observable {\n switch (objectType) {\n case 'Contact':\n return this.contactTableCustomization.customizeFilters(filters);\n case 'Company':\n return this.companyTableCustomization.customizeFilters(filters);\n case 'Activity':\n switch (activityType) {\n case 'Task':\n return this.taskTableCustomization.customizeFilters(filters);\n default:\n return of(filters);\n }\n default:\n return of(filters);\n }\n }\n\n listObjectFilters$(\n searchTerm: string,\n objectType: ObjectType,\n activityType?: ActivityType,\n ): Observable {\n return this.config.namespace$.pipe(\n switchMap((namespace) => {\n return this.crmObjectService.listObjectsFilters(objectType, {\n namespace: namespace,\n paging: {\n pageSize: FILTER_PAGE_SIZE,\n },\n searchTerm: searchTerm,\n });\n }),\n map((resp) => {\n if (!resp.filters) {\n return [] as GalaxyFilterDefinitionInterface[];\n }\n return resp.filters.map((filterDef) => ({\n fieldId: filterDef.fieldId,\n type: convertToGalaxyFilterType(filterDef.typeV2 || FilterType.FILTER_TYPE_INVALID),\n hasFilterOptions: filterDef.hasFilterOptions,\n supportedOperators: convertToGalaxyFilterOperators(filterDef.supportedOperatorsV2 || []),\n fieldName: filterDef.fieldName,\n }));\n }),\n switchMap((filters) => this.customizeFilters(filters, objectType, activityType)),\n );\n }\n\n async getInitialAppliedFilters$(\n objectType: ObjectType,\n activityType?: ActivityType,\n ): Promise {\n if (objectType === 'Activity' && activityType === 'Task') {\n const urlFilters = firstValueFrom(this.initialFilters$);\n return urlFilters.then((filters) => {\n if (filters?.length > 0) return filters;\n return this.taskTableCustomization.getInitialFilters();\n });\n }\n if (objectType === 'Contact') {\n const urlFilters = await firstValueFrom(this.initialFilters$);\n const initialContactFilters = await this.contactTableCustomization.getInitialFilters();\n if (urlFilters?.length > 0) {\n const joinedFilters = [...urlFilters, ...initialContactFilters];\n return joinedFilters.filter((filter, index) => {\n return index === joinedFilters.findIndex((f) => filter.filterId === f.filterId);\n });\n }\n return initialContactFilters;\n }\n if (objectType === 'Company') {\n const urlFilters = await firstValueFrom(this.initialFilters$);\n const initialCompanyFilters = await this.companyTableCustomization.getInitialFilters();\n if (urlFilters?.length > 0) {\n const joinedFilters = [...urlFilters, ...initialCompanyFilters];\n return joinedFilters.filter((filter, index) => {\n return index === joinedFilters.findIndex((f) => filter.filterId === f.filterId);\n });\n }\n return initialCompanyFilters;\n }\n return firstValueFrom(this.initialFilters$);\n }\n\n setInitialFilters(filters: GalaxyFilterInterface[]) {\n this.initialFilters$$.next(filters);\n }\n}\n","import {\n GalaxyFilterChipDependencies,\n GalaxyFilterDefinitionInterface,\n GalaxyFilterInputOverride,\n GalaxyFilterInterface,\n} from '@vendasta/galaxy/filter/chips';\nimport { FieldType, FieldValueInterface as SdkFieldValueInterface } from '@vendasta/crm';\nimport { Observable, of } from 'rxjs';\nimport { AbstractControl, UntypedFormControl } from '@angular/forms';\nimport { CustomCellComponent, GalaxyColumnDef, Row } from '@vendasta/galaxy/table';\nimport { inject, InjectionToken, Type, ViewContainerRef } from '@angular/core';\nimport { Properties } from 'posthog-js';\nimport { CardDataType } from '@vendasta/galaxy/contact-info-card';\nimport { CrmFieldOptionsService } from './shared-services/crm-services/crm-field-options.service';\nimport { CrmFiltersService } from './shared-services/crm-services/crm-filters.service';\nimport { CRMTrackingService } from './shared-services/page-analytics.service';\nimport { FieldValidation } from './shared-components/model-driven-form/field-validation';\nimport { User } from '@vendasta/iamv2';\nexport { FieldType } from '@vendasta/crm';\n\nexport interface ProfileCard {\n component: any;\n}\n\nexport interface CRMSelectAllOptions {\n filters?: GalaxyFilterInterface[];\n search?: string;\n useSelectAll?: boolean;\n totalObjects?: number;\n}\n\nexport interface UserWithDisplayName extends User {\n displayName: string;\n}\n\nexport type MultiRowActionFunc = (rows: Row[]) => void;\nexport type SelectAllActionFunc = (rows: Row[], selectOptions?: CRMSelectAllOptions) => void;\nexport type SingleRowActionFunc = (row: Row) => void;\nexport type ObjectType = 'Contact' | 'Company' | 'Activity';\nexport const ObjectTypes: ObjectType[] = ['Contact', 'Company', 'Activity'];\n// Extra object types that can be associated with an activity\nexport type ObjectAssociationType = 'Opportunity' | 'User';\nexport type RowVisibilityFunc = (row: Row, type: ObjectType) => boolean;\n\nexport interface MultiRowAction {\n label: string;\n callback: MultiRowActionFunc;\n}\nexport interface SelectAllAction {\n label: string;\n callback: SelectAllActionFunc;\n selectAllVisible?: boolean;\n}\n\nexport interface SingleRowAction {\n label: string;\n callback: SingleRowActionFunc;\n visible?: RowVisibilityFunc;\n}\n\nexport interface CRMRowObject {\n objectId: string;\n objectType: ObjectType;\n}\n\nexport interface TableCustomCell {\n fieldIds: string[];\n customCellComponent: Type;\n columnDefinition: GalaxyColumnDef;\n}\n\nexport interface CRMFilterOverride extends GalaxyFilterInputOverride {\n title: string;\n}\n\nexport interface ActionButton {\n component: any;\n}\n\nexport type RequiresField = T & { [P in K]-?: T[P] };\nexport type FieldValueInterface = RequiresField;\n\nexport abstract class FormInputComponent {\n readOnly = false;\n inlineEdit$: Observable = of(false);\n objectType: ObjectType = 'Contact';\n\n abstract set control(control: UntypedFormControl);\n abstract get control(): UntypedFormControl;\n\n abstract set fieldId(fieldId: string);\n\n abstract set label(label: string);\n\n abstract get hasModification(): boolean;\n\n abstract get value(): FieldValueInterface;\n}\n\nexport interface FormCustomInput {\n fieldId: string;\n component: Type;\n}\n\nexport interface FormDefaultInputValue {\n fieldId: string;\n value: any;\n}\n\nexport interface SimplifiedUser {\n userId: string;\n firstName: string;\n lastName: string;\n displayName: string;\n}\n\nexport interface UserService {\n searchUsers?(searchTerm?: string): Observable;\n\n getMultiUsers(userIds: string[]): Observable;\n}\n\nexport interface SimplifiedOpportunity {\n opportunityId: string;\n name: string;\n}\n\nexport interface OpportunityService {\n searchOpportunities(searchTerm: string): Observable;\n\n getMultiOpportunity(opportunityIds: string[]): Observable;\n\n setAccountGroupId(accountGroupId: string): void;\n}\n\n// Dependencies related to specific object types\ninterface CrmObjectDependencies {\n multiRowTableActions$?: Observable;\n singleRowTableActions$?: Observable;\n selectAllTableActions$?: Observable;\n profileCards$?: Observable;\n actionButtons$?: Observable;\n baseColumnIds?: string[];\n filterInputOverrides$?: Observable;\n tableCustomCells?: TableCustomCell[];\n formCustomInputs?: FormCustomInput[];\n formDefaultOnCreateInputValues$?: Observable;\n showRightHandProfilePanel$?: Observable; // default to show right hand profile panel\n}\n\nexport interface CrmDependencies {\n appID?: string;\n // the prefix for the route, e.g. /crm. necessary to avoid using relative routing with CRM lib subrouter\n routePrefix$: Observable;\n\n // A namespace is an instance of the CRM\n // e.g. VUNI for a partner managing their contacts in Partner Center,\n // or AG-12345 for an SMB managing their contacts in Business Center.\n // (This distinction gets weirder in the future when we start merging these Centers,\n // but just roll with it for now.)\n namespace$: Observable;\n\n // When the CRM is used in Business Center, the namespace is the account group id.\n // This will give you the parent namespace, which is the partner id.\n parentNamespace$: Observable;\n\n // Actions that can be taken either on a single row or a selection of rows from the CRM table.\n // Actions are defined by the app instantiating the CRM and will be different from app to app.\n // eg. RM could define an action to send a review request to a set of selected contacts. RM supplies all the\n // config for the action and the CRM table invokes the provided function when it is clicked.\n multiRowTableActions$?: Observable;\n singleRowTableActions$?: Observable;\n selectAllActions$?: Observable;\n\n // featureFlags$\n viewProfileFlag$: Observable;\n viewProspectorFlag$?: Observable;\n\n // the unified user id of the current user\n currentUserId$: Observable;\n\n // dependencies by object type\n company?: CrmObjectDependencies;\n contact?: CrmObjectDependencies;\n task?: CrmObjectDependencies;\n\n showBackToAccountsButton?: boolean;\n\n // dependencies for namespace specific shared-services\n services?: {\n userService?: UserService;\n opportunityService?: OpportunityService;\n };\n\n openAccountGroupConversation?: (accountGroupId: string) => void | Promise;\n openContactConversation?: (contactId: string) => void | Promise;\n\n // Helps determine whether a partner has access to a feature\n hasAccessToFeature$?: (feature: string) => Observable;\n openRestrictedDialog?: (featureId: string) => void;\n\n // Client specific actions to shared components\n customActions?: {\n // navigates to the fulfillment projects page for a given company\n navigateToFulfillmentProjects?: (row: CRMRowObject) => void;\n };\n}\n\nexport const CrmInjectionToken = new InjectionToken('dependencies for the crm');\n\nexport interface CompanyProfileCardData {\n company_id: string;\n account_group_id?: string;\n name?: string;\n group_id?: string;\n}\n\nexport const COMPANY_PROFILE_CARD_DATA_TOKEN = new InjectionToken('company-profile-card-data');\n\nexport interface PageAnalyticsDependencies {\n trackEvent(action: string, properties?: Properties): void;\n}\n\nexport const PageAnalyticsInjectionToken = new InjectionToken(\n 'dependencies for page analytics',\n);\nexport type ActivityType = 'Note' | 'Email' | 'Call' | 'Meeting' | 'Task' | 'Communication';\nexport type CommunicationSubType = 'SMS' | 'LinkedIn' | 'Inbox';\nexport type RecordChangeType = 'CREATED' | 'IMPORTANT_FIELD_UPDATED';\n\nexport interface CardData extends CardDataType {\n tags?: string[];\n hideAvatar?: boolean;\n accountGroupCompanyName?: string;\n accountGroupCompanyId?: string;\n associationId?: string;\n}\n\nexport function tableFiltersInjectionTokenGenerator(\n objectType: ObjectType,\n activityType?: ActivityType,\n): () => GalaxyFilterChipDependencies {\n if (!objectType) {\n console.error('objectType is required for tableFiltersInjectionTokenGenerator');\n return () => ({}) as GalaxyFilterChipDependencies;\n }\n\n return () => {\n const crmFieldOptionsService = inject(CrmFieldOptionsService);\n const crmFiltersService = inject(CrmFiltersService);\n const crmConfigDependencies = inject(CrmInjectionToken);\n const deps: GalaxyFilterChipDependencies = {\n listObjectFilters(searchTerm: string): Observable {\n return crmFiltersService.listObjectFilters$(searchTerm, objectType, activityType);\n },\n getFieldOptions(fieldId: string, search: string): Observable {\n return crmFieldOptionsService.getFieldOptions(fieldId, search, objectType);\n },\n getFilterInputOverrides(): Observable {\n switch (objectType) {\n case 'Contact':\n return crmConfigDependencies.contact?.filterInputOverrides$ ?? of([] as GalaxyFilterInputOverride[]);\n case 'Company':\n return crmConfigDependencies.company?.filterInputOverrides$ ?? of([] as GalaxyFilterInputOverride[]);\n case 'Activity':\n switch (activityType) {\n case 'Task':\n return crmConfigDependencies.task?.filterInputOverrides$ ?? of([] as GalaxyFilterInputOverride[]);\n default:\n return of([] as GalaxyFilterInputOverride[]);\n }\n default:\n return of([] as GalaxyFilterInputOverride[]);\n }\n },\n getInitialAppliedFilters(): Promise {\n return crmFiltersService.getInitialAppliedFilters$(objectType, activityType);\n },\n };\n return deps;\n };\n}\n\nexport function pageAnalyticsInjectionTokenGenerator(objectType: ObjectType): () => PageAnalyticsDependencies {\n return () => {\n const crmTrackingService = inject(CRMTrackingService);\n const deps: PageAnalyticsDependencies = {\n trackEvent(action: string, properties?: Properties): void {\n crmTrackingService.trackEvent(objectType, action, properties);\n },\n };\n return deps;\n };\n}\n\nexport interface DropdownOptionInterface {\n label?: string;\n value?: string;\n}\n\nexport interface FieldSchemaInterface {\n fieldId: string;\n fieldType: FieldType;\n fieldName: string;\n fieldDescription: string;\n dropdownOptions: DropdownOptionInterface[];\n currencyCode: string;\n value: any;\n readOnly: boolean;\n hasDefaultValue?: boolean;\n}\n\nexport interface FieldInterface {\n fieldId: string;\n name: string;\n value: any;\n description: string;\n\n // Gets the field value for the backend\n fieldValue(): FieldValueInterface;\n\n // Checks if the field received a update\n hasModification(): boolean;\n}\n\nexport interface FieldGroupInterface {\n description?: string;\n fieldIds: string[];\n}\n\nexport const ActivityTaskStatus = {\n Open: 'Open',\n Completed: 'Completed',\n};\n\nexport interface FieldOptionsDependencies {\n getFieldOptions(fieldId: string, search: string): Observable;\n}\n\nexport const FieldOptionsInjectionToken = new InjectionToken(\n 'dependencies for getting field options in the model-driven form',\n);\n\nexport enum LoadingStatus {\n LOADING = 1,\n OK = 2,\n EMPTY = 3,\n ERROR = 4,\n}\n\nexport enum SavingStatus {\n NOT_SAVING = 1,\n SAVING = 2,\n OK = 3,\n ERROR = 4,\n}\n\nexport enum NullValue {\n NULL_VALUE = 0,\n}\n\nexport interface RenderableFieldInterface extends FieldInterface {\n formControl: AbstractControl;\n validation: FieldValidation;\n objectType: ObjectType;\n readOnly: boolean;\n\n // Chooses the correct component to display information\n render(viewContainerRef: ViewContainerRef): void;\n\n setValidation(validation: FieldValidation): void;\n}\n\nexport interface RenderableFieldGroupInterface {\n description?: string;\n fields: RenderableFieldInterface[];\n}\n\nexport interface FieldConfigInterface {\n fieldSchemas?: FieldSchemaInterface[];\n fieldGroups?: FieldGroupInterface[];\n}\n\nexport function modelDrivenFormFieldOptionsInjectionTokenGenerator(\n objectType: ObjectType,\n): () => FieldOptionsDependencies {\n return () => {\n const crmFieldOptionsService = inject(CrmFieldOptionsService);\n const deps: FieldOptionsDependencies = {\n getFieldOptions(fieldId: string, search: string): Observable {\n return crmFieldOptionsService.getFieldOptions(fieldId, search, objectType);\n },\n };\n return deps;\n };\n}\n\nexport interface ContactProfileCardData {\n id?: string;\n name?: string;\n}\n\nexport const CONTACT_PROFILE_CARD_DATA_TOKEN = new InjectionToken('contact-profile-card-data');\n\nexport interface ActionButtonData {\n account_group_id?: string;\n}\n\nexport const PROFILE_ACTION_BUTTON_DATA_TOKEN = new InjectionToken('action-button');\n","import { Component, inject } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { BlankValueComponent, CustomCellComponent } from '@vendasta/galaxy/table';\nimport { ActivityInterface, FieldMaskInterface, FieldValueInterface } from '@vendasta/crm';\nimport { GalaxyPipesModule } from '@vendasta/galaxy/pipes';\nimport { TranslateModule } from '@ngx-translate/core';\nimport { MatIconModule } from '@angular/material/icon';\nimport { firstValueFrom } from 'rxjs';\nimport { SnackbarService } from '@vendasta/galaxy/snackbar-service';\nimport { ActivityService } from '../../../shared-services/crm-services/activity.service';\nimport { ActivityTaskStatus } from '../../../tokens-and-interfaces';\nimport { MatButtonModule } from '@angular/material/button';\nimport { ProductAnalyticsService } from '@vendasta/product-analytics';\nimport { StandardIds, SystemFieldIds } from '../../../shared-services';\n\n@Component({\n template: `\n \n `,\n standalone: true,\n styleUrls: ['./task-status.component.scss'],\n imports: [CommonModule, BlankValueComponent, GalaxyPipesModule, TranslateModule, MatIconModule, MatButtonModule],\n})\nexport class TaskStatusCellComponent extends CustomCellComponent {\n protected taskOpen = false;\n private activityId = '';\n private readonly activitySubtype = 'Task';\n private readonly analyticsService = inject(ProductAnalyticsService);\n set value(newValues: (FieldValueInterface | null)[]) {\n const statusField = newValues.filter(Boolean).find((field) => field?.fieldId === StandardIds.ActivityTaskStatus);\n this.taskOpen = statusField?.stringValue === ActivityTaskStatus.Open;\n const idField = newValues.filter(Boolean).find((field) => field?.fieldId === SystemFieldIds.ActivityID);\n this.activityId = idField?.stringValue || '';\n }\n updateTaskCompletionStatus() {\n const newStatus = this.taskOpen ? ActivityTaskStatus.Completed : ActivityTaskStatus.Open;\n const activity: ActivityInterface = {\n crmObjectId: this.activityId,\n crmObjectSubtype: this.activitySubtype,\n fields: [{ fieldId: StandardIds.ActivityTaskStatus, stringValue: newStatus }],\n };\n const mask: FieldMaskInterface = {\n paths: [StandardIds.ActivityTaskStatus],\n };\n try {\n firstValueFrom(this.activityService.updateActivity(activity, mask)).then(() => {\n this.snack.openSuccessSnack('TASK.STATUS_UPDATE.SUCCESS');\n this.taskOpen = !this.taskOpen;\n });\n } catch {\n this.snack.openErrorSnack('TASK.STATUS_UPDATE.ERROR');\n }\n\n this.analyticsService.trackEvent('task-table-update-status', 'sales-tasks', 'click', 1, {\n status: newStatus,\n });\n }\n\n constructor(private readonly activityService: ActivityService, private readonly snack: SnackbarService) {\n super();\n }\n}\n","import { Inject, Injectable } from '@angular/core';\nimport { CrmObjectInterface, FieldSchemaInterface, SortByInterface, SortDirection } from '@vendasta/crm';\nimport {\n GalaxyFilterDefinitionInterface,\n GalaxyFilterInterface,\n GalaxyFilterOperator,\n} from '@vendasta/galaxy/filter/chips';\nimport { GalaxyColumnDef } from '@vendasta/galaxy/table';\nimport { Observable, ReplaySubject, combineLatest, firstValueFrom, of } from 'rxjs';\nimport { map } from 'rxjs/operators';\nimport { ActivityTaskStatus } from '../../tokens-and-interfaces';\nimport { TaskStatusCellComponent } from '../../shared-components/custom-table-cells/task-status/task-status.component';\nimport { CrmInjectionToken, CrmDependencies } from '../../tokens-and-interfaces';\nimport { ActivityTableCustomizationService, ColumnDataInterface } from './_abstract-table-customization.service';\nimport { CrmFieldService, StandardIds, SystemFieldIds, TaskCustomColumns } from '../crm-services/field.service';\n\nconst StatusColumnCell = {\n fieldIds: [StandardIds.ActivityTaskStatus, SystemFieldIds.ActivityID],\n columnDefinition: {\n id: StandardIds.ActivityTaskStatus,\n },\n customCellComponent: TaskStatusCellComponent,\n};\n@Injectable()\nexport class TaskTableCustomizationService extends ActivityTableCustomizationService {\n ownerFilter$$: ReplaySubject = new ReplaySubject(1);\n constructor(\n @Inject(CrmInjectionToken) private readonly config: CrmDependencies,\n protected override readonly crmFieldService: CrmFieldService,\n ) {\n super(crmFieldService);\n }\n\n defaultSortingOptions: SortByInterface[] = [\n {\n fieldId: this.crmFieldService.getFieldId(StandardIds.ActivityTaskDueDate),\n sortDirection: SortDirection.SORT_DIRECTION_ASCENDING,\n },\n ];\n\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n customizeColumns(columns: GalaxyColumnDef[], isMobile: boolean): GalaxyColumnDef[] {\n columns = this.excludeNonTaskColumns(columns);\n const customCells = this.config.task?.tableCustomCells || [];\n customCells.push(StatusColumnCell);\n columns = this.addCustomColumns(\n customCells.map((c) => c.columnDefinition),\n columns,\n );\n columns = this.showBaseColumns(columns);\n columns = this.sortColumns(columns);\n return [...columns];\n }\n\n customizeFilters(filters: GalaxyFilterDefinitionInterface[]): Observable {\n filters = this.excludeNonTaskFilters(filters);\n this.captureInitialFilters(filters);\n const overrides$ = this.config.task?.filterInputOverrides$ ?? of([]);\n return overrides$.pipe(map((overrides) => this.overrideCustomFilters(filters, overrides)));\n }\n\n private captureInitialFilters(filters: GalaxyFilterDefinitionInterface[]) {\n const ownerFilterDefinition = filters.find(\n (f) => f.fieldId === this.crmFieldService.getFieldId(SystemFieldIds.ActivityOwnerID),\n );\n if (ownerFilterDefinition) {\n this.ownerFilter$$.next(ownerFilterDefinition);\n }\n }\n\n async getInitialFilters(): Promise {\n return firstValueFrom(combineLatest([this.ownerFilter$$, this.config.currentUserId$])).then(\n ([filterDefinition, userId]) => {\n return [\n {\n fieldId: filterDefinition.fieldId,\n filterId: 'filterTasksByUser',\n operator: GalaxyFilterOperator.FILTER_OPERATOR_IS,\n values: [\n {\n string: userId,\n },\n ],\n },\n {\n fieldId: this.crmFieldService.getFieldId(StandardIds.ActivityTaskStatus),\n filterId: 'filterTasksByOpenStatus',\n operator: GalaxyFilterOperator.FILTER_OPERATOR_IS,\n values: [\n {\n string: ActivityTaskStatus.Open,\n },\n ],\n },\n ];\n },\n );\n }\n\n customizeRowData(\n crmObject: CrmObjectInterface,\n schemaMap: { [schemaId: string]: FieldSchemaInterface },\n columnData: ColumnDataInterface,\n ) {\n this.customizeDueDateCellData(columnData);\n this.addCustomCells(this.config.task?.tableCustomCells || [], crmObject, columnData);\n }\n\n private customizeDueDateCellData(columnData: ColumnDataInterface): void {\n const cell = columnData[this.crmFieldService.getFieldId(StandardIds.ActivityTaskDueDate)];\n if (cell) {\n cell.cellType = 'timestamp';\n }\n }\n\n private excludeNonTaskColumns(columns: GalaxyColumnDef[]) {\n return columns.filter((c) => this.getTaskFieldIds().includes(c.id));\n }\n\n private excludeNonTaskFilters(filters: GalaxyFilterDefinitionInterface[]) {\n return filters.filter((f) => f.fieldId && this.getTaskFieldIds().includes(f.fieldId));\n }\n\n private getTaskFieldIds(): string[] {\n return [\n this.crmFieldService.getFieldId(SystemFieldIds.ActivityOwnerID),\n this.crmFieldService.getFieldId(SystemFieldIds.ActivityID),\n this.crmFieldService.getFieldId(StandardIds.ActivityName),\n this.crmFieldService.getFieldId(StandardIds.ActivityTaskDueDate),\n this.crmFieldService.getFieldId(StandardIds.ActivityTaskPriority),\n this.crmFieldService.getFieldId(StandardIds.ActivityTaskStatus),\n this.crmFieldService.getFieldId(StandardIds.ActivityTaskType),\n this.crmFieldService.getFieldId(SystemFieldIds.ActivityCreated),\n this.crmFieldService.getFieldId(SystemFieldIds.ActivityUpdated),\n ];\n }\n\n private showBaseColumns(columns: GalaxyColumnDef[]): GalaxyColumnDef[] {\n const columnsToHide = [\n SystemFieldIds.ActivityID,\n SystemFieldIds.ActivityOwnerID,\n SystemFieldIds.ActivityCreated,\n SystemFieldIds.ActivityUpdated,\n StandardIds.ActivityTaskPriority,\n ];\n\n const columnsToUnHide = [TaskCustomColumns.AssignedTo];\n\n for (const column of columns) {\n if (columnsToHide.includes(column.id)) {\n column.hidden = true;\n } else if (columnsToUnHide.includes(column.id)) {\n column.hidden = false;\n }\n }\n\n return columns;\n }\n\n private sortColumns(columns: GalaxyColumnDef[]): GalaxyColumnDef[] {\n const columnOrder = [\n StandardIds.ActivityTaskStatus,\n StandardIds.ActivityName,\n StandardIds.ActivityTaskType,\n StandardIds.ActivityTaskDueDate,\n TaskCustomColumns.AssignedTo,\n ];\n\n return columns.sort((a, b) => {\n const order = columnOrder;\n const aIndex = order.indexOf(a.id);\n const bIndex = order.indexOf(b.id);\n return (aIndex === -1 ? Infinity : aIndex) - (bIndex === -1 ? Infinity : bIndex);\n });\n }\n}\n","{\n \"ACTIONS\": {\n \"CREATE\": \"Create\",\n \"CANCEL\": \"Cancel\",\n \"SAVE\": \"Save\",\n \"NEXT\": \"Next\",\n \"BACK\": \"Back\",\n \"FINISH\": \"Finish\",\n \"APPLY\": \"Apply\",\n \"IMPORT\": \"Import\",\n \"SELECT\": \"Select\",\n \"SEARCH\": \"Search\",\n \"ADD\": \"Add\",\n \"DELETE\": \"Delete\"\n },\n \"ERRORS\": {\n \"GENERIC_MESSAGE\": \"Something went wrong\",\n \"GENERIC_LOAD_MESSAGE\": \"Could not load the page. Please try again.\",\n \"GENERIC_EDIT_MESSAGE\": \"There was an error updating. Please try again.\",\n \"RESOURCE_NOT_FOUND_ERROR\": \"Resource not found\"\n },\n \"OBJECT_TYPES\": {\n \"CONTACT\": \"Contact\",\n \"COMPANY\": \"Company\"\n },\n \"ASSOCIATIONS\": {\n \"ACTIONS\": {\n \"REMOVE\": \"Remove association\",\n \"DETAILS\": \"View Details\",\n \"EDIT_TAGS\": \"Edit association tags\",\n \"SHOW_MORE\": \"Show {{count}} more\",\n \"VIEW_ALL\": \"View all\"\n },\n \"SUCCESS\": {\n \"GENERIC\": \"Successfully created association\",\n \"PARTIAL_SUCCESS\": \"{{createdCount}} out of {{totalCount}} associations are created\"\n },\n \"COMPANY\": {\n \"TITLE\": \"Companies\",\n \"ADD_COMPANY\": \"Add company\",\n \"ERROR\": \"Failed to create an account for this company\",\n \"INVITE\": \"+ Invite to {{appName}}\",\n \"LAST_LOGIN_DATE\": \"Last login: {{lastLoginDate}}\",\n \"NEVER_LOGGED_IN\": \"Never\"\n },\n \"PARENT_CHILD_COMPANIES\": {\n \"TITLE\": \"Associated companies\",\n \"CHILD_SECTION_TITLE\": \"Child companies\",\n \"PARENT_SECTION_TITLE\": \"Parent company\",\n \"ADD_CHILD_COMPANY\": \"Add child company\",\n \"SET_PARENT_COMPANY\": \"Set parent company\",\n \"ADD_CHILD_COMPANY_MODAL\": {\n \"TITLE\": \"Add child company to {{companyName}}\",\n \"SUCCESS\": \"Child company added\",\n \"ERROR\": \"Error adding child company\"\n },\n \"SET_PARENT_COMPANY_MODAL\": {\n \"TITLE\": \"Set parent company for {{companyName}}\",\n \"SUCCESS\": \"Parent company set\",\n \"ERROR\": \"Error setting parent company\"\n }\n },\n \"APP_ACCESS_MODAL\": {\n \"TITLE\": \"Invite {{contactName}} to {{appName}}?\",\n \"DESCRIPTION\": \"They will be sent a welcome email and be added as a user for {{companyName}}.\",\n \"PERMISSIONS_INFO\": \"You can edit their permissions at any time under the Customers > {{appName}} > Users tab.\",\n \"INVITE\": \"Invite\",\n \"CANCEL\": \"Cancel\",\n \"SUCCESS\": \"Contact has been successfully invited\",\n \"ERROR\": \"Error inviting contact\"\n },\n \"MODAL\": {\n \"TITLE_CONTACT_MODAL\": \"Add associated companies to {{contactFullName}}\",\n \"ADD_ASSOCIATION\": \"Add company\",\n \"TITLE_COMPANY_MODAL\": \"Add associated contacts to {{companyName}}\",\n \"TITLE_ASSOCIATION\": \"Association details\",\n \"TITLE_TAGS\": \"Association tags\",\n \"HINT_TAGS\": \"New tag...\",\n \"DESCRIPTION_TAGS\": \"Use tags to describe this relationship\",\n \"CREATE_NEW_CONTACT\": \"Create new contact\"\n },\n \"COMPANY_MODAL\": {\n \"PRIMARY_COMPANY\": \"Set as primary company\",\n \"PRIMARY_DESCRIPTION\": \"This will replace any current primary company associations\"\n },\n \"ADMIN_NOTES\": {\n \"TITLE\": \"Admin Notes\"\n },\n \"PRODUCTS\": {\n \"TITLE\": \"Products\",\n \"NO_PRODUCTS\": \"No products yet\",\n \"ACTIVE_SINCE\": \"Active since\",\n \"RENEWS\": \"Renews\",\n \"COMMITTED_UNTIL\": \"Committed until\",\n \"TRIAL_SINCE\": \"Trial since\",\n \"ENDS\": \"Ends\",\n \"DAYS_REMAINING\": \"{{days}} days remaining\",\n \"TRIAL_UPGRADE\": \"Upgrade product to continue service\",\n \"ERROR\": \"Error loading data, refresh and try again\",\n \"STATUS\": {\n \"TRIAL\": \"Trial\",\n \"TRIAL_ENDED\": \"Trial ended\"\n }\n },\n \"REPORTS\": {\n \"TITLE\": \"Reports\"\n },\n \"OPPORTUNITIES\": {\n \"TITLE\": \"Opportunities\"\n },\n \"UTM_ATTRIBUTES\": {\n \"TITLE\": \"UTM Attributes\"\n },\n \"AUTOMATIONS\": {\n \"TITLE\": \"Automations\"\n },\n \"CAMPAIGNS\": {\n \"TITLE\": \"Campaigns\",\n \"ADD_ASSOCIATION\": \"Add campaign\",\n \"START\": \"Start campaign...\",\n \"START_NOW\": \"Campaign will start on\",\n \"START_LATER\": \"Campaign will start at the scheduled time\",\n \"ADD_TO_CAMPAIGN\": \"Add to campaign\",\n \"MODAL\": {\n \"SUCCESS\": \"Successfully added to campaign\",\n \"ERROR\": \"Error adding to campaign\",\n \"UPDATED\": \"Last updated:\",\n \"NO_CAMPAIGNS\": \"No campaigns found\",\n \"SEARCH_PLACEHOLDER\": \"Search active campaigns\"\n },\n \"START_CAMPAIGN\": {\n \"NOW\": \"Now\",\n \"LATER\": \"Later\"\n },\n \"VIEW_ALL\": \"View all\"\n },\n \"FILES\": {\n \"TITLE\": \"Files\"\n },\n \"FULFILLMENT_PROJECTS\": {\n \"TITLE\": \"Projects\",\n \"SUBTITLE\": {\n \"DUE\": \"Due\",\n \"COMPLETED\": \"Completed\"\n },\n \"STATUS\": {\n \"OPEN\": \"Open\",\n \"IN_PROGRESS\": \"In progress\",\n \"WAITING_ON_CUSTOMER\": \"Waiting on customer\",\n \"COMPLETED\": \"Completed\",\n \"OVERDUE\": \"Overdue\"\n },\n \"NO_PROJECTS\": \"No projects yet\"\n },\n \"ORDERS\": {\n \"TITLE\": \"Orders\"\n },\n \"COMPANY_PRIORITIES\": {\n \"TITLE\": \"Company Priorities\"\n },\n \"PROPOSALS\": {\n \"TITLE\": \"Proposals\"\n },\n \"TASKS\": {\n \"TITLE\": \"Tasks\"\n },\n \"PANEL_IN_PROGRESS\": {\n \"BUTTON\": \"View / add {{ category }}\",\n \"DESCRIPTION\": \"We’re still working on this! To add or view existing {{ category }}, you’ll be taken back to the account details page.\",\n \"ALERT\": {\n \"TITLE\": \"The associations panel is still in progress\",\n \"DESCRIPTION\": \"- You'll be taken back to the legacy page to access some features.\"\n }\n },\n \"CONTACT\": {\n \"TITLE\": \"Contacts\",\n \"ADD_ASSOCIATION\": \"Add contact\"\n },\n \"REMOVE_DIALOG\": {\n \"TITLE\": \"Remove association?\",\n \"MESSAGE\": \"{{removeName}} will no longer be associated with {{fromName}}.\",\n \"CONFIRM\": \"Remove\",\n \"CANCEL\": \"Cancel\",\n \"SUCCESS\": \"Association removed\",\n \"ERROR\": \"Error removing association\"\n },\n \"ACCOUNT\": {\n \"TITLE\": \"Associated account\",\n \"CREATE_ACCOUNT\": \"Create account\",\n \"CREATE_DESCRIPTION\": \"Accounts handle the billing relationship with a company. Use them to submit orders, create invoices, and collect payments.\",\n \"GO_TO_ACCOUNT\": \"Go to account\",\n \"OPEN_BUSINESS_APP\": \"Open in\"\n },\n \"EDIT_ASSOCIATION_DIALOG\": {\n \"ACTION\": \"Edit association tags\",\n \"TITLE\": \"Association details\",\n \"SUCCESS\": \"Association tags updated\",\n \"ERROR\": \"Error updating tags\"\n }\n },\n \"CONTACT\": {\n \"TITLE\": \"Contacts\",\n \"ADD_OBJECT_BUTTON\": \"Create contact\",\n \"VIEW_OBJECT\": \"View contact\",\n \"CREATE_PAGE\": {\n \"TITLE\": \"Create contact\",\n \"SAVE\": {\n \"SUCCESS\": \"Contact creation was successful\",\n \"ERROR\": \"Something went wrong\"\n },\n \"LOAD\": {\n \"ERROR\": \"Something went wrong\"\n }\n },\n \"EDIT_PAGE\": {\n \"TITLE\": \"Edit contact\",\n \"SAVE\": {\n \"SUCCESS\": \"Contact was updated successfully\"\n }\n },\n \"IMPORT_CONTACTS_PAGE\": \"Import contacts\",\n \"CONTACT_PROFILE\": {\n \"TITLE\": \"Contact profile\",\n \"EDIT_CONTACT\": \"Edit contact\",\n \"ACTIVITIES_TIMELINE_TAB\": \"Activity\",\n \"ABOUT_TAB\": \"About\",\n \"ASSOCIATIONS_TAB\": \"Associations\"\n },\n \"PROFILE_PAGE\": {\n \"TITLE\": \"Contact profile\",\n \"EDIT\": \"Edit contact\",\n \"PREVIOUS_PAGE_TITLE\": \"contacts\",\n \"ACTIVITIES_TIMELINE_TAB\": \"Activity\",\n \"ABOUT_TAB\": \"About\",\n \"ASSOCIATIONS_TAB\": \"Associations\"\n },\n \"ACTIVITIES_TIMELINE\": {\n \"EMPTY\": {\n \"IMAGE_ALT\": \"Graphic showing an abstract activity card floating\",\n \"HEADER\": \"Activities Timeline\",\n \"HINT\": \"Add an Activity\"\n },\n \"EMPTY_SEARCH\": {\n \"HEADER\": \"No activities found that match your search\",\n \"HINT\": \"Try changing the keywords\"\n },\n \"SECTIONS\": {\n \"UPCOMING\": \"Upcoming\"\n }\n },\n \"ACTIVITIES\": {\n \"UNKNOWN_NAME\": \"Unknown user\",\n \"HEADER_ADDITIONAL_TEXT\": {\n \"NOTE\": \"added a note\",\n \"LOGGED_EMAIL\": \"logged an email\",\n \"LOGGED_CALL\": \"logged a call\",\n \"LOGGED_MEETING\": \"logged a meeting\",\n \"LOGGED_COMMUNICATION\": \"logged a message\",\n \"TASK\": \"was assigned a task\"\n },\n \"CREATED_FROM\": \"from\"\n },\n \"RECORD_CHANGE_ACTIVITY\": {\n \"CREATED\": \"Contact created\",\n \"CREATED_VIA\": \"Contact created via\"\n },\n \"LIST_OBJECTS_PAGE\": {\n \"BACK_TO_USERS\": \"Back to Manage Users\"\n },\n \"LIST_OBJECTS_TABLE\": {\n \"EMPTY_TABLE\": {\n \"IMAGE_ALT\": \"Graphic showing a contact to be filled in\",\n \"HEADER\": \"Create your first contact\",\n \"HINT\": \"Add a single contact or import existing contact data from a CSV file\"\n },\n \"CUSTOM_COLUMNS\": {\n \"FULL_NAME\": \"Name\",\n \"PRIMARY_COMPANY_NAME\": \"Primary company name\"\n },\n \"ACTIONS\": {\n \"EDIT\": {\n \"TITLE\": \"Edit contact\"\n },\n \"DELETE\": {\n \"ACTION\": \"Delete contact\",\n \"TITLE\": \"Delete contact?\",\n \"CONFIRMATION_MESSAGE\": \"This cannot be undone.\",\n \"CONFIRM\": \"Delete\",\n \"CANCEL\": \"Cancel\",\n \"SUCCESS\": \"Deleted contact\",\n \"ERROR\": \"Error deleting contact\"\n },\n \"DELETE_SELECTED\": {\n \"ACTION\": \"Delete contacts\",\n \"TITLE\": \"Delete contacts?\",\n \"CONFIRMATION_MESSAGE\": \"This cannot be undone.\",\n \"CONFIRM\": \"Delete\",\n \"CANCEL\": \"Cancel\",\n \"SUCCESS\": \"Deleted contacts\",\n \"ERROR\": \"Error deleting contacts\"\n }\n }\n },\n \"TABLE_FILTERS\": {\n \"HEADER\": \"Contacts\"\n },\n \"STANDARD_FIELD_RULES\": {\n \"UNIQUE_FIELD_VALUE\": {\n \"ENFORCED\": \"A contact with this {{label}} already exists\",\n \"WARNING\": \"One or more contacts with this {{label}} already exists\"\n }\n },\n \"SELECT_MODAL\": {\n \"ONE_SELECTED\": \"Add contact\",\n \"MORE_SELECTED\": \"Add {{totalSelected}} contacts\",\n \"NO_SELECTED\": \"Please select a contact\"\n }\n },\n \"ACTIVITY_TYPES\": {\n \"NOTE\": \"Note\",\n \"EMAIL\": \"Email\",\n \"CALL\": \"Call\",\n \"MEETING\": \"Meeting\",\n \"CAMPAIGN\": \"Campaign email\",\n \"TASK\": \"Task\",\n \"MORE\": \"More\",\n \"COMMUNICATION_SUBTYPES\": {\n \"INBOX\": \"Inbox\",\n \"SMS\": \"SMS\",\n \"LINKEDIN\": \"LinkedIn\"\n }\n },\n \"ACTIVITY_LOGGER\": {\n \"ADD\": \"Add\",\n \"LOG_ACTIVITY\": \"Log activity\",\n \"CREATE_TASK\": \"Create task\",\n \"SAVE\": \"Save\",\n \"CANCEL\": \"Cancel\",\n \"SUCCESS_MESSAGE\": \"Successfully created activity\",\n \"ERROR_MESSAGE\": \"There was a problem creating your activity. Please try again.\",\n \"EDIT_SUCCESS_MESSAGE\": \"Successfully updated activity\",\n \"EDIT_ERROR_MESSAGE\": \"There was a problem updating your activity. Please try again.\",\n \"ERROR_SET_REQUIRED_FIELDS\": \"Fill all required fields\",\n \"ERROR_REQUIRE_DESCRIPTION\": \"Description is required\",\n \"ERROR_REQUIRE_EMAIL_DIRECTION\": \"Email direction is required\",\n \"ERROR_REQUIRE_CALL_DIRECTION\": \"Call direction is required\",\n \"ERROR_REQUIRE_EMAIL_DATE\": \"Email date is required\",\n \"ERROR_REQUIRE_CALL_DATE\": \"Call date is required\",\n \"ERROR_REQUIRE_MEETING_DATE\": \"Meeting date is required\",\n \"ERROR_REQUIRE_TASK_DUE_DATE\": \"Task due date is required\",\n \"ERROR_REQUIRE_COMMUNICATION_DATE\": \"Date is required\",\n \"ERROR_REQUIRE_TASK_TYPE\": \"Task type is required\",\n \"ERROR_REQUIRE_TASK_ASSIGNEE\": \"Task assignee is required\",\n \"ERROR_REQUIRE_TASK_NAME_REQUIRED\": \"Task name is required\",\n \"ERROR_REQUIRE_COMMUNICATION_OUTCOME\": \"Outcome is required\",\n \"NOTE_PLACEHOLDER\": \"Share an update...\",\n \"ASSOCIATIONS\": \"Associations\",\n \"ADD_COMPANY_ASSOCIATION\": \"Associate company...\",\n \"ADD_CONTACT_ASSOCIATION\": \"Associate contact...\",\n \"ADD_TEAM_MEMBER_ASSOCIATION\": \"Add team members...\",\n \"ADD_OPPORTUNITY_ASSOCIATION\": \"Associate opportunity...\",\n \"ADD_TAGS\": \"Add tags...\",\n \"TAGS\": \"Tags\",\n \"LOGGED_EMAIL\": {\n \"DATE_PLACEHOLDER\": \"Email date\",\n \"DESCRIPTION_PLACEHOLDER\": \"Describe the email...\",\n \"DIRECTION_PLACEHOLDER\": \"Email direction\"\n },\n \"LOGGED_CALL\": {\n \"DATE_PLACEHOLDER\": \"Call date\",\n \"NOTE_PLACEHOLDER\": \"Describe the call...\",\n \"DIRECTION_PLACEHOLDER\": \"Call direction\",\n \"OUTCOME_PLACEHOLDER\": \"Call outcome\",\n \"STATUS_PLACEHOLDER\": \"Call status\"\n },\n \"LOGGED_MEETING\": {\n \"DATE_PLACEHOLDER\": \"Meeting date\",\n \"NOTE_PLACEHOLDER\": \"Describe the meeting...\",\n \"DURATION_PLACEHOLDER\": \"Meeting duration\",\n \"OUTCOME_PLACEHOLDER\": \"Meeting outcome\",\n \"STATUS_PLACEHOLDER\": \"Meeting status\"\n },\n \"LOGGED_TASK\": {\n \"TITLE_PLACEHOLDER\": \"Add a task\",\n \"INSTRUCTIONS_PLACEHOLDER\": \"Add task instructions\",\n \"PRIORITY_PLACEHOLDER\": \"Task priority\",\n \"TYPE_PLACEHOLDER\": \"Task type\",\n \"DUE_DATE_PLACEHOLDER\": \"Task due date\",\n \"OWNER_PLACEHOLDER\": \"Task assignee\",\n \"CREATE\": {\n \"SUCCESS\": \"Successfully created task\",\n \"ERROR\": \"There was a problem creating your task. Please try again.\"\n },\n \"EDIT\": {\n \"SUCCESS\": \"Successfully updated task\",\n \"ERROR\": \"There was a problem updating your task. Please try again.\"\n }\n },\n \"LOGGED_COMMUNICATION\": {\n \"DIRECTION_PLACEHOLDER\": \"Outcome\",\n \"DESCRIPTION_PLACEHOLDER\": \"Share an update..\",\n \"DATE_PLACEHOLDER\": \"Date\"\n },\n \"LOGGED_FOLLOW_UP_TASK\": {\n \"CREATE\": \"Create follow-up task\",\n \"TITLE\": \"Follow-up task\",\n \"FOLLOW_UP_WITH\": \"Follow up with\"\n },\n \"ACTIVITY_TYPE_SELECTOR_ARIA_LABEL\": \"Activity type selector\"\n },\n \"ACTIVITY\": {\n \"TITLE\": \"Activity\",\n \"MENU\": {\n \"EDIT\": \"Edit activity\"\n },\n \"AUDIO_PLAYBACK_ERROR\": \"Audio playback is not supported\",\n \"DIRECTION\": \"Direction\",\n \"OUTCOME\": \"Outcome\",\n \"STATUS\": \"Status\",\n \"DATE\": \"Date\",\n \"DURATION\": \"Duration\",\n \"DUE\": \"Due\",\n \"OVERDUE\": \"Overdue\",\n \"OUTBOUND\": \"Outbound\",\n \"INBOUND\": \"Inbound\",\n \"FORWARDED\": \"Forwarded\",\n \"OUTCOME_OPTIONS\": {\n \"BUSINESS_REVIEW\": \"Business review\",\n \"DEMO_SCHEDULED\": \"Demo scheduled\",\n \"DEMO_COMPLETED\": \"Demo completed\",\n \"DISCOVERY\": \"Discovery\",\n \"INTERESTED\": \"Interested\",\n \"NO_INTEREST\": \"No interest\",\n \"PRESENTATION\": \"Presentation\",\n \"QUALITY_CONNECT\": \"Quality connect\",\n \"RESCHEDULING\": \"Rescheduling\",\n \"REFERRED_TO_ANOTHER_CONTACT\": \"Referred to another contact\",\n \"TIMELINE_6_12_MONTHS\": \"Timeline 6-12 months\"\n },\n \"LOGGED_EMAIL\": {\n \"DIRECTION\": \"Email direction\"\n },\n \"LOGGED_CALL\": {\n \"DIRECTION\": \"Call direction\",\n \"STATUS\": \"Call status\",\n \"OUTCOME\": \"Call outcome\"\n },\n \"EMAIL_TITLE\": {\n \"OUTBOUND\": \"sent from\",\n \"INBOUND\": \"sent to\",\n \"FORWARDED\": \"forwarded to\"\n },\n \"TASK\": {\n \"DUE_DATE\": \"Due date\",\n \"ASSIGNED_TO\": \"Assigned to\",\n \"TYPE\": \"Type\",\n \"PRIORITY\": \"Priority\",\n \"LOW\": \"Low\",\n \"MEDIUM\": \"Medium\",\n \"HIGH\": \"High\",\n \"TO_DO\": \"To-do\",\n \"EMAIL\": \"Email\",\n \"CALL\": \"Call\",\n \"MESSAGE\": \"Message\",\n \"CONNECTION\": \"Connection\",\n \"LINKEDIN\": \"LinkedIn\"\n },\n \"MEETING\": {\n \"SCHEDULED\": \"Scheduled\",\n \"RESCHEDULED\": \"Rescheduled\",\n \"COMPLETED\": \"Completed\",\n \"CANCELLED\": \"Cancelled\",\n \"NO_SHOW\": \"No show\",\n \"5_MIN\": \"5 minutes\",\n \"15_MIN\": \"15 minutes\",\n \"30_MIN\": \"30 minutes\",\n \"1_HOUR\": \"1 hour\",\n \"1_HOUR_30_MIN\": \"1 hour 30 minutes\",\n \"2_HOURS_OR_MORE\": \"2 hours or more\"\n },\n \"CALL\": {\n \"CONNECTED\": \"Connected\",\n \"BUSY\": \"Busy\",\n \"REJECTED\": \"Rejected\",\n \"LEFT_VOICEMAIL\": \"Left voicemail\",\n \"NO_ANSWER\": \"No answer\",\n \"NOT_IN_SERVICE\": \"Not in service\",\n \"WRONG_NUMBER\": \"Wrong number\"\n },\n \"COMMUNICATION\": {\n \"TYPE\": \"Type\",\n \"CONVERSATION_CREATED\": \"Conversation created via\"\n },\n \"UNKNOWN_TITLE\": \"An activity occurred\",\n \"ASSOCIATION\": \"association\",\n \"ASSOCIATIONS\": \"associations\",\n \"POPOVER\": {\n \"CONTACTS\": \"Contacts\",\n \"COMPANIES\": \"Companies\",\n \"OPPORTUNITIES\": \"Opportunities\",\n \"TEAM_MEMBERS\": \"Team members\"\n }\n },\n \"COMPANY\": {\n \"TITLE\": \"Companies\",\n \"ADD_OBJECT_BUTTON\": \"Create company\",\n \"PROSPECT_OBJECT_BUTTON\": \"Find nearby businesses\",\n \"VIEW_OBJECT\": \"View company\",\n \"DEFAULT_NAME\": \"this company\",\n \"CREATE_PAGE\": {\n \"TITLE\": \"Create company\",\n \"SAVE\": {\n \"SUCCESS\": \"Company creation was successful\"\n }\n },\n \"EDIT_PAGE\": {\n \"TITLE\": \"Edit company\",\n \"SAVE\": {\n \"SUCCESS\": \"Company was updated successfully\"\n }\n },\n \"RECORD_CHANGE_ACTIVITY\": {\n \"CREATED\": \"Company created\",\n \"CREATED_VIA\": \"Company created via\",\n \"IMPORTANT_FIELD_UPDATED\": \"{{updatedField}} updated by\",\n \"IMPORTANT_FIELD_UPDATED_SALESPERSON\": \"Assigned to\",\n \"IMPORTANT_FIELD_UPDATED_SALESPERSON_NOT_ASSIGNED\": \"Unassigned\",\n \"IMPORTANT_FIELD_UPDATED_SALESPERSON_UNKNOWN\": \"deleted salesperson\"\n },\n \"OPPORTUNITY_CHANGE_ACTIVITY\": {\n \"OPPORTUNITY_UPDATED_BY\": \"Opportunity updated by\",\n \"OPPORTUNITY_UPDATED\": \"Opportunity updated\",\n \"STATUS_CHANGE_MESSAGE\": \"Open →\",\n \"REASON_MESSAGE\": \"Reason:\",\n \"NOTES_MESSAGE\": \"Notes:\"\n },\n \"PROFILE_PAGE\": {\n \"TITLE\": \"Company profile\",\n \"EDIT\": \"Edit company\",\n \"ACTIVITIES_TIMELINE_TAB\": \"Activity\",\n \"ABOUT_TAB\": \"About\",\n \"ASSOCIATIONS_TAB\": \"Associations\",\n \"PREVIOUS_PAGE_TITLE\": \"Companies\"\n },\n \"LIST_OBJECTS_PAGE\": {\n \"BACK_TO_ACCOUNTS\": \"Back to Manage Accounts\"\n },\n \"LIST_OBJECTS_TABLE\": {\n \"EMPTY_TABLE\": {\n \"IMAGE_ALT\": \"Graphic showing a company to be filled in\",\n \"HEADER\": \"Create your first company\",\n \"HINT\": \"Add a single company or import existing company data from a CSV file\"\n },\n \"ACTIONS\": {\n \"EDIT\": {\n \"TITLE\": \"Edit company\"\n },\n \"DELETE\": {\n \"ACTION\": \"Delete company\",\n \"TITLE\": \"Delete company?\",\n \"CONFIRMATION_MESSAGE\": \"This cannot be undone.\",\n \"CONFIRM\": \"Delete\",\n \"CANCEL\": \"Cancel\",\n \"SUCCESS\": \"Deleted company\",\n \"ERROR\": \"Error deleting company\"\n },\n \"DELETE_SELECTED\": {\n \"ACTION\": \"Delete companies\",\n \"TITLE\": \"Delete companies?\",\n \"CONFIRMATION_MESSAGE\": \"This cannot be undone.\",\n \"CONFIRM\": \"Delete\",\n \"CANCEL\": \"Cancel\",\n \"SUCCESS\": \"Deleted companies\",\n \"ERROR\": \"Error deleting companies\"\n },\n \"OPEN_BUSINESS_APP\": \"Open in\"\n },\n \"PROFILE_PAGE\": {\n \"EDIT\": \"Edit company\"\n }\n },\n \"TABLE_FILTERS\": {\n \"HEADER\": \"Companies\"\n },\n \"SELECT_MODAL\": {\n \"ONE_SELECTED\": \"Add company\",\n \"MORE_SELECTED\": \"Add {{totalSelected}} companies\",\n \"NO_SELECTED\": \"Please select a company\"\n }\n },\n \"TASK\": {\n \"TITLE\": \"Tasks\",\n \"ADD_OBJECT_BUTTON\": \"Create task\",\n \"VIEW_OBJECT\": \"View task\",\n \"RECORD_CHANGE_ACTIVITY\": {\n \"CREATED\": \"Task created\",\n \"CREATED_VIA\": \"Task created via\"\n },\n \"SELECT_MODAL\": {\n \"ONE_SELECTED\": \"Add task\",\n \"MORE_SELECTED\": \"Add {{totalSelected}} tasks\",\n \"NO_SELECTED\": \"Please select a task\"\n },\n \"CREATE_PAGE\": {\n \"TITLE\": \"Create task\",\n \"SAVE\": {\n \"SUCCESS\": \"Task creation was successful\",\n \"ERROR\": \"Something went wrong\"\n },\n \"LOAD\": {\n \"ERROR\": \"Something went wrong\"\n }\n },\n \"EDIT_PAGE\": {\n \"TITLE\": \"Edit task\",\n \"SAVE\": {\n \"SUCCESS\": \"Task was updated successfully\"\n }\n },\n \"LIST_OBJECTS_TABLE\": {\n \"EMPTY_TABLE\": {\n \"IMAGE_ALT\": \"Graphic showing a task to be filled in\",\n \"HEADER\": \"Create your first task\",\n \"HINT\": \"Track, manage and complete your daily tasks\"\n },\n \"ACTIONS\": {\n \"EDIT\": {\n \"TITLE\": \"Edit task\"\n },\n \"DELETE\": {\n \"ACTION\": \"Delete task\",\n \"TITLE\": \"Delete task?\",\n \"CONFIRMATION_MESSAGE\": \"This cannot be undone.\",\n \"CONFIRM\": \"Delete\",\n \"CANCEL\": \"Cancel\",\n \"SUCCESS\": \"Deleted task\",\n \"ERROR\": \"Error deleting task\"\n },\n \"DELETE_SELECTED\": {\n \"ACTION\": \"Delete tasks\",\n \"TITLE\": \"Delete tasks?\",\n \"CONFIRMATION_MESSAGE\": \"This cannot be undone.\",\n \"CONFIRM\": \"Delete\",\n \"CANCEL\": \"Cancel\",\n \"SUCCESS\": \"Deleted tasks\",\n \"ERROR\": \"Error deleting tasks\"\n },\n \"CREATE\": {\n \"TITLE\": \"Create task\"\n },\n \"TASK_QUEUE\": {\n \"START\": \"Start {{count}} tasks\",\n \"NO_TASKS_SELECTED\": \"No tasks selected to start working on\",\n \"ASSOCIATIONS_CHIP\": \"{{count}} associations\"\n }\n },\n \"CUSTOM_COLUMNS\": {\n \"ASSIGNED_TO\": \"Assigned to\",\n \"DAYS_OVERDUE\": \"Overdue {{ amount }} days\",\n \"HOURS_OVERDUE\": \"Overdue {{ amount }} hours\"\n }\n },\n \"TABLE_FILTERS\": {\n \"HEADER\": \"Tasks\"\n },\n \"STATUS_UPDATE\": {\n \"SUCCESS\": \"Task status updated\",\n \"ERROR\": \"Task status update failed\"\n }\n },\n \"LIST_OBJECTS_TABLE\": {\n \"CUSTOM_COLUMNS\": {\n \"FULL_ADDRESS\": \"Address\"\n },\n \"ACTIONS\": {\n \"DELETE\": {\n \"MODAL_TITLE\": \"Delete {{name}}?\"\n }\n },\n \"ACTIONS_COLUMN\": {\n \"TITLE\": \"Actions\"\n },\n \"CREATED_COLUMN\": {\n \"TITLE\": \"Created\"\n },\n \"DATE_DEFAULT\": {\n \"INVALID\": \"Exact date\",\n \"TODAY\": \"Today\",\n \"YESTERDAY\": \"Yesterday\",\n \"TOMORROW\": \"Tomorrow\",\n \"THIS_WEEK\": \"This week\",\n \"LAST_WEEK\": \"Last week\",\n \"NEXT_WEEK\": \"Next week\",\n \"THIS_MONTH\": \"This month\",\n \"LAST_MONTH\": \"Last month\",\n \"NEXT_MONTH\": \"Next month\",\n \"THIS_QUARTER\": \"This quarter\",\n \"LAST_QUARTER\": \"Last quarter\",\n \"NEXT_QUARTER\": \"Next quarter\",\n \"THIS_YEAR\": \"This year\",\n \"LAST_YEAR\": \"Last year\",\n \"NEXT_YEAR\": \"Next year\"\n },\n \"EXTERNAL_ID_COLUMN\": {\n \"TITLE\": \"External ID\"\n },\n \"ID_COLUMN\": {\n \"TITLE\": \"ID\"\n },\n \"UPDATED_COLUMN\": {\n \"TITLE\": \"Updated\"\n },\n \"STANDARD_FIELD_RULES\": {\n \"UNIQUE_FIELD_VALUE\": {\n \"ENFORCED\": \"A company with this {{label}} already exists\",\n \"WARNING\": \"One or more companies with this {{label}} already exists\"\n }\n }\n },\n \"CRM_FORM_SERVICE\": {\n \"RESOURCE_NOT_FOUND_ERROR\": \"Resource not found\"\n },\n \"STANDARD_FIELD_GROUPS\": {\n \"CONTACT\": {\n \"BASIC_INFORMATION\": \"Basic information\",\n \"BASIC_GROUP2_INFORMATION\": \"Primary location\",\n \"BASIC_GROUP3_INFORMATION\": \"About contact\"\n },\n \"COMPANY\": {\n \"BASIC_INFORMATION\": \"Basic information\",\n \"ADDITIONAL_INFORMATION\": \"Additional information\"\n },\n \"CUSTOM_FIELDS\": \"Custom fields\"\n },\n \"STANDARD_FIELD_RULES\": {\n \"CONTACT\": {\n \"FIRST_OR_LAST_NAME_OR_PHONE_OR_EMAIL_REQUIRED\": \"One of first name, last name, phone or email is required\"\n },\n \"COMPANY\": {\n \"COMPANY_NAME_REQUIRED\": \"Company name is required\"\n }\n },\n \"PAGE_NOT_FOUND\": {\n \"HEADER\": \"404 Not Found\",\n \"HINT\": \"The page or information requested could not be found.\"\n },\n \"BULK_IMPORT\": {\n \"UPLOAD_CSV_STEP\": {\n \"TITLE\": \"Upload CSV\",\n \"INSTRUCTIONS\": \"Upload an existing CSV of customer data.\",\n \"REQUIREMENTS\": \"A name, phone number OR email must be included for each customer.\",\n \"MAXIMUM_FILE_SIZE\": \"Maximum File Size: 5MB\",\n \"REQUIRED\": \"This field is required\",\n \"SUCCESSFUL_UPLOAD\": \"Successfully uploaded {{filename}}\"\n },\n \"MAP_FIELDS_STEP\": {\n \"TITLE\": \"Map fields\",\n \"INSTRUCTIONS\": \"Confirm that the columns in your file map to the correct fields. A name, phone number OR email must be selected.\",\n \"COLUMNS\": \"Columns\",\n \"FIRST_ROW\": \"First row\",\n \"MAP_TO\": \"Map to\",\n \"ARIA_LABEL\": \"Map to fields\",\n \"OTHER_FIELDS\": \"Other fields\",\n \"DO_NOT_IMPORT\": \"Do not import\",\n \"REQUIRED\": \"Mapping a name, phone number OR email is required to proceed\",\n \"UNABLE_TO_MAP_FIELD\": \"{{fieldName}} is already mapped to {{header}}\"\n },\n \"REVIEW_IMPORT_STEP\": {\n \"TITLE\": \"Review import\",\n \"INSTRUCTIONS\": \"Importing this will take several minutes depending on the number of customers you are creating.\",\n \"ESTIMATED_TOTAL\": \"an estimated total of \",\n \"ADDING_CUSTOMERS_FROM_FILENAME\": \"Adding {{estimatedText}}{{rows}} customers from {{csvFilename}}.\",\n \"UPDATE_DUPLICATES\": \"Update existing contacts\",\n \"UPDATE_DUPLICATES_INSTRUCTIONS\": \"If contacts with existing emails are detected, update them with any new information found in this file.\",\n \"UPDATE_DUPLICATES_TOOLTIP\": \"If this is not selected, existing contacts will be skipped. This will detect duplicates based on the ID field, external ID field, and fields marked unique like email.\"\n },\n \"IMPORT_SUCCESS\": \"Started import for {{filename}}\",\n \"IMPORT_ERROR\": \"Uh-oh. Looks like something went wrong on our end. Please try again.\"\n },\n \"TABLE_FILTERS\": {\n \"ADD_FILTER\": \"Add filter\",\n \"CLEAR_FILTERS\": \"Clear all\",\n \"FIND_FILTER\": \"Find filter\",\n \"INVALID_FILTER_TYPE\": \"Filter type is invalid\",\n \"INCOMPLETE_FILTER\": \"Filter is incomplete. Complete the filter before applying it.\",\n \"SELECT_OPERATOR_PLACEHOLDER\": \"Select operator...\",\n \"SELECT_EXPRESSION_PLACEHOLDER\": \"Select...\",\n \"SELECT_START_PLACEHOLDER\": \"Start date\",\n \"SELECT_END_PLACEHOLDER\": \"End date\",\n \"OPERATOR\": {\n \"INVALID\": \"invalid\",\n \"IS_EMPTY\": \"✕ is empty\",\n \"IS_NOT_EMPTY\": \"✓ is not empty\",\n \"IS\": \"= is\",\n \"IS_NOT\": \"≠ is not\",\n \"IS_ANY\": \"∋ is any of\",\n \"IS_NOT_ANY\": \"∌ is not any of\",\n \"IS_ALL\": \"= is all of\",\n \"IS_NOT_ALL\": \"≠ is not all of\",\n \"CONTAINS\": \"∋ contains\",\n \"DOES_NOT_CONTAIN\": \"∌ does not contain\",\n \"IS_EQUAL_TO\": \"= is equal to\",\n \"IS_NOT_EQUAL_TO\": \"≠ is not equal to\",\n \"IS_GREATER_THAN\": \"> is greater than\",\n \"IS_GREATER_THAN_OR_EQUAL_TO\": \"≥ is greater than or equal to\",\n \"IS_LESS_THAN\": \"< is less than\",\n \"IS_LESS_THAN_OR_EQUAL_TO\": \"≤ is less than or equal to\",\n \"IS_BEFORE\": \"< is before\",\n \"IS_BEFORE_OR_ON\": \"≤ is before or on\",\n \"IS_AFTER\": \"> is after\",\n \"IS_AFTER_OR_ON\": \"≥ is after or on\",\n \"IS_BETWEEN\": \"= is between\",\n \"IS_NOT_BETWEEN\": \"≠ is not between\"\n },\n \"SYMBOL\": {\n \"INVALID\": \"is INVALID\",\n \"IS_EMPTY\": \"✕\",\n \"IS_NOT_EMPTY\": \"✓\",\n \"IS\": \"=\",\n \"IS_NOT\": \"≠\",\n \"IS_ANY\": \"∋\",\n \"IS_NOT_ANY\": \"∌\",\n \"IS_ALL\": \"=\",\n \"IS_NOT_ALL\": \"≠\",\n \"CONTAINS\": \"∋\",\n \"DOES_NOT_CONTAIN\": \"∌\",\n \"IS_EQUAL_TO\": \"=\",\n \"IS_NOT_EQUAL_TO\": \"≠\",\n \"IS_GREATER_THAN\": \">\",\n \"IS_GREATER_THAN_OR_EQUAL_TO\": \"≥\",\n \"IS_LESS_THAN\": \"<\",\n \"IS_LESS_THAN_OR_EQUAL_TO\": \"≤\",\n \"IS_BEFORE\": \"<\",\n \"IS_BEFORE_OR_ON\": \"≤\",\n \"IS_AFTER\": \">\",\n \"IS_AFTER_OR_ON\": \"≥\",\n \"IS_BETWEEN\": \"=\",\n \"IS_NOT_BETWEEN\": \"≠\"\n }\n },\n \"MODEL_DRIVEN_FORM\": {\n \"LOADING_STATUS_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\": \"Maximum {{characters}} characters\",\n \"TAG_LIMIT_ERROR\": \"Only {{maximumTags}} tags are allowed\",\n \"INVALID_DROPDOWN_ERROR\": \"Select a valid option\",\n \"SUBMITTED_PRISTINE\": \"You have not made any changes.\",\n \"SUBMITTED_WITH_ERROR\": \"Failed to create object. Please ensure that fields are filled out correctly.\",\n \"INVALID_EMAIL_ERROR\": \"Email entered is invalid\",\n \"ADD_TAG_PROMPT\": \"Add a tag...\",\n \"ADD_STRINGLIST_ITEM_PROMPT\": \"Add an item...\",\n \"PHONE\": {\n \"INVALID_PHONE_ERROR\": \"Phone number entered is invalid\",\n \"COUNTRY_LABEL\": \"Area code\",\n \"EXTENSION_LABEL\": \"Extension\",\n \"SEARCH_COUNTRY_LABEL\": \"Search\",\n \"SEARCH_COUNTRY_NO_RESULTS\": \"No results found\"\n },\n \"BOOLEAN\": {\n \"TRUE\": \"Yes\",\n \"FALSE\": \"No\"\n },\n \"ADD_FIELD_VALUE\": \"Add {{fieldName}}...\",\n \"EDIT_FIELD\": \"Edit field\"\n },\n \"COLLAPSIBLE_SECTION\": {\n \"VIEW_MORE\": \"View more\",\n \"VIEW_LESS\": \"View less\"\n },\n \"PERMISSION\": {\n \"TITLE\": \"Permission required\",\n \"DESCRIPTION\": \"You don't have the necessary permissions to view this page.
Request access from your administrator.\",\n \"PREV_PAGE\": \"Back to previous page\",\n \"HOME_PAGE\": \"Go to home page\",\n \"IMAGE_ALT\": \"Graphic showing denied access due to permissions\"\n },\n \"CAMPAIGNS\": {\n \"TITLE\": \"Campaigns\",\n \"NO_CAMPAIGNS\": \"No email campaigns have been started for this account\",\n \"CONTACTS\": {\n \"MODAL\": {\n \"SELECT_ALL_SUCCESS\": \"{{ totalObjects }} contacts added to campaign: {{ campaignTitle }}\",\n \"ID\": \"ID\",\n \"NAME\": \"Name\",\n \"EMAIL\": \"Email\",\n \"NO_CAMPAIGNS\": \"No campaigns found\",\n \"PUBLISH\": \"Publish now\",\n \"BACK\": \"Back\",\n \"START_CAMPAIGN\": \"Start campaign\",\n \"CANCEL\": \"Cancel\",\n \"RECIPIENT_COUNT\": \"Estimated recipients: {{recipientCount}}\",\n \"UPDATED\": \"Last updated: \",\n \"SELECT_CAMPAIGN\": \"Add {{recipientCount}} recipients to campaign\",\n \"MISSING_EMAIL_ADDRESS\": \"{{contactCount}} missing email addresses — \",\n \"MISSING_EMAIL\": \"contacts without email addresses will not receive campaign emails.\",\n \"SEARCH_PLACEHOLDER\": \"Search active campaigns\",\n \"RECIPIENTS_TOOLTIP\": \"The recipient count is an estimate, as it doesn't account for contacts who have unsubscribed, are already on the campaign, or have invalid or missing email addresses.\",\n \"ERRORS\": {\n \"GENERIC_ERROR\": \"There was a problem starting the campaign. Please try again.\",\n \"FAILED_ADDRESS_ERROR\": \"'Failed to add the following addresses: '\",\n \"NO_CAMPAIGN_SELECTED\": \"Please select a campaign\"\n },\n \"SUCCESS\": \"recipients added to campaign: \"\n }\n }\n },\n \"VIEWS\": {\n \"ACTIONS\": {\n \"CREATE_VIEW\": \"Create view\"\n },\n \"DELETE_CONFIRMATION\": {\n \"TITLE\": \"Delete view?\",\n \"MESSAGE\": \"{{ viewName }} will be deleted.\"\n },\n \"EMPTY\": \"Add filters to create a view\",\n \"ERRORS\": {\n \"VIEW_NAME_REQUIRED\": \"View name is required\",\n \"EQUAL_TO_PRESET_NAME\": \"View name cannot be an existing name\",\n \"VIEW_NAME_TOO_LONG\": \"View name cannot be longer than 36 characters\",\n \"NO_FILTERS\": \"Add filters before creating a view\"\n },\n \"VIEW_NAME\": \"View name\",\n \"VIEWS\": \"Views\",\n \"PRESET_FILTERS\": {\n \"ALL\": \"All\",\n \"NOTES\": \"Notes\",\n \"TASKS\": \"Tasks\",\n \"EMAILS\": \"Emails\",\n \"CALLS\": \"Calls\",\n \"MEETINGS\": \"Meetings\",\n \"COMMUNICATIONS\": \"Communications\"\n }\n },\n \"LIFECYCLE_STAGE\": {\n \"VISITOR\": \"Visitor\",\n \"LEAD\": \"Lead\",\n \"MARKETING_QUALIFIED_LEAD\": \"Marketing qualified lead\",\n \"SALES_ACCEPTED_LEAD\": \"Sales accepted lead\",\n \"SALES_QUALIFIED_LEAD\": \"Sales qualified lead\",\n \"PROSPECT\": \"Prospect\",\n \"CUSTOMER\": \"Customer\",\n \"FORMER_CUSTOMER\": \"Former customer\"\n },\n \"TASK_QUEUE\": {\n \"ACTIONS\": {\n \"SKIP\": \"Skip\",\n \"MARK_AS_COMPLETE\": \"Mark as complete\",\n \"UNDO\": \"Undo\",\n \"NEXT\": \"Next\",\n \"BACK_TO_TASKS\": \"Back to tasks\",\n \"RESCHEDULE\": \"Reschedule\"\n },\n \"STATUS\": {\n \"COMPLETED\": \"Completed\",\n \"RESCHEDULED\": \"Rescheduled\"\n },\n \"TASKS\": \"Tasks\",\n \"RESCHEDULE_TASK\": \"Reschedule task\",\n \"ERRORS\": {\n \"MARK_AS_COMPLETE\": \"There was a problem marking the task as completey. Please try again.\",\n \"RESCHEDULE\": \"There was a problem rescheduling the task. Please try again.\",\n \"UNDO\": \"There was a problem updating the task. Please try again.\",\n \"INVALID_DUE_DATE\": \"Invalid due date\"\n },\n \"SUCCESS_MESSAGES\": {\n \"RESCHEDULE\": \"Task rescheduled\"\n }\n },\n \"COMMON\": {\n \"SNACKBAR_MESSAGE\": {\n \"COPY_SUCCESS\": \"Successfully copied to clipboard\"\n }\n }\n}\n","import { NgModule } from '@angular/core';\nimport { LexiconModule } from '@galaxy/lexicon';\nimport { TranslateModule } from '@ngx-translate/core';\nimport En from '../../assets/i18n/en_devel.json';\n\n@NgModule({\n imports: [\n TranslateModule,\n LexiconModule.forChild({\n componentName: 'common/crm',\n baseTranslation: En,\n }),\n ],\n exports: [TranslateModule],\n})\nexport class TranslationModule {}\n","import { Pipe, PipeTransform } from '@angular/core';\nimport { TranslateByObjectTypeService } from './translate-by-object-type.service';\nimport { ActivityType, ObjectType } from '../../tokens-and-interfaces';\n\n@Pipe({\n name: 'translateByObjectType',\n standalone: true,\n})\nexport class TranslateByObjectTypePipe implements PipeTransform {\n constructor(private readonly translateByObjectType: TranslateByObjectTypeService) {}\n\n // eslint-disable-next-line @typescript-eslint/ban-types\n transform(value: string, objectType: ObjectType | ActivityType, interpolationParams?: Object): string {\n return this.translateByObjectType.getTranslationByObjectType(objectType, value, interpolationParams);\n }\n}\n","export { TranslationModule } from './translation-module';\nexport { TranslateByObjectTypePipe } from './translate-by-object-type/translate-by-object-type.pipe';\nexport { TranslateByObjectTypeService } from './translate-by-object-type/translate-by-object-type.service';\n","import { Component, Inject } from '@angular/core';\nimport { MAT_DIALOG_DATA, MatDialogModule, MatDialogRef } from '@angular/material/dialog';\nimport { Observable } from 'rxjs';\nimport { AsyncPipe, CommonModule } from '@angular/common';\nimport { MatButtonModule } from '@angular/material/button';\nimport { ActivityType, ObjectType } from '../../../tokens-and-interfaces';\nimport { TranslationModule } from '../../../i18n/translation-module';\nimport { TranslateByObjectTypePipe } from '../../../i18n/translate-by-object-type/translate-by-object-type.pipe';\n\nexport interface DialogData {\n objectType: ObjectType;\n name$: Observable;\n}\n\n@Component({\n selector: 'crm-delete-modal',\n templateUrl: './delete-modal.component.html',\n styleUrls: ['./delete-modal.component.scss'],\n imports: [CommonModule, MatButtonModule, TranslationModule, MatDialogModule, AsyncPipe, TranslateByObjectTypePipe],\n standalone: true,\n})\nexport class DeleteModalComponent {\n objectType: ObjectType | ActivityType;\n\n name$: Observable;\n\n constructor(@Inject(MAT_DIALOG_DATA) public data: DialogData, private dialogRef: MatDialogRef) {\n this.objectType = data.objectType;\n this.name$ = data.name$;\n }\n\n onConfirmClick() {\n this.dialogRef.close(true);\n }\n}\n","

\n {{ 'LIST_OBJECTS_TABLE.ACTIONS.DELETE.MODAL_TITLE' | translate : { name: objectType.toLowerCase() } }}\n

\n\n

{{ 'LIST_OBJECTS_TABLE.ACTIONS.DELETE.CONFIRMATION_MESSAGE' | translateByObjectType : objectType }}

\n
\n\n \n \n {{ 'LIST_OBJECTS_TABLE.ACTIONS.DELETE.CONFIRM' | translateByObjectType : objectType }}\n \n\n","import { Inject, Injectable, OnDestroy } from '@angular/core';\nimport { MatSort } from '@angular/material/sort';\nimport { TranslateService } from '@ngx-translate/core';\nimport { RxState } from '@rx-angular/state';\nimport {\n CrmObjectInterface,\n FieldSchemaInterface,\n FieldType,\n FieldValueInterface,\n FilterOperator,\n ListCrmObjectsResponseInterface,\n} from '@vendasta/crm';\nimport { GalaxyFilterInterface } from '@vendasta/galaxy/filter/chips';\nimport { SnackbarService } from '@vendasta/galaxy/snackbar-service';\nimport {\n CellData,\n DateData,\n GalaxyDataSource,\n PagedListRequestInterface,\n PagedResponseInterface,\n PhoneData,\n Row,\n TextData,\n} from '@vendasta/galaxy/table';\nimport { GalaxyColumnDef } from '@vendasta/galaxy/table/src/table.interface';\nimport { BehaviorSubject, Observable, asyncScheduler, combineLatest, of } from 'rxjs';\nimport { catchError, distinctUntilChanged, map, observeOn, switchMap, take, tap, withLatestFrom } from 'rxjs/operators';\nimport { TaskTableCustomizationService } from '../../shared-services/table-customization/task-table-customization.service';\nimport { CrmFormService } from '../../shared-services/crm-services/crm-form.service';\nimport { CrmObjectService } from '../../shared-services/crm-services/crm-object-service/crm-object.service';\nimport { CrmTableStateService } from '../../shared-services/crm-services/crm-object-service/crm-table-state.service';\nimport { ActivityType, ObjectType } from '../../tokens-and-interfaces';\nimport { LIST_OBJECTS_DEFAULT_PAGE_SIZE } from '../../constants';\nimport { CRMTrackingService } from '../../shared-services/page-analytics.service';\nimport { PreviewObjectService } from '../../shared-services/preview-object.service';\nimport { CrmInjectionToken, CrmDependencies } from '../../tokens-and-interfaces';\nimport {\n ColumnDataInterface,\n TableCustomizationServiceInterface,\n ContactTableCustomizationService,\n CompanyTableCustomizationService,\n SystemFieldIds,\n} from '../../shared-services';\n\nconst EMPTY_PAGE = {\n pagingOptions: {\n pageSize: LIST_OBJECTS_DEFAULT_PAGE_SIZE,\n cursor: '',\n },\n searchOptions: {\n text: '',\n fields: [],\n },\n};\n\ninterface ColumnDef extends GalaxyColumnDef {\n external_id?: string;\n}\n\n@Injectable()\nexport class ListObjectsTableService implements OnDestroy {\n dataSource: GalaxyDataSource;\n columns$: Observable = this.state.select('columns');\n groupConfigs$: Observable = this.state.select('groupConfigs');\n initialLoading$: Observable = this.state.select('initialLoading');\n deletedObjectIds$: Observable = this.state.select('deletedObjectIds');\n showEmptyState$: Observable = combineLatest([\n this.initialLoading$,\n this.state.select('receivedObject'),\n ]).pipe(map(([loading, hasObjects]) => !loading && !hasObjects));\n showObjects$: Observable = combineLatest([this.initialLoading$, this.showEmptyState$]).pipe(\n map(([loading, showEmptyState]) => !loading && !showEmptyState),\n );\n private data$$ = new BehaviorSubject([]);\n readonly data$ = combineLatest([this.data$$, this.deletedObjectIds$]).pipe(\n map(([rows, deleted]) => rows.filter((r) => !deleted.includes(r.crmObjectId || ''))),\n );\n filters: GalaxyFilterInterface[] = [];\n sorting: MatSort[] = [];\n private baseColumnIds: string[] = [];\n private showActions = true;\n\n constructor(\n @Inject(CrmInjectionToken) private readonly config: CrmDependencies,\n private readonly objectsService: CrmObjectService,\n private readonly fieldsService: CrmFormService,\n private readonly state: RxState,\n private readonly translate: TranslateService,\n private readonly previewObjectService: PreviewObjectService,\n private readonly trackingService: CRMTrackingService,\n private readonly contactCustomization: ContactTableCustomizationService,\n private readonly companyCustomization: CompanyTableCustomizationService,\n private readonly taskCustomization: TaskTableCustomizationService,\n private readonly tableStateService: CrmTableStateService,\n private readonly snackService: SnackbarService,\n private readonly crmFormService: CrmFormService,\n ) {\n const initial: ComponentState = {\n objectType: 'Contact', // this must have a default value, but the service should be initialized with setObjectType\n fieldSchemas: [],\n columns: [],\n groupConfigs: [],\n initialLoading: true,\n receivedObject: false,\n deletedObjectIds: [],\n };\n this.state.set(initial);\n\n const schemas$: Observable = combineLatest([\n this.config.namespace$,\n this.state.select('objectType'),\n ]).pipe(\n distinctUntilChanged((a, b) => JSON.stringify(a) === JSON.stringify(b)),\n switchMap(([, objectType]) => this.fieldsService.listAllObjectFields$(objectType)),\n );\n this.state.connect(\n schemas$.pipe(\n map((schemas) => {\n const newState: Partial = {\n fieldSchemas: schemas,\n };\n return newState;\n }),\n ),\n );\n\n this.state.connect(\n schemas$.pipe(\n observeOn(asyncScheduler),\n map((schemas: FieldSchemaInterface[]) => schemas.map((schema) => this.fieldSchemaToTableColumn(schema))),\n switchMap((columns: GalaxyColumnDef[]) => combineLatest([this.applyColumnLayout$(columns)])),\n map(([columns]) =>\n this.customizedColumns(this.state.get('objectType'), columns, false, this.state.get('activityType')),\n ),\n map((columns) => this.addStaticColumns(columns)),\n switchMap((columns) => {\n return this.showBaseColumns(columns);\n }),\n switchMap((columns) => {\n return this.tableStateService.initializeLocalStorageColumns(columns);\n }),\n switchMap((columns) => this.addColumnGroups(columns)),\n ),\n );\n\n this.state.connect(\n this.config.namespace$.pipe(\n distinctUntilChanged(),\n map(() => ({ initialLoading: true })),\n ),\n );\n\n this.state.connect(\n this.listObjects(EMPTY_PAGE).pipe(\n take(1),\n map((resp) => {\n let receivedObject = this.state.get('receivedObject');\n if (!receivedObject && (resp?.crmObjects || []).length > 0) {\n receivedObject = true;\n }\n return {\n latestPage: resp,\n receivedObject: receivedObject,\n };\n }),\n ),\n );\n\n const paginatedAPI = {\n get: (\n req: PagedListRequestInterface,\n ): Observable> => {\n req.filters = this.filters;\n const results = this.listObjects(req).pipe(\n catchError(() => {\n this.snackService.openErrorSnack('ERRORS.GENERIC_MESSAGE');\n return of({\n crmObjects: [],\n pagingMetadata: {\n nextCursor: '',\n hasMore: false,\n },\n }) as Observable;\n }),\n tap((resp) => {\n const receivedObject = this.state.get('receivedObject');\n if (!receivedObject && (resp?.crmObjects || []).length > 0) {\n this.state.set({ receivedObject: true });\n }\n }),\n tap(() => {\n if (req.searchOptions?.text) {\n this.trackingService.trackEvent(this.state.get('objectType'), 'searched-crm-object', {\n searchFields: req.searchOptions.fields,\n });\n }\n }),\n tap((resp) => this.data$$.next(resp.crmObjects || [])),\n withLatestFrom(this.state.select('fieldSchemas')),\n map(([objectListResp, schemas]) => {\n const rows = this.crmObjectsToTableRows(objectListResp?.crmObjects || [], schemas);\n return {\n data: rows,\n pagingMetadata: {\n nextCursor: objectListResp?.pagingMetadata?.nextCursor || '',\n hasMore: objectListResp?.pagingMetadata?.hasMore || false,\n totalResults: objectListResp?.pagingMetadata?.totalResults || Infinity,\n },\n } as PagedResponseInterface;\n }),\n );\n\n return combineLatest([results, this.state.select('deletedObjectIds')]).pipe(\n map(([rows, deleted]) => {\n rows.data = rows.data.filter((r) => !deleted.includes(r.id));\n return rows;\n }),\n );\n },\n };\n this.dataSource = new GalaxyDataSource(paginatedAPI);\n }\n\n applyColumnLayout$(columns: ColumnDef[]): Observable {\n return this.fieldsService.listAllObjectFieldGroups$(this.state.get('objectType')).pipe(\n map((fieldGroups) => {\n const fieldIds: string[] = fieldGroups.reduce(\n (r: string[], fieldGroup) => r.concat(fieldGroup.fieldIds ?? []),\n [],\n );\n\n const sortedColumns: ColumnDef[] = JSON.parse(JSON.stringify(columns));\n sortedColumns.sort((a, b) => {\n let indexA = fieldIds.indexOf(a.id);\n if (indexA === -1 && a.external_id) {\n indexA = fieldIds.indexOf(a.external_id);\n }\n let indexB = fieldIds.indexOf(b.id);\n if (indexB === -1 && b.external_id) {\n indexB = fieldIds.indexOf(b.external_id);\n }\n if (indexA === -1) {\n return 1;\n }\n if (indexB === -1) {\n return -1;\n }\n return indexA - indexB;\n });\n\n const firstFieldGroupFieldIds = fieldGroups[0]?.fieldIds ?? [];\n for (const column of sortedColumns) {\n if (firstFieldGroupFieldIds.includes(column.id)) {\n continue;\n }\n column.hidden = true;\n }\n\n return sortedColumns;\n }),\n );\n }\n\n addStaticColumns(columns: GalaxyColumnDef[]): GalaxyColumnDef[] {\n if (!this.showActions) {\n return columns;\n }\n const actionsColumn: GalaxyColumnDef = {\n id: 'actions',\n title: this.translate.instant('LIST_OBJECTS_TABLE.ACTIONS_COLUMN.TITLE'),\n pinned: true,\n stickyEnd: true,\n sortable: false,\n };\n return [...columns, actionsColumn];\n }\n\n addColumnGroups(columns: GalaxyColumnDef[]): Observable> {\n return this.crmFormService.listAllObjectFieldGroups$(this.state.get('objectType')).pipe(\n map((groups) => {\n const groupConfigs: GalaxyColumnDef[] = groups.map((group) => {\n return {\n id: this.translate.instant(group.fieldGroupId ?? 'Custom'),\n title: this.translate.instant(group.description ?? 'Custom fields'),\n columns: (group.fieldIds || []).map((fieldId) => {\n return columns.find((column) => {\n return column.id === fieldId;\n });\n }),\n };\n });\n return groupConfigs;\n }),\n map((groups) => {\n const newState: Partial = {\n columns: columns,\n groupConfigs: groups,\n };\n return newState;\n }),\n );\n }\n\n private moveItemsToBeginning(columns: GalaxyColumnDef[], identifiersToMove: string[]): GalaxyColumnDef[] {\n const movedToFront: GalaxyColumnDef[] = [];\n\n for (const id of identifiersToMove) {\n const col = columns.find((c) => c.id === id);\n if (col) {\n movedToFront.push(col);\n }\n }\n const movedToBack = columns.filter((c) => !movedToFront.find((m) => m.id === c.id));\n return [...movedToFront, ...movedToBack];\n }\n\n showBaseColumns(columns: GalaxyColumnDef[]): Observable {\n return of(false).pipe(\n map((isMobile) => {\n if (isMobile) {\n return columns;\n }\n for (const col of this.baseColumnIds) {\n const index = columns.findIndex((c) => c.id === col);\n if (index > -1) {\n columns[index].hidden = false;\n }\n }\n return this.moveItemsToBeginning(columns, this.baseColumnIds);\n }),\n );\n }\n\n deleteObject(objectId: string): Observable {\n return this.state.select('objectType').pipe(\n switchMap((objectType) => this.objectsService.deleteCrmObject(objectType, objectId)),\n withLatestFrom(this.state.select('deletedObjectIds')),\n tap(([, deleted]) => {\n this.state.set({ deletedObjectIds: [...deleted, objectId] });\n return this.state;\n }),\n take(1),\n );\n }\n\n setObjectType(objectType: ObjectType): void {\n this.state.set({ objectType: objectType });\n }\n\n setActivityType(activityType: ActivityType): void {\n this.state.set({ activityType: activityType });\n }\n\n setBaseColumns(baseColumnIds: string[]): void {\n this.baseColumnIds = baseColumnIds;\n }\n\n setShowActions(showActions: boolean): void {\n this.showActions = showActions;\n }\n\n private listObjects(\n req: PagedListRequestInterface,\n ): Observable {\n const initialFilters$: Observable = this.state.select('objectType').pipe(\n switchMap((objectType) => {\n if (objectType === 'Company') {\n return this.companyCustomization.getInitialFilters();\n } else if (objectType === 'Contact') {\n return this.contactCustomization.getInitialFilters();\n } else {\n return of([]);\n }\n }),\n );\n\n return combineLatest([this.state.select('objectType'), initialFilters$]).pipe(\n observeOn(asyncScheduler),\n tap(() =>\n this.state.set({\n deletedObjectIds: [],\n }),\n ),\n switchMap(([objectType, initialFilters]: [ObjectType, GalaxyFilterInterface[]]) => {\n const filterGroup = this.objectsService.convertFilters([...(req.filters || []), ...initialFilters]);\n if (filterGroup && objectType === 'Activity') {\n const activityType = this.state.get('activityType');\n if (activityType) {\n filterGroup.filters?.push(this.getActivityTypeFilter(activityType));\n }\n }\n\n let sortBy = this.objectsService.convertSortBy(req.sorting);\n if (!sortBy?.length) {\n const objType = this.state.get('activityType') || this.state.get('objectType');\n sortBy = this.getTableCustomizationService(objType)?.defaultSortingOptions;\n }\n\n return this.objectsService.listObjects(objectType, {\n search: {\n searchTerm: req?.searchOptions?.text || '',\n },\n filtersV2: filterGroup,\n pagingOptions: {\n cursor: req?.pagingOptions?.cursor,\n pageSize: req?.pagingOptions?.pageSize,\n },\n sortBy: sortBy ?? [],\n });\n }),\n map((resp) => {\n // clear preview on user interaction\n if (!this.listRequestIsPristine(req)) {\n this.previewObjectService.clearPreview();\n } else {\n resp.crmObjects = this.previewObjectService.withPreview(resp.crmObjects || []);\n }\n return resp;\n }),\n tap(() => {\n this.state.set({ initialLoading: false });\n }),\n );\n }\n\n private getTableCustomizationService(\n objectType: ObjectType | ActivityType,\n ): TableCustomizationServiceInterface | undefined {\n switch (objectType) {\n case 'Contact':\n return this.contactCustomization;\n case 'Company':\n return this.companyCustomization;\n case 'Task':\n return this.taskCustomization;\n }\n return undefined;\n }\n\n private getActivityTypeFilter(activityType: ActivityType) {\n return {\n fieldId: SystemFieldIds.ActivityType,\n operator: FilterOperator.FILTER_OPERATOR_IS,\n values: [\n {\n string: activityType,\n },\n ],\n };\n }\n\n private fieldSchemaToTableColumn(schema: FieldSchemaInterface): ColumnDef {\n return {\n id: schema.fieldId || '',\n external_id: schema.externalId || '',\n title: schema.fieldName,\n sortable: true,\n };\n }\n\n private crmObjectsToTableRows(objects: CrmObjectInterface[], schemas: FieldSchemaInterface[]): Row[] {\n const schemaMap: { [schemaId: string]: FieldSchemaInterface } = {};\n schemas.forEach((schema) => {\n if (!schema?.fieldId) {\n return;\n }\n schemaMap[schema.fieldId] = schema;\n });\n\n const objType = this.state.get('activityType') || this.state.get('objectType');\n return (\n objects?.map((obj) => {\n const columnData: ColumnDataInterface = {};\n obj?.fields?.forEach((field) => {\n if (!field?.fieldId) {\n return;\n }\n columnData[field.fieldId] = this.getValueByType(field, schemaMap[field.fieldId]);\n });\n this.customizeRowData(objType, obj, schemaMap, columnData);\n\n return {\n id: obj?.crmObjectId || '',\n data: columnData,\n };\n }) || []\n );\n }\n\n private getValueByType(field: FieldValueInterface, schema: FieldSchemaInterface): CellData {\n switch (schema?.fieldType) {\n case FieldType.FIELD_TYPE_CURRENCY:\n case FieldType.FIELD_TYPE_INTEGER:\n return {\n cellType: 'integer',\n value: field.integerValue,\n };\n case FieldType.FIELD_TYPE_FLOAT:\n return {\n cellType: 'float',\n value: field.floatValue,\n };\n case FieldType.FIELD_TYPE_DATETIME:\n case FieldType.FIELD_TYPE_DATE:\n return this.dateData(field.dateValue);\n case FieldType.FIELD_TYPE_PHONE:\n return this.phoneData(field.stringValue);\n case FieldType.FIELD_TYPE_STRING:\n case FieldType.FIELD_TYPE_EMAIL:\n return this.textData(field.stringValue);\n case FieldType.FIELD_TYPE_DROPDOWN:\n return this.dropDownOptionData(schema, field.stringValue);\n case FieldType.FIELD_TYPE_BOOLEAN:\n return {\n cellType: 'boolean',\n value: field.booleanValue,\n };\n case FieldType.FIELD_TYPE_TAG:\n case FieldType.FIELD_TYPE_STRING_LIST:\n return {\n cellType: 'tags',\n value: field?.stringValues?.values || [],\n };\n default:\n return undefined;\n }\n }\n\n private dropDownOptionData(schema: FieldSchemaInterface, value?: string): TextData {\n const label = schema?.dropdownOptions?.find((o) => o?.value === value)?.label;\n return this.textData(label || value);\n }\n\n private textData(value?: string, link?: string): TextData {\n return {\n cellType: 'text',\n value: value || '',\n link: link || '',\n };\n }\n\n private phoneData(value?: string): PhoneData {\n return {\n cellType: 'phone',\n value: value,\n };\n }\n\n private dateData(value?: Date): DateData {\n return {\n cellType: 'date',\n value: value,\n };\n }\n\n private listRequestIsPristine(req: PagedListRequestInterface): boolean {\n return (\n !req?.pagingOptions?.cursor &&\n req?.pagingOptions?.pageSize === LIST_OBJECTS_DEFAULT_PAGE_SIZE &&\n !req?.searchOptions?.text &&\n !req?.searchOptions?.fields?.length &&\n !req?.filters?.length &&\n !req.sorting?.length\n );\n }\n\n private customizedColumns(\n objectType: ObjectType,\n columns: ColumnDef[],\n isMobile: boolean,\n activityType?: ActivityType,\n ): GalaxyColumnDef[] {\n return this.getTableCustomizationService(activityType || objectType)?.customizeColumns(columns, isMobile) || [];\n }\n\n private customizeRowData(\n objectType: ObjectType | ActivityType,\n obj: CrmObjectInterface,\n schemaMap: { [schemaId: string]: FieldSchemaInterface },\n columnData: ColumnDataInterface,\n ) {\n return this.getTableCustomizationService(objectType)?.customizeRowData(obj, schemaMap, columnData);\n }\n\n lookupRowDisplayName(id: string): Observable {\n return this.data$$.pipe(\n map((rows) => {\n const row = rows.find((r) => r.crmObjectId == id);\n if (!row) {\n return id;\n }\n const firstName = row?.fields?.find((f) => f.externalId == 'standard__first_name')?.stringValue;\n const lastName = row?.fields?.find((f) => f.externalId == 'standard__last_name')?.stringValue;\n if (firstName || lastName) {\n return `${firstName} ${lastName}`.trim();\n }\n const email = row?.fields?.find((f) => f.externalId == 'standard__email')?.stringValue;\n if (email) {\n return email;\n }\n const phone = row?.fields?.find((f) => f.externalId == 'standard__phone_number')?.stringValue;\n if (phone) {\n return phone;\n }\n return id;\n }),\n );\n }\n\n ngOnDestroy(): void {\n this.previewObjectService.clearPreview();\n }\n}\n\ninterface ComponentState {\n objectType: ObjectType;\n activityType?: ActivityType;\n fieldSchemas: FieldSchemaInterface[];\n columns: GalaxyColumnDef[];\n groupConfigs: GalaxyColumnDef[];\n initialLoading: boolean;\n receivedObject: boolean;\n deletedObjectIds: string[];\n}\n","import { ComponentRef, Injectable, Type, ViewContainerRef } from '@angular/core';\nimport { ReplaySubject } from 'rxjs';\nimport { startWith } from 'rxjs/operators';\n\n@Injectable({ providedIn: 'root' })\nexport class SidepanelService {\n private readonly isOpenSource$$ = new ReplaySubject(1);\n isOpen$ = this.isOpenSource$$.pipe(startWith(false));\n private readonly headerTitle$$ = new ReplaySubject(1);\n headerTitle$ = this.headerTitle$$.pipe(startWith(''));\n\n private viewContainerRef?: ViewContainerRef;\n\n public openSidepanel(content: Type): ComponentRef | undefined {\n this.isOpenSource$$.next(true);\n return this.createView(content);\n }\n\n public closeSidepanel(): void {\n this.isOpenSource$$.next(false);\n this.viewContainerRef?.clear();\n }\n\n public setViewContainer(viewContainerRef?: ViewContainerRef): void {\n this.viewContainerRef = viewContainerRef;\n }\n\n private createView(content: Type): ComponentRef | undefined {\n this.viewContainerRef?.clear();\n return this.viewContainerRef?.createComponent(content);\n }\n\n public setHeaderTitle(headerTitle: string): void {\n this.headerTitle$$.next(headerTitle);\n }\n}\n","import { CommonModule } from '@angular/common';\nimport { AfterContentInit, Component, ViewChild, ViewContainerRef } from '@angular/core';\nimport { MatButtonModule } from '@angular/material/button';\nimport { MatIconModule } from '@angular/material/icon';\nimport { MatSidenavModule } from '@angular/material/sidenav';\nimport { MatToolbarModule } from '@angular/material/toolbar';\nimport { GalaxyEmptyStateModule } from '@vendasta/galaxy/empty-state';\nimport { Observable } from 'rxjs';\nimport { SidepanelService } from './side-panel.service';\n\n@Component({\n selector: 'crm-sidepanel',\n templateUrl: './side-panel.component.html',\n styleUrls: ['./side-panel.component.scss'],\n standalone: true,\n imports: [MatSidenavModule, MatIconModule, CommonModule, GalaxyEmptyStateModule, MatToolbarModule, MatButtonModule],\n})\nexport class SidepanelComponent implements AfterContentInit {\n @ViewChild('content', { static: true, read: ViewContainerRef }) contentContainerRef?: ViewContainerRef;\n\n headerTitle$: Observable;\n isOpen$: Observable;\n\n constructor(private sidepanelService: SidepanelService) {\n this.isOpen$ = this.sidepanelService.isOpen$;\n this.headerTitle$ = this.sidepanelService.headerTitle$;\n }\n\n ngAfterContentInit(): void {\n this.sidepanelService.setViewContainer(this.contentContainerRef);\n }\n\n public closeSidepanel(): void {\n this.sidepanelService.closeSidepanel();\n }\n}\n","\n \n \n {{ headerTitle$ | async }}\n \n \n \n \n \n\n","import { Pipe, PipeTransform } from '@angular/core';\nimport { Row } from '@vendasta/galaxy/table';\nimport { ObjectType, SingleRowAction } from '../tokens-and-interfaces';\n\ntype PipeInput = SingleRowAction[] | null | undefined;\ntype PipeOutput = PipeInput;\n\ninterface PipeParams {\n row: Row;\n objectType: ObjectType;\n}\n\n@Pipe({\n name: 'filterVisibleActions',\n standalone: true,\n})\nexport class FilterVisibleActionsPipe implements PipeTransform {\n transform(actions: PipeInput, params: PipeParams): PipeOutput {\n return actions?.filter((action) => action?.visible?.(params?.row, params?.objectType) ?? true);\n }\n}\n","import { Pipe, PipeTransform, inject } from '@angular/core';\nimport { ActivityInterface } from '@vendasta/crm';\nimport { CrmFieldService, SystemFieldIds } from '../shared-services/crm-services/field.service';\n\n@Pipe({\n name: 'crmActivityEffectiveDate',\n standalone: true,\n})\nexport class CrmActivityEffectiveDatePipe implements PipeTransform {\n private readonly fieldService? = inject(CrmFieldService);\n\n transform(activity?: ActivityInterface): Date | null {\n if (!activity || !this.fieldService) {\n return null;\n }\n return (\n this.fieldService.getFieldValueFromCrmObject(activity, SystemFieldIds.ActivityEffectiveDate)?.dateValue ?? null\n );\n }\n}\n","import { Pipe, PipeTransform, inject } from '@angular/core';\nimport { ActivityInterface } from '@vendasta/crm';\nimport { CrmFieldService, StandardIds, SystemFieldIds } from '../shared-services/crm-services/field.service';\n\n@Pipe({\n name: 'crmIsTaskOverdue',\n standalone: true,\n})\nexport class CrmIsTaskOverduePipe implements PipeTransform {\n private readonly fieldService? = inject(CrmFieldService);\n\n transform(activity?: ActivityInterface): boolean {\n if (!activity || !this.fieldService) {\n return false;\n }\n const taskStatus = this.fieldService.getFieldValueFromCrmObject(\n activity,\n StandardIds.ActivityTaskStatus,\n )?.stringValue;\n if (taskStatus === 'Completed') {\n return false;\n }\n const effectiveDate = this.fieldService.getFieldValueFromCrmObject(\n activity,\n SystemFieldIds.ActivityEffectiveDate,\n )?.dateValue;\n if (!effectiveDate) {\n return false;\n }\n return effectiveDate.getTime() < Date.now();\n }\n}\n","import { Pipe, PipeTransform } from '@angular/core';\n\nconst DefaultMaxChars = 20;\n\n@Pipe({\n name: 'crmTruncate',\n standalone: true,\n})\nexport class CrmTruncatePipe implements PipeTransform {\n transform(text?: string, maxChars?: number): string {\n const max = maxChars || DefaultMaxChars;\n if (!text) {\n return '';\n }\n if (text.length <= max) {\n return text;\n }\n return text.slice(0, max) + '...';\n }\n}\n","export { FilterVisibleActionsPipe } from './filter-visible-actions.pipe';\nexport * from './activity-effective-date.pipe';\nexport * from './is-task-overdue.pipe';\nexport * from './truncate.pipe';\n","import { GalaxyFilterInterface } from './interface';\n\nexport function encodeFilters(filters: GalaxyFilterInterface[]): string {\n return encodeURIComponent(JSON.stringify(filters));\n}\n\nexport function decodeFilters(filters: string): GalaxyFilterInterface[] {\n return JSON.parse(decodeURIComponent(filters));\n}\n\nexport function validateFilters(filters: GalaxyFilterInterface[]): boolean {\n for (const filter of filters) {\n if (!filter.fieldId && !filter.filterId) {\n return false;\n }\n if (!filter.operator) {\n return false;\n }\n }\n return true;\n}\n","import { CommonModule } from '@angular/common';\nimport {\n ChangeDetectionStrategy,\n Component,\n EventEmitter,\n Input,\n Output,\n ViewChild,\n computed,\n effect,\n inject,\n signal,\n} from '@angular/core';\nimport {\n AbstractControl,\n FormControl,\n ReactiveFormsModule,\n ValidationErrors,\n ValidatorFn,\n Validators,\n} from '@angular/forms';\nimport { MatButtonModule } from '@angular/material/button';\nimport { MatIconModule } from '@angular/material/icon';\nimport { MatMenuModule } from '@angular/material/menu';\nimport { TranslateModule, TranslateService } from '@ngx-translate/core';\nimport { GalaxyFilterInterface } from '@vendasta/galaxy/filter/chips';\nimport { GalaxyFormFieldModule } from '@vendasta/galaxy/form-field';\nimport { GalaxyPopoverModule, PopoverComponent, PopoverPositions } from '@vendasta/galaxy/popover';\nimport { GalaxyEmptyStateModule } from '@vendasta/galaxy/empty-state';\nimport { PresetFilter, PresetFilters, SavedFilter, SavedFilters } from './interfaces';\nimport { SnackbarService } from '@vendasta/galaxy/snackbar-service';\nimport { GalaxyButtonGroupModule } from '@vendasta/galaxy/button-group';\nimport { OpenConfirmationModalService } from '@vendasta/galaxy/confirmation-modal';\nimport { firstValueFrom } from 'rxjs';\nimport { toSignal } from '@angular/core/rxjs-interop';\nimport { BREAKPOINT_WIDTH } from '../../constants';\n\ntype Mode = 'list' | 'create';\n\n@Component({\n selector: 'crm-filter-view',\n templateUrl: './filter-view.component.html',\n styleUrls: ['./filter-view.component.scss'],\n standalone: true,\n imports: [\n CommonModule,\n GalaxyButtonGroupModule,\n GalaxyFormFieldModule,\n GalaxyPopoverModule,\n GalaxyEmptyStateModule,\n MatButtonModule,\n MatIconModule,\n MatMenuModule,\n ReactiveFormsModule,\n TranslateModule,\n ],\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class FilterViewComponent {\n private _filters = signal([]);\n @Input({ required: true })\n set filters(value: GalaxyFilterInterface[]) {\n const currentFilters = this._filters();\n this._filters.set(value);\n if (!this.filterAreEqual(currentFilters, value)) {\n this.selectedFilter.set(undefined);\n }\n }\n @Output() filtersChange = new EventEmitter();\n\n private _keys = signal([]);\n @Input({ required: true })\n set keys(value: string[]) {\n this._keys.set(value);\n }\n\n private _presetFilters = signal([]);\n @Input() set presetFilters(value: PresetFilters) {\n const filters = value?.map((f) => ({ ...f, preset: true } as PresetFilter));\n this._presetFilters.set(filters ?? []);\n }\n\n @ViewChild('viewsMenu') viewsMenu?: PopoverComponent;\n\n private readonly snackbarService = inject(SnackbarService);\n private readonly confirmationModalService = inject(OpenConfirmationModalService);\n private readonly translateService = inject(TranslateService);\n\n private readonly i18n = {\n views: toSignal(this.translateService.stream('VIEWS.VIEWS')),\n };\n\n protected mode: Mode = 'list';\n protected readonly savedFilters = signal([]);\n protected readonly allFilters = computed(() => [\n ...this.sortFilters(this.savedFilters()),\n ...this.sortFilters(this._presetFilters()),\n ]);\n protected readonly hasFilters = computed(() => Object.keys(this.allFilters()).length > 0);\n protected readonly newViewNameCtrl = new FormControl('', {\n validators: [Validators.required, this.nameExistsValidator(), this.nameLengthValidator()],\n });\n protected readonly mobileWidth = BREAKPOINT_WIDTH.MOBILE;\n protected readonly popoverPosition = [\n PopoverPositions['BottomRight'],\n PopoverPositions['BottomLeft'],\n PopoverPositions['Right'],\n PopoverPositions['Left'],\n ];\n protected readonly selectedFilter = signal(undefined);\n protected readonly selectedFilterName = computed(() => this.selectedFilter() ?? this.i18n.views());\n\n constructor() {\n effect(\n () => {\n this.loadSavedFilters(this._keys());\n },\n { allowSignalWrites: true },\n );\n }\n\n protected handleCancelClick(): void {\n this.mode = 'list';\n }\n\n protected handleCreateViewClick(): void {\n if (this._filters().length > 0) {\n this.newViewNameCtrl.setValue('');\n this.newViewNameCtrl.markAsUntouched();\n this.mode = 'create';\n } else {\n this.snackbarService.openErrorSnack('VIEWS.ERRORS.NO_FILTERS');\n }\n }\n\n protected async handleDeleteFilterClick(filter: SavedFilter): Promise {\n const confirm = await firstValueFrom(\n this.confirmationModalService.openModal({\n title: 'VIEWS.DELETE_CONFIRMATION.TITLE',\n cancelOnEscapeKeyOrBackgroundClick: true,\n message: this.translateService.instant('VIEWS.DELETE_CONFIRMATION.MESSAGE', { viewName: filter.name }),\n type: 'warn',\n confirmButtonText: 'ACTIONS.DELETE',\n }),\n );\n if (confirm) {\n if (this.selectedFilter() === filter.name) {\n this.selectedFilter.set(undefined);\n }\n const savedFilters = this.savedFilters().filter((f) => f.name !== filter.name);\n this.savedFilters.set(savedFilters);\n localStorage.setItem(this._keys()[0], JSON.stringify(savedFilters));\n }\n }\n\n protected handleSaveClick(): void {\n this.newViewNameCtrl.markAsTouched();\n if (this.newViewNameCtrl.valid) {\n const name = this.newViewNameCtrl.value!;\n const savedFilter: SavedFilter = { name, filters: this._filters() };\n const savedFilters = this.sortFilters(this.savedFilters().concat(savedFilter));\n if (this._keys()[0]) {\n localStorage.setItem(this._keys()[0], JSON.stringify(savedFilters));\n }\n this.savedFilters.set(savedFilters);\n this.selectedFilter.set(name);\n this.viewsMenu?.close();\n }\n }\n\n protected handleSelectFilterClick(filter: PresetFilter | SavedFilter): void {\n this.selectedFilter.set(filter.name);\n this._filters.set(filter.filters);\n this.filtersChange.emit(filter.filters);\n this.viewsMenu?.close();\n }\n\n protected handleViewsClick(): void {\n this.viewsMenu?.open();\n this.mode = 'list';\n }\n\n private filterAreEqual(a: GalaxyFilterInterface[], b: GalaxyFilterInterface[]): boolean {\n return JSON.stringify(a) === JSON.stringify(b);\n }\n\n private loadSavedFilters(keys: string[]): void {\n for (const key of keys) {\n const savedFilters = key ? localStorage.getItem(key) : undefined;\n if (savedFilters) {\n try {\n const filters = JSON.parse(savedFilters);\n this.savedFilters.set(this.sortFilters(filters));\n break;\n } catch {\n this.savedFilters.set([]);\n localStorage.removeItem(key);\n }\n }\n }\n }\n\n private nameExistsValidator(): ValidatorFn {\n return (control: AbstractControl): ValidationErrors | null => {\n const value = control.value as string;\n const exists = Boolean(this.allFilters().find((f) => f.name === value));\n return exists ? { presetName: true } : null;\n };\n }\n\n private nameLengthValidator(): ValidatorFn {\n return (control: AbstractControl): ValidationErrors | null => {\n const value = control.value as string;\n if (value.length > 36) {\n return { nameLength: true };\n }\n return null;\n };\n }\n\n private sortFilters(filters: SavedFilters): SavedFilters {\n return filters.sort((a, b) => a.name.toLocaleLowerCase().localeCompare(b.name.toLocaleLowerCase()));\n }\n}\n","\n\n\n \n {{ 'VIEWS.VIEWS' | translate }}\n \n \n \n \n \n\n\n\n
\n
\n \n \n delete\n \n
\n
\n
\n\n \n\n\n\n \n \n filter_list\n \n

{{ 'VIEWS.EMPTY' | translate }}

\n
\n
\n\n\n \n {{ 'VIEWS.VIEW_NAME' | translate }}\n \n \n \n {{ 'VIEWS.ERRORS.VIEW_NAME_REQUIRED' | translate }}\n \n \n {{ 'VIEWS.ERRORS.EQUAL_TO_PRESET_NAME' | translate }}\n \n \n {{ 'VIEWS.ERRORS.VIEW_NAME_TOO_LONG' | translate }}\n \n \n \n\n\n \n \n\n","export {};\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6W10sInNvdXJjZXMiOlsiaW50ZXJmYWNlcy50cyJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBHYWxheHlGaWx0ZXJJbnRlcmZhY2UgfSBmcm9tICdAdmVuZGFzdGEvZ2FsYXh5L2ZpbHRlci9jaGlwcyc7XG5cbmV4cG9ydCBpbnRlcmZhY2UgUHJlc2V0RmlsdGVyIHtcbiAgbmFtZTogc3RyaW5nO1xuICBmaWx0ZXJzOiBHYWxheHlGaWx0ZXJJbnRlcmZhY2VbXTtcbn1cbmV4cG9ydCB0eXBlIFByZXNldEZpbHRlcnMgPSBQcmVzZXRGaWx0ZXJbXTtcblxuZXhwb3J0IGludGVyZmFjZSBTYXZlZEZpbHRlciBleHRlbmRzIFByZXNldEZpbHRlciB7XG4gIHByZXNldD86IGJvb2xlYW47XG59XG5leHBvcnQgdHlwZSBTYXZlZEZpbHRlcnMgPSBTYXZlZEZpbHRlcltdO1xuIl0sIm1hcHBpbmdzIjoiIiwiaWdub3JlTGlzdCI6W119","export { FilterViewComponent } from './filter-view.component';\nexport * from './interfaces';\n","import { CommonModule } from '@angular/common';\nimport {\n Component,\n EventEmitter,\n inject,\n Inject,\n Input,\n OnDestroy,\n OnInit,\n Output,\n signal,\n ViewChild,\n} from '@angular/core';\nimport { MatIconModule } from '@angular/material/icon';\nimport { MatButtonModule } from '@angular/material/button';\nimport { MatDialog, MatDialogModule } from '@angular/material/dialog';\nimport { MatMenuModule } from '@angular/material/menu';\nimport { MatTableModule } from '@angular/material/table';\nimport { ActivatedRoute, Router } from '@angular/router';\nimport { RxState } from '@rx-angular/state';\nimport { GalaxyBadgeModule } from '@vendasta/galaxy/badge';\nimport { GalaxyEmptyStateModule } from '@vendasta/galaxy/empty-state';\nimport { GalaxyLoadingSpinnerModule } from '@vendasta/galaxy/loading-spinner';\nimport { GalaxyPageModule } from '@vendasta/galaxy/page';\nimport { GalaxySnackbarModule, SnackbarService } from '@vendasta/galaxy/snackbar-service';\nimport { GalaxyDataSource, GalaxyTableModule, Row } from '@vendasta/galaxy/table';\nimport { GalaxyColumnDef } from '@vendasta/galaxy/table/src/table.interface';\nimport { combineLatest, forkJoin, Observable, of, Subscription } from 'rxjs';\nimport { ActivityType, ObjectType, SelectAllAction } from '../../tokens-and-interfaces';\nimport { LIST_OBJECTS_DEFAULT_PAGE_SIZE, LIST_OBJECTS_PAGE_SIZE_OPTIONS, PAGE_ROUTES } from '../../constants';\nimport { TranslationModule } from '../../i18n/translation-module';\nimport { DeleteModalComponent } from './delete-modal/delete-modal.component';\nimport { ListObjectsTableService } from './list-objects-table.service';\nimport { catchError, map, switchMap, tap } from 'rxjs/operators';\nimport { TranslateByObjectTypePipe } from '../../i18n/translate-by-object-type/translate-by-object-type.pipe';\nimport { TranslateByObjectTypeService } from '../../i18n/translate-by-object-type/translate-by-object-type.service';\nimport { SidepanelComponent } from '../side-panel/side-panel.component';\nimport { FilterVisibleActionsPipe } from '../../shared-pipes';\nimport { CrmTableStateService } from '../../shared-services/crm-services/crm-object-service/crm-table-state.service';\nimport { GalaxyFilterChipsModule, GalaxyFilterInterface } from '@vendasta/galaxy/filter/chips';\nimport { MatSort, MatSortModule } from '@angular/material/sort';\nimport { toObservable } from '@angular/core/rxjs-interop';\nimport { CrmFiltersService } from '../../shared-services/crm-services/crm-filters.service';\nimport { decodeFilters, encodeFilters, validateFilters } from '@vendasta/galaxy/filter/chips/src/utils';\nimport { OpenConfirmationModalService } from '@vendasta/galaxy/confirmation-modal';\nimport { FilterViewComponent } from '../filter-view';\nimport { GalaxyFilterChipsComponent } from '@vendasta/galaxy/filter/chips/src/galaxy-filter-chips.component';\nimport {\n CrmInjectionToken,\n CrmDependencies,\n CRMRowObject,\n MultiRowAction,\n SingleRowAction,\n} from '../../tokens-and-interfaces';\nimport { CustomRowStyle } from '../../shared-services/table-customization/_abstract-table-customization.service';\n\n@Component({\n selector: 'crm-list-objects-table',\n templateUrl: `./list-objects-table.component.html`,\n styleUrls: ['./list-objects-table.component.scss'],\n imports: [\n CommonModule,\n GalaxyEmptyStateModule,\n GalaxyLoadingSpinnerModule,\n GalaxyTableModule,\n MatTableModule,\n MatIconModule,\n MatMenuModule,\n MatButtonModule,\n TranslationModule,\n MatDialogModule,\n GalaxySnackbarModule,\n GalaxyBadgeModule,\n GalaxyPageModule,\n TranslateByObjectTypePipe,\n SidepanelComponent,\n FilterVisibleActionsPipe,\n GalaxyFilterChipsModule,\n MatSortModule,\n FilterViewComponent,\n ],\n providers: [ListObjectsTableService, CrmTableStateService, RxState],\n standalone: true,\n})\nexport class ListObjectsTableComponent implements OnInit, OnDestroy {\n @Input() rowStyle: CustomRowStyle | undefined;\n\n private _objectType = signal('Contact');\n @Input({ required: true }) set objectType(o: ObjectType) {\n this._objectType.set(o);\n this.tableStateService.setLocalStorageKey(this._objectType());\n this.service.setObjectType(this._objectType());\n }\n\n get objectType(): ObjectType {\n return this._objectType();\n }\n\n get objectTypeForTranslation(): ObjectType | ActivityType {\n return this.activityType ?? this.objectType;\n }\n\n multiRowActions$: Observable = toObservable(this._objectType).pipe(\n switchMap((objectType) => {\n return this.createMultiRowActions(objectType);\n }),\n );\n\n selectAllActions$: Observable = toObservable(this._objectType).pipe(\n switchMap((objectType) => {\n return this.createSelectAllActions(objectType);\n }),\n );\n\n singleRowActions$: Observable = toObservable(this._objectType).pipe(\n switchMap((objectType) => {\n return this.createSingleRowActions(objectType);\n }),\n );\n multiRowActionExists$: Observable = this.multiRowActions$.pipe(map((actions) => actions.length > 0));\n\n private _activityType: ActivityType | undefined;\n @Input() set activityType(o: ActivityType | undefined) {\n if (o) {\n this._activityType = o;\n this.service.setActivityType(this._activityType);\n }\n }\n\n get activityType(): ActivityType | undefined {\n return this._activityType;\n }\n\n @Output() editClick: EventEmitter = new EventEmitter();\n @ViewChild('filterChipRef') filterChipRef?: GalaxyFilterChipsComponent;\n\n dataSource: GalaxyDataSource = this.service.dataSource;\n columns$: Observable = this.service.columns$;\n groupConfigs$: Observable = this.service.groupConfigs$;\n initialLoading$: Observable = this.service.initialLoading$;\n showEmptyState$: Observable = this.service.showEmptyState$;\n showObjects$: Observable = this.service.showObjects$;\n selectedRows: Row[] = [];\n showFiltersApplied$: Observable = this.dataSource.filtersApplied$;\n protected readonly filters = signal([]);\n\n readonly data$ = this.service.data$;\n\n pageSizeOptions: number[] = LIST_OBJECTS_PAGE_SIZE_OPTIONS;\n pageSize: number = LIST_OBJECTS_DEFAULT_PAGE_SIZE;\n\n readonly isMobile$ = this.tableStateService.isMobile$;\n\n viewKeys: string[] = [];\n\n private readonly confirmationModalService = inject(OpenConfirmationModalService);\n\n tableId = '';\n\n private subscriptions: Subscription[] = [];\n\n useSelectAll$: Observable = this.dataSource.selectAll$ ?? of(false);\n\n hasSelectAllActions$: Observable = this.selectAllActions$.pipe(map((actions) => actions.length > 0));\n\n constructor(\n @Inject(CrmInjectionToken) private readonly config: CrmDependencies,\n private readonly service: ListObjectsTableService,\n private readonly router: Router,\n private readonly snackService: SnackbarService,\n private readonly translateByObjectTypeService: TranslateByObjectTypeService,\n public dialog: MatDialog,\n private readonly tableStateService: CrmTableStateService,\n private readonly activatedRoute: ActivatedRoute,\n private readonly crmFiltersService: CrmFiltersService,\n ) {\n this.dataSource.clearSelectionOnChange = true;\n const filterParam = this.activatedRoute.snapshot.queryParamMap.get('filter');\n let filters: GalaxyFilterInterface[] = [];\n if (filterParam) {\n const f = decodeFilters(filterParam);\n if (validateFilters(f) && f.length > 0) {\n filters = f;\n }\n }\n this.crmFiltersService.setInitialFilters(filters);\n\n const sub = combineLatest([this.activatedRoute.queryParams, this.dataSource.state$])\n .pipe(\n tap(([queryParams, state]) => {\n const newQueryParams = { ...queryParams };\n let filterParam: string | null = null;\n if (state.filters && state.filters.length > 0) {\n filterParam = encodeFilters(state.filters);\n newQueryParams['filter'] = filterParam;\n } else {\n delete newQueryParams['filter'];\n }\n // Note: `queryParamsHandling: 'merge'` doesn't work when multiple shared-components are adjusting the query params\n // at the same time. Without this other shared-components may not be able to write to the query params.\n if (queryParams['filter'] === newQueryParams['filter']) {\n return;\n }\n this.router.navigate([], {\n relativeTo: this.activatedRoute,\n queryParams: newQueryParams,\n });\n }),\n )\n .subscribe();\n this.subscriptions.push(sub);\n }\n\n ngOnDestroy(): void {\n this.subscriptions.forEach((sub) => sub.unsubscribe());\n }\n\n ngOnInit() {\n switch (this.objectType) {\n case 'Contact':\n if (this.config.contact?.baseColumnIds && this.config.contact.baseColumnIds.length > 0) {\n this.service.setBaseColumns(this.config.contact.baseColumnIds);\n }\n break;\n case 'Company':\n if (this.config.company?.baseColumnIds && this.config.company.baseColumnIds.length > 0) {\n this.service.setBaseColumns(this.config.company.baseColumnIds);\n }\n break;\n case 'Activity':\n switch (this.activityType) {\n case 'Task':\n if (this.config.task?.baseColumnIds && this.config.task.baseColumnIds.length > 0) {\n this.service.setBaseColumns(this.config.task.baseColumnIds);\n }\n break;\n }\n }\n\n const viewKeys: string[] = [];\n if (this.config.appID) {\n viewKeys.push('crm:' + this.config.appID + ':list-' + this.objectType + ':table');\n }\n viewKeys.push('crm:list-' + this.objectType + ':table');\n this.viewKeys = viewKeys;\n\n this.tableId = this.config.appID + '-' + this.objectType;\n }\n\n editObject(objectId: string): void {\n this.editClick.emit({ objectId: objectId, objectType: this.objectType });\n this.config.routePrefix$.subscribe((routePrefix) => {\n let editRouteTemplate;\n switch (this.objectType) {\n case 'Contact':\n editRouteTemplate = `${PAGE_ROUTES.CONTACT.ROOT}/${PAGE_ROUTES.CONTACT.SUBROUTES.EDIT}`;\n break;\n case 'Company':\n editRouteTemplate = `${PAGE_ROUTES.COMPANY.ROOT}/${PAGE_ROUTES.COMPANY.SUBROUTES.EDIT}`;\n break;\n }\n if (editRouteTemplate) {\n const editRoute = editRouteTemplate.replace(':crmObjectId', objectId);\n this.router.navigateByUrl(`${routePrefix}/${editRoute}`);\n }\n });\n }\n\n deleteObject(row: Row): void {\n this.dialog\n .open(DeleteModalComponent, {\n width: '560px',\n data: {\n objectType: this.objectTypeForTranslation,\n id: row.id,\n name$: this.service.lookupRowDisplayName(row.id),\n },\n })\n .afterClosed()\n .subscribe((confirmed) => {\n if (confirmed) {\n this.service.deleteObject(row.id).subscribe({\n next: () => {\n const translatedString = this.translateByObjectTypeService.getTranslationByObjectType(\n this.objectTypeForTranslation,\n 'LIST_OBJECTS_TABLE.ACTIONS.DELETE.SUCCESS',\n );\n this.snackService.openSuccessSnack(translatedString);\n },\n error: (err) => {\n console.error(err);\n const translatedString = this.translateByObjectTypeService.getTranslationByObjectType(\n this.objectTypeForTranslation,\n 'LIST_OBJECTS_TABLE.ACTIONS.DELETE.ERROR',\n );\n this.snackService.openErrorSnack(translatedString);\n },\n });\n }\n });\n }\n\n updateFilters(filters: GalaxyFilterInterface[], updateChipList?: boolean): void {\n this.service.filters = filters;\n this.dataSource.setFilters(filters);\n this.filters.set(filters);\n if (updateChipList) {\n this.filterChipRef?.filters.set(filters);\n }\n }\n\n selectionChanged(rows: Row[]): void {\n this.selectedRows = rows;\n }\n\n columnsChanged(columns: GalaxyColumnDef[]): void {\n // there's a select column at the start of every table execution with an advanced selector\n // the columns shouldn't be saved if only the select column is available\n // in the list of columns\n const columnCount = columns.filter((c) => c.id !== 'select').length;\n if (columnCount > 0) {\n this.tableStateService.setLocalStorageColumns(columns);\n }\n }\n\n private createSingleRowActions(objectType: ObjectType): Observable {\n const commonSingleRowActions$ = this.config.singleRowTableActions$ ?? of([]);\n let singleRowActions$: Observable;\n\n switch (objectType) {\n case 'Contact':\n singleRowActions$ = this.config.contact?.singleRowTableActions$ ?? of([]);\n break;\n case 'Company':\n singleRowActions$ = this.config.company?.singleRowTableActions$ ?? of([]);\n break;\n case 'Activity':\n singleRowActions$ = this.config.task?.singleRowTableActions$ ?? of([]);\n break;\n default:\n singleRowActions$ = of([]);\n break;\n }\n\n return combineLatest([singleRowActions$, commonSingleRowActions$]).pipe(\n map(([typeActions, commonActions]) => [...typeActions, ...commonActions]),\n );\n }\n\n deleteRows(rows: Row[]): void {\n this.confirmationModalService\n .openModal({\n type: 'warn',\n title: this.translateByObjectTypeService.getTranslationByObjectType(\n this.objectTypeForTranslation,\n 'LIST_OBJECTS_TABLE.ACTIONS.DELETE_SELECTED.TITLE',\n ),\n message: this.translateByObjectTypeService.getTranslationByObjectType(\n this.objectTypeForTranslation,\n 'LIST_OBJECTS_TABLE.ACTIONS.DELETE_SELECTED.CONFIRMATION_MESSAGE',\n ),\n confirmButtonText: this.translateByObjectTypeService.getTranslationByObjectType(\n this.objectTypeForTranslation,\n 'LIST_OBJECTS_TABLE.ACTIONS.DELETE_SELECTED.CONFIRM',\n ),\n cancelButtonText: this.translateByObjectTypeService.getTranslationByObjectType(\n this.objectTypeForTranslation,\n 'LIST_OBJECTS_TABLE.ACTIONS.DELETE_SELECTED.CANCEL',\n ),\n })\n .subscribe((confirmed) => {\n if (confirmed) {\n const ids = rows.map((row) => row.id);\n forkJoin(\n ids.map((id) => {\n return this.service.deleteObject(id).pipe(\n map(() => ''),\n catchError(() => {\n return of(id);\n }),\n );\n }),\n ).subscribe((resp: string[]) => {\n const failedIDs = resp.filter((address) => address !== '');\n if (failedIDs.length === 0) {\n const translatedString = this.translateByObjectTypeService.getTranslationByObjectType(\n this.objectTypeForTranslation,\n 'LIST_OBJECTS_TABLE.ACTIONS.DELETE_SELECTED.SUCCESS',\n );\n this.snackService.openSuccessSnack(translatedString);\n } else {\n console.error('Failed to delete IDs: ', failedIDs);\n const translatedString = this.translateByObjectTypeService.getTranslationByObjectType(\n this.objectTypeForTranslation,\n 'LIST_OBJECTS_TABLE.ACTIONS.DELETE_SELECTED.ERROR',\n );\n this.snackService.openErrorSnack(translatedString);\n }\n if (resp.length - failedIDs.length > 0) {\n // If anything has been deleted, clear the selection\n this.dataSource.clearSelection();\n }\n });\n }\n });\n }\n\n private createMultiRowActions(objectType: ObjectType): Observable {\n const commonMultiRowActions$ = this.config.multiRowTableActions$ ?? of([]);\n let multiRowActions$: Observable;\n\n switch (objectType) {\n case 'Contact':\n multiRowActions$ = this.config.contact?.multiRowTableActions$ ?? of([]);\n break;\n case 'Company':\n multiRowActions$ = this.config.company?.multiRowTableActions$ ?? of([]);\n break;\n case 'Activity':\n multiRowActions$ = this.config.task?.multiRowTableActions$ ?? of([]);\n break;\n default:\n multiRowActions$ = of([]);\n break;\n }\n\n const deleteRowsAction = {\n label: this.translateByObjectTypeService.getTranslationByObjectType(\n this.objectTypeForTranslation,\n 'LIST_OBJECTS_TABLE.ACTIONS.DELETE_SELECTED.ACTION',\n ),\n callback: (rows: Row[]) => this.deleteRows(rows),\n selectAllVisible: false,\n };\n\n return combineLatest([multiRowActions$, commonMultiRowActions$]).pipe(\n map(([typeActions, commonActions]) => [...typeActions, ...commonActions, deleteRowsAction]),\n );\n }\n\n private createSelectAllActions(objectType: ObjectType): Observable {\n const commonSelectAllActions$ = this.config.selectAllActions$ ?? of([]);\n let selectAllActions$: Observable;\n\n switch (objectType) {\n case 'Contact':\n selectAllActions$ = this.config.contact?.selectAllTableActions$ ?? of([]);\n break;\n case 'Company':\n selectAllActions$ = this.config.company?.selectAllTableActions$ ?? of([]);\n break;\n case 'Activity':\n selectAllActions$ = this.config.task?.selectAllTableActions$ ?? of([]);\n break;\n default:\n selectAllActions$ = of([]);\n break;\n }\n\n return combineLatest([selectAllActions$, commonSelectAllActions$]).pipe(\n map(([typeActions, commonActions]) => [...typeActions, ...commonActions]),\n );\n }\n\n handleSelectAll() {\n this.dataSource.toggleSelectAll();\n }\n}\n","\n\n\n \n \n \n \n {{ 'LIST_OBJECTS_TABLE.EMPTY_TABLE.HEADER' | translateByObjectType: objectTypeForTranslation }}\n \n

{{ 'LIST_OBJECTS_TABLE.EMPTY_TABLE.HINT' | translateByObjectType: objectTypeForTranslation }}

\n\n\n\n\n \n \n \n @if (useSelectAll$ | async) {\n \n {{ action.label | translate }}\n \n } @else {\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 \n more_vert\n \n \n \n \n \n \n \n {{ 'LIST_OBJECTS_TABLE.ACTIONS.EDIT.TITLE' | translateByObjectType: objectTypeForTranslation }}\n \n \n \n \n {{ 'LIST_OBJECTS_TABLE.ACTIONS.DELETE.ACTION' | translateByObjectType: objectTypeForTranslation }}\n \n \n \n
\n
\n\n\n\n
\n {{\n 'LIST_OBJECTS_TABLE.SELECT_ALL.TOTAL_SELECTED'\n | translateByObjectType: objectType : { totalSelected: dataSource.state.totalDataMembers }\n }}\n
\n \n {{ 'LIST_OBJECTS_TABLE.SELECT_ALL.CLEAR_SELECTION' | translateByObjectType: objectType }}\n \n
\n","import { CommonModule } from '@angular/common';\nimport { Component, DestroyRef, EventEmitter, Inject, Input, Output, ViewChild } from '@angular/core';\nimport { MatIconModule } from '@angular/material/icon';\nimport { MatButtonModule } from '@angular/material/button';\nimport { MatMenuModule } from '@angular/material/menu';\nimport { RouterModule } from '@angular/router';\nimport { GalaxyPageModule } from '@vendasta/galaxy/page';\nimport { GalaxyTooltipModule } from '@vendasta/galaxy/tooltip';\nimport { Observable } from 'rxjs';\nimport { filter, map } from 'rxjs/operators';\nimport { ActivityType, ObjectType } from '../../tokens-and-interfaces';\nimport { TranslationModule } from '../../i18n/translation-module';\nimport { ListObjectsTableComponent } from './list-objects-table.component';\nimport { TranslateByObjectTypePipe } from '../../i18n/translate-by-object-type/translate-by-object-type.pipe';\nimport { CrmTableStateService } from '../../shared-services/crm-services/crm-object-service/crm-table-state.service';\nimport { CrmObjectInterface } from '@vendasta/crm';\nimport { takeUntilDestroyed } from '@angular/core/rxjs-interop';\nimport { CrmInjectionToken, CrmDependencies, CRMRowObject } from '../../tokens-and-interfaces';\nimport { CustomRowStyle } from '../../shared-services/table-customization/_abstract-table-customization.service';\n\n@Component({\n selector: 'crm-list-objects-page',\n template: `\n \n \n {{ 'TITLE' | translateByObjectType: typeForTitle }}\n\n \n \n \n \n {{ 'ACTIONS.IMPORT' | translate }}\n \n \n \n \n {{ 'ADD_OBJECT_BUTTON' | translateByObjectType: objectType }}\n \n \n \n \n \n \n \n \n `,\n imports: [\n CommonModule,\n MatMenuModule,\n GalaxyPageModule,\n GalaxyTooltipModule,\n ListObjectsTableComponent,\n MatButtonModule,\n MatIconModule,\n RouterModule,\n TranslationModule,\n TranslateByObjectTypePipe,\n ],\n styleUrls: ['./list-objects-page.component.scss'],\n standalone: true,\n})\nexport class ListObjectsPageComponent {\n @Input({ required: true }) objectType!: ObjectType;\n @Input() activityType: ActivityType | undefined;\n @Input() customRowStyle: CustomRowStyle | undefined;\n @Input() createObjectRoute = '';\n @Input() importCSVRoute = '';\n @Input() accountPageRoute = '';\n @Output() editClick: EventEmitter = new EventEmitter();\n @Output() rowsChange: EventEmitter = new EventEmitter();\n\n @ViewChild(ListObjectsTableComponent) set tableComponent(value: ListObjectsTableComponent) {\n value?.data$?.pipe(takeUntilDestroyed(this.destroyRef)).subscribe((rows) => this.rowsChange.emit(rows));\n }\n\n get typeForTitle(): ObjectType | ActivityType {\n return this.activityType ?? this.objectType;\n }\n\n readonly isMobile$ = this.tableStateService.isMobile$;\n\n createObjectRoute$: Observable = this.config.routePrefix$.pipe(\n filter(() => !!this.createObjectRoute),\n map((crm) => `/${crm}/${this.createObjectRoute}`),\n );\n\n importCSVRoute$: Observable = this.config.routePrefix$.pipe(\n filter(() => !!this.importCSVRoute),\n map((crm) => `/${crm}/${this.importCSVRoute}`),\n );\n\n constructor(\n @Inject(CrmInjectionToken) private readonly config: CrmDependencies,\n private readonly tableStateService: CrmTableStateService,\n private readonly destroyRef: DestroyRef,\n ) {}\n}\n","import { Directive, Input } from '@angular/core';\n\ntype Placement = 'page-actions';\n\n@Directive({\n selector: '[crmTableContent]',\n standalone: true,\n})\nexport class ListObjectsTableContentDirective {\n @Input() set crmTableContent(value: Placement) {\n this.placement = value;\n }\n placement?: Placement;\n}\n","import { Directive } from '@angular/core';\n\n@Directive({\n selector: '[crmPageActions], crm-page-actions',\n standalone: true,\n})\nexport class PageActionsDirective {}\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: 'crm-drawer',\n templateUrl: 'drawer.component.html',\n styleUrls: ['drawer.component.scss'],\n standalone: true,\n imports: [CommonModule, MatButtonModule, MatIconModule, MatSidenavModule, MatToolbarModule],\n})\nexport class CrmDrawerComponent {\n @ViewChild('drawer') drawer?: MatDrawer;\n @ViewChild('drawerContentRef', { read: ViewContainerRef })\n set drawerContentRef(value: ViewContainerRef) {\n this._drawerContentRef = value;\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","export { CrmDrawerComponent } from './drawer.component';\nexport { SidepanelComponent } from './side-panel.component';\nexport { SidepanelService } from './side-panel.service';\n","import { ActivityTaskStatus } from '../../../../tokens-and-interfaces';\n\nexport const STANDARD_DATE_FORMAT = \"yyyy-MM-dd'T'HH:mm\";\nexport const DEFAULT_TASK_STATUS = ActivityTaskStatus.Open;\n","function _interopRequireDefault(obj) {\n return obj && obj.__esModule ? obj : {\n \"default\": obj\n };\n}\nmodule.exports = _interopRequireDefault, module.exports.__esModule = true, module.exports[\"default\"] = module.exports;","function _typeof(o) {\n \"@babel/helpers - typeof\";\n\n return (module.exports = _typeof = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (o) {\n return typeof o;\n } : function (o) {\n return o && \"function\" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? \"symbol\" : typeof o;\n }, module.exports.__esModule = true, module.exports[\"default\"] = module.exports), _typeof(o);\n}\nmodule.exports = _typeof, module.exports.__esModule = true, module.exports[\"default\"] = module.exports;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = requiredArgs;\nfunction requiredArgs(required, args) {\n if (args.length < required) {\n throw new TypeError(required + ' argument' + (required > 1 ? 's' : '') + ' required, but only ' + args.length + ' present');\n }\n}\nmodule.exports = exports.default;","\"use strict\";\n\nvar _interopRequireDefault = require(\"@babel/runtime/helpers/interopRequireDefault\").default;\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = isDate;\nvar _typeof2 = _interopRequireDefault(require(\"@babel/runtime/helpers/typeof\"));\nvar _index = _interopRequireDefault(require(\"../_lib/requiredArgs/index.js\"));\n/**\n * @name isDate\n * @category Common Helpers\n * @summary Is the given value a date?\n *\n * @description\n * Returns true if the given value is an instance of Date. The function works for dates transferred across iframes.\n *\n * @param {*} value - the value to check\n * @returns {boolean} true if the given value is a date\n * @throws {TypeError} 1 arguments required\n *\n * @example\n * // For a valid date:\n * const result = isDate(new Date())\n * //=> true\n *\n * @example\n * // For an invalid date:\n * const result = isDate(new Date(NaN))\n * //=> true\n *\n * @example\n * // For some value:\n * const result = isDate('2014-02-31')\n * //=> false\n *\n * @example\n * // For an object:\n * const result = isDate({})\n * //=> false\n */\nfunction isDate(value) {\n (0, _index.default)(1, arguments);\n return value instanceof Date || (0, _typeof2.default)(value) === 'object' && Object.prototype.toString.call(value) === '[object Date]';\n}\nmodule.exports = exports.default;","\"use strict\";\n\nvar _interopRequireDefault = require(\"@babel/runtime/helpers/interopRequireDefault\").default;\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = toDate;\nvar _typeof2 = _interopRequireDefault(require(\"@babel/runtime/helpers/typeof\"));\nvar _index = _interopRequireDefault(require(\"../_lib/requiredArgs/index.js\"));\n/**\n * @name toDate\n * @category Common Helpers\n * @summary Convert the given argument to an instance of Date.\n *\n * @description\n * Convert the given argument to an instance of Date.\n *\n * If the argument is an instance of Date, the function returns its clone.\n *\n * If the argument is a number, it is treated as a timestamp.\n *\n * If the argument is none of the above, the function returns Invalid Date.\n *\n * **Note**: *all* Date arguments passed to any *date-fns* function is processed by `toDate`.\n *\n * @param {Date|Number} argument - the value to convert\n * @returns {Date} the parsed date in the local time zone\n * @throws {TypeError} 1 argument required\n *\n * @example\n * // Clone the date:\n * const result = toDate(new Date(2014, 1, 11, 11, 30, 30))\n * //=> Tue Feb 11 2014 11:30:30\n *\n * @example\n * // Convert the timestamp to date:\n * const result = toDate(1392098430000)\n * //=> Tue Feb 11 2014 11:30:30\n */\nfunction toDate(argument) {\n (0, _index.default)(1, arguments);\n var argStr = Object.prototype.toString.call(argument);\n\n // Clone the date\n if (argument instanceof Date || (0, _typeof2.default)(argument) === 'object' && argStr === '[object Date]') {\n // Prevent the date to lose the milliseconds when passed to new Date() in IE10\n return new Date(argument.getTime());\n } else if (typeof argument === 'number' || argStr === '[object Number]') {\n return new Date(argument);\n } else {\n if ((typeof argument === 'string' || argStr === '[object String]') && typeof console !== 'undefined') {\n // eslint-disable-next-line no-console\n console.warn(\"Starting with v2.0.0-beta.1 date-fns doesn't accept strings as date arguments. Please use `parseISO` to parse strings. See: https://github.com/date-fns/date-fns/blob/master/docs/upgradeGuide.md#string-arguments\");\n // eslint-disable-next-line no-console\n console.warn(new Error().stack);\n }\n return new Date(NaN);\n }\n}\nmodule.exports = exports.default;","\"use strict\";\n\nvar _interopRequireDefault = require(\"@babel/runtime/helpers/interopRequireDefault\").default;\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = isValid;\nvar _index = _interopRequireDefault(require(\"../isDate/index.js\"));\nvar _index2 = _interopRequireDefault(require(\"../toDate/index.js\"));\nvar _index3 = _interopRequireDefault(require(\"../_lib/requiredArgs/index.js\"));\n/**\n * @name isValid\n * @category Common Helpers\n * @summary Is the given date valid?\n *\n * @description\n * Returns false if argument is Invalid Date and true otherwise.\n * Argument is converted to Date using `toDate`. See [toDate]{@link https://date-fns.org/docs/toDate}\n * Invalid Date is a Date, whose time value is NaN.\n *\n * Time value of Date: http://es5.github.io/#x15.9.1.1\n *\n * @param {*} date - the date to check\n * @returns {Boolean} the date is valid\n * @throws {TypeError} 1 argument required\n *\n * @example\n * // For the valid date:\n * const result = isValid(new Date(2014, 1, 31))\n * //=> true\n *\n * @example\n * // For the value, convertable into a date:\n * const result = isValid(1393804800000)\n * //=> true\n *\n * @example\n * // For the invalid date:\n * const result = isValid(new Date(''))\n * //=> false\n */\nfunction isValid(dirtyDate) {\n (0, _index3.default)(1, arguments);\n if (!(0, _index.default)(dirtyDate) && typeof dirtyDate !== 'number') {\n return false;\n }\n var date = (0, _index2.default)(dirtyDate);\n return !isNaN(Number(date));\n}\nmodule.exports = exports.default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = toInteger;\nfunction toInteger(dirtyNumber) {\n if (dirtyNumber === null || dirtyNumber === true || dirtyNumber === false) {\n return NaN;\n }\n var number = Number(dirtyNumber);\n if (isNaN(number)) {\n return number;\n }\n return number < 0 ? Math.ceil(number) : Math.floor(number);\n}\nmodule.exports = exports.default;","\"use strict\";\n\nvar _interopRequireDefault = require(\"@babel/runtime/helpers/interopRequireDefault\").default;\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = addMilliseconds;\nvar _index = _interopRequireDefault(require(\"../_lib/toInteger/index.js\"));\nvar _index2 = _interopRequireDefault(require(\"../toDate/index.js\"));\nvar _index3 = _interopRequireDefault(require(\"../_lib/requiredArgs/index.js\"));\n/**\n * @name addMilliseconds\n * @category Millisecond Helpers\n * @summary Add the specified number of milliseconds to the given date.\n *\n * @description\n * Add the specified number of milliseconds to the given date.\n *\n * @param {Date|Number} date - the date to be changed\n * @param {Number} amount - the amount of milliseconds to be added. Positive decimals will be rounded using `Math.floor`, decimals less than zero will be rounded using `Math.ceil`.\n * @returns {Date} the new date with the milliseconds added\n * @throws {TypeError} 2 arguments required\n *\n * @example\n * // Add 750 milliseconds to 10 July 2014 12:45:30.000:\n * const result = addMilliseconds(new Date(2014, 6, 10, 12, 45, 30, 0), 750)\n * //=> Thu Jul 10 2014 12:45:30.750\n */\nfunction addMilliseconds(dirtyDate, dirtyAmount) {\n (0, _index3.default)(2, arguments);\n var timestamp = (0, _index2.default)(dirtyDate).getTime();\n var amount = (0, _index.default)(dirtyAmount);\n return new Date(timestamp + amount);\n}\nmodule.exports = exports.default;","\"use strict\";\n\nvar _interopRequireDefault = require(\"@babel/runtime/helpers/interopRequireDefault\").default;\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = subMilliseconds;\nvar _index = _interopRequireDefault(require(\"../addMilliseconds/index.js\"));\nvar _index2 = _interopRequireDefault(require(\"../_lib/requiredArgs/index.js\"));\nvar _index3 = _interopRequireDefault(require(\"../_lib/toInteger/index.js\"));\n/**\n * @name subMilliseconds\n * @category Millisecond Helpers\n * @summary Subtract the specified number of milliseconds from the given date.\n *\n * @description\n * Subtract the specified number of milliseconds from the given date.\n *\n * @param {Date|Number} date - the date to be changed\n * @param {Number} amount - the amount of milliseconds to be subtracted. Positive decimals will be rounded using `Math.floor`, decimals less than zero will be rounded using `Math.ceil`.\n * @returns {Date} the new date with the milliseconds subtracted\n * @throws {TypeError} 2 arguments required\n *\n * @example\n * // Subtract 750 milliseconds from 10 July 2014 12:45:30.000:\n * const result = subMilliseconds(new Date(2014, 6, 10, 12, 45, 30, 0), 750)\n * //=> Thu Jul 10 2014 12:45:29.250\n */\nfunction subMilliseconds(dirtyDate, dirtyAmount) {\n (0, _index2.default)(2, arguments);\n var amount = (0, _index3.default)(dirtyAmount);\n return (0, _index.default)(dirtyDate, -amount);\n}\nmodule.exports = exports.default;","\"use strict\";\n\nvar _interopRequireDefault = require(\"@babel/runtime/helpers/interopRequireDefault\").default;\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = getUTCDayOfYear;\nvar _index = _interopRequireDefault(require(\"../../toDate/index.js\"));\nvar _index2 = _interopRequireDefault(require(\"../requiredArgs/index.js\"));\nvar MILLISECONDS_IN_DAY = 86400000;\nfunction getUTCDayOfYear(dirtyDate) {\n (0, _index2.default)(1, arguments);\n var date = (0, _index.default)(dirtyDate);\n var timestamp = date.getTime();\n date.setUTCMonth(0, 1);\n date.setUTCHours(0, 0, 0, 0);\n var startOfYearTimestamp = date.getTime();\n var difference = timestamp - startOfYearTimestamp;\n return Math.floor(difference / MILLISECONDS_IN_DAY) + 1;\n}\nmodule.exports = exports.default;","\"use strict\";\n\nvar _interopRequireDefault = require(\"@babel/runtime/helpers/interopRequireDefault\").default;\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = startOfUTCISOWeek;\nvar _index = _interopRequireDefault(require(\"../../toDate/index.js\"));\nvar _index2 = _interopRequireDefault(require(\"../requiredArgs/index.js\"));\nfunction startOfUTCISOWeek(dirtyDate) {\n (0, _index2.default)(1, arguments);\n var weekStartsOn = 1;\n var date = (0, _index.default)(dirtyDate);\n var day = date.getUTCDay();\n var diff = (day < weekStartsOn ? 7 : 0) + day - weekStartsOn;\n date.setUTCDate(date.getUTCDate() - diff);\n date.setUTCHours(0, 0, 0, 0);\n return date;\n}\nmodule.exports = exports.default;","\"use strict\";\n\nvar _interopRequireDefault = require(\"@babel/runtime/helpers/interopRequireDefault\").default;\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = getUTCISOWeekYear;\nvar _index = _interopRequireDefault(require(\"../../toDate/index.js\"));\nvar _index2 = _interopRequireDefault(require(\"../requiredArgs/index.js\"));\nvar _index3 = _interopRequireDefault(require(\"../startOfUTCISOWeek/index.js\"));\nfunction getUTCISOWeekYear(dirtyDate) {\n (0, _index2.default)(1, arguments);\n var date = (0, _index.default)(dirtyDate);\n var year = date.getUTCFullYear();\n var fourthOfJanuaryOfNextYear = new Date(0);\n fourthOfJanuaryOfNextYear.setUTCFullYear(year + 1, 0, 4);\n fourthOfJanuaryOfNextYear.setUTCHours(0, 0, 0, 0);\n var startOfNextYear = (0, _index3.default)(fourthOfJanuaryOfNextYear);\n var fourthOfJanuaryOfThisYear = new Date(0);\n fourthOfJanuaryOfThisYear.setUTCFullYear(year, 0, 4);\n fourthOfJanuaryOfThisYear.setUTCHours(0, 0, 0, 0);\n var startOfThisYear = (0, _index3.default)(fourthOfJanuaryOfThisYear);\n if (date.getTime() >= startOfNextYear.getTime()) {\n return year + 1;\n } else if (date.getTime() >= startOfThisYear.getTime()) {\n return year;\n } else {\n return year - 1;\n }\n}\nmodule.exports = exports.default;","\"use strict\";\n\nvar _interopRequireDefault = require(\"@babel/runtime/helpers/interopRequireDefault\").default;\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = startOfUTCISOWeekYear;\nvar _index = _interopRequireDefault(require(\"../getUTCISOWeekYear/index.js\"));\nvar _index2 = _interopRequireDefault(require(\"../startOfUTCISOWeek/index.js\"));\nvar _index3 = _interopRequireDefault(require(\"../requiredArgs/index.js\"));\nfunction startOfUTCISOWeekYear(dirtyDate) {\n (0, _index3.default)(1, arguments);\n var year = (0, _index.default)(dirtyDate);\n var fourthOfJanuary = new Date(0);\n fourthOfJanuary.setUTCFullYear(year, 0, 4);\n fourthOfJanuary.setUTCHours(0, 0, 0, 0);\n var date = (0, _index2.default)(fourthOfJanuary);\n return date;\n}\nmodule.exports = exports.default;","\"use strict\";\n\nvar _interopRequireDefault = require(\"@babel/runtime/helpers/interopRequireDefault\").default;\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = getUTCISOWeek;\nvar _index = _interopRequireDefault(require(\"../../toDate/index.js\"));\nvar _index2 = _interopRequireDefault(require(\"../startOfUTCISOWeek/index.js\"));\nvar _index3 = _interopRequireDefault(require(\"../startOfUTCISOWeekYear/index.js\"));\nvar _index4 = _interopRequireDefault(require(\"../requiredArgs/index.js\"));\nvar MILLISECONDS_IN_WEEK = 604800000;\nfunction getUTCISOWeek(dirtyDate) {\n (0, _index4.default)(1, arguments);\n var date = (0, _index.default)(dirtyDate);\n var diff = (0, _index2.default)(date).getTime() - (0, _index3.default)(date).getTime();\n\n // Round the number of days to the nearest integer\n // because the number of milliseconds in a week is not constant\n // (e.g. it's different in the week of the daylight saving time clock shift)\n return Math.round(diff / MILLISECONDS_IN_WEEK) + 1;\n}\nmodule.exports = exports.default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.getDefaultOptions = getDefaultOptions;\nexports.setDefaultOptions = setDefaultOptions;\nvar defaultOptions = {};\nfunction getDefaultOptions() {\n return defaultOptions;\n}\nfunction setDefaultOptions(newOptions) {\n defaultOptions = newOptions;\n}","\"use strict\";\n\nvar _interopRequireDefault = require(\"@babel/runtime/helpers/interopRequireDefault\").default;\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = startOfUTCWeek;\nvar _index = _interopRequireDefault(require(\"../../toDate/index.js\"));\nvar _index2 = _interopRequireDefault(require(\"../requiredArgs/index.js\"));\nvar _index3 = _interopRequireDefault(require(\"../toInteger/index.js\"));\nvar _index4 = require(\"../defaultOptions/index.js\");\nfunction startOfUTCWeek(dirtyDate, options) {\n var _ref, _ref2, _ref3, _options$weekStartsOn, _options$locale, _options$locale$optio, _defaultOptions$local, _defaultOptions$local2;\n (0, _index2.default)(1, arguments);\n var defaultOptions = (0, _index4.getDefaultOptions)();\n var weekStartsOn = (0, _index3.default)((_ref = (_ref2 = (_ref3 = (_options$weekStartsOn = options === null || options === void 0 ? void 0 : options.weekStartsOn) !== null && _options$weekStartsOn !== void 0 ? _options$weekStartsOn : options === null || options === void 0 ? void 0 : (_options$locale = options.locale) === null || _options$locale === void 0 ? void 0 : (_options$locale$optio = _options$locale.options) === null || _options$locale$optio === void 0 ? void 0 : _options$locale$optio.weekStartsOn) !== null && _ref3 !== void 0 ? _ref3 : defaultOptions.weekStartsOn) !== null && _ref2 !== void 0 ? _ref2 : (_defaultOptions$local = defaultOptions.locale) === null || _defaultOptions$local === void 0 ? void 0 : (_defaultOptions$local2 = _defaultOptions$local.options) === null || _defaultOptions$local2 === void 0 ? void 0 : _defaultOptions$local2.weekStartsOn) !== null && _ref !== void 0 ? _ref : 0);\n\n // Test if weekStartsOn is between 0 and 6 _and_ is not NaN\n if (!(weekStartsOn >= 0 && weekStartsOn <= 6)) {\n throw new RangeError('weekStartsOn must be between 0 and 6 inclusively');\n }\n var date = (0, _index.default)(dirtyDate);\n var day = date.getUTCDay();\n var diff = (day < weekStartsOn ? 7 : 0) + day - weekStartsOn;\n date.setUTCDate(date.getUTCDate() - diff);\n date.setUTCHours(0, 0, 0, 0);\n return date;\n}\nmodule.exports = exports.default;","\"use strict\";\n\nvar _interopRequireDefault = require(\"@babel/runtime/helpers/interopRequireDefault\").default;\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = getUTCWeekYear;\nvar _index = _interopRequireDefault(require(\"../../toDate/index.js\"));\nvar _index2 = _interopRequireDefault(require(\"../requiredArgs/index.js\"));\nvar _index3 = _interopRequireDefault(require(\"../startOfUTCWeek/index.js\"));\nvar _index4 = _interopRequireDefault(require(\"../toInteger/index.js\"));\nvar _index5 = require(\"../defaultOptions/index.js\");\nfunction getUTCWeekYear(dirtyDate, options) {\n var _ref, _ref2, _ref3, _options$firstWeekCon, _options$locale, _options$locale$optio, _defaultOptions$local, _defaultOptions$local2;\n (0, _index2.default)(1, arguments);\n var date = (0, _index.default)(dirtyDate);\n var year = date.getUTCFullYear();\n var defaultOptions = (0, _index5.getDefaultOptions)();\n var firstWeekContainsDate = (0, _index4.default)((_ref = (_ref2 = (_ref3 = (_options$firstWeekCon = options === null || options === void 0 ? void 0 : options.firstWeekContainsDate) !== null && _options$firstWeekCon !== void 0 ? _options$firstWeekCon : options === null || options === void 0 ? void 0 : (_options$locale = options.locale) === null || _options$locale === void 0 ? void 0 : (_options$locale$optio = _options$locale.options) === null || _options$locale$optio === void 0 ? void 0 : _options$locale$optio.firstWeekContainsDate) !== null && _ref3 !== void 0 ? _ref3 : defaultOptions.firstWeekContainsDate) !== null && _ref2 !== void 0 ? _ref2 : (_defaultOptions$local = defaultOptions.locale) === null || _defaultOptions$local === void 0 ? void 0 : (_defaultOptions$local2 = _defaultOptions$local.options) === null || _defaultOptions$local2 === void 0 ? void 0 : _defaultOptions$local2.firstWeekContainsDate) !== null && _ref !== void 0 ? _ref : 1);\n\n // Test if weekStartsOn is between 1 and 7 _and_ is not NaN\n if (!(firstWeekContainsDate >= 1 && firstWeekContainsDate <= 7)) {\n throw new RangeError('firstWeekContainsDate must be between 1 and 7 inclusively');\n }\n var firstWeekOfNextYear = new Date(0);\n firstWeekOfNextYear.setUTCFullYear(year + 1, 0, firstWeekContainsDate);\n firstWeekOfNextYear.setUTCHours(0, 0, 0, 0);\n var startOfNextYear = (0, _index3.default)(firstWeekOfNextYear, options);\n var firstWeekOfThisYear = new Date(0);\n firstWeekOfThisYear.setUTCFullYear(year, 0, firstWeekContainsDate);\n firstWeekOfThisYear.setUTCHours(0, 0, 0, 0);\n var startOfThisYear = (0, _index3.default)(firstWeekOfThisYear, options);\n if (date.getTime() >= startOfNextYear.getTime()) {\n return year + 1;\n } else if (date.getTime() >= startOfThisYear.getTime()) {\n return year;\n } else {\n return year - 1;\n }\n}\nmodule.exports = exports.default;","\"use strict\";\n\nvar _interopRequireDefault = require(\"@babel/runtime/helpers/interopRequireDefault\").default;\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = startOfUTCWeekYear;\nvar _index = _interopRequireDefault(require(\"../getUTCWeekYear/index.js\"));\nvar _index2 = _interopRequireDefault(require(\"../requiredArgs/index.js\"));\nvar _index3 = _interopRequireDefault(require(\"../startOfUTCWeek/index.js\"));\nvar _index4 = _interopRequireDefault(require(\"../toInteger/index.js\"));\nvar _index5 = require(\"../defaultOptions/index.js\");\nfunction startOfUTCWeekYear(dirtyDate, options) {\n var _ref, _ref2, _ref3, _options$firstWeekCon, _options$locale, _options$locale$optio, _defaultOptions$local, _defaultOptions$local2;\n (0, _index2.default)(1, arguments);\n var defaultOptions = (0, _index5.getDefaultOptions)();\n var firstWeekContainsDate = (0, _index4.default)((_ref = (_ref2 = (_ref3 = (_options$firstWeekCon = options === null || options === void 0 ? void 0 : options.firstWeekContainsDate) !== null && _options$firstWeekCon !== void 0 ? _options$firstWeekCon : options === null || options === void 0 ? void 0 : (_options$locale = options.locale) === null || _options$locale === void 0 ? void 0 : (_options$locale$optio = _options$locale.options) === null || _options$locale$optio === void 0 ? void 0 : _options$locale$optio.firstWeekContainsDate) !== null && _ref3 !== void 0 ? _ref3 : defaultOptions.firstWeekContainsDate) !== null && _ref2 !== void 0 ? _ref2 : (_defaultOptions$local = defaultOptions.locale) === null || _defaultOptions$local === void 0 ? void 0 : (_defaultOptions$local2 = _defaultOptions$local.options) === null || _defaultOptions$local2 === void 0 ? void 0 : _defaultOptions$local2.firstWeekContainsDate) !== null && _ref !== void 0 ? _ref : 1);\n var year = (0, _index.default)(dirtyDate, options);\n var firstWeek = new Date(0);\n firstWeek.setUTCFullYear(year, 0, firstWeekContainsDate);\n firstWeek.setUTCHours(0, 0, 0, 0);\n var date = (0, _index3.default)(firstWeek, options);\n return date;\n}\nmodule.exports = exports.default;","\"use strict\";\n\nvar _interopRequireDefault = require(\"@babel/runtime/helpers/interopRequireDefault\").default;\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = getUTCWeek;\nvar _index = _interopRequireDefault(require(\"../../toDate/index.js\"));\nvar _index2 = _interopRequireDefault(require(\"../startOfUTCWeek/index.js\"));\nvar _index3 = _interopRequireDefault(require(\"../startOfUTCWeekYear/index.js\"));\nvar _index4 = _interopRequireDefault(require(\"../requiredArgs/index.js\"));\nvar MILLISECONDS_IN_WEEK = 604800000;\nfunction getUTCWeek(dirtyDate, options) {\n (0, _index4.default)(1, arguments);\n var date = (0, _index.default)(dirtyDate);\n var diff = (0, _index2.default)(date, options).getTime() - (0, _index3.default)(date, options).getTime();\n\n // Round the number of days to the nearest integer\n // because the number of milliseconds in a week is not constant\n // (e.g. it's different in the week of the daylight saving time clock shift)\n return Math.round(diff / MILLISECONDS_IN_WEEK) + 1;\n}\nmodule.exports = exports.default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = addLeadingZeros;\nfunction addLeadingZeros(number, targetLength) {\n var sign = number < 0 ? '-' : '';\n var output = Math.abs(number).toString();\n while (output.length < targetLength) {\n output = '0' + output;\n }\n return sign + output;\n}\nmodule.exports = exports.default;","\"use strict\";\n\nvar _interopRequireDefault = require(\"@babel/runtime/helpers/interopRequireDefault\").default;\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\nvar _index = _interopRequireDefault(require(\"../../addLeadingZeros/index.js\"));\n/*\n * | | Unit | | Unit |\n * |-----|--------------------------------|-----|--------------------------------|\n * | a | AM, PM | A* | |\n * | d | Day of month | D | |\n * | h | Hour [1-12] | H | Hour [0-23] |\n * | m | Minute | M | Month |\n * | s | Second | S | Fraction of second |\n * | y | Year (abs) | Y | |\n *\n * Letters marked by * are not implemented but reserved by Unicode standard.\n */\n\nvar formatters = {\n // Year\n y: function y(date, token) {\n // From http://www.unicode.org/reports/tr35/tr35-31/tr35-dates.html#Date_Format_tokens\n // | Year | y | yy | yyy | yyyy | yyyyy |\n // |----------|-------|----|-------|-------|-------|\n // | AD 1 | 1 | 01 | 001 | 0001 | 00001 |\n // | AD 12 | 12 | 12 | 012 | 0012 | 00012 |\n // | AD 123 | 123 | 23 | 123 | 0123 | 00123 |\n // | AD 1234 | 1234 | 34 | 1234 | 1234 | 01234 |\n // | AD 12345 | 12345 | 45 | 12345 | 12345 | 12345 |\n\n var signedYear = date.getUTCFullYear();\n // Returns 1 for 1 BC (which is year 0 in JavaScript)\n var year = signedYear > 0 ? signedYear : 1 - signedYear;\n return (0, _index.default)(token === 'yy' ? year % 100 : year, token.length);\n },\n // Month\n M: function M(date, token) {\n var month = date.getUTCMonth();\n return token === 'M' ? String(month + 1) : (0, _index.default)(month + 1, 2);\n },\n // Day of the month\n d: function d(date, token) {\n return (0, _index.default)(date.getUTCDate(), token.length);\n },\n // AM or PM\n a: function a(date, token) {\n var dayPeriodEnumValue = date.getUTCHours() / 12 >= 1 ? 'pm' : 'am';\n switch (token) {\n case 'a':\n case 'aa':\n return dayPeriodEnumValue.toUpperCase();\n case 'aaa':\n return dayPeriodEnumValue;\n case 'aaaaa':\n return dayPeriodEnumValue[0];\n case 'aaaa':\n default:\n return dayPeriodEnumValue === 'am' ? 'a.m.' : 'p.m.';\n }\n },\n // Hour [1-12]\n h: function h(date, token) {\n return (0, _index.default)(date.getUTCHours() % 12 || 12, token.length);\n },\n // Hour [0-23]\n H: function H(date, token) {\n return (0, _index.default)(date.getUTCHours(), token.length);\n },\n // Minute\n m: function m(date, token) {\n return (0, _index.default)(date.getUTCMinutes(), token.length);\n },\n // Second\n s: function s(date, token) {\n return (0, _index.default)(date.getUTCSeconds(), token.length);\n },\n // Fraction of second\n S: function S(date, token) {\n var numberOfDigits = token.length;\n var milliseconds = date.getUTCMilliseconds();\n var fractionalSeconds = Math.floor(milliseconds * Math.pow(10, numberOfDigits - 3));\n return (0, _index.default)(fractionalSeconds, token.length);\n }\n};\nvar _default = formatters;\nexports.default = _default;\nmodule.exports = exports.default;","\"use strict\";\n\nvar _interopRequireDefault = require(\"@babel/runtime/helpers/interopRequireDefault\").default;\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\nvar _index = _interopRequireDefault(require(\"../../../_lib/getUTCDayOfYear/index.js\"));\nvar _index2 = _interopRequireDefault(require(\"../../../_lib/getUTCISOWeek/index.js\"));\nvar _index3 = _interopRequireDefault(require(\"../../../_lib/getUTCISOWeekYear/index.js\"));\nvar _index4 = _interopRequireDefault(require(\"../../../_lib/getUTCWeek/index.js\"));\nvar _index5 = _interopRequireDefault(require(\"../../../_lib/getUTCWeekYear/index.js\"));\nvar _index6 = _interopRequireDefault(require(\"../../addLeadingZeros/index.js\"));\nvar _index7 = _interopRequireDefault(require(\"../lightFormatters/index.js\"));\nvar dayPeriodEnum = {\n am: 'am',\n pm: 'pm',\n midnight: 'midnight',\n noon: 'noon',\n morning: 'morning',\n afternoon: 'afternoon',\n evening: 'evening',\n night: 'night'\n};\n/*\n * | | Unit | | Unit |\n * |-----|--------------------------------|-----|--------------------------------|\n * | a | AM, PM | A* | Milliseconds in day |\n * | b | AM, PM, noon, midnight | B | Flexible day period |\n * | c | Stand-alone local day of week | C* | Localized hour w/ day period |\n * | d | Day of month | D | Day of year |\n * | e | Local day of week | E | Day of week |\n * | f | | F* | Day of week in month |\n * | g* | Modified Julian day | G | Era |\n * | h | Hour [1-12] | H | Hour [0-23] |\n * | i! | ISO day of week | I! | ISO week of year |\n * | j* | Localized hour w/ day period | J* | Localized hour w/o day period |\n * | k | Hour [1-24] | K | Hour [0-11] |\n * | l* | (deprecated) | L | Stand-alone month |\n * | m | Minute | M | Month |\n * | n | | N | |\n * | o! | Ordinal number modifier | O | Timezone (GMT) |\n * | p! | Long localized time | P! | Long localized date |\n * | q | Stand-alone quarter | Q | Quarter |\n * | r* | Related Gregorian year | R! | ISO week-numbering year |\n * | s | Second | S | Fraction of second |\n * | t! | Seconds timestamp | T! | Milliseconds timestamp |\n * | u | Extended year | U* | Cyclic year |\n * | v* | Timezone (generic non-locat.) | V* | Timezone (location) |\n * | w | Local week of year | W* | Week of month |\n * | x | Timezone (ISO-8601 w/o Z) | X | Timezone (ISO-8601) |\n * | y | Year (abs) | Y | Local week-numbering year |\n * | z | Timezone (specific non-locat.) | Z* | Timezone (aliases) |\n *\n * Letters marked by * are not implemented but reserved by Unicode standard.\n *\n * Letters marked by ! are non-standard, but implemented by date-fns:\n * - `o` modifies the previous token to turn it into an ordinal (see `format` docs)\n * - `i` is ISO day of week. For `i` and `ii` is returns numeric ISO week days,\n * i.e. 7 for Sunday, 1 for Monday, etc.\n * - `I` is ISO week of year, as opposed to `w` which is local week of year.\n * - `R` is ISO week-numbering year, as opposed to `Y` which is local week-numbering year.\n * `R` is supposed to be used in conjunction with `I` and `i`\n * for universal ISO week-numbering date, whereas\n * `Y` is supposed to be used in conjunction with `w` and `e`\n * for week-numbering date specific to the locale.\n * - `P` is long localized date format\n * - `p` is long localized time format\n */\n\nvar formatters = {\n // Era\n G: function G(date, token, localize) {\n var era = date.getUTCFullYear() > 0 ? 1 : 0;\n switch (token) {\n // AD, BC\n case 'G':\n case 'GG':\n case 'GGG':\n return localize.era(era, {\n width: 'abbreviated'\n });\n // A, B\n case 'GGGGG':\n return localize.era(era, {\n width: 'narrow'\n });\n // Anno Domini, Before Christ\n case 'GGGG':\n default:\n return localize.era(era, {\n width: 'wide'\n });\n }\n },\n // Year\n y: function y(date, token, localize) {\n // Ordinal number\n if (token === 'yo') {\n var signedYear = date.getUTCFullYear();\n // Returns 1 for 1 BC (which is year 0 in JavaScript)\n var year = signedYear > 0 ? signedYear : 1 - signedYear;\n return localize.ordinalNumber(year, {\n unit: 'year'\n });\n }\n return _index7.default.y(date, token);\n },\n // Local week-numbering year\n Y: function Y(date, token, localize, options) {\n var signedWeekYear = (0, _index5.default)(date, options);\n // Returns 1 for 1 BC (which is year 0 in JavaScript)\n var weekYear = signedWeekYear > 0 ? signedWeekYear : 1 - signedWeekYear;\n\n // Two digit year\n if (token === 'YY') {\n var twoDigitYear = weekYear % 100;\n return (0, _index6.default)(twoDigitYear, 2);\n }\n\n // Ordinal number\n if (token === 'Yo') {\n return localize.ordinalNumber(weekYear, {\n unit: 'year'\n });\n }\n\n // Padding\n return (0, _index6.default)(weekYear, token.length);\n },\n // ISO week-numbering year\n R: function R(date, token) {\n var isoWeekYear = (0, _index3.default)(date);\n\n // Padding\n return (0, _index6.default)(isoWeekYear, token.length);\n },\n // Extended year. This is a single number designating the year of this calendar system.\n // The main difference between `y` and `u` localizers are B.C. years:\n // | Year | `y` | `u` |\n // |------|-----|-----|\n // | AC 1 | 1 | 1 |\n // | BC 1 | 1 | 0 |\n // | BC 2 | 2 | -1 |\n // Also `yy` always returns the last two digits of a year,\n // while `uu` pads single digit years to 2 characters and returns other years unchanged.\n u: function u(date, token) {\n var year = date.getUTCFullYear();\n return (0, _index6.default)(year, token.length);\n },\n // Quarter\n Q: function Q(date, token, localize) {\n var quarter = Math.ceil((date.getUTCMonth() + 1) / 3);\n switch (token) {\n // 1, 2, 3, 4\n case 'Q':\n return String(quarter);\n // 01, 02, 03, 04\n case 'QQ':\n return (0, _index6.default)(quarter, 2);\n // 1st, 2nd, 3rd, 4th\n case 'Qo':\n return localize.ordinalNumber(quarter, {\n unit: 'quarter'\n });\n // Q1, Q2, Q3, Q4\n case 'QQQ':\n return localize.quarter(quarter, {\n width: 'abbreviated',\n context: 'formatting'\n });\n // 1, 2, 3, 4 (narrow quarter; could be not numerical)\n case 'QQQQQ':\n return localize.quarter(quarter, {\n width: 'narrow',\n context: 'formatting'\n });\n // 1st quarter, 2nd quarter, ...\n case 'QQQQ':\n default:\n return localize.quarter(quarter, {\n width: 'wide',\n context: 'formatting'\n });\n }\n },\n // Stand-alone quarter\n q: function q(date, token, localize) {\n var quarter = Math.ceil((date.getUTCMonth() + 1) / 3);\n switch (token) {\n // 1, 2, 3, 4\n case 'q':\n return String(quarter);\n // 01, 02, 03, 04\n case 'qq':\n return (0, _index6.default)(quarter, 2);\n // 1st, 2nd, 3rd, 4th\n case 'qo':\n return localize.ordinalNumber(quarter, {\n unit: 'quarter'\n });\n // Q1, Q2, Q3, Q4\n case 'qqq':\n return localize.quarter(quarter, {\n width: 'abbreviated',\n context: 'standalone'\n });\n // 1, 2, 3, 4 (narrow quarter; could be not numerical)\n case 'qqqqq':\n return localize.quarter(quarter, {\n width: 'narrow',\n context: 'standalone'\n });\n // 1st quarter, 2nd quarter, ...\n case 'qqqq':\n default:\n return localize.quarter(quarter, {\n width: 'wide',\n context: 'standalone'\n });\n }\n },\n // Month\n M: function M(date, token, localize) {\n var month = date.getUTCMonth();\n switch (token) {\n case 'M':\n case 'MM':\n return _index7.default.M(date, token);\n // 1st, 2nd, ..., 12th\n case 'Mo':\n return localize.ordinalNumber(month + 1, {\n unit: 'month'\n });\n // Jan, Feb, ..., Dec\n case 'MMM':\n return localize.month(month, {\n width: 'abbreviated',\n context: 'formatting'\n });\n // J, F, ..., D\n case 'MMMMM':\n return localize.month(month, {\n width: 'narrow',\n context: 'formatting'\n });\n // January, February, ..., December\n case 'MMMM':\n default:\n return localize.month(month, {\n width: 'wide',\n context: 'formatting'\n });\n }\n },\n // Stand-alone month\n L: function L(date, token, localize) {\n var month = date.getUTCMonth();\n switch (token) {\n // 1, 2, ..., 12\n case 'L':\n return String(month + 1);\n // 01, 02, ..., 12\n case 'LL':\n return (0, _index6.default)(month + 1, 2);\n // 1st, 2nd, ..., 12th\n case 'Lo':\n return localize.ordinalNumber(month + 1, {\n unit: 'month'\n });\n // Jan, Feb, ..., Dec\n case 'LLL':\n return localize.month(month, {\n width: 'abbreviated',\n context: 'standalone'\n });\n // J, F, ..., D\n case 'LLLLL':\n return localize.month(month, {\n width: 'narrow',\n context: 'standalone'\n });\n // January, February, ..., December\n case 'LLLL':\n default:\n return localize.month(month, {\n width: 'wide',\n context: 'standalone'\n });\n }\n },\n // Local week of year\n w: function w(date, token, localize, options) {\n var week = (0, _index4.default)(date, options);\n if (token === 'wo') {\n return localize.ordinalNumber(week, {\n unit: 'week'\n });\n }\n return (0, _index6.default)(week, token.length);\n },\n // ISO week of year\n I: function I(date, token, localize) {\n var isoWeek = (0, _index2.default)(date);\n if (token === 'Io') {\n return localize.ordinalNumber(isoWeek, {\n unit: 'week'\n });\n }\n return (0, _index6.default)(isoWeek, token.length);\n },\n // Day of the month\n d: function d(date, token, localize) {\n if (token === 'do') {\n return localize.ordinalNumber(date.getUTCDate(), {\n unit: 'date'\n });\n }\n return _index7.default.d(date, token);\n },\n // Day of year\n D: function D(date, token, localize) {\n var dayOfYear = (0, _index.default)(date);\n if (token === 'Do') {\n return localize.ordinalNumber(dayOfYear, {\n unit: 'dayOfYear'\n });\n }\n return (0, _index6.default)(dayOfYear, token.length);\n },\n // Day of week\n E: function E(date, token, localize) {\n var dayOfWeek = date.getUTCDay();\n switch (token) {\n // Tue\n case 'E':\n case 'EE':\n case 'EEE':\n return localize.day(dayOfWeek, {\n width: 'abbreviated',\n context: 'formatting'\n });\n // T\n case 'EEEEE':\n return localize.day(dayOfWeek, {\n width: 'narrow',\n context: 'formatting'\n });\n // Tu\n case 'EEEEEE':\n return localize.day(dayOfWeek, {\n width: 'short',\n context: 'formatting'\n });\n // Tuesday\n case 'EEEE':\n default:\n return localize.day(dayOfWeek, {\n width: 'wide',\n context: 'formatting'\n });\n }\n },\n // Local day of week\n e: function e(date, token, localize, options) {\n var dayOfWeek = date.getUTCDay();\n var localDayOfWeek = (dayOfWeek - options.weekStartsOn + 8) % 7 || 7;\n switch (token) {\n // Numerical value (Nth day of week with current locale or weekStartsOn)\n case 'e':\n return String(localDayOfWeek);\n // Padded numerical value\n case 'ee':\n return (0, _index6.default)(localDayOfWeek, 2);\n // 1st, 2nd, ..., 7th\n case 'eo':\n return localize.ordinalNumber(localDayOfWeek, {\n unit: 'day'\n });\n case 'eee':\n return localize.day(dayOfWeek, {\n width: 'abbreviated',\n context: 'formatting'\n });\n // T\n case 'eeeee':\n return localize.day(dayOfWeek, {\n width: 'narrow',\n context: 'formatting'\n });\n // Tu\n case 'eeeeee':\n return localize.day(dayOfWeek, {\n width: 'short',\n context: 'formatting'\n });\n // Tuesday\n case 'eeee':\n default:\n return localize.day(dayOfWeek, {\n width: 'wide',\n context: 'formatting'\n });\n }\n },\n // Stand-alone local day of week\n c: function c(date, token, localize, options) {\n var dayOfWeek = date.getUTCDay();\n var localDayOfWeek = (dayOfWeek - options.weekStartsOn + 8) % 7 || 7;\n switch (token) {\n // Numerical value (same as in `e`)\n case 'c':\n return String(localDayOfWeek);\n // Padded numerical value\n case 'cc':\n return (0, _index6.default)(localDayOfWeek, token.length);\n // 1st, 2nd, ..., 7th\n case 'co':\n return localize.ordinalNumber(localDayOfWeek, {\n unit: 'day'\n });\n case 'ccc':\n return localize.day(dayOfWeek, {\n width: 'abbreviated',\n context: 'standalone'\n });\n // T\n case 'ccccc':\n return localize.day(dayOfWeek, {\n width: 'narrow',\n context: 'standalone'\n });\n // Tu\n case 'cccccc':\n return localize.day(dayOfWeek, {\n width: 'short',\n context: 'standalone'\n });\n // Tuesday\n case 'cccc':\n default:\n return localize.day(dayOfWeek, {\n width: 'wide',\n context: 'standalone'\n });\n }\n },\n // ISO day of week\n i: function i(date, token, localize) {\n var dayOfWeek = date.getUTCDay();\n var isoDayOfWeek = dayOfWeek === 0 ? 7 : dayOfWeek;\n switch (token) {\n // 2\n case 'i':\n return String(isoDayOfWeek);\n // 02\n case 'ii':\n return (0, _index6.default)(isoDayOfWeek, token.length);\n // 2nd\n case 'io':\n return localize.ordinalNumber(isoDayOfWeek, {\n unit: 'day'\n });\n // Tue\n case 'iii':\n return localize.day(dayOfWeek, {\n width: 'abbreviated',\n context: 'formatting'\n });\n // T\n case 'iiiii':\n return localize.day(dayOfWeek, {\n width: 'narrow',\n context: 'formatting'\n });\n // Tu\n case 'iiiiii':\n return localize.day(dayOfWeek, {\n width: 'short',\n context: 'formatting'\n });\n // Tuesday\n case 'iiii':\n default:\n return localize.day(dayOfWeek, {\n width: 'wide',\n context: 'formatting'\n });\n }\n },\n // AM or PM\n a: function a(date, token, localize) {\n var hours = date.getUTCHours();\n var dayPeriodEnumValue = hours / 12 >= 1 ? 'pm' : 'am';\n switch (token) {\n case 'a':\n case 'aa':\n return localize.dayPeriod(dayPeriodEnumValue, {\n width: 'abbreviated',\n context: 'formatting'\n });\n case 'aaa':\n return localize.dayPeriod(dayPeriodEnumValue, {\n width: 'abbreviated',\n context: 'formatting'\n }).toLowerCase();\n case 'aaaaa':\n return localize.dayPeriod(dayPeriodEnumValue, {\n width: 'narrow',\n context: 'formatting'\n });\n case 'aaaa':\n default:\n return localize.dayPeriod(dayPeriodEnumValue, {\n width: 'wide',\n context: 'formatting'\n });\n }\n },\n // AM, PM, midnight, noon\n b: function b(date, token, localize) {\n var hours = date.getUTCHours();\n var dayPeriodEnumValue;\n if (hours === 12) {\n dayPeriodEnumValue = dayPeriodEnum.noon;\n } else if (hours === 0) {\n dayPeriodEnumValue = dayPeriodEnum.midnight;\n } else {\n dayPeriodEnumValue = hours / 12 >= 1 ? 'pm' : 'am';\n }\n switch (token) {\n case 'b':\n case 'bb':\n return localize.dayPeriod(dayPeriodEnumValue, {\n width: 'abbreviated',\n context: 'formatting'\n });\n case 'bbb':\n return localize.dayPeriod(dayPeriodEnumValue, {\n width: 'abbreviated',\n context: 'formatting'\n }).toLowerCase();\n case 'bbbbb':\n return localize.dayPeriod(dayPeriodEnumValue, {\n width: 'narrow',\n context: 'formatting'\n });\n case 'bbbb':\n default:\n return localize.dayPeriod(dayPeriodEnumValue, {\n width: 'wide',\n context: 'formatting'\n });\n }\n },\n // in the morning, in the afternoon, in the evening, at night\n B: function B(date, token, localize) {\n var hours = date.getUTCHours();\n var dayPeriodEnumValue;\n if (hours >= 17) {\n dayPeriodEnumValue = dayPeriodEnum.evening;\n } else if (hours >= 12) {\n dayPeriodEnumValue = dayPeriodEnum.afternoon;\n } else if (hours >= 4) {\n dayPeriodEnumValue = dayPeriodEnum.morning;\n } else {\n dayPeriodEnumValue = dayPeriodEnum.night;\n }\n switch (token) {\n case 'B':\n case 'BB':\n case 'BBB':\n return localize.dayPeriod(dayPeriodEnumValue, {\n width: 'abbreviated',\n context: 'formatting'\n });\n case 'BBBBB':\n return localize.dayPeriod(dayPeriodEnumValue, {\n width: 'narrow',\n context: 'formatting'\n });\n case 'BBBB':\n default:\n return localize.dayPeriod(dayPeriodEnumValue, {\n width: 'wide',\n context: 'formatting'\n });\n }\n },\n // Hour [1-12]\n h: function h(date, token, localize) {\n if (token === 'ho') {\n var hours = date.getUTCHours() % 12;\n if (hours === 0) hours = 12;\n return localize.ordinalNumber(hours, {\n unit: 'hour'\n });\n }\n return _index7.default.h(date, token);\n },\n // Hour [0-23]\n H: function H(date, token, localize) {\n if (token === 'Ho') {\n return localize.ordinalNumber(date.getUTCHours(), {\n unit: 'hour'\n });\n }\n return _index7.default.H(date, token);\n },\n // Hour [0-11]\n K: function K(date, token, localize) {\n var hours = date.getUTCHours() % 12;\n if (token === 'Ko') {\n return localize.ordinalNumber(hours, {\n unit: 'hour'\n });\n }\n return (0, _index6.default)(hours, token.length);\n },\n // Hour [1-24]\n k: function k(date, token, localize) {\n var hours = date.getUTCHours();\n if (hours === 0) hours = 24;\n if (token === 'ko') {\n return localize.ordinalNumber(hours, {\n unit: 'hour'\n });\n }\n return (0, _index6.default)(hours, token.length);\n },\n // Minute\n m: function m(date, token, localize) {\n if (token === 'mo') {\n return localize.ordinalNumber(date.getUTCMinutes(), {\n unit: 'minute'\n });\n }\n return _index7.default.m(date, token);\n },\n // Second\n s: function s(date, token, localize) {\n if (token === 'so') {\n return localize.ordinalNumber(date.getUTCSeconds(), {\n unit: 'second'\n });\n }\n return _index7.default.s(date, token);\n },\n // Fraction of second\n S: function S(date, token) {\n return _index7.default.S(date, token);\n },\n // Timezone (ISO-8601. If offset is 0, output is always `'Z'`)\n X: function X(date, token, _localize, options) {\n var originalDate = options._originalDate || date;\n var timezoneOffset = originalDate.getTimezoneOffset();\n if (timezoneOffset === 0) {\n return 'Z';\n }\n switch (token) {\n // Hours and optional minutes\n case 'X':\n return formatTimezoneWithOptionalMinutes(timezoneOffset);\n\n // Hours, minutes and optional seconds without `:` delimiter\n // Note: neither ISO-8601 nor JavaScript supports seconds in timezone offsets\n // so this token always has the same output as `XX`\n case 'XXXX':\n case 'XX':\n // Hours and minutes without `:` delimiter\n return formatTimezone(timezoneOffset);\n\n // Hours, minutes and optional seconds with `:` delimiter\n // Note: neither ISO-8601 nor JavaScript supports seconds in timezone offsets\n // so this token always has the same output as `XXX`\n case 'XXXXX':\n case 'XXX': // Hours and minutes with `:` delimiter\n default:\n return formatTimezone(timezoneOffset, ':');\n }\n },\n // Timezone (ISO-8601. If offset is 0, output is `'+00:00'` or equivalent)\n x: function x(date, token, _localize, options) {\n var originalDate = options._originalDate || date;\n var timezoneOffset = originalDate.getTimezoneOffset();\n switch (token) {\n // Hours and optional minutes\n case 'x':\n return formatTimezoneWithOptionalMinutes(timezoneOffset);\n\n // Hours, minutes and optional seconds without `:` delimiter\n // Note: neither ISO-8601 nor JavaScript supports seconds in timezone offsets\n // so this token always has the same output as `xx`\n case 'xxxx':\n case 'xx':\n // Hours and minutes without `:` delimiter\n return formatTimezone(timezoneOffset);\n\n // Hours, minutes and optional seconds with `:` delimiter\n // Note: neither ISO-8601 nor JavaScript supports seconds in timezone offsets\n // so this token always has the same output as `xxx`\n case 'xxxxx':\n case 'xxx': // Hours and minutes with `:` delimiter\n default:\n return formatTimezone(timezoneOffset, ':');\n }\n },\n // Timezone (GMT)\n O: function O(date, token, _localize, options) {\n var originalDate = options._originalDate || date;\n var timezoneOffset = originalDate.getTimezoneOffset();\n switch (token) {\n // Short\n case 'O':\n case 'OO':\n case 'OOO':\n return 'GMT' + formatTimezoneShort(timezoneOffset, ':');\n // Long\n case 'OOOO':\n default:\n return 'GMT' + formatTimezone(timezoneOffset, ':');\n }\n },\n // Timezone (specific non-location)\n z: function z(date, token, _localize, options) {\n var originalDate = options._originalDate || date;\n var timezoneOffset = originalDate.getTimezoneOffset();\n switch (token) {\n // Short\n case 'z':\n case 'zz':\n case 'zzz':\n return 'GMT' + formatTimezoneShort(timezoneOffset, ':');\n // Long\n case 'zzzz':\n default:\n return 'GMT' + formatTimezone(timezoneOffset, ':');\n }\n },\n // Seconds timestamp\n t: function t(date, token, _localize, options) {\n var originalDate = options._originalDate || date;\n var timestamp = Math.floor(originalDate.getTime() / 1000);\n return (0, _index6.default)(timestamp, token.length);\n },\n // Milliseconds timestamp\n T: function T(date, token, _localize, options) {\n var originalDate = options._originalDate || date;\n var timestamp = originalDate.getTime();\n return (0, _index6.default)(timestamp, token.length);\n }\n};\nfunction formatTimezoneShort(offset, dirtyDelimiter) {\n var sign = offset > 0 ? '-' : '+';\n var absOffset = Math.abs(offset);\n var hours = Math.floor(absOffset / 60);\n var minutes = absOffset % 60;\n if (minutes === 0) {\n return sign + String(hours);\n }\n var delimiter = dirtyDelimiter || '';\n return sign + String(hours) + delimiter + (0, _index6.default)(minutes, 2);\n}\nfunction formatTimezoneWithOptionalMinutes(offset, dirtyDelimiter) {\n if (offset % 60 === 0) {\n var sign = offset > 0 ? '-' : '+';\n return sign + (0, _index6.default)(Math.abs(offset) / 60, 2);\n }\n return formatTimezone(offset, dirtyDelimiter);\n}\nfunction formatTimezone(offset, dirtyDelimiter) {\n var delimiter = dirtyDelimiter || '';\n var sign = offset > 0 ? '-' : '+';\n var absOffset = Math.abs(offset);\n var hours = (0, _index6.default)(Math.floor(absOffset / 60), 2);\n var minutes = (0, _index6.default)(absOffset % 60, 2);\n return sign + hours + delimiter + minutes;\n}\nvar _default = formatters;\nexports.default = _default;\nmodule.exports = exports.default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\nvar dateLongFormatter = function dateLongFormatter(pattern, formatLong) {\n switch (pattern) {\n case 'P':\n return formatLong.date({\n width: 'short'\n });\n case 'PP':\n return formatLong.date({\n width: 'medium'\n });\n case 'PPP':\n return formatLong.date({\n width: 'long'\n });\n case 'PPPP':\n default:\n return formatLong.date({\n width: 'full'\n });\n }\n};\nvar timeLongFormatter = function timeLongFormatter(pattern, formatLong) {\n switch (pattern) {\n case 'p':\n return formatLong.time({\n width: 'short'\n });\n case 'pp':\n return formatLong.time({\n width: 'medium'\n });\n case 'ppp':\n return formatLong.time({\n width: 'long'\n });\n case 'pppp':\n default:\n return formatLong.time({\n width: 'full'\n });\n }\n};\nvar dateTimeLongFormatter = function dateTimeLongFormatter(pattern, formatLong) {\n var matchResult = pattern.match(/(P+)(p+)?/) || [];\n var datePattern = matchResult[1];\n var timePattern = matchResult[2];\n if (!timePattern) {\n return dateLongFormatter(pattern, formatLong);\n }\n var dateTimeFormat;\n switch (datePattern) {\n case 'P':\n dateTimeFormat = formatLong.dateTime({\n width: 'short'\n });\n break;\n case 'PP':\n dateTimeFormat = formatLong.dateTime({\n width: 'medium'\n });\n break;\n case 'PPP':\n dateTimeFormat = formatLong.dateTime({\n width: 'long'\n });\n break;\n case 'PPPP':\n default:\n dateTimeFormat = formatLong.dateTime({\n width: 'full'\n });\n break;\n }\n return dateTimeFormat.replace('{{date}}', dateLongFormatter(datePattern, formatLong)).replace('{{time}}', timeLongFormatter(timePattern, formatLong));\n};\nvar longFormatters = {\n p: timeLongFormatter,\n P: dateTimeLongFormatter\n};\nvar _default = longFormatters;\nexports.default = _default;\nmodule.exports = exports.default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = getTimezoneOffsetInMilliseconds;\n/**\n * Google Chrome as of 67.0.3396.87 introduced timezones with offset that includes seconds.\n * They usually appear for dates that denote time before the timezones were introduced\n * (e.g. for 'Europe/Prague' timezone the offset is GMT+00:57:44 before 1 October 1891\n * and GMT+01:00:00 after that date)\n *\n * Date#getTimezoneOffset returns the offset in minutes and would return 57 for the example above,\n * which would lead to incorrect calculations.\n *\n * This function returns the timezone offset in milliseconds that takes seconds in account.\n */\nfunction getTimezoneOffsetInMilliseconds(date) {\n var utcDate = new Date(Date.UTC(date.getFullYear(), date.getMonth(), date.getDate(), date.getHours(), date.getMinutes(), date.getSeconds(), date.getMilliseconds()));\n utcDate.setUTCFullYear(date.getFullYear());\n return date.getTime() - utcDate.getTime();\n}\nmodule.exports = exports.default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.isProtectedDayOfYearToken = isProtectedDayOfYearToken;\nexports.isProtectedWeekYearToken = isProtectedWeekYearToken;\nexports.throwProtectedError = throwProtectedError;\nvar protectedDayOfYearTokens = ['D', 'DD'];\nvar protectedWeekYearTokens = ['YY', 'YYYY'];\nfunction isProtectedDayOfYearToken(token) {\n return protectedDayOfYearTokens.indexOf(token) !== -1;\n}\nfunction isProtectedWeekYearToken(token) {\n return protectedWeekYearTokens.indexOf(token) !== -1;\n}\nfunction throwProtectedError(token, format, input) {\n if (token === 'YYYY') {\n throw new RangeError(\"Use `yyyy` instead of `YYYY` (in `\".concat(format, \"`) for formatting years to the input `\").concat(input, \"`; see: https://github.com/date-fns/date-fns/blob/master/docs/unicodeTokens.md\"));\n } else if (token === 'YY') {\n throw new RangeError(\"Use `yy` instead of `YY` (in `\".concat(format, \"`) for formatting years to the input `\").concat(input, \"`; see: https://github.com/date-fns/date-fns/blob/master/docs/unicodeTokens.md\"));\n } else if (token === 'D') {\n throw new RangeError(\"Use `d` instead of `D` (in `\".concat(format, \"`) for formatting days of the month to the input `\").concat(input, \"`; see: https://github.com/date-fns/date-fns/blob/master/docs/unicodeTokens.md\"));\n } else if (token === 'DD') {\n throw new RangeError(\"Use `dd` instead of `DD` (in `\".concat(format, \"`) for formatting days of the month to the input `\").concat(input, \"`; see: https://github.com/date-fns/date-fns/blob/master/docs/unicodeTokens.md\"));\n }\n}","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\nvar formatDistanceLocale = {\n lessThanXSeconds: {\n one: 'less than a second',\n other: 'less than {{count}} seconds'\n },\n xSeconds: {\n one: '1 second',\n other: '{{count}} seconds'\n },\n halfAMinute: 'half a minute',\n lessThanXMinutes: {\n one: 'less than a minute',\n other: 'less than {{count}} minutes'\n },\n xMinutes: {\n one: '1 minute',\n other: '{{count}} minutes'\n },\n aboutXHours: {\n one: 'about 1 hour',\n other: 'about {{count}} hours'\n },\n xHours: {\n one: '1 hour',\n other: '{{count}} hours'\n },\n xDays: {\n one: '1 day',\n other: '{{count}} days'\n },\n aboutXWeeks: {\n one: 'about 1 week',\n other: 'about {{count}} weeks'\n },\n xWeeks: {\n one: '1 week',\n other: '{{count}} weeks'\n },\n aboutXMonths: {\n one: 'about 1 month',\n other: 'about {{count}} months'\n },\n xMonths: {\n one: '1 month',\n other: '{{count}} months'\n },\n aboutXYears: {\n one: 'about 1 year',\n other: 'about {{count}} years'\n },\n xYears: {\n one: '1 year',\n other: '{{count}} years'\n },\n overXYears: {\n one: 'over 1 year',\n other: 'over {{count}} years'\n },\n almostXYears: {\n one: 'almost 1 year',\n other: 'almost {{count}} years'\n }\n};\nvar formatDistance = function formatDistance(token, count, options) {\n var result;\n var tokenValue = formatDistanceLocale[token];\n if (typeof tokenValue === 'string') {\n result = tokenValue;\n } else if (count === 1) {\n result = tokenValue.one;\n } else {\n result = tokenValue.other.replace('{{count}}', count.toString());\n }\n if (options !== null && options !== void 0 && options.addSuffix) {\n if (options.comparison && options.comparison > 0) {\n return 'in ' + result;\n } else {\n return result + ' ago';\n }\n }\n return result;\n};\nvar _default = formatDistance;\nexports.default = _default;\nmodule.exports = exports.default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = buildFormatLongFn;\nfunction buildFormatLongFn(args) {\n return function () {\n var options = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};\n // TODO: Remove String()\n var width = options.width ? String(options.width) : args.defaultWidth;\n var format = args.formats[width] || args.formats[args.defaultWidth];\n return format;\n };\n}\nmodule.exports = exports.default;","\"use strict\";\n\nvar _interopRequireDefault = require(\"@babel/runtime/helpers/interopRequireDefault\").default;\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\nvar _index = _interopRequireDefault(require(\"../../../_lib/buildFormatLongFn/index.js\"));\nvar dateFormats = {\n full: 'EEEE, MMMM do, y',\n long: 'MMMM do, y',\n medium: 'MMM d, y',\n short: 'MM/dd/yyyy'\n};\nvar timeFormats = {\n full: 'h:mm:ss a zzzz',\n long: 'h:mm:ss a z',\n medium: 'h:mm:ss a',\n short: 'h:mm a'\n};\nvar dateTimeFormats = {\n full: \"{{date}} 'at' {{time}}\",\n long: \"{{date}} 'at' {{time}}\",\n medium: '{{date}}, {{time}}',\n short: '{{date}}, {{time}}'\n};\nvar formatLong = {\n date: (0, _index.default)({\n formats: dateFormats,\n defaultWidth: 'full'\n }),\n time: (0, _index.default)({\n formats: timeFormats,\n defaultWidth: 'full'\n }),\n dateTime: (0, _index.default)({\n formats: dateTimeFormats,\n defaultWidth: 'full'\n })\n};\nvar _default = formatLong;\nexports.default = _default;\nmodule.exports = exports.default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\nvar formatRelativeLocale = {\n lastWeek: \"'last' eeee 'at' p\",\n yesterday: \"'yesterday at' p\",\n today: \"'today at' p\",\n tomorrow: \"'tomorrow at' p\",\n nextWeek: \"eeee 'at' p\",\n other: 'P'\n};\nvar formatRelative = function formatRelative(token, _date, _baseDate, _options) {\n return formatRelativeLocale[token];\n};\nvar _default = formatRelative;\nexports.default = _default;\nmodule.exports = exports.default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = buildLocalizeFn;\nfunction buildLocalizeFn(args) {\n return function (dirtyIndex, options) {\n var context = options !== null && options !== void 0 && options.context ? String(options.context) : 'standalone';\n var valuesArray;\n if (context === 'formatting' && args.formattingValues) {\n var defaultWidth = args.defaultFormattingWidth || args.defaultWidth;\n var width = options !== null && options !== void 0 && options.width ? String(options.width) : defaultWidth;\n valuesArray = args.formattingValues[width] || args.formattingValues[defaultWidth];\n } else {\n var _defaultWidth = args.defaultWidth;\n var _width = options !== null && options !== void 0 && options.width ? String(options.width) : args.defaultWidth;\n valuesArray = args.values[_width] || args.values[_defaultWidth];\n }\n var index = args.argumentCallback ? args.argumentCallback(dirtyIndex) : dirtyIndex;\n // @ts-ignore: For some reason TypeScript just don't want to match it, no matter how hard we try. I challenge you to try to remove it!\n return valuesArray[index];\n };\n}\nmodule.exports = exports.default;","\"use strict\";\n\nvar _interopRequireDefault = require(\"@babel/runtime/helpers/interopRequireDefault\").default;\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\nvar _index = _interopRequireDefault(require(\"../../../_lib/buildLocalizeFn/index.js\"));\nvar eraValues = {\n narrow: ['B', 'A'],\n abbreviated: ['BC', 'AD'],\n wide: ['Before Christ', 'Anno Domini']\n};\nvar quarterValues = {\n narrow: ['1', '2', '3', '4'],\n abbreviated: ['Q1', 'Q2', 'Q3', 'Q4'],\n wide: ['1st quarter', '2nd quarter', '3rd quarter', '4th quarter']\n};\n\n// Note: in English, the names of days of the week and months are capitalized.\n// If you are making a new locale based on this one, check if the same is true for the language you're working on.\n// Generally, formatted dates should look like they are in the middle of a sentence,\n// e.g. in Spanish language the weekdays and months should be in the lowercase.\nvar monthValues = {\n narrow: ['J', 'F', 'M', 'A', 'M', 'J', 'J', 'A', 'S', 'O', 'N', 'D'],\n abbreviated: ['Jan', 'Feb', 'Mar', 'Apr', 'May', 'Jun', 'Jul', 'Aug', 'Sep', 'Oct', 'Nov', 'Dec'],\n wide: ['January', 'February', 'March', 'April', 'May', 'June', 'July', 'August', 'September', 'October', 'November', 'December']\n};\nvar dayValues = {\n narrow: ['S', 'M', 'T', 'W', 'T', 'F', 'S'],\n short: ['Su', 'Mo', 'Tu', 'We', 'Th', 'Fr', 'Sa'],\n abbreviated: ['Sun', 'Mon', 'Tue', 'Wed', 'Thu', 'Fri', 'Sat'],\n wide: ['Sunday', 'Monday', 'Tuesday', 'Wednesday', 'Thursday', 'Friday', 'Saturday']\n};\nvar dayPeriodValues = {\n narrow: {\n am: 'a',\n pm: 'p',\n midnight: 'mi',\n noon: 'n',\n morning: 'morning',\n afternoon: 'afternoon',\n evening: 'evening',\n night: 'night'\n },\n abbreviated: {\n am: 'AM',\n pm: 'PM',\n midnight: 'midnight',\n noon: 'noon',\n morning: 'morning',\n afternoon: 'afternoon',\n evening: 'evening',\n night: 'night'\n },\n wide: {\n am: 'a.m.',\n pm: 'p.m.',\n midnight: 'midnight',\n noon: 'noon',\n morning: 'morning',\n afternoon: 'afternoon',\n evening: 'evening',\n night: 'night'\n }\n};\nvar formattingDayPeriodValues = {\n narrow: {\n am: 'a',\n pm: 'p',\n midnight: 'mi',\n noon: 'n',\n morning: 'in the morning',\n afternoon: 'in the afternoon',\n evening: 'in the evening',\n night: 'at night'\n },\n abbreviated: {\n am: 'AM',\n pm: 'PM',\n midnight: 'midnight',\n noon: 'noon',\n morning: 'in the morning',\n afternoon: 'in the afternoon',\n evening: 'in the evening',\n night: 'at night'\n },\n wide: {\n am: 'a.m.',\n pm: 'p.m.',\n midnight: 'midnight',\n noon: 'noon',\n morning: 'in the morning',\n afternoon: 'in the afternoon',\n evening: 'in the evening',\n night: 'at night'\n }\n};\nvar ordinalNumber = function ordinalNumber(dirtyNumber, _options) {\n var number = Number(dirtyNumber);\n\n // If ordinal numbers depend on context, for example,\n // if they are different for different grammatical genders,\n // use `options.unit`.\n //\n // `unit` can be 'year', 'quarter', 'month', 'week', 'date', 'dayOfYear',\n // 'day', 'hour', 'minute', 'second'.\n\n var rem100 = number % 100;\n if (rem100 > 20 || rem100 < 10) {\n switch (rem100 % 10) {\n case 1:\n return number + 'st';\n case 2:\n return number + 'nd';\n case 3:\n return number + 'rd';\n }\n }\n return number + 'th';\n};\nvar localize = {\n ordinalNumber: ordinalNumber,\n era: (0, _index.default)({\n values: eraValues,\n defaultWidth: 'wide'\n }),\n quarter: (0, _index.default)({\n values: quarterValues,\n defaultWidth: 'wide',\n argumentCallback: function argumentCallback(quarter) {\n return quarter - 1;\n }\n }),\n month: (0, _index.default)({\n values: monthValues,\n defaultWidth: 'wide'\n }),\n day: (0, _index.default)({\n values: dayValues,\n defaultWidth: 'wide'\n }),\n dayPeriod: (0, _index.default)({\n values: dayPeriodValues,\n defaultWidth: 'wide',\n formattingValues: formattingDayPeriodValues,\n defaultFormattingWidth: 'wide'\n })\n};\nvar _default = localize;\nexports.default = _default;\nmodule.exports = exports.default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = buildMatchFn;\nfunction buildMatchFn(args) {\n return function (string) {\n var options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n var width = options.width;\n var matchPattern = width && args.matchPatterns[width] || args.matchPatterns[args.defaultMatchWidth];\n var matchResult = string.match(matchPattern);\n if (!matchResult) {\n return null;\n }\n var matchedString = matchResult[0];\n var parsePatterns = width && args.parsePatterns[width] || args.parsePatterns[args.defaultParseWidth];\n var key = Array.isArray(parsePatterns) ? findIndex(parsePatterns, function (pattern) {\n return pattern.test(matchedString);\n }) : findKey(parsePatterns, function (pattern) {\n return pattern.test(matchedString);\n });\n var value;\n value = args.valueCallback ? args.valueCallback(key) : key;\n value = options.valueCallback ? options.valueCallback(value) : value;\n var rest = string.slice(matchedString.length);\n return {\n value: value,\n rest: rest\n };\n };\n}\nfunction findKey(object, predicate) {\n for (var key in object) {\n if (object.hasOwnProperty(key) && predicate(object[key])) {\n return key;\n }\n }\n return undefined;\n}\nfunction findIndex(array, predicate) {\n for (var key = 0; key < array.length; key++) {\n if (predicate(array[key])) {\n return key;\n }\n }\n return undefined;\n}\nmodule.exports = exports.default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = buildMatchPatternFn;\nfunction buildMatchPatternFn(args) {\n return function (string) {\n var options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n var matchResult = string.match(args.matchPattern);\n if (!matchResult) return null;\n var matchedString = matchResult[0];\n var parseResult = string.match(args.parsePattern);\n if (!parseResult) return null;\n var value = args.valueCallback ? args.valueCallback(parseResult[0]) : parseResult[0];\n value = options.valueCallback ? options.valueCallback(value) : value;\n var rest = string.slice(matchedString.length);\n return {\n value: value,\n rest: rest\n };\n };\n}\nmodule.exports = exports.default;","\"use strict\";\n\nvar _interopRequireDefault = require(\"@babel/runtime/helpers/interopRequireDefault\").default;\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\nvar _index = _interopRequireDefault(require(\"../../../_lib/buildMatchFn/index.js\"));\nvar _index2 = _interopRequireDefault(require(\"../../../_lib/buildMatchPatternFn/index.js\"));\nvar matchOrdinalNumberPattern = /^(\\d+)(th|st|nd|rd)?/i;\nvar parseOrdinalNumberPattern = /\\d+/i;\nvar matchEraPatterns = {\n narrow: /^(b|a)/i,\n abbreviated: /^(b\\.?\\s?c\\.?|b\\.?\\s?c\\.?\\s?e\\.?|a\\.?\\s?d\\.?|c\\.?\\s?e\\.?)/i,\n wide: /^(before christ|before common era|anno domini|common era)/i\n};\nvar parseEraPatterns = {\n any: [/^b/i, /^(a|c)/i]\n};\nvar matchQuarterPatterns = {\n narrow: /^[1234]/i,\n abbreviated: /^q[1234]/i,\n wide: /^[1234](th|st|nd|rd)? quarter/i\n};\nvar parseQuarterPatterns = {\n any: [/1/i, /2/i, /3/i, /4/i]\n};\nvar matchMonthPatterns = {\n narrow: /^[jfmasond]/i,\n abbreviated: /^(jan|feb|mar|apr|may|jun|jul|aug|sep|oct|nov|dec)/i,\n wide: /^(january|february|march|april|may|june|july|august|september|october|november|december)/i\n};\nvar parseMonthPatterns = {\n narrow: [/^j/i, /^f/i, /^m/i, /^a/i, /^m/i, /^j/i, /^j/i, /^a/i, /^s/i, /^o/i, /^n/i, /^d/i],\n any: [/^ja/i, /^f/i, /^mar/i, /^ap/i, /^may/i, /^jun/i, /^jul/i, /^au/i, /^s/i, /^o/i, /^n/i, /^d/i]\n};\nvar matchDayPatterns = {\n narrow: /^[smtwf]/i,\n short: /^(su|mo|tu|we|th|fr|sa)/i,\n abbreviated: /^(sun|mon|tue|wed|thu|fri|sat)/i,\n wide: /^(sunday|monday|tuesday|wednesday|thursday|friday|saturday)/i\n};\nvar parseDayPatterns = {\n narrow: [/^s/i, /^m/i, /^t/i, /^w/i, /^t/i, /^f/i, /^s/i],\n any: [/^su/i, /^m/i, /^tu/i, /^w/i, /^th/i, /^f/i, /^sa/i]\n};\nvar matchDayPeriodPatterns = {\n narrow: /^(a|p|mi|n|(in the|at) (morning|afternoon|evening|night))/i,\n any: /^([ap]\\.?\\s?m\\.?|midnight|noon|(in the|at) (morning|afternoon|evening|night))/i\n};\nvar parseDayPeriodPatterns = {\n any: {\n am: /^a/i,\n pm: /^p/i,\n midnight: /^mi/i,\n noon: /^no/i,\n morning: /morning/i,\n afternoon: /afternoon/i,\n evening: /evening/i,\n night: /night/i\n }\n};\nvar match = {\n ordinalNumber: (0, _index2.default)({\n matchPattern: matchOrdinalNumberPattern,\n parsePattern: parseOrdinalNumberPattern,\n valueCallback: function valueCallback(value) {\n return parseInt(value, 10);\n }\n }),\n era: (0, _index.default)({\n matchPatterns: matchEraPatterns,\n defaultMatchWidth: 'wide',\n parsePatterns: parseEraPatterns,\n defaultParseWidth: 'any'\n }),\n quarter: (0, _index.default)({\n matchPatterns: matchQuarterPatterns,\n defaultMatchWidth: 'wide',\n parsePatterns: parseQuarterPatterns,\n defaultParseWidth: 'any',\n valueCallback: function valueCallback(index) {\n return index + 1;\n }\n }),\n month: (0, _index.default)({\n matchPatterns: matchMonthPatterns,\n defaultMatchWidth: 'wide',\n parsePatterns: parseMonthPatterns,\n defaultParseWidth: 'any'\n }),\n day: (0, _index.default)({\n matchPatterns: matchDayPatterns,\n defaultMatchWidth: 'wide',\n parsePatterns: parseDayPatterns,\n defaultParseWidth: 'any'\n }),\n dayPeriod: (0, _index.default)({\n matchPatterns: matchDayPeriodPatterns,\n defaultMatchWidth: 'any',\n parsePatterns: parseDayPeriodPatterns,\n defaultParseWidth: 'any'\n })\n};\nvar _default = match;\nexports.default = _default;\nmodule.exports = exports.default;","\"use strict\";\n\nvar _interopRequireDefault = require(\"@babel/runtime/helpers/interopRequireDefault\").default;\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\nvar _index = _interopRequireDefault(require(\"./_lib/formatDistance/index.js\"));\nvar _index2 = _interopRequireDefault(require(\"./_lib/formatLong/index.js\"));\nvar _index3 = _interopRequireDefault(require(\"./_lib/formatRelative/index.js\"));\nvar _index4 = _interopRequireDefault(require(\"./_lib/localize/index.js\"));\nvar _index5 = _interopRequireDefault(require(\"./_lib/match/index.js\"));\n/**\n * @type {Locale}\n * @category Locales\n * @summary English locale (United States).\n * @language English\n * @iso-639-2 eng\n * @author Sasha Koss [@kossnocorp]{@link https://github.com/kossnocorp}\n * @author Lesha Koss [@leshakoss]{@link https://github.com/leshakoss}\n */\nvar locale = {\n code: 'en-US',\n formatDistance: _index.default,\n formatLong: _index2.default,\n formatRelative: _index3.default,\n localize: _index4.default,\n match: _index5.default,\n options: {\n weekStartsOn: 0 /* Sunday */,\n firstWeekContainsDate: 1\n }\n};\nvar _default = locale;\nexports.default = _default;\nmodule.exports = exports.default;","\"use strict\";\n\nvar _interopRequireDefault = require(\"@babel/runtime/helpers/interopRequireDefault\").default;\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\nvar _index = _interopRequireDefault(require(\"../../locale/en-US/index.js\"));\nvar _default = _index.default;\nexports.default = _default;\nmodule.exports = exports.default;","\"use strict\";\n\nvar _interopRequireDefault = require(\"@babel/runtime/helpers/interopRequireDefault\").default;\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = format;\nvar _index = _interopRequireDefault(require(\"../isValid/index.js\"));\nvar _index2 = _interopRequireDefault(require(\"../subMilliseconds/index.js\"));\nvar _index3 = _interopRequireDefault(require(\"../toDate/index.js\"));\nvar _index4 = _interopRequireDefault(require(\"../_lib/format/formatters/index.js\"));\nvar _index5 = _interopRequireDefault(require(\"../_lib/format/longFormatters/index.js\"));\nvar _index6 = _interopRequireDefault(require(\"../_lib/getTimezoneOffsetInMilliseconds/index.js\"));\nvar _index7 = require(\"../_lib/protectedTokens/index.js\");\nvar _index8 = _interopRequireDefault(require(\"../_lib/toInteger/index.js\"));\nvar _index9 = _interopRequireDefault(require(\"../_lib/requiredArgs/index.js\"));\nvar _index10 = require(\"../_lib/defaultOptions/index.js\");\nvar _index11 = _interopRequireDefault(require(\"../_lib/defaultLocale/index.js\"));\n// This RegExp consists of three parts separated by `|`:\n// - [yYQqMLwIdDecihHKkms]o matches any available ordinal number token\n// (one of the certain letters followed by `o`)\n// - (\\w)\\1* matches any sequences of the same letter\n// - '' matches two quote characters in a row\n// - '(''|[^'])+('|$) matches anything surrounded by two quote characters ('),\n// except a single quote symbol, which ends the sequence.\n// Two quote characters do not end the sequence.\n// If there is no matching single quote\n// then the sequence will continue until the end of the string.\n// - . matches any single character unmatched by previous parts of the RegExps\nvar formattingTokensRegExp = /[yYQqMLwIdDecihHKkms]o|(\\w)\\1*|''|'(''|[^'])+('|$)|./g;\n\n// This RegExp catches symbols escaped by quotes, and also\n// sequences of symbols P, p, and the combinations like `PPPPPPPppppp`\nvar longFormattingTokensRegExp = /P+p+|P+|p+|''|'(''|[^'])+('|$)|./g;\nvar escapedStringRegExp = /^'([^]*?)'?$/;\nvar doubleQuoteRegExp = /''/g;\nvar unescapedLatinCharacterRegExp = /[a-zA-Z]/;\n\n/**\n * @name format\n * @category Common Helpers\n * @summary Format the date.\n *\n * @description\n * Return the formatted date string in the given format. The result may vary by locale.\n *\n * > ⚠️ Please note that the `format` tokens differ from Moment.js and other libraries.\n * > See: https://github.com/date-fns/date-fns/blob/master/docs/unicodeTokens.md\n *\n * The characters wrapped between two single quotes characters (') are escaped.\n * Two single quotes in a row, whether inside or outside a quoted sequence, represent a 'real' single quote.\n * (see the last example)\n *\n * Format of the string is based on Unicode Technical Standard #35:\n * https://www.unicode.org/reports/tr35/tr35-dates.html#Date_Field_Symbol_Table\n * with a few additions (see note 7 below the table).\n *\n * Accepted patterns:\n * | Unit | Pattern | Result examples | Notes |\n * |---------------------------------|---------|-----------------------------------|-------|\n * | Era | G..GGG | AD, BC | |\n * | | GGGG | Anno Domini, Before Christ | 2 |\n * | | GGGGG | A, B | |\n * | Calendar year | y | 44, 1, 1900, 2017 | 5 |\n * | | yo | 44th, 1st, 0th, 17th | 5,7 |\n * | | yy | 44, 01, 00, 17 | 5 |\n * | | yyy | 044, 001, 1900, 2017 | 5 |\n * | | yyyy | 0044, 0001, 1900, 2017 | 5 |\n * | | yyyyy | ... | 3,5 |\n * | Local week-numbering year | Y | 44, 1, 1900, 2017 | 5 |\n * | | Yo | 44th, 1st, 1900th, 2017th | 5,7 |\n * | | YY | 44, 01, 00, 17 | 5,8 |\n * | | YYY | 044, 001, 1900, 2017 | 5 |\n * | | YYYY | 0044, 0001, 1900, 2017 | 5,8 |\n * | | YYYYY | ... | 3,5 |\n * | ISO week-numbering year | R | -43, 0, 1, 1900, 2017 | 5,7 |\n * | | RR | -43, 00, 01, 1900, 2017 | 5,7 |\n * | | RRR | -043, 000, 001, 1900, 2017 | 5,7 |\n * | | RRRR | -0043, 0000, 0001, 1900, 2017 | 5,7 |\n * | | RRRRR | ... | 3,5,7 |\n * | Extended year | u | -43, 0, 1, 1900, 2017 | 5 |\n * | | uu | -43, 01, 1900, 2017 | 5 |\n * | | uuu | -043, 001, 1900, 2017 | 5 |\n * | | uuuu | -0043, 0001, 1900, 2017 | 5 |\n * | | uuuuu | ... | 3,5 |\n * | Quarter (formatting) | Q | 1, 2, 3, 4 | |\n * | | Qo | 1st, 2nd, 3rd, 4th | 7 |\n * | | QQ | 01, 02, 03, 04 | |\n * | | QQQ | Q1, Q2, Q3, Q4 | |\n * | | QQQQ | 1st quarter, 2nd quarter, ... | 2 |\n * | | QQQQQ | 1, 2, 3, 4 | 4 |\n * | Quarter (stand-alone) | q | 1, 2, 3, 4 | |\n * | | qo | 1st, 2nd, 3rd, 4th | 7 |\n * | | qq | 01, 02, 03, 04 | |\n * | | qqq | Q1, Q2, Q3, Q4 | |\n * | | qqqq | 1st quarter, 2nd quarter, ... | 2 |\n * | | qqqqq | 1, 2, 3, 4 | 4 |\n * | Month (formatting) | M | 1, 2, ..., 12 | |\n * | | Mo | 1st, 2nd, ..., 12th | 7 |\n * | | MM | 01, 02, ..., 12 | |\n * | | MMM | Jan, Feb, ..., Dec | |\n * | | MMMM | January, February, ..., December | 2 |\n * | | MMMMM | J, F, ..., D | |\n * | Month (stand-alone) | L | 1, 2, ..., 12 | |\n * | | Lo | 1st, 2nd, ..., 12th | 7 |\n * | | LL | 01, 02, ..., 12 | |\n * | | LLL | Jan, Feb, ..., Dec | |\n * | | LLLL | January, February, ..., December | 2 |\n * | | LLLLL | J, F, ..., D | |\n * | Local week of year | w | 1, 2, ..., 53 | |\n * | | wo | 1st, 2nd, ..., 53th | 7 |\n * | | ww | 01, 02, ..., 53 | |\n * | ISO week of year | I | 1, 2, ..., 53 | 7 |\n * | | Io | 1st, 2nd, ..., 53th | 7 |\n * | | II | 01, 02, ..., 53 | 7 |\n * | Day of month | d | 1, 2, ..., 31 | |\n * | | do | 1st, 2nd, ..., 31st | 7 |\n * | | dd | 01, 02, ..., 31 | |\n * | Day of year | D | 1, 2, ..., 365, 366 | 9 |\n * | | Do | 1st, 2nd, ..., 365th, 366th | 7 |\n * | | DD | 01, 02, ..., 365, 366 | 9 |\n * | | DDD | 001, 002, ..., 365, 366 | |\n * | | DDDD | ... | 3 |\n * | Day of week (formatting) | E..EEE | Mon, Tue, Wed, ..., Sun | |\n * | | EEEE | Monday, Tuesday, ..., Sunday | 2 |\n * | | EEEEE | M, T, W, T, F, S, S | |\n * | | EEEEEE | Mo, Tu, We, Th, Fr, Sa, Su | |\n * | ISO day of week (formatting) | i | 1, 2, 3, ..., 7 | 7 |\n * | | io | 1st, 2nd, ..., 7th | 7 |\n * | | ii | 01, 02, ..., 07 | 7 |\n * | | iii | Mon, Tue, Wed, ..., Sun | 7 |\n * | | iiii | Monday, Tuesday, ..., Sunday | 2,7 |\n * | | iiiii | M, T, W, T, F, S, S | 7 |\n * | | iiiiii | Mo, Tu, We, Th, Fr, Sa, Su | 7 |\n * | Local day of week (formatting) | e | 2, 3, 4, ..., 1 | |\n * | | eo | 2nd, 3rd, ..., 1st | 7 |\n * | | ee | 02, 03, ..., 01 | |\n * | | eee | Mon, Tue, Wed, ..., Sun | |\n * | | eeee | Monday, Tuesday, ..., Sunday | 2 |\n * | | eeeee | M, T, W, T, F, S, S | |\n * | | eeeeee | Mo, Tu, We, Th, Fr, Sa, Su | |\n * | Local day of week (stand-alone) | c | 2, 3, 4, ..., 1 | |\n * | | co | 2nd, 3rd, ..., 1st | 7 |\n * | | cc | 02, 03, ..., 01 | |\n * | | ccc | Mon, Tue, Wed, ..., Sun | |\n * | | cccc | Monday, Tuesday, ..., Sunday | 2 |\n * | | ccccc | M, T, W, T, F, S, S | |\n * | | cccccc | Mo, Tu, We, Th, Fr, Sa, Su | |\n * | AM, PM | a..aa | AM, PM | |\n * | | aaa | am, pm | |\n * | | aaaa | a.m., p.m. | 2 |\n * | | aaaaa | a, p | |\n * | AM, PM, noon, midnight | b..bb | AM, PM, noon, midnight | |\n * | | bbb | am, pm, noon, midnight | |\n * | | bbbb | a.m., p.m., noon, midnight | 2 |\n * | | bbbbb | a, p, n, mi | |\n * | Flexible day period | B..BBB | at night, in the morning, ... | |\n * | | BBBB | at night, in the morning, ... | 2 |\n * | | BBBBB | at night, in the morning, ... | |\n * | Hour [1-12] | h | 1, 2, ..., 11, 12 | |\n * | | ho | 1st, 2nd, ..., 11th, 12th | 7 |\n * | | hh | 01, 02, ..., 11, 12 | |\n * | Hour [0-23] | H | 0, 1, 2, ..., 23 | |\n * | | Ho | 0th, 1st, 2nd, ..., 23rd | 7 |\n * | | HH | 00, 01, 02, ..., 23 | |\n * | Hour [0-11] | K | 1, 2, ..., 11, 0 | |\n * | | Ko | 1st, 2nd, ..., 11th, 0th | 7 |\n * | | KK | 01, 02, ..., 11, 00 | |\n * | Hour [1-24] | k | 24, 1, 2, ..., 23 | |\n * | | ko | 24th, 1st, 2nd, ..., 23rd | 7 |\n * | | kk | 24, 01, 02, ..., 23 | |\n * | Minute | m | 0, 1, ..., 59 | |\n * | | mo | 0th, 1st, ..., 59th | 7 |\n * | | mm | 00, 01, ..., 59 | |\n * | Second | s | 0, 1, ..., 59 | |\n * | | so | 0th, 1st, ..., 59th | 7 |\n * | | ss | 00, 01, ..., 59 | |\n * | Fraction of second | S | 0, 1, ..., 9 | |\n * | | SS | 00, 01, ..., 99 | |\n * | | SSS | 000, 001, ..., 999 | |\n * | | SSSS | ... | 3 |\n * | Timezone (ISO-8601 w/ Z) | X | -08, +0530, Z | |\n * | | XX | -0800, +0530, Z | |\n * | | XXX | -08:00, +05:30, Z | |\n * | | XXXX | -0800, +0530, Z, +123456 | 2 |\n * | | XXXXX | -08:00, +05:30, Z, +12:34:56 | |\n * | Timezone (ISO-8601 w/o Z) | x | -08, +0530, +00 | |\n * | | xx | -0800, +0530, +0000 | |\n * | | xxx | -08:00, +05:30, +00:00 | 2 |\n * | | xxxx | -0800, +0530, +0000, +123456 | |\n * | | xxxxx | -08:00, +05:30, +00:00, +12:34:56 | |\n * | Timezone (GMT) | O...OOO | GMT-8, GMT+5:30, GMT+0 | |\n * | | OOOO | GMT-08:00, GMT+05:30, GMT+00:00 | 2 |\n * | Timezone (specific non-locat.) | z...zzz | GMT-8, GMT+5:30, GMT+0 | 6 |\n * | | zzzz | GMT-08:00, GMT+05:30, GMT+00:00 | 2,6 |\n * | Seconds timestamp | t | 512969520 | 7 |\n * | | tt | ... | 3,7 |\n * | Milliseconds timestamp | T | 512969520900 | 7 |\n * | | TT | ... | 3,7 |\n * | Long localized date | P | 04/29/1453 | 7 |\n * | | PP | Apr 29, 1453 | 7 |\n * | | PPP | April 29th, 1453 | 7 |\n * | | PPPP | Friday, April 29th, 1453 | 2,7 |\n * | Long localized time | p | 12:00 AM | 7 |\n * | | pp | 12:00:00 AM | 7 |\n * | | ppp | 12:00:00 AM GMT+2 | 7 |\n * | | pppp | 12:00:00 AM GMT+02:00 | 2,7 |\n * | Combination of date and time | Pp | 04/29/1453, 12:00 AM | 7 |\n * | | PPpp | Apr 29, 1453, 12:00:00 AM | 7 |\n * | | PPPppp | April 29th, 1453 at ... | 7 |\n * | | PPPPpppp| Friday, April 29th, 1453 at ... | 2,7 |\n * Notes:\n * 1. \"Formatting\" units (e.g. formatting quarter) in the default en-US locale\n * are the same as \"stand-alone\" units, but are different in some languages.\n * \"Formatting\" units are declined according to the rules of the language\n * in the context of a date. \"Stand-alone\" units are always nominative singular:\n *\n * `format(new Date(2017, 10, 6), 'do LLLL', {locale: cs}) //=> '6. listopad'`\n *\n * `format(new Date(2017, 10, 6), 'do MMMM', {locale: cs}) //=> '6. listopadu'`\n *\n * 2. Any sequence of the identical letters is a pattern, unless it is escaped by\n * the single quote characters (see below).\n * If the sequence is longer than listed in table (e.g. `EEEEEEEEEEE`)\n * the output will be the same as default pattern for this unit, usually\n * the longest one (in case of ISO weekdays, `EEEE`). Default patterns for units\n * are marked with \"2\" in the last column of the table.\n *\n * `format(new Date(2017, 10, 6), 'MMM') //=> 'Nov'`\n *\n * `format(new Date(2017, 10, 6), 'MMMM') //=> 'November'`\n *\n * `format(new Date(2017, 10, 6), 'MMMMM') //=> 'N'`\n *\n * `format(new Date(2017, 10, 6), 'MMMMMM') //=> 'November'`\n *\n * `format(new Date(2017, 10, 6), 'MMMMMMM') //=> 'November'`\n *\n * 3. Some patterns could be unlimited length (such as `yyyyyyyy`).\n * The output will be padded with zeros to match the length of the pattern.\n *\n * `format(new Date(2017, 10, 6), 'yyyyyyyy') //=> '00002017'`\n *\n * 4. `QQQQQ` and `qqqqq` could be not strictly numerical in some locales.\n * These tokens represent the shortest form of the quarter.\n *\n * 5. The main difference between `y` and `u` patterns are B.C. years:\n *\n * | Year | `y` | `u` |\n * |------|-----|-----|\n * | AC 1 | 1 | 1 |\n * | BC 1 | 1 | 0 |\n * | BC 2 | 2 | -1 |\n *\n * Also `yy` always returns the last two digits of a year,\n * while `uu` pads single digit years to 2 characters and returns other years unchanged:\n *\n * | Year | `yy` | `uu` |\n * |------|------|------|\n * | 1 | 01 | 01 |\n * | 14 | 14 | 14 |\n * | 376 | 76 | 376 |\n * | 1453 | 53 | 1453 |\n *\n * The same difference is true for local and ISO week-numbering years (`Y` and `R`),\n * except local week-numbering years are dependent on `options.weekStartsOn`\n * and `options.firstWeekContainsDate` (compare [getISOWeekYear]{@link https://date-fns.org/docs/getISOWeekYear}\n * and [getWeekYear]{@link https://date-fns.org/docs/getWeekYear}).\n *\n * 6. Specific non-location timezones are currently unavailable in `date-fns`,\n * so right now these tokens fall back to GMT timezones.\n *\n * 7. These patterns are not in the Unicode Technical Standard #35:\n * - `i`: ISO day of week\n * - `I`: ISO week of year\n * - `R`: ISO week-numbering year\n * - `t`: seconds timestamp\n * - `T`: milliseconds timestamp\n * - `o`: ordinal number modifier\n * - `P`: long localized date\n * - `p`: long localized time\n *\n * 8. `YY` and `YYYY` tokens represent week-numbering years but they are often confused with years.\n * You should enable `options.useAdditionalWeekYearTokens` to use them. See: https://github.com/date-fns/date-fns/blob/master/docs/unicodeTokens.md\n *\n * 9. `D` and `DD` tokens represent days of the year but they are often confused with days of the month.\n * You should enable `options.useAdditionalDayOfYearTokens` to use them. See: https://github.com/date-fns/date-fns/blob/master/docs/unicodeTokens.md\n *\n * @param {Date|Number} date - the original date\n * @param {String} format - the string of tokens\n * @param {Object} [options] - an object with options.\n * @param {Locale} [options.locale=defaultLocale] - the locale object. See [Locale]{@link https://date-fns.org/docs/Locale}\n * @param {0|1|2|3|4|5|6} [options.weekStartsOn=0] - the index of the first day of the week (0 - Sunday)\n * @param {Number} [options.firstWeekContainsDate=1] - the day of January, which is\n * @param {Boolean} [options.useAdditionalWeekYearTokens=false] - if true, allows usage of the week-numbering year tokens `YY` and `YYYY`;\n * see: https://github.com/date-fns/date-fns/blob/master/docs/unicodeTokens.md\n * @param {Boolean} [options.useAdditionalDayOfYearTokens=false] - if true, allows usage of the day of year tokens `D` and `DD`;\n * see: https://github.com/date-fns/date-fns/blob/master/docs/unicodeTokens.md\n * @returns {String} the formatted date string\n * @throws {TypeError} 2 arguments required\n * @throws {RangeError} `date` must not be Invalid Date\n * @throws {RangeError} `options.locale` must contain `localize` property\n * @throws {RangeError} `options.locale` must contain `formatLong` property\n * @throws {RangeError} `options.weekStartsOn` must be between 0 and 6\n * @throws {RangeError} `options.firstWeekContainsDate` must be between 1 and 7\n * @throws {RangeError} use `yyyy` instead of `YYYY` for formatting years using [format provided] to the input [input provided]; see: https://github.com/date-fns/date-fns/blob/master/docs/unicodeTokens.md\n * @throws {RangeError} use `yy` instead of `YY` for formatting years using [format provided] to the input [input provided]; see: https://github.com/date-fns/date-fns/blob/master/docs/unicodeTokens.md\n * @throws {RangeError} use `d` instead of `D` for formatting days of the month using [format provided] to the input [input provided]; see: https://github.com/date-fns/date-fns/blob/master/docs/unicodeTokens.md\n * @throws {RangeError} use `dd` instead of `DD` for formatting days of the month using [format provided] to the input [input provided]; see: https://github.com/date-fns/date-fns/blob/master/docs/unicodeTokens.md\n * @throws {RangeError} format string contains an unescaped latin alphabet character\n *\n * @example\n * // Represent 11 February 2014 in middle-endian format:\n * const result = format(new Date(2014, 1, 11), 'MM/dd/yyyy')\n * //=> '02/11/2014'\n *\n * @example\n * // Represent 2 July 2014 in Esperanto:\n * import { eoLocale } from 'date-fns/locale/eo'\n * const result = format(new Date(2014, 6, 2), \"do 'de' MMMM yyyy\", {\n * locale: eoLocale\n * })\n * //=> '2-a de julio 2014'\n *\n * @example\n * // Escape string by single quote characters:\n * const result = format(new Date(2014, 6, 2, 15), \"h 'o''clock'\")\n * //=> \"3 o'clock\"\n */\n\nfunction format(dirtyDate, dirtyFormatStr, options) {\n var _ref, _options$locale, _ref2, _ref3, _ref4, _options$firstWeekCon, _options$locale2, _options$locale2$opti, _defaultOptions$local, _defaultOptions$local2, _ref5, _ref6, _ref7, _options$weekStartsOn, _options$locale3, _options$locale3$opti, _defaultOptions$local3, _defaultOptions$local4;\n (0, _index9.default)(2, arguments);\n var formatStr = String(dirtyFormatStr);\n var defaultOptions = (0, _index10.getDefaultOptions)();\n var locale = (_ref = (_options$locale = options === null || options === void 0 ? void 0 : options.locale) !== null && _options$locale !== void 0 ? _options$locale : defaultOptions.locale) !== null && _ref !== void 0 ? _ref : _index11.default;\n var firstWeekContainsDate = (0, _index8.default)((_ref2 = (_ref3 = (_ref4 = (_options$firstWeekCon = options === null || options === void 0 ? void 0 : options.firstWeekContainsDate) !== null && _options$firstWeekCon !== void 0 ? _options$firstWeekCon : options === null || options === void 0 ? void 0 : (_options$locale2 = options.locale) === null || _options$locale2 === void 0 ? void 0 : (_options$locale2$opti = _options$locale2.options) === null || _options$locale2$opti === void 0 ? void 0 : _options$locale2$opti.firstWeekContainsDate) !== null && _ref4 !== void 0 ? _ref4 : defaultOptions.firstWeekContainsDate) !== null && _ref3 !== void 0 ? _ref3 : (_defaultOptions$local = defaultOptions.locale) === null || _defaultOptions$local === void 0 ? void 0 : (_defaultOptions$local2 = _defaultOptions$local.options) === null || _defaultOptions$local2 === void 0 ? void 0 : _defaultOptions$local2.firstWeekContainsDate) !== null && _ref2 !== void 0 ? _ref2 : 1);\n\n // Test if weekStartsOn is between 1 and 7 _and_ is not NaN\n if (!(firstWeekContainsDate >= 1 && firstWeekContainsDate <= 7)) {\n throw new RangeError('firstWeekContainsDate must be between 1 and 7 inclusively');\n }\n var weekStartsOn = (0, _index8.default)((_ref5 = (_ref6 = (_ref7 = (_options$weekStartsOn = options === null || options === void 0 ? void 0 : options.weekStartsOn) !== null && _options$weekStartsOn !== void 0 ? _options$weekStartsOn : options === null || options === void 0 ? void 0 : (_options$locale3 = options.locale) === null || _options$locale3 === void 0 ? void 0 : (_options$locale3$opti = _options$locale3.options) === null || _options$locale3$opti === void 0 ? void 0 : _options$locale3$opti.weekStartsOn) !== null && _ref7 !== void 0 ? _ref7 : defaultOptions.weekStartsOn) !== null && _ref6 !== void 0 ? _ref6 : (_defaultOptions$local3 = defaultOptions.locale) === null || _defaultOptions$local3 === void 0 ? void 0 : (_defaultOptions$local4 = _defaultOptions$local3.options) === null || _defaultOptions$local4 === void 0 ? void 0 : _defaultOptions$local4.weekStartsOn) !== null && _ref5 !== void 0 ? _ref5 : 0);\n\n // Test if weekStartsOn is between 0 and 6 _and_ is not NaN\n if (!(weekStartsOn >= 0 && weekStartsOn <= 6)) {\n throw new RangeError('weekStartsOn must be between 0 and 6 inclusively');\n }\n if (!locale.localize) {\n throw new RangeError('locale must contain localize property');\n }\n if (!locale.formatLong) {\n throw new RangeError('locale must contain formatLong property');\n }\n var originalDate = (0, _index3.default)(dirtyDate);\n if (!(0, _index.default)(originalDate)) {\n throw new RangeError('Invalid time value');\n }\n\n // Convert the date in system timezone to the same date in UTC+00:00 timezone.\n // This ensures that when UTC functions will be implemented, locales will be compatible with them.\n // See an issue about UTC functions: https://github.com/date-fns/date-fns/issues/376\n var timezoneOffset = (0, _index6.default)(originalDate);\n var utcDate = (0, _index2.default)(originalDate, timezoneOffset);\n var formatterOptions = {\n firstWeekContainsDate: firstWeekContainsDate,\n weekStartsOn: weekStartsOn,\n locale: locale,\n _originalDate: originalDate\n };\n var result = formatStr.match(longFormattingTokensRegExp).map(function (substring) {\n var firstCharacter = substring[0];\n if (firstCharacter === 'p' || firstCharacter === 'P') {\n var longFormatter = _index5.default[firstCharacter];\n return longFormatter(substring, locale.formatLong);\n }\n return substring;\n }).join('').match(formattingTokensRegExp).map(function (substring) {\n // Replace two single quote characters with one single quote character\n if (substring === \"''\") {\n return \"'\";\n }\n var firstCharacter = substring[0];\n if (firstCharacter === \"'\") {\n return cleanEscapedString(substring);\n }\n var formatter = _index4.default[firstCharacter];\n if (formatter) {\n if (!(options !== null && options !== void 0 && options.useAdditionalWeekYearTokens) && (0, _index7.isProtectedWeekYearToken)(substring)) {\n (0, _index7.throwProtectedError)(substring, dirtyFormatStr, String(dirtyDate));\n }\n if (!(options !== null && options !== void 0 && options.useAdditionalDayOfYearTokens) && (0, _index7.isProtectedDayOfYearToken)(substring)) {\n (0, _index7.throwProtectedError)(substring, dirtyFormatStr, String(dirtyDate));\n }\n return formatter(utcDate, substring, locale.localize, formatterOptions);\n }\n if (firstCharacter.match(unescapedLatinCharacterRegExp)) {\n throw new RangeError('Format string contains an unescaped latin alphabet character `' + firstCharacter + '`');\n }\n return substring;\n }).join('');\n return result;\n}\nfunction cleanEscapedString(input) {\n var matched = input.match(escapedStringRegExp);\n if (!matched) {\n return input;\n }\n return matched[1].replace(doubleQuoteRegExp, \"'\");\n}\nmodule.exports = exports.default;","/**\n * Returns the formatted time zone name of the provided `timeZone` or the current\n * system time zone if omitted, accounting for DST according to the UTC value of\n * the date.\n */\nexport default function tzIntlTimeZoneName(length, date, options) {\n var dtf = getDTF(length, options.timeZone, options.locale);\n return dtf.formatToParts ? partsTimeZone(dtf, date) : hackyTimeZone(dtf, date);\n}\nfunction partsTimeZone(dtf, date) {\n var formatted = dtf.formatToParts(date);\n for (var i = formatted.length - 1; i >= 0; --i) {\n if (formatted[i].type === 'timeZoneName') {\n return formatted[i].value;\n }\n }\n}\nfunction hackyTimeZone(dtf, date) {\n var formatted = dtf.format(date).replace(/\\u200E/g, '');\n var tzNameMatch = / [\\w-+ ]+$/.exec(formatted);\n return tzNameMatch ? tzNameMatch[0].substr(1) : '';\n}\n\n// If a locale has been provided `en-US` is used as a fallback in case it is an\n// invalid locale, otherwise the locale is left undefined to use the system locale.\nfunction getDTF(length, timeZone, locale) {\n if (locale && !locale.code) {\n throw new Error(\"date-fns-tz error: Please set a language code on the locale object imported from date-fns, e.g. `locale.code = 'en-US'`\");\n }\n return new Intl.DateTimeFormat(locale ? [locale.code, 'en-US'] : undefined, {\n timeZone: timeZone,\n timeZoneName: length\n });\n}","/**\r\n * Returns the [year, month, day, hour, minute, seconds] tokens of the provided\r\n * `date` as it will be rendered in the `timeZone`.\r\n */\nexport default function tzTokenizeDate(date, timeZone) {\n var dtf = getDateTimeFormat(timeZone);\n return dtf.formatToParts ? partsOffset(dtf, date) : hackyOffset(dtf, date);\n}\nvar typeToPos = {\n year: 0,\n month: 1,\n day: 2,\n hour: 3,\n minute: 4,\n second: 5\n};\nfunction partsOffset(dtf, date) {\n try {\n var formatted = dtf.formatToParts(date);\n var filled = [];\n for (var i = 0; i < formatted.length; i++) {\n var pos = typeToPos[formatted[i].type];\n if (pos >= 0) {\n filled[pos] = parseInt(formatted[i].value, 10);\n }\n }\n return filled;\n } catch (error) {\n if (error instanceof RangeError) {\n return [NaN];\n }\n throw error;\n }\n}\nfunction hackyOffset(dtf, date) {\n var formatted = dtf.format(date);\n var parsed = /(\\d+)\\/(\\d+)\\/(\\d+),? (\\d+):(\\d+):(\\d+)/.exec(formatted);\n // var [, fMonth, fDay, fYear, fHour, fMinute, fSecond] = parsed\n // return [fYear, fMonth, fDay, fHour, fMinute, fSecond]\n return [parsed[3], parsed[1], parsed[2], parsed[4], parsed[5], parsed[6]];\n}\n\n// Get a cached Intl.DateTimeFormat instance for the IANA `timeZone`. This can be used\n// to get deterministic local date/time output according to the `en-US` locale which\n// can be used to extract local time parts as necessary.\nvar dtfCache = {};\nfunction getDateTimeFormat(timeZone) {\n if (!dtfCache[timeZone]) {\n // New browsers use `hourCycle`, IE and Chrome <73 does not support it and uses `hour12`\n var testDateFormatted = new Intl.DateTimeFormat('en-US', {\n hourCycle: 'h23',\n timeZone: 'America/New_York',\n year: 'numeric',\n month: '2-digit',\n day: '2-digit',\n hour: '2-digit',\n minute: '2-digit',\n second: '2-digit'\n }).format(new Date('2014-06-25T04:00:00.123Z'));\n var hourCycleSupported = testDateFormatted === '06/25/2014, 00:00:00' || testDateFormatted === '‎06‎/‎25‎/‎2014‎ ‎00‎:‎00‎:‎00';\n dtfCache[timeZone] = hourCycleSupported ? new Intl.DateTimeFormat('en-US', {\n hourCycle: 'h23',\n timeZone: timeZone,\n year: 'numeric',\n month: 'numeric',\n day: '2-digit',\n hour: '2-digit',\n minute: '2-digit',\n second: '2-digit'\n }) : new Intl.DateTimeFormat('en-US', {\n hour12: false,\n timeZone: timeZone,\n year: 'numeric',\n month: 'numeric',\n day: '2-digit',\n hour: '2-digit',\n minute: '2-digit',\n second: '2-digit'\n });\n }\n return dtfCache[timeZone];\n}","/**\n * Use instead of `new Date(Date.UTC(...))` to support years below 100 which doesn't work\n * otherwise due to the nature of the\n * [`Date` constructor](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Date#interpretation_of_two-digit_years.\n *\n * For `Date.UTC(...)`, use `newDateUTC(...).getTime()`.\n */\nexport default function newDateUTC(fullYear, month, day, hour, minute, second, millisecond) {\n var utcDate = new Date(0);\n utcDate.setUTCFullYear(fullYear, month, day);\n utcDate.setUTCHours(hour, minute, second, millisecond);\n return utcDate;\n}","import tzTokenizeDate from '../tzTokenizeDate/index.js';\nimport newDateUTC from '../newDateUTC/index.js';\nvar MILLISECONDS_IN_HOUR = 3600000;\nvar MILLISECONDS_IN_MINUTE = 60000;\nvar patterns = {\n timezone: /([Z+-].*)$/,\n timezoneZ: /^(Z)$/,\n timezoneHH: /^([+-]\\d{2})$/,\n timezoneHHMM: /^([+-])(\\d{2}):?(\\d{2})$/\n};\n\n// Parse various time zone offset formats to an offset in milliseconds\nexport default function tzParseTimezone(timezoneString, date, isUtcDate) {\n var token;\n var absoluteOffset;\n\n // Empty string\n if (!timezoneString) {\n return 0;\n }\n\n // Z\n token = patterns.timezoneZ.exec(timezoneString);\n if (token) {\n return 0;\n }\n var hours;\n\n // ±hh\n token = patterns.timezoneHH.exec(timezoneString);\n if (token) {\n hours = parseInt(token[1], 10);\n if (!validateTimezone(hours)) {\n return NaN;\n }\n return -(hours * MILLISECONDS_IN_HOUR);\n }\n\n // ±hh:mm or ±hhmm\n token = patterns.timezoneHHMM.exec(timezoneString);\n if (token) {\n hours = parseInt(token[2], 10);\n var minutes = parseInt(token[3], 10);\n if (!validateTimezone(hours, minutes)) {\n return NaN;\n }\n absoluteOffset = Math.abs(hours) * MILLISECONDS_IN_HOUR + minutes * MILLISECONDS_IN_MINUTE;\n return token[1] === '+' ? -absoluteOffset : absoluteOffset;\n }\n\n // IANA time zone\n if (isValidTimezoneIANAString(timezoneString)) {\n date = new Date(date || Date.now());\n var utcDate = isUtcDate ? date : toUtcDate(date);\n var offset = calcOffset(utcDate, timezoneString);\n var fixedOffset = isUtcDate ? offset : fixOffset(date, offset, timezoneString);\n return -fixedOffset;\n }\n return NaN;\n}\nfunction toUtcDate(date) {\n return newDateUTC(date.getFullYear(), date.getMonth(), date.getDate(), date.getHours(), date.getMinutes(), date.getSeconds(), date.getMilliseconds());\n}\nfunction calcOffset(date, timezoneString) {\n var tokens = tzTokenizeDate(date, timezoneString);\n\n // ms dropped because it's not provided by tzTokenizeDate\n var asUTC = newDateUTC(tokens[0], tokens[1] - 1, tokens[2], tokens[3] % 24, tokens[4], tokens[5], 0).getTime();\n var asTS = date.getTime();\n var over = asTS % 1000;\n asTS -= over >= 0 ? over : 1000 + over;\n return asUTC - asTS;\n}\nfunction fixOffset(date, offset, timezoneString) {\n var localTS = date.getTime();\n\n // Our UTC time is just a guess because our offset is just a guess\n var utcGuess = localTS - offset;\n\n // Test whether the zone matches the offset for this ts\n var o2 = calcOffset(new Date(utcGuess), timezoneString);\n\n // If so, offset didn't change, and we're done\n if (offset === o2) {\n return offset;\n }\n\n // If not, change the ts by the difference in the offset\n utcGuess -= o2 - offset;\n\n // If that gives us the local time we want, we're done\n var o3 = calcOffset(new Date(utcGuess), timezoneString);\n if (o2 === o3) {\n return o2;\n }\n\n // If it's different, we're in a hole time. The offset has changed, but we don't adjust the time\n return Math.max(o2, o3);\n}\nfunction validateTimezone(hours, minutes) {\n return -23 <= hours && hours <= 23 && (minutes == null || 0 <= minutes && minutes <= 59);\n}\nvar validIANATimezoneCache = {};\nfunction isValidTimezoneIANAString(timeZoneString) {\n if (validIANATimezoneCache[timeZoneString]) return true;\n try {\n new Intl.DateTimeFormat(undefined, {\n timeZone: timeZoneString\n });\n validIANATimezoneCache[timeZoneString] = true;\n return true;\n } catch (error) {\n return false;\n }\n}","import tzIntlTimeZoneName from '../../_lib/tzIntlTimeZoneName/index.js';\nimport tzParseTimezone from '../../_lib/tzParseTimezone/index.js';\nvar MILLISECONDS_IN_MINUTE = 60 * 1000;\nvar formatters = {\n // Timezone (ISO-8601. If offset is 0, output is always `'Z'`)\n X: function (date, token, localize, options) {\n var timezoneOffset = getTimeZoneOffset(options.timeZone, date);\n if (timezoneOffset === 0) {\n return 'Z';\n }\n switch (token) {\n // Hours and optional minutes\n case 'X':\n return formatTimezoneWithOptionalMinutes(timezoneOffset);\n\n // Hours, minutes and optional seconds without `:` delimeter\n // Note: neither ISO-8601 nor JavaScript supports seconds in timezone offsets\n // so this token always has the same output as `XX`\n case 'XXXX':\n case 'XX':\n // Hours and minutes without `:` delimeter\n return formatTimezone(timezoneOffset);\n\n // Hours, minutes and optional seconds with `:` delimeter\n // Note: neither ISO-8601 nor JavaScript supports seconds in timezone offsets\n // so this token always has the same output as `XXX`\n case 'XXXXX':\n case 'XXX': // Hours and minutes with `:` delimeter\n default:\n return formatTimezone(timezoneOffset, ':');\n }\n },\n // Timezone (ISO-8601. If offset is 0, output is `'+00:00'` or equivalent)\n x: function (date, token, localize, options) {\n var timezoneOffset = getTimeZoneOffset(options.timeZone, date);\n switch (token) {\n // Hours and optional minutes\n case 'x':\n return formatTimezoneWithOptionalMinutes(timezoneOffset);\n\n // Hours, minutes and optional seconds without `:` delimeter\n // Note: neither ISO-8601 nor JavaScript supports seconds in timezone offsets\n // so this token always has the same output as `xx`\n case 'xxxx':\n case 'xx':\n // Hours and minutes without `:` delimeter\n return formatTimezone(timezoneOffset);\n\n // Hours, minutes and optional seconds with `:` delimeter\n // Note: neither ISO-8601 nor JavaScript supports seconds in timezone offsets\n // so this token always has the same output as `xxx`\n case 'xxxxx':\n case 'xxx': // Hours and minutes with `:` delimeter\n default:\n return formatTimezone(timezoneOffset, ':');\n }\n },\n // Timezone (GMT)\n O: function (date, token, localize, options) {\n var timezoneOffset = getTimeZoneOffset(options.timeZone, date);\n switch (token) {\n // Short\n case 'O':\n case 'OO':\n case 'OOO':\n return 'GMT' + formatTimezoneShort(timezoneOffset, ':');\n // Long\n case 'OOOO':\n default:\n return 'GMT' + formatTimezone(timezoneOffset, ':');\n }\n },\n // Timezone (specific non-location)\n z: function (date, token, localize, options) {\n switch (token) {\n // Short\n case 'z':\n case 'zz':\n case 'zzz':\n return tzIntlTimeZoneName('short', date, options);\n // Long\n case 'zzzz':\n default:\n return tzIntlTimeZoneName('long', date, options);\n }\n }\n};\nfunction getTimeZoneOffset(timeZone, originalDate) {\n var timeZoneOffset = timeZone ? tzParseTimezone(timeZone, originalDate, true) / MILLISECONDS_IN_MINUTE : originalDate.getTimezoneOffset();\n if (Number.isNaN(timeZoneOffset)) {\n throw new RangeError('Invalid time zone specified: ' + timeZone);\n }\n return timeZoneOffset;\n}\nfunction addLeadingZeros(number, targetLength) {\n var sign = number < 0 ? '-' : '';\n var output = Math.abs(number).toString();\n while (output.length < targetLength) {\n output = '0' + output;\n }\n return sign + output;\n}\nfunction formatTimezone(offset, dirtyDelimeter) {\n var delimeter = dirtyDelimeter || '';\n var sign = offset > 0 ? '-' : '+';\n var absOffset = Math.abs(offset);\n var hours = addLeadingZeros(Math.floor(absOffset / 60), 2);\n var minutes = addLeadingZeros(Math.floor(absOffset % 60), 2);\n return sign + hours + delimeter + minutes;\n}\nfunction formatTimezoneWithOptionalMinutes(offset, dirtyDelimeter) {\n if (offset % 60 === 0) {\n var sign = offset > 0 ? '-' : '+';\n return sign + addLeadingZeros(Math.abs(offset) / 60, 2);\n }\n return formatTimezone(offset, dirtyDelimeter);\n}\nfunction formatTimezoneShort(offset, dirtyDelimiter) {\n var sign = offset > 0 ? '-' : '+';\n var absOffset = Math.abs(offset);\n var hours = Math.floor(absOffset / 60);\n var minutes = absOffset % 60;\n if (minutes === 0) {\n return sign + String(hours);\n }\n var delimiter = dirtyDelimiter || '';\n return sign + String(hours) + delimiter + addLeadingZeros(minutes, 2);\n}\nexport default formatters;","/** Regex to identify the presence of a time zone specifier in a date string */\nvar tzPattern = /(Z|[+-]\\d{2}(?::?\\d{2})?| UTC| [a-zA-Z]+\\/[a-zA-Z_]+(?:\\/[a-zA-Z_]+)?)$/;\nexport default tzPattern;","import toInteger from 'date-fns/_lib/toInteger/index.js';\nimport getTimezoneOffsetInMilliseconds from 'date-fns/_lib/getTimezoneOffsetInMilliseconds/index.js';\nimport tzParseTimezone from '../_lib/tzParseTimezone/index.js';\nimport tzPattern from '../_lib/tzPattern/index.js';\nvar MILLISECONDS_IN_HOUR = 3600000;\nvar MILLISECONDS_IN_MINUTE = 60000;\nvar DEFAULT_ADDITIONAL_DIGITS = 2;\nvar patterns = {\n dateTimePattern: /^([0-9W+-]+)(T| )(.*)/,\n datePattern: /^([0-9W+-]+)(.*)/,\n plainTime: /:/,\n // year tokens\n YY: /^(\\d{2})$/,\n YYY: [/^([+-]\\d{2})$/,\n // 0 additional digits\n /^([+-]\\d{3})$/,\n // 1 additional digit\n /^([+-]\\d{4})$/ // 2 additional digits\n ],\n YYYY: /^(\\d{4})/,\n YYYYY: [/^([+-]\\d{4})/,\n // 0 additional digits\n /^([+-]\\d{5})/,\n // 1 additional digit\n /^([+-]\\d{6})/ // 2 additional digits\n ],\n // date tokens\n MM: /^-(\\d{2})$/,\n DDD: /^-?(\\d{3})$/,\n MMDD: /^-?(\\d{2})-?(\\d{2})$/,\n Www: /^-?W(\\d{2})$/,\n WwwD: /^-?W(\\d{2})-?(\\d{1})$/,\n HH: /^(\\d{2}([.,]\\d*)?)$/,\n HHMM: /^(\\d{2}):?(\\d{2}([.,]\\d*)?)$/,\n HHMMSS: /^(\\d{2}):?(\\d{2}):?(\\d{2}([.,]\\d*)?)$/,\n // time zone tokens (to identify the presence of a tz)\n timeZone: tzPattern\n};\n\n/**\n * @name toDate\n * @category Common Helpers\n * @summary Convert the given argument to an instance of Date.\n *\n * @description\n * Convert the given argument to an instance of Date.\n *\n * If the argument is an instance of Date, the function returns its clone.\n *\n * If the argument is a number, it is treated as a timestamp.\n *\n * If an argument is a string, the function tries to parse it.\n * Function accepts complete ISO 8601 formats as well as partial implementations.\n * ISO 8601: http://en.wikipedia.org/wiki/ISO_8601\n * If the function cannot parse the string or the values are invalid, it returns Invalid Date.\n *\n * If the argument is none of the above, the function returns Invalid Date.\n *\n * **Note**: *all* Date arguments passed to any *date-fns* function is processed by `toDate`.\n * All *date-fns* functions will throw `RangeError` if `options.additionalDigits` is not 0, 1, 2 or undefined.\n *\n * @param {Date|String|Number} argument - the value to convert\n * @param {OptionsWithTZ} [options] - the object with options. See [Options]{@link https://date-fns.org/docs/Options}\n * @param {0|1|2} [options.additionalDigits=2] - the additional number of digits in the extended year format\n * @param {String} [options.timeZone=''] - used to specify the IANA time zone offset of a date String.\n * @returns {Date} the parsed date in the local time zone\n * @throws {TypeError} 1 argument required\n * @throws {RangeError} `options.additionalDigits` must be 0, 1 or 2\n *\n * @example\n * // Convert string '2014-02-11T11:30:30' to date:\n * var result = toDate('2014-02-11T11:30:30')\n * //=> Tue Feb 11 2014 11:30:30\n *\n * @example\n * // Convert string '+02014101' to date,\n * // if the additional number of digits in the extended year format is 1:\n * var result = toDate('+02014101', {additionalDigits: 1})\n * //=> Fri Apr 11 2014 00:00:00\n */\nexport default function toDate(argument, dirtyOptions) {\n if (arguments.length < 1) {\n throw new TypeError('1 argument required, but only ' + arguments.length + ' present');\n }\n if (argument === null) {\n return new Date(NaN);\n }\n var options = dirtyOptions || {};\n var additionalDigits = options.additionalDigits == null ? DEFAULT_ADDITIONAL_DIGITS : toInteger(options.additionalDigits);\n if (additionalDigits !== 2 && additionalDigits !== 1 && additionalDigits !== 0) {\n throw new RangeError('additionalDigits must be 0, 1 or 2');\n }\n\n // Clone the date\n if (argument instanceof Date || typeof argument === 'object' && Object.prototype.toString.call(argument) === '[object Date]') {\n // Prevent the date to lose the milliseconds when passed to new Date() in IE10\n return new Date(argument.getTime());\n } else if (typeof argument === 'number' || Object.prototype.toString.call(argument) === '[object Number]') {\n return new Date(argument);\n } else if (!(typeof argument === 'string' || Object.prototype.toString.call(argument) === '[object String]')) {\n return new Date(NaN);\n }\n var dateStrings = splitDateString(argument);\n var parseYearResult = parseYear(dateStrings.date, additionalDigits);\n var year = parseYearResult.year;\n var restDateString = parseYearResult.restDateString;\n var date = parseDate(restDateString, year);\n if (isNaN(date)) {\n return new Date(NaN);\n }\n if (date) {\n var timestamp = date.getTime();\n var time = 0;\n var offset;\n if (dateStrings.time) {\n time = parseTime(dateStrings.time);\n if (isNaN(time)) {\n return new Date(NaN);\n }\n }\n if (dateStrings.timeZone || options.timeZone) {\n offset = tzParseTimezone(dateStrings.timeZone || options.timeZone, new Date(timestamp + time));\n if (isNaN(offset)) {\n return new Date(NaN);\n }\n } else {\n // get offset accurate to hour in time zones that change offset\n offset = getTimezoneOffsetInMilliseconds(new Date(timestamp + time));\n offset = getTimezoneOffsetInMilliseconds(new Date(timestamp + time + offset));\n }\n return new Date(timestamp + time + offset);\n } else {\n return new Date(NaN);\n }\n}\nfunction splitDateString(dateString) {\n var dateStrings = {};\n var parts = patterns.dateTimePattern.exec(dateString);\n var timeString;\n if (!parts) {\n parts = patterns.datePattern.exec(dateString);\n if (parts) {\n dateStrings.date = parts[1];\n timeString = parts[2];\n } else {\n dateStrings.date = null;\n timeString = dateString;\n }\n } else {\n dateStrings.date = parts[1];\n timeString = parts[3];\n }\n if (timeString) {\n var token = patterns.timeZone.exec(timeString);\n if (token) {\n dateStrings.time = timeString.replace(token[1], '');\n dateStrings.timeZone = token[1].trim();\n } else {\n dateStrings.time = timeString;\n }\n }\n return dateStrings;\n}\nfunction parseYear(dateString, additionalDigits) {\n var patternYYY = patterns.YYY[additionalDigits];\n var patternYYYYY = patterns.YYYYY[additionalDigits];\n var token;\n\n // YYYY or ±YYYYY\n token = patterns.YYYY.exec(dateString) || patternYYYYY.exec(dateString);\n if (token) {\n var yearString = token[1];\n return {\n year: parseInt(yearString, 10),\n restDateString: dateString.slice(yearString.length)\n };\n }\n\n // YY or ±YYY\n token = patterns.YY.exec(dateString) || patternYYY.exec(dateString);\n if (token) {\n var centuryString = token[1];\n return {\n year: parseInt(centuryString, 10) * 100,\n restDateString: dateString.slice(centuryString.length)\n };\n }\n\n // Invalid ISO-formatted year\n return {\n year: null\n };\n}\nfunction parseDate(dateString, year) {\n // Invalid ISO-formatted year\n if (year === null) {\n return null;\n }\n var token;\n var date;\n var month;\n var week;\n\n // YYYY\n if (dateString.length === 0) {\n date = new Date(0);\n date.setUTCFullYear(year);\n return date;\n }\n\n // YYYY-MM\n token = patterns.MM.exec(dateString);\n if (token) {\n date = new Date(0);\n month = parseInt(token[1], 10) - 1;\n if (!validateDate(year, month)) {\n return new Date(NaN);\n }\n date.setUTCFullYear(year, month);\n return date;\n }\n\n // YYYY-DDD or YYYYDDD\n token = patterns.DDD.exec(dateString);\n if (token) {\n date = new Date(0);\n var dayOfYear = parseInt(token[1], 10);\n if (!validateDayOfYearDate(year, dayOfYear)) {\n return new Date(NaN);\n }\n date.setUTCFullYear(year, 0, dayOfYear);\n return date;\n }\n\n // yyyy-MM-dd or YYYYMMDD\n token = patterns.MMDD.exec(dateString);\n if (token) {\n date = new Date(0);\n month = parseInt(token[1], 10) - 1;\n var day = parseInt(token[2], 10);\n if (!validateDate(year, month, day)) {\n return new Date(NaN);\n }\n date.setUTCFullYear(year, month, day);\n return date;\n }\n\n // YYYY-Www or YYYYWww\n token = patterns.Www.exec(dateString);\n if (token) {\n week = parseInt(token[1], 10) - 1;\n if (!validateWeekDate(year, week)) {\n return new Date(NaN);\n }\n return dayOfISOWeekYear(year, week);\n }\n\n // YYYY-Www-D or YYYYWwwD\n token = patterns.WwwD.exec(dateString);\n if (token) {\n week = parseInt(token[1], 10) - 1;\n var dayOfWeek = parseInt(token[2], 10) - 1;\n if (!validateWeekDate(year, week, dayOfWeek)) {\n return new Date(NaN);\n }\n return dayOfISOWeekYear(year, week, dayOfWeek);\n }\n\n // Invalid ISO-formatted date\n return null;\n}\nfunction parseTime(timeString) {\n var token;\n var hours;\n var minutes;\n\n // hh\n token = patterns.HH.exec(timeString);\n if (token) {\n hours = parseFloat(token[1].replace(',', '.'));\n if (!validateTime(hours)) {\n return NaN;\n }\n return hours % 24 * MILLISECONDS_IN_HOUR;\n }\n\n // hh:mm or hhmm\n token = patterns.HHMM.exec(timeString);\n if (token) {\n hours = parseInt(token[1], 10);\n minutes = parseFloat(token[2].replace(',', '.'));\n if (!validateTime(hours, minutes)) {\n return NaN;\n }\n return hours % 24 * MILLISECONDS_IN_HOUR + minutes * MILLISECONDS_IN_MINUTE;\n }\n\n // hh:mm:ss or hhmmss\n token = patterns.HHMMSS.exec(timeString);\n if (token) {\n hours = parseInt(token[1], 10);\n minutes = parseInt(token[2], 10);\n var seconds = parseFloat(token[3].replace(',', '.'));\n if (!validateTime(hours, minutes, seconds)) {\n return NaN;\n }\n return hours % 24 * MILLISECONDS_IN_HOUR + minutes * MILLISECONDS_IN_MINUTE + seconds * 1000;\n }\n\n // Invalid ISO-formatted time\n return null;\n}\nfunction dayOfISOWeekYear(isoWeekYear, week, day) {\n week = week || 0;\n day = day || 0;\n var date = new Date(0);\n date.setUTCFullYear(isoWeekYear, 0, 4);\n var fourthOfJanuaryDay = date.getUTCDay() || 7;\n var diff = week * 7 + day + 1 - fourthOfJanuaryDay;\n date.setUTCDate(date.getUTCDate() + diff);\n return date;\n}\n\n// Validation functions\n\nvar DAYS_IN_MONTH = [31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31];\nvar DAYS_IN_MONTH_LEAP_YEAR = [31, 29, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31];\nfunction isLeapYearIndex(year) {\n return year % 400 === 0 || year % 4 === 0 && year % 100 !== 0;\n}\nfunction validateDate(year, month, date) {\n if (month < 0 || month > 11) {\n return false;\n }\n if (date != null) {\n if (date < 1) {\n return false;\n }\n var isLeapYear = isLeapYearIndex(year);\n if (isLeapYear && date > DAYS_IN_MONTH_LEAP_YEAR[month]) {\n return false;\n }\n if (!isLeapYear && date > DAYS_IN_MONTH[month]) {\n return false;\n }\n }\n return true;\n}\nfunction validateDayOfYearDate(year, dayOfYear) {\n if (dayOfYear < 1) {\n return false;\n }\n var isLeapYear = isLeapYearIndex(year);\n if (isLeapYear && dayOfYear > 366) {\n return false;\n }\n if (!isLeapYear && dayOfYear > 365) {\n return false;\n }\n return true;\n}\nfunction validateWeekDate(year, week, day) {\n if (week < 0 || week > 52) {\n return false;\n }\n if (day != null && (day < 0 || day > 6)) {\n return false;\n }\n return true;\n}\nfunction validateTime(hours, minutes, seconds) {\n if (hours != null && (hours < 0 || hours >= 25)) {\n return false;\n }\n if (minutes != null && (minutes < 0 || minutes >= 60)) {\n return false;\n }\n if (seconds != null && (seconds < 0 || seconds >= 60)) {\n return false;\n }\n return true;\n}","import dateFnsFormat from 'date-fns/format/index.js';\nimport formatters from './formatters/index.js';\nimport toDate from '../toDate/index.js';\nvar tzFormattingTokensRegExp = /([xXOz]+)|''|'(''|[^'])+('|$)/g;\n\n/**\n * @name format\n * @category Common Helpers\n * @summary Format the date.\n *\n * @description\n * Return the formatted date string in the given format. The result may vary by locale.\n *\n * > ⚠️ Please note that the `format` tokens differ from Moment.js and other libraries.\n * > See: https://git.io/fxCyr\n *\n * The characters wrapped between two single quotes characters (') are escaped.\n * Two single quotes in a row, whether inside or outside a quoted sequence, represent a 'real' single quote.\n * (see the last example)\n *\n * Format of the string is based on Unicode Technical Standard #35:\n * https://www.unicode.org/reports/tr35/tr35-dates.html#Date_Field_Symbol_Table\n * with a few additions (see note 7 below the table).\n *\n * Accepted patterns:\n * | Unit | Pattern | Result examples | Notes |\n * |---------------------------------|---------|-----------------------------------|-------|\n * | Era | G..GGG | AD, BC | |\n * | | GGGG | Anno Domini, Before Christ | 2 |\n * | | GGGGG | A, B | |\n * | Calendar year | y | 44, 1, 1900, 2017 | 5 |\n * | | yo | 44th, 1st, 0th, 17th | 5,7 |\n * | | yy | 44, 01, 00, 17 | 5 |\n * | | yyy | 044, 001, 1900, 2017 | 5 |\n * | | yyyy | 0044, 0001, 1900, 2017 | 5 |\n * | | yyyyy | ... | 3,5 |\n * | Local week-numbering year | Y | 44, 1, 1900, 2017 | 5 |\n * | | Yo | 44th, 1st, 1900th, 2017th | 5,7 |\n * | | YY | 44, 01, 00, 17 | 5,8 |\n * | | YYY | 044, 001, 1900, 2017 | 5 |\n * | | YYYY | 0044, 0001, 1900, 2017 | 5,8 |\n * | | YYYYY | ... | 3,5 |\n * | ISO week-numbering year | R | -43, 0, 1, 1900, 2017 | 5,7 |\n * | | RR | -43, 00, 01, 1900, 2017 | 5,7 |\n * | | RRR | -043, 000, 001, 1900, 2017 | 5,7 |\n * | | RRRR | -0043, 0000, 0001, 1900, 2017 | 5,7 |\n * | | RRRRR | ... | 3,5,7 |\n * | Extended year | u | -43, 0, 1, 1900, 2017 | 5 |\n * | | uu | -43, 01, 1900, 2017 | 5 |\n * | | uuu | -043, 001, 1900, 2017 | 5 |\n * | | uuuu | -0043, 0001, 1900, 2017 | 5 |\n * | | uuuuu | ... | 3,5 |\n * | Quarter (formatting) | Q | 1, 2, 3, 4 | |\n * | | Qo | 1st, 2nd, 3rd, 4th | 7 |\n * | | QQ | 01, 02, 03, 04 | |\n * | | QQQ | Q1, Q2, Q3, Q4 | |\n * | | QQQQ | 1st quarter, 2nd quarter, ... | 2 |\n * | | QQQQQ | 1, 2, 3, 4 | 4 |\n * | Quarter (stand-alone) | q | 1, 2, 3, 4 | |\n * | | qo | 1st, 2nd, 3rd, 4th | 7 |\n * | | qq | 01, 02, 03, 04 | |\n * | | qqq | Q1, Q2, Q3, Q4 | |\n * | | qqqq | 1st quarter, 2nd quarter, ... | 2 |\n * | | qqqqq | 1, 2, 3, 4 | 4 |\n * | Month (formatting) | M | 1, 2, ..., 12 | |\n * | | Mo | 1st, 2nd, ..., 12th | 7 |\n * | | MM | 01, 02, ..., 12 | |\n * | | MMM | Jan, Feb, ..., Dec | |\n * | | MMMM | January, February, ..., December | 2 |\n * | | MMMMM | J, F, ..., D | |\n * | Month (stand-alone) | L | 1, 2, ..., 12 | |\n * | | Lo | 1st, 2nd, ..., 12th | 7 |\n * | | LL | 01, 02, ..., 12 | |\n * | | LLL | Jan, Feb, ..., Dec | |\n * | | LLLL | January, February, ..., December | 2 |\n * | | LLLLL | J, F, ..., D | |\n * | Local week of year | w | 1, 2, ..., 53 | |\n * | | wo | 1st, 2nd, ..., 53th | 7 |\n * | | ww | 01, 02, ..., 53 | |\n * | ISO week of year | I | 1, 2, ..., 53 | 7 |\n * | | Io | 1st, 2nd, ..., 53th | 7 |\n * | | II | 01, 02, ..., 53 | 7 |\n * | Day of month | d | 1, 2, ..., 31 | |\n * | | do | 1st, 2nd, ..., 31st | 7 |\n * | | dd | 01, 02, ..., 31 | |\n * | Day of year | D | 1, 2, ..., 365, 366 | 8 |\n * | | Do | 1st, 2nd, ..., 365th, 366th | 7 |\n * | | DD | 01, 02, ..., 365, 366 | 8 |\n * | | DDD | 001, 002, ..., 365, 366 | |\n * | | DDDD | ... | 3 |\n * | Day of week (formatting) | E..EEE | Mon, Tue, Wed, ..., Su | |\n * | | EEEE | Monday, Tuesday, ..., Sunday | 2 |\n * | | EEEEE | M, T, W, T, F, S, S | |\n * | | EEEEEE | Mo, Tu, We, Th, Fr, Su, Sa | |\n * | ISO day of week (formatting) | i | 1, 2, 3, ..., 7 | 7 |\n * | | io | 1st, 2nd, ..., 7th | 7 |\n * | | ii | 01, 02, ..., 07 | 7 |\n * | | iii | Mon, Tue, Wed, ..., Su | 7 |\n * | | iiii | Monday, Tuesday, ..., Sunday | 2,7 |\n * | | iiiii | M, T, W, T, F, S, S | 7 |\n * | | iiiiii | Mo, Tu, We, Th, Fr, Su, Sa | 7 |\n * | Local day of week (formatting) | e | 2, 3, 4, ..., 1 | |\n * | | eo | 2nd, 3rd, ..., 1st | 7 |\n * | | ee | 02, 03, ..., 01 | |\n * | | eee | Mon, Tue, Wed, ..., Su | |\n * | | eeee | Monday, Tuesday, ..., Sunday | 2 |\n * | | eeeee | M, T, W, T, F, S, S | |\n * | | eeeeee | Mo, Tu, We, Th, Fr, Su, Sa | |\n * | Local day of week (stand-alone) | c | 2, 3, 4, ..., 1 | |\n * | | co | 2nd, 3rd, ..., 1st | 7 |\n * | | cc | 02, 03, ..., 01 | |\n * | | ccc | Mon, Tue, Wed, ..., Su | |\n * | | cccc | Monday, Tuesday, ..., Sunday | 2 |\n * | | ccccc | M, T, W, T, F, S, S | |\n * | | cccccc | Mo, Tu, We, Th, Fr, Su, Sa | |\n * | AM, PM | a..aaa | AM, PM | |\n * | | aaaa | a.m., p.m. | 2 |\n * | | aaaaa | a, p | |\n * | AM, PM, noon, midnight | b..bbb | AM, PM, noon, midnight | |\n * | | bbbb | a.m., p.m., noon, midnight | 2 |\n * | | bbbbb | a, p, n, mi | |\n * | Flexible day period | B..BBB | at night, in the morning, ... | |\n * | | BBBB | at night, in the morning, ... | 2 |\n * | | BBBBB | at night, in the morning, ... | |\n * | Hour [1-12] | h | 1, 2, ..., 11, 12 | |\n * | | ho | 1st, 2nd, ..., 11th, 12th | 7 |\n * | | hh | 01, 02, ..., 11, 12 | |\n * | Hour [0-23] | H | 0, 1, 2, ..., 23 | |\n * | | Ho | 0th, 1st, 2nd, ..., 23rd | 7 |\n * | | HH | 00, 01, 02, ..., 23 | |\n * | Hour [0-11] | K | 1, 2, ..., 11, 0 | |\n * | | Ko | 1st, 2nd, ..., 11th, 0th | 7 |\n * | | KK | 1, 2, ..., 11, 0 | |\n * | Hour [1-24] | k | 24, 1, 2, ..., 23 | |\n * | | ko | 24th, 1st, 2nd, ..., 23rd | 7 |\n * | | kk | 24, 01, 02, ..., 23 | |\n * | Minute | m | 0, 1, ..., 59 | |\n * | | mo | 0th, 1st, ..., 59th | 7 |\n * | | mm | 00, 01, ..., 59 | |\n * | Second | s | 0, 1, ..., 59 | |\n * | | so | 0th, 1st, ..., 59th | 7 |\n * | | ss | 00, 01, ..., 59 | |\n * | Fraction of second | S | 0, 1, ..., 9 | |\n * | | SS | 00, 01, ..., 99 | |\n * | | SSS | 000, 0001, ..., 999 | |\n * | | SSSS | ... | 3 |\n * | Timezone (ISO-8601 w/ Z) | X | -08, +0530, Z | |\n * | | XX | -0800, +0530, Z | |\n * | | XXX | -08:00, +05:30, Z | |\n * | | XXXX | -0800, +0530, Z, +123456 | 2 |\n * | | XXXXX | -08:00, +05:30, Z, +12:34:56 | |\n * | Timezone (ISO-8601 w/o Z) | x | -08, +0530, +00 | |\n * | | xx | -0800, +0530, +0000 | |\n * | | xxx | -08:00, +05:30, +00:00 | 2 |\n * | | xxxx | -0800, +0530, +0000, +123456 | |\n * | | xxxxx | -08:00, +05:30, +00:00, +12:34:56 | |\n * | Timezone (GMT) | O...OOO | GMT-8, GMT+5:30, GMT+0 | |\n * | | OOOO | GMT-08:00, GMT+05:30, GMT+00:00 | 2 |\n * | Timezone (specific non-locat.) | z...zzz | PDT, EST, CEST | 6 |\n * | | zzzz | Pacific Daylight Time | 2,6 |\n * | Seconds timestamp | t | 512969520 | 7 |\n * | | tt | ... | 3,7 |\n * | Milliseconds timestamp | T | 512969520900 | 7 |\n * | | TT | ... | 3,7 |\n * | Long localized date | P | 05/29/1453 | 7 |\n * | | PP | May 29, 1453 | 7 |\n * | | PPP | May 29th, 1453 | 7 |\n * | | PPPP | Sunday, May 29th, 1453 | 2,7 |\n * | Long localized time | p | 12:00 AM | 7 |\n * | | pp | 12:00:00 AM | 7 |\n * | | ppp | 12:00:00 AM GMT+2 | 7 |\n * | | pppp | 12:00:00 AM GMT+02:00 | 2,7 |\n * | Combination of date and time | Pp | 05/29/1453, 12:00 AM | 7 |\n * | | PPpp | May 29, 1453, 12:00:00 AM | 7 |\n * | | PPPppp | May 29th, 1453 at ... | 7 |\n * | | PPPPpppp| Sunday, May 29th, 1453 at ... | 2,7 |\n * Notes:\n * 1. \"Formatting\" units (e.g. formatting quarter) in the default en-US locale\n * are the same as \"stand-alone\" units, but are different in some languages.\n * \"Formatting\" units are declined according to the rules of the language\n * in the context of a date. \"Stand-alone\" units are always nominative singular:\n *\n * `format(new Date(2017, 10, 6), 'do LLLL', {locale: cs}) //=> '6. listopad'`\n *\n * `format(new Date(2017, 10, 6), 'do MMMM', {locale: cs}) //=> '6. listopadu'`\n *\n * 2. Any sequence of the identical letters is a pattern, unless it is escaped by\n * the single quote characters (see below).\n * If the sequence is longer than listed in table (e.g. `EEEEEEEEEEE`)\n * the output will be the same as default pattern for this unit, usually\n * the longest one (in case of ISO weekdays, `EEEE`). Default patterns for units\n * are marked with \"2\" in the last column of the table.\n *\n * `format(new Date(2017, 10, 6), 'MMM') //=> 'Nov'`\n *\n * `format(new Date(2017, 10, 6), 'MMMM') //=> 'November'`\n *\n * `format(new Date(2017, 10, 6), 'MMMMM') //=> 'N'`\n *\n * `format(new Date(2017, 10, 6), 'MMMMMM') //=> 'November'`\n *\n * `format(new Date(2017, 10, 6), 'MMMMMMM') //=> 'November'`\n *\n * 3. Some patterns could be unlimited length (such as `yyyyyyyy`).\n * The output will be padded with zeros to match the length of the pattern.\n *\n * `format(new Date(2017, 10, 6), 'yyyyyyyy') //=> '00002017'`\n *\n * 4. `QQQQQ` and `qqqqq` could be not strictly numerical in some locales.\n * These tokens represent the shortest form of the quarter.\n *\n * 5. The main difference between `y` and `u` patterns are B.C. years:\n *\n * | Year | `y` | `u` |\n * |------|-----|-----|\n * | AC 1 | 1 | 1 |\n * | BC 1 | 1 | 0 |\n * | BC 2 | 2 | -1 |\n *\n * Also `yy` always returns the last two digits of a year,\n * while `uu` pads single digit years to 2 characters and returns other years unchanged:\n *\n * | Year | `yy` | `uu` |\n * |------|------|------|\n * | 1 | 01 | 01 |\n * | 14 | 14 | 14 |\n * | 376 | 76 | 376 |\n * | 1453 | 53 | 1453 |\n *\n * The same difference is true for local and ISO week-numbering years (`Y` and `R`),\n * except local week-numbering years are dependent on `options.weekStartsOn`\n * and `options.firstWeekContainsDate` (compare [getISOWeekYear]{@link https://date-fns.org/docs/getISOWeekYear}\n * and [getWeekYear]{@link https://date-fns.org/docs/getWeekYear}).\n *\n * 6. Specific non-location timezones are created using the Intl browser API. The output is determined by the\n * preferred standard of the current locale (en-US by default) which may not always give the expected result.\n * For this reason it is recommended to supply a `locale` in the format options when formatting a time zone name.\n *\n * 7. These patterns are not in the Unicode Technical Standard #35:\n * - `i`: ISO day of week\n * - `I`: ISO week of year\n * - `R`: ISO week-numbering year\n * - `t`: seconds timestamp\n * - `T`: milliseconds timestamp\n * - `o`: ordinal number modifier\n * - `P`: long localized date\n * - `p`: long localized time\n *\n * 8. These tokens are often confused with others. See: https://git.io/fxCyr\n *\n *\n * ### v2.0.0 breaking changes:\n *\n * - [Changes that are common for the whole\n * library](https://github.com/date-fns/date-fns/blob/master/docs/upgradeGuide.md#Common-Changes).\n *\n * - The second argument is now required for the sake of explicitness.\n *\n * ```javascript\n * // Before v2.0.0\n * format(new Date(2016, 0, 1))\n *\n * // v2.0.0 onward\n * format(new Date(2016, 0, 1), \"yyyy-MM-dd'T'HH:mm:ss.SSSxxx\")\n * ```\n *\n * - New format string API for `format` function\n * which is based on [Unicode Technical Standard\n * #35](https://www.unicode.org/reports/tr35/tr35-dates.html#Date_Field_Symbol_Table). See [this\n * post](https://blog.date-fns.org/post/unicode-tokens-in-date-fns-v2-sreatyki91jg) for more details.\n *\n * - Characters are now escaped using single quote symbols (`'`) instead of square brackets.\n *\n * @param {Date|Number} date - the original date\n * @param {String} format - the string of tokens\n * @param {OptionsWithTZ} [options] - the object with options. See [Options]{@link https://date-fns.org/docs/Options}\n * @param {0|1|2} [options.additionalDigits=2] - passed to `toDate`. See [toDate]{@link\n * https://date-fns.org/docs/toDate}\n * @param {0|1|2|3|4|5|6} [options.weekStartsOn=0] - the index of the first day of the week (0 - Sunday)\n * @param {Number} [options.firstWeekContainsDate=1] - the day of January, which is\n * @param {Locale} [options.locale=defaultLocale] - the locale object. See\n * [Locale]{@link https://date-fns.org/docs/Locale}\n * @param {Boolean} [options.awareOfUnicodeTokens=false] - if true, allows usage of Unicode tokens causes confusion:\n * - Some of the day of year tokens (`D`, `DD`) that are confused with the day of month tokens (`d`, `dd`).\n * - Some of the local week-numbering year tokens (`YY`, `YYYY`) that are confused with the calendar year tokens\n * (`yy`, `yyyy`). See: https://git.io/fxCyr\n * @param {String} [options.timeZone=''] - used to specify the IANA time zone offset of a date String.\n * @param {Date|Number} [options.originalDate] - can be used to pass the original unmodified date to `format` to\n * improve correctness of the replaced timezone token close to the DST threshold.\n * @returns {String} the formatted date string\n * @throws {TypeError} 2 arguments required\n * @throws {RangeError} `options.additionalDigits` must be 0, 1 or 2\n * @throws {RangeError} `options.locale` must contain `localize` property\n * @throws {RangeError} `options.locale` must contain `formatLong` property\n * @throws {RangeError} `options.weekStartsOn` must be between 0 and 6\n * @throws {RangeError} `options.firstWeekContainsDate` must be between 1 and 7\n * @throws {RangeError} `options.awareOfUnicodeTokens` must be set to `true` to use `XX` token; see:\n * https://git.io/fxCyr\n *\n * @example\n * // Represent 11 February 2014 in middle-endian format:\n * var result = format(new Date(2014, 1, 11), 'MM/dd/yyyy')\n * //=> '02/11/2014'\n *\n * @example\n * // Represent 2 July 2014 in Esperanto:\n * import { eoLocale } from 'date-fns/locale/eo'\n * var result = format(new Date(2014, 6, 2), \"do 'de' MMMM yyyy\", {\n * locale: eoLocale\n * })\n * //=> '2-a de julio 2014'\n *\n * @example\n * // Escape string by single quote characters:\n * var result = format(new Date(2014, 6, 2, 15), \"h 'o''clock'\")\n * //=> \"3 o'clock\"\n */\nexport default function format(dirtyDate, dirtyFormatStr, dirtyOptions) {\n var formatStr = String(dirtyFormatStr);\n var options = dirtyOptions || {};\n var matches = formatStr.match(tzFormattingTokensRegExp);\n if (matches) {\n var date = toDate(options.originalDate || dirtyDate, options);\n // Work through each match and replace the tz token in the format string with the quoted\n // formatted time zone so the remaining tokens can be filled in by date-fns#format.\n formatStr = matches.reduce(function (result, token) {\n if (token[0] === \"'\") {\n return result; // This is a quoted portion, matched only to ensure we don't match inside it\n }\n var pos = result.indexOf(token);\n var precededByQuotedSection = result[pos - 1] === \"'\";\n var replaced = result.replace(token, \"'\" + formatters[token[0]](date, token, null, options) + \"'\");\n // If the replacement results in two adjoining quoted strings, the back to back quotes\n // are removed, so it doesn't look like an escaped quote.\n return precededByQuotedSection ? replaced.substring(0, pos - 1) + replaced.substring(pos + 1) : replaced;\n }, formatStr);\n }\n return dateFnsFormat(dirtyDate, formatStr, options);\n}","// This file is generated automatically by `scripts/build/indices.js`. Please, don't change it.\n\nexport { default as format } from './format/index.js';\nexport { default as formatInTimeZone } from './formatInTimeZone/index.js';\nexport { default as getTimezoneOffset } from './getTimezoneOffset/index.js';\nexport { default as toDate } from './toDate/index.js';\nexport { default as utcToZonedTime } from './utcToZonedTime/index.js';\nexport { default as zonedTimeToUtc } from './zonedTimeToUtc/index.js';","export const ActivityTaskType = {\n ToDo: 'To-do',\n Email: 'Email',\n Call: 'Call',\n Message: 'Message',\n Connection: 'Connection',\n LinkedIn: 'LinkedIn',\n};\n\nexport const ActivityTaskTypeTranslationKeys = [\n { nameKey: 'ACTIVITY.TASK.TO_DO', value: ActivityTaskType.ToDo },\n { nameKey: 'ACTIVITY.TASK.EMAIL', value: ActivityTaskType.Email },\n { nameKey: 'ACTIVITY.TASK.CALL', value: ActivityTaskType.Call },\n { nameKey: 'ACTIVITY.TASK.MESSAGE', value: ActivityTaskType.Message },\n { nameKey: 'ACTIVITY.TASK.CONNECTION', value: ActivityTaskType.Connection },\n { nameKey: 'ACTIVITY.TASK.LINKEDIN', value: ActivityTaskType.LinkedIn },\n];\n\nexport const ActivityDirection = {\n Outbound: 'Outbound',\n Inbound: 'Inbound',\n Forwarded: 'Forwarded',\n};\n\nexport const CallStatus = {\n Connected: 'Connected',\n Busy: 'Busy',\n Rejected: 'Rejected',\n Voicemail: 'Left voicemail',\n NoAnswer: 'No answer',\n NotInService: 'Not in service',\n WrongNumber: 'Wrong number',\n};\n\nexport const ActivityOutcome = {\n BusinessReview: 'Business review',\n Demo: 'Demo scheduled',\n DemoCompleted: 'Demo completed',\n Discovery: 'Discovery',\n Interested: 'Interested',\n NoInterest: 'No interest',\n Presentation: 'Presentation',\n QualityConnect: 'Quality connect',\n Rescheduling: 'Rescheduling',\n Referred: 'Referred to another contact',\n Timeline: 'Timeline 6-12 months',\n};\n\nexport const MeetingDuration = {\n FiveMin: 300000,\n FifteenMin: 900000,\n ThirtyMin: 1800000,\n OneHour: 3600000,\n OneHourThirtyMin: 5400000,\n TwoHoursPlus: 7200000,\n};\n\nexport const MeetingStatus = {\n Scheduled: 'Scheduled',\n Rescheduled: 'Rescheduled',\n Completed: 'Completed',\n Cancelled: 'Cancelled',\n NoShow: 'No show',\n};\n","import { AbstractControl, ValidationErrors, ValidatorFn } from '@angular/forms';\n\nexport function requiredFieldsIf(predicate: () => boolean, fields: AbstractControl[]): ValidatorFn {\n return (): ValidationErrors | null => {\n const when = predicate();\n if (when) {\n fields.forEach((field) => validateRequired(field));\n } else {\n fields.forEach((field) => clearRequired(field));\n }\n return null;\n };\n}\n\nexport function requiredFormGroupFieldsIf(predicate: () => boolean, fieldNames: string[]): ValidatorFn {\n return (formGroup: AbstractControl): ValidationErrors | null => {\n const when = predicate();\n const controls = fieldNames.map((name) => formGroup.get(name)).filter((c): c is AbstractControl => Boolean(c));\n if (when) {\n controls.forEach((c) => validateRequired(c));\n } else {\n controls.forEach((c) => clearRequired(c));\n }\n\n return null;\n };\n}\n\nfunction validateRequired(control: AbstractControl): void {\n if (control.value) {\n if (control.hasError('required')) {\n delete control.errors?.['required'];\n }\n } else {\n control.setErrors({ required: true });\n }\n}\n\nfunction clearRequired(control: AbstractControl): void {\n if (control.hasError('required')) {\n delete control.errors?.['required'];\n }\n}\n","import { TextFieldModule } from '@angular/cdk/text-field';\nimport { CommonModule } from '@angular/common';\nimport { AfterViewInit, Component, ElementRef, Input, ViewChild, Output, EventEmitter } from '@angular/core';\nimport { FormBuilder, FormGroupDirective, ReactiveFormsModule } from '@angular/forms';\nimport { MatInputModule } from '@angular/material/input';\nimport { TranslateModule } from '@ngx-translate/core';\nimport { ActivityInterface, FieldValueInterface } from '@vendasta/crm';\nimport { GalaxyFormFieldModule } from '@vendasta/galaxy/form-field';\nimport { DEFAULT_TASK_STATUS, STANDARD_DATE_FORMAT } from './constants';\nimport { TranslationModule } from '../../../../i18n/translation-module';\nimport { format as formatDate } from 'date-fns-tz';\nimport { MatDatepickerModule } from '@angular/material/datepicker';\nimport { MatSelectModule } from '@angular/material/select';\nimport {\n ActivityOutcome,\n ActivityTaskType,\n MeetingDuration,\n MeetingStatus,\n ActivityTaskTypeTranslationKeys,\n} from '../activity.interface';\nimport { User } from '@vendasta/iamv2';\nimport { LoggerComponentInterface, UserWithFullName } from './interfaces';\nimport { requiredFormGroupFieldsIf } from './validators';\nimport { coerceBooleanProperty } from '@angular/cdk/coercion';\nimport { takeUntilDestroyed } from '@angular/core/rxjs-interop';\nimport { distinctUntilChanged } from 'rxjs';\nimport { CrmFieldService, StandardIds } from '../../../../shared-services';\n\ninterface OwnerOption {\n id: string;\n displayName: string;\n}\n\n@Component({\n selector: 'crm-activity-logger-task',\n templateUrl: './task.component.html',\n styleUrls: ['./shared.scss'],\n imports: [\n CommonModule,\n TranslateModule,\n TranslationModule,\n GalaxyFormFieldModule,\n MatInputModule,\n ReactiveFormsModule,\n TextFieldModule,\n MatDatepickerModule,\n MatSelectModule,\n ],\n standalone: true,\n})\nexport class CrmActivityLoggerTaskComponent implements LoggerComponentInterface, AfterViewInit {\n @Input() set activity(value: ActivityInterface | null) {\n this.setValues(value);\n }\n @Input({ transform: coerceBooleanProperty }) mobile: boolean | null = null;\n @Input() set user(value: UserWithFullName | null) {\n this._user = value || undefined;\n this.setPossibleOwners();\n }\n @Input() set activityOwner(value: User | undefined | null) {\n this._activityOwner = value || undefined;\n this.setPossibleOwners();\n }\n @Input()\n set description(value: string | null) {\n this.formGroup.patchValue({ taskInstructions: value || '' }, { emitEvent: false });\n }\n @Output() descriptionChange = new EventEmitter();\n\n @ViewChild('form') formGroupDirective!: FormGroupDirective;\n @ViewChild('defaultInput') defaultInput?: ElementRef;\n\n protected showErrors = false;\n protected readonly ActivityOutcome = ActivityOutcome;\n protected readonly MeetingDuration = MeetingDuration;\n protected readonly MeetingStatus = MeetingStatus;\n protected readonly textRows = 6;\n\n private _user?: UserWithFullName;\n private _activityOwner?: User;\n\n protected possibleOwners: OwnerOption[] = [];\n\n private today = new Date();\n formGroup = new FormBuilder().nonNullable.group(\n {\n taskName: '',\n taskInstructions: '',\n taskDueDate: formatDate(this.today.setDate(this.today.getDate() + 3), STANDARD_DATE_FORMAT),\n taskType: ActivityTaskType.ToDo,\n taskPriority: '',\n taskOwner: { value: '', disabled: true },\n },\n {\n validators: requiredFormGroupFieldsIf(\n () => this.showErrors,\n ['taskName', 'taskType', 'taskDueDate', 'taskOwner'],\n ),\n },\n );\n\n protected readonly taskTypes = ActivityTaskTypeTranslationKeys;\n\n constructor(private readonly fieldsService: CrmFieldService) {\n this.formGroup.controls.taskInstructions.valueChanges\n .pipe(takeUntilDestroyed(), distinctUntilChanged())\n .subscribe((value) => this.descriptionChange.emit(value));\n }\n\n ngAfterViewInit(): void {\n this.defaultInput?.nativeElement?.focus();\n }\n\n resetForm(): void {\n this.showErrors = false;\n const today = new Date();\n this.formGroup.reset({\n taskInstructions: this.description || '',\n taskOwner: this.user?.userId || '',\n taskDueDate: formatDate(today.setDate(today.getDate() + 3), STANDARD_DATE_FORMAT),\n });\n this.updateValueAndValidity();\n }\n\n getValues(): FieldValueInterface[] {\n const formValues = this.formGroup.getRawValue();\n return [\n {\n fieldId: this.fieldsService.getFieldId(StandardIds.ActivityName),\n stringValue: formValues.taskName,\n },\n {\n fieldId: this.fieldsService.getFieldId(StandardIds.ActivityTaskBody),\n stringValue: formValues.taskInstructions,\n },\n {\n fieldId: this.fieldsService.getFieldId(StandardIds.ActivityTaskDueDate),\n dateValue: formValues.taskDueDate ? new Date(formValues.taskDueDate) : undefined,\n },\n {\n fieldId: this.fieldsService.getFieldId(StandardIds.ActivityTaskPriority),\n stringValue: formValues.taskPriority,\n },\n {\n fieldId: this.fieldsService.getFieldId(StandardIds.ActivityTaskStatus),\n stringValue: DEFAULT_TASK_STATUS,\n },\n {\n fieldId: this.fieldsService.getFieldId(StandardIds.ActivityTaskType),\n stringValue: formValues.taskType,\n },\n ] as FieldValueInterface[];\n }\n\n private setValues(activity: ActivityInterface | null): void {\n if (activity) {\n const taskName = this.fieldsService.getFieldValueFromCrmObject(activity, StandardIds.ActivityName);\n const taskBody = this.fieldsService.getFieldValueFromCrmObject(activity, StandardIds.ActivityTaskBody);\n const taskDueDate = this.fieldsService.getFieldValueFromCrmObject(activity, StandardIds.ActivityTaskDueDate);\n const taskPriority = this.fieldsService.getFieldValueFromCrmObject(activity, StandardIds.ActivityTaskPriority);\n const taskType = this.fieldsService.getFieldValueFromCrmObject(activity, StandardIds.ActivityTaskType);\n const taskOwner = activity?.ownerId || this.user?.userId;\n\n this.formGroup.setValue({\n taskName: taskName?.stringValue || '',\n taskInstructions: taskBody?.stringValue || '',\n taskDueDate: taskDueDate?.dateValue ? formatDate(taskDueDate.dateValue, STANDARD_DATE_FORMAT) : '',\n taskPriority: taskPriority?.stringValue || '',\n taskType: taskType?.stringValue || '',\n taskOwner: taskOwner || '',\n });\n } else if (this.formGroup.dirty) {\n this.resetForm();\n }\n }\n\n private setPossibleOwners(): void {\n const possibleOwners: OwnerOption[] = [];\n if (this._user) {\n possibleOwners.push({ id: this._user.userId, displayName: this._user.fullName } as OwnerOption);\n }\n if (this._activityOwner) {\n const displayName = `${this._activityOwner.firstName} ${this._activityOwner.lastName}`.trim();\n possibleOwners.push({ id: this._activityOwner.userId, displayName } as OwnerOption);\n }\n this.possibleOwners = possibleOwners;\n\n if (!this.formGroup.getRawValue().taskOwner && possibleOwners.length > 0) {\n this.formGroup.patchValue({\n taskOwner: possibleOwners[0].id,\n });\n }\n }\n\n validate(): void {\n this.showErrors = true;\n this.formGroup.markAllAsTouched();\n this.updateValueAndValidity();\n }\n\n updateValueAndValidity(): void {\n this.formGroup.updateValueAndValidity();\n }\n\n get ownerId(): string | undefined {\n return this.formGroup.getRawValue().taskOwner || undefined;\n }\n}\n","
\n
\n \n \n \n \n \n {{ 'ACTIVITY_LOGGER.ERROR_REQUIRE_TASK_NAME_REQUIRED' | translate }}\n \n \n \n \n \n \n \n \n \n
\n \n
\n \n \n \n \n \n \n {{ 'ACTIVITY_LOGGER.ERROR_REQUIRE_TASK_DUE_DATE' | translate }}\n \n \n \n \n \n \n {{ owner.displayName }}\n \n \n \n \n {{ 'ACTIVITY_LOGGER.ERROR_REQUIRE_TASK_ASSIGNEE' | translate }}\n \n \n \n \n \n \n \n \n {{ type.nameKey | translate }}\n \n \n \n \n {{ 'ACTIVITY_LOGGER.ERROR_REQUIRE_TASK_TYPE' | translate }}\n \n \n \n \n \n {{ 'ACTIVITY.TASK.LOW' | translate }}\n {{ 'ACTIVITY.TASK.MEDIUM' | translate }}\n {{ 'ACTIVITY.TASK.HIGH' | translate }}\n \n \n \n \n
\n
\n","import { COMMA, ENTER } from '@angular/cdk/keycodes';\nimport { TextFieldModule } from '@angular/cdk/text-field';\nimport { CommonModule } from '@angular/common';\nimport { Component, EventEmitter, Input, Output } from '@angular/core';\nimport { FormControl, ReactiveFormsModule } from '@angular/forms';\nimport { MatAutocompleteModule, MatAutocompleteSelectedEvent } from '@angular/material/autocomplete';\nimport { MatChipsModule } from '@angular/material/chips';\nimport { MatIconModule } from '@angular/material/icon';\nimport { MatInputModule } from '@angular/material/input';\nimport { MatTooltipModule } from '@angular/material/tooltip';\nimport { LoggerAssociation } from './interfaces';\nimport { CrmTruncatePipe } from '../../../../shared-pipes/truncate.pipe';\nimport { coerceBooleanProperty } from '@angular/cdk/coercion';\nimport { takeUntilDestroyed } from '@angular/core/rxjs-interop';\n\n@Component({\n selector: 'crm-activity-logger-association',\n templateUrl: './association.component.html',\n styleUrls: ['./association.component.scss'],\n imports: [\n CommonModule,\n MatIconModule,\n MatChipsModule,\n MatInputModule,\n ReactiveFormsModule,\n TextFieldModule,\n MatAutocompleteModule,\n MatTooltipModule,\n CrmTruncatePipe,\n ],\n standalone: true,\n})\nexport class CrmActivityLoggerAssociationComponent {\n @Input({ required: true }) associations: LoggerAssociation[] = [];\n @Input() fixedId: string | null = null;\n @Input({ transform: coerceBooleanProperty }) mobile: boolean | null = null;\n @Input({ required: true }) options: LoggerAssociation[] = [];\n @Input() placeholder = '';\n\n @Output() add = new EventEmitter();\n @Output() remove = new EventEmitter();\n @Output() searchTermChange = new EventEmitter();\n\n protected showAdditionalChips = false;\n protected readonly separatorKeyCodes: number[] = [ENTER, COMMA];\n\n searchCtrl = new FormControl('');\n\n constructor() {\n this.searchCtrl.valueChanges\n .pipe(takeUntilDestroyed())\n .subscribe((searchTerm) => this.searchTermChange.emit(searchTerm));\n }\n\n handleRemoveOption(option: LoggerAssociation): void {\n this.removeAssociation(option);\n }\n\n handleSelectOption(event: MatAutocompleteSelectedEvent): void {\n if (!event.option.value) {\n return;\n }\n this.addAssociation(event.option.value);\n this.searchCtrl.setValue('');\n }\n\n private removeAssociation(association: LoggerAssociation) {\n if (association.crmObjectId !== this.fixedId) {\n this.remove.emit(association);\n }\n }\n\n private addAssociation(association: LoggerAssociation): void {\n if (!association.crmObjectType || !association.crmObjectId) {\n return;\n }\n if (!this.associations.find((a) => a.crmObjectId === association.crmObjectId)) {\n this.add.emit(association);\n }\n }\n}\n","\n \n \n {{ association.name | crmTruncate }}\n \n cancel\n \n \n \n 1 && !showAdditionalChips\">\n {{ associations.length - 1 }}\n more\n \n \n\n\n \n {{ option.name }}\n {{ option.associationInfo }}\n \n\n","import { inject, signal } from '@angular/core';\nimport { LoggerAssociation } from './interfaces';\nimport {\n BehaviorSubject,\n Observable,\n debounceTime,\n distinctUntilChanged,\n firstValueFrom,\n map,\n switchMap,\n withLatestFrom,\n} from 'rxjs';\nimport { ListCrmObjectsRequestInterface } from '@vendasta/crm';\nimport { CrmInjectionToken, ObjectType } from '../../../../tokens-and-interfaces';\nimport { TableCustomizationService, CrmObjectService } from '../../../../shared-services';\n\nexport abstract class CrmActivityLoggerAssociationField {\n protected abstract customizationService: TableCustomizationService;\n protected abstract crmObjectType: T;\n\n protected readonly config = inject(CrmInjectionToken);\n protected readonly crmObjectService = inject(CrmObjectService);\n protected readonly associationsList = signal([]);\n protected readonly searchTerm$$ = new BehaviorSubject('');\n protected readonly options$ = this.setupSearchTerm();\n\n protected abstract fetchObjects(objectIds: string[]): Promise;\n protected abstract setupSearchTerm(): Observable;\n\n protected async setAssociations(associations: LoggerAssociation[]): Promise {\n const existingAssociations = this.associationsList();\n // Infer existing names from existing associations\n associations\n .filter((association) => !association.name)\n .forEach((association) => {\n const existing = existingAssociations.find((item) => item.crmObjectId === association.crmObjectId);\n association.name = existing?.name || '';\n });\n // fetch missing names\n const objectsToFetch = associations\n .filter((association) => !association.name)\n .map((association) => association.crmObjectId!);\n if (objectsToFetch.length > 0) {\n const objects = await this.fetchObjects(objectsToFetch);\n objects.forEach((object) => {\n const association = associations.find((item) => item.crmObjectId === object.crmObjectId);\n association!.name = object.name;\n });\n }\n this.associationsList.set(associations);\n }\n\n protected updateSearchTerm(searchTerm?: unknown): void {\n if (typeof searchTerm === 'string') {\n this.searchTerm$$.next(searchTerm.trim());\n } else {\n this.searchTerm$$.next('');\n }\n }\n}\n\nexport abstract class CrmActivityLoggerObjectAssociationField extends CrmActivityLoggerAssociationField {\n protected async fetchObjects(objectIds: string[]): Promise {\n const crmObjs = await firstValueFrom(this.crmObjectService.getMultiObject(this.crmObjectType, objectIds));\n return (\n crmObjs?.crmObjects?.map(\n (obj) =>\n ({\n name: this.customizationService.getRowFullName(obj),\n crmObjectId: obj.crmObjectId,\n crmObjectType: this.crmObjectType,\n } as LoggerAssociation),\n ) ?? []\n );\n }\n\n protected setupSearchTerm(): Observable {\n return this.searchTerm$$.asObservable().pipe(\n debounceTime(500),\n distinctUntilChanged(),\n withLatestFrom(this.config.namespace$),\n map(\n ([searchTerm, namespace]) =>\n ({\n namespace,\n search: { searchTerm },\n pagingOptions: { cursor: '', pageSize: 10 },\n } as ListCrmObjectsRequestInterface),\n ),\n switchMap((r: ListCrmObjectsRequestInterface) => this.crmObjectService.listObjects(this.crmObjectType, r)),\n map(\n (filteredOptions) =>\n filteredOptions?.crmObjects?.map(\n (option) =>\n ({\n name: this.customizationService.getRowFullName(option),\n associationInfo: this.customizationService.getAssociationInfo(option),\n crmObjectId: option.crmObjectId,\n crmObjectType: this.crmObjectType,\n } as LoggerAssociation),\n ) || [],\n ),\n );\n }\n}\n","import { CommonModule } from '@angular/common';\nimport { Component, EventEmitter, Input, Output, inject } from '@angular/core';\nimport { LoggerAssociation } from './interfaces';\nimport { CrmActivityLoggerAssociationComponent } from './association.component';\nimport { coerceBooleanProperty } from '@angular/cdk/coercion';\nimport { CrmActivityLoggerObjectAssociationField } from './association-field.component';\nimport { ContactTableCustomizationService } from '../../../../shared-services';\nimport { Observable, switchMap, map, withLatestFrom } from 'rxjs';\nimport { CompanyContactCacheService, CrmAssociationService } from '../../../../shared-services';\n\n@Component({\n selector: 'crm-activity-logger-contact-association',\n templateUrl: './contact-association.component.html',\n imports: [CommonModule, CrmActivityLoggerAssociationComponent],\n standalone: true,\n})\nexport class CrmActivityLoggerContactAssociationComponent extends CrmActivityLoggerObjectAssociationField {\n @Input({ required: true }) set associations(value: LoggerAssociation[]) {\n this.setAssociations(value);\n }\n @Input() fixedId: string | null = null;\n @Input({ transform: coerceBooleanProperty }) mobile: boolean | null = null;\n @Input() placeholder = '';\n\n @Output() associationsChange = new EventEmitter();\n\n protected readonly customizationService = inject(ContactTableCustomizationService);\n protected readonly crmObjectType = 'Contact';\n protected readonly companyContactCacheService = inject(CompanyContactCacheService);\n protected readonly crmAssociationService = inject(CrmAssociationService);\n\n handleAdd(association: LoggerAssociation): void {\n const associations = this.associationsList();\n if (!associations.find((a) => a.crmObjectId === association.crmObjectId)) {\n const newAssociations = [...associations, association];\n this.associationsList.set(newAssociations);\n this.associationsChange.emit(newAssociations);\n }\n }\n\n handleRemove(association: LoggerAssociation): void {\n const associations = this.associationsList().filter((a) => a.crmObjectId !== association.crmObjectId);\n this.associationsList.set(associations);\n this.associationsChange.emit(associations);\n }\n\n handleSearchTermChange(searchTerm?: unknown): void {\n this.updateSearchTerm(searchTerm);\n }\n\n protected setupSearchTerm(): Observable {\n return super.setupSearchTerm().pipe(\n withLatestFrom(this.searchTerm$$.asObservable()),\n switchMap((values: [LoggerAssociation[], string]) => {\n let allAssociations: LoggerAssociation[] = values[0];\n const searchTerm: string = values[1];\n return this.crmAssociationService.getCachedContactAssociationsForCompany$(this.fixedId || '').pipe(\n map((contacts) => {\n let associatedContacts =\n contacts.map(\n (contact) =>\n ({\n name: this.customizationService.getRowFullName(contact.associatedObject),\n associationInfo: this.customizationService.getAssociationInfo(contact.associatedObject),\n crmObjectId: contact.associatedObject.crmObjectId,\n crmObjectType: this.crmObjectType,\n }) as LoggerAssociation,\n ) || [];\n associatedContacts = associatedContacts.filter((c) => contactContains(c, searchTerm));\n allAssociations = allAssociations.filter((a) => !contactIncludes(associatedContacts, a));\n if (associatedContacts.length > 10) {\n associatedContacts = associatedContacts.slice(0, 10);\n }\n return associatedContacts.concat(allAssociations);\n }),\n ) as Observable;\n }),\n );\n }\n}\n\nfunction contactContains(contact: LoggerAssociation, search: string): boolean {\n if (!search || search === '') return true;\n return (\n contact.name?.toLowerCase().includes(search.toLowerCase()) ||\n contact.associationInfo?.toLowerCase().includes(search.toLowerCase())\n );\n}\n\nfunction contactIncludes(array: LoggerAssociation[], searchElement: LoggerAssociation, fromIndex = 0): boolean {\n const len = array.length;\n const startIndex = fromIndex < 0 ? Math.max(0, len + fromIndex) : fromIndex;\n\n for (let i = startIndex; i < len; i++) {\n const currentElement = array[i];\n if (searchElement.crmObjectId === currentElement.crmObjectId) {\n return true;\n }\n if (searchElement === currentElement || (searchElement !== searchElement && currentElement !== currentElement)) {\n return true; // Handles NaN case\n }\n }\n\n return false;\n}\n","\n","import { CommonModule } from '@angular/common';\nimport { Component, EventEmitter, Input, Output, inject } from '@angular/core';\nimport { LoggerAssociation } from './interfaces';\nimport { CrmActivityLoggerAssociationComponent } from './association.component';\nimport { coerceBooleanProperty } from '@angular/cdk/coercion';\nimport { CrmActivityLoggerObjectAssociationField } from './association-field.component';\nimport { CompanyTableCustomizationService } from '../../../../shared-services/table-customization/company-table-customization.service';\n\n@Component({\n selector: 'crm-activity-logger-company-association',\n templateUrl: './company-association.component.html',\n imports: [CommonModule, CrmActivityLoggerAssociationComponent],\n standalone: true,\n})\nexport class CrmActivityLoggerCompanyAssociationComponent extends CrmActivityLoggerObjectAssociationField {\n @Input({ required: true }) set associations(value: LoggerAssociation[]) {\n this.setAssociations(value);\n }\n @Input() fixedId: string | null = null;\n @Input({ transform: coerceBooleanProperty }) mobile: boolean | null = null;\n @Input() placeholder = '';\n\n @Output() associationsChange = new EventEmitter();\n\n protected readonly customizationService = inject(CompanyTableCustomizationService);\n protected readonly crmObjectType = 'Company';\n\n handleAdd(association: LoggerAssociation): void {\n const associations = this.associationsList();\n if (!associations.find((a) => a.crmObjectId === association.crmObjectId)) {\n const newAssociations = [...associations, association];\n this.associationsList.set(newAssociations);\n this.associationsChange.emit(newAssociations);\n }\n }\n\n handleRemove(association: LoggerAssociation): void {\n const associations = this.associationsList().filter((a) => a.crmObjectId !== association.crmObjectId);\n this.associationsList.set(associations);\n this.associationsChange.emit(associations);\n }\n\n handleSearchTermChange(searchTerm?: unknown): void {\n this.updateSearchTerm(searchTerm);\n }\n}\n","\n","import { InjectionToken, NgModule } from '@angular/core';\nimport { CrmDependencies, CrmInjectionToken } from './tokens-and-interfaces';\n\n@NgModule({\n imports: [],\n})\nexport class CrmCoreModule {\n static forRoot(config: InjectionToken) {\n return {\n ngModule: CrmCoreModule,\n providers: [\n {\n provide: CrmInjectionToken,\n useExisting: config,\n deps: [],\n },\n ],\n };\n }\n}\n","import { CommonModule } from '@angular/common';\nimport { Component, EventEmitter, Input, Output } from '@angular/core';\nimport { MatButtonModule } from '@angular/material/button';\nimport { MatCardModule } from '@angular/material/card';\nimport { MatIconModule } from '@angular/material/icon';\nimport { MatMenuModule } from '@angular/material/menu';\nimport { MatTooltipModule } from '@angular/material/tooltip';\nimport { RouterLink } from '@angular/router';\nimport { GalaxyAvatarModule } from '@vendasta/galaxy/avatar';\nimport { CardData } from '../../../tokens-and-interfaces';\nimport { TranslationModule } from '../../../i18n/translation-module';\nimport { Clipboard } from '@angular/cdk/clipboard';\nimport { SnackbarService } from '@vendasta/galaxy/snackbar-service';\n\nexport type ActionFunc = (data: CardData) => void;\n\nexport interface CardAction {\n label: string;\n callback: ActionFunc;\n}\n\n@Component({\n selector: 'crm-association-card',\n templateUrl: './association-card.component.html',\n styleUrls: ['./association-card.component.scss'],\n imports: [\n CommonModule,\n MatCardModule,\n GalaxyAvatarModule,\n MatIconModule,\n MatMenuModule,\n MatButtonModule,\n MatTooltipModule,\n TranslationModule,\n RouterLink,\n ],\n providers: [{ provide: Window, useValue: window }],\n standalone: true,\n})\nexport class AssociationCardComponent {\n @Input({ required: true }) cardData!: CardData;\n @Input() showActionsMenu = true;\n @Input() showEditTagButton = true;\n @Input() showRemoveButton = true;\n @Input() actions: CardAction[] = [];\n @Output() removeClick = new EventEmitter();\n @Output() editTagsClick = new EventEmitter();\n\n constructor(private clipboard: Clipboard, private snackbarService: SnackbarService, private window: Window) {}\n\n onRemove() {\n this.removeClick.emit();\n }\n\n onEditTags() {\n this.editTagsClick.emit();\n }\n\n copyToClipboard(email: string): void {\n this.clipboard.copy(email);\n this.snackbarService.openSuccessSnack('Successfully copied to clipboard', { action: 'Close' });\n }\n\n openMailWindow(): void {\n this.window.open(\n `mailto:${this.cardData.email}`,\n 'targetWindow',\n 'toolbar=no,location=no,status=no,menubar=no,scrollbars=yes,resizable=yes,width=900,height=600',\n );\n }\n}\n","\n \n \n \n \n \n {{ cardData.userName }}\n \n \n\n \n
\n \n {{ cardData.email }}\n \n \n
\n
\n\n \n \n \n {{ cardData.businessName }}\n \n \n\n \n \n {{ cardData.businessWebsite }}\n \n \n\n \n \n @if (cardData.profileButtonUrl) {\n \n {{ cardData.accountGroupCompanyId }}\n \n } @else {\n {{ cardData.accountGroupCompanyId }}\n }\n \n\n \n

{{ cardData.accountGroupCompanyName ?? '' }}

\n
\n\n \n \n \n \n \n \n \n \n
\n \n \n \n
\n","import { CommonModule } from '@angular/common';\nimport { Component, Input } from '@angular/core';\nimport { MatIconModule } from '@angular/material/icon';\nimport { GalaxyBadgeModule } from '@vendasta/galaxy/badge';\nimport { GalaxyTooltipModule } from '@vendasta/galaxy/tooltip';\n\n@Component({\n selector: 'crm-tags',\n templateUrl: './tags.component.html',\n styleUrls: ['./tags.component.scss'],\n imports: [CommonModule, MatIconModule, GalaxyBadgeModule, GalaxyTooltipModule],\n standalone: true,\n})\nexport class TagsComponent {\n @Input() tags: string[] = [];\n}\n","\n {{ tags[0] }}\n 1\">\n {{ tags[1] }}\n \n\n\n\n \n\n\n \n\n\n\n = 1\">\n {{ tags[0] }}\n \n = 2\">\n {{ tags[1] }}\n \n\n\n\n = 3\" [glxyTooltip]=\"tags.slice(2).join(', ')\">+{{ tags.length - 2 }}\n\n\n\n = 3\" [glxyTooltip]=\"tags.slice(2).join(', ')\">+{{ tags.length - 2 }}\n\n","export const LinkedinIconSVG =\n ' ';\n","import { CommonModule } from '@angular/common';\nimport { Component, Input } from '@angular/core';\nimport { MatIconModule, MatIconRegistry } from '@angular/material/icon';\nimport { DomSanitizer } from '@angular/platform-browser';\nimport { LinkedinIconSVG } from './linkedin-icon.svg';\n\n@Component({\n selector: 'crm-common-association-card-content',\n templateUrl: './common-association-card-content.component.html',\n styleUrls: ['./common-association-card-content.component.scss'],\n imports: [CommonModule, MatIconModule],\n standalone: true,\n})\nexport class CommonAssociationCardContentComponent {\n @Input() iconName = '';\n @Input() isSvgIcon?: boolean;\n\n constructor(private matIconRegistry: MatIconRegistry, private sanitizer: DomSanitizer) {\n this.matIconRegistry.addSvgIconLiteral('linkedin', this.sanitizer.bypassSecurityTrustHtml(LinkedinIconSVG));\n }\n}\n","
\n \n
\n \n
\n
\n \n
\n {{ iconName }}\n
\n
\n
\n \n
\n
\n","export * from './association-card.component';\nexport * from './tags/tags.component';\nexport * from './common-associaon-card-content/common-association-card-content.component';\nexport * from './common-associaon-card-content/linkedin-icon.svg';\n","import * as i0 from '@angular/core';\nimport { Injectable } from '@angular/core';\nimport * as i1 from '@angular/common/http';\nimport { HttpHeaders } from '@angular/common/http';\nimport { map, mapTo } from 'rxjs/operators';\n\n// *********************************\n// Code generated by sdkgen\n// DO NOT EDIT!.\n//\n// Enums.\n// *********************************\nvar EmailBuilderTemplateFocuses = /*#__PURE__*/function (EmailBuilderTemplateFocuses) {\n EmailBuilderTemplateFocuses[EmailBuilderTemplateFocuses[\"EMAIL_BUILDER_TEMPLATE_FOCUSES_UNSPECIFIED\"] = 0] = \"EMAIL_BUILDER_TEMPLATE_FOCUSES_UNSPECIFIED\";\n EmailBuilderTemplateFocuses[EmailBuilderTemplateFocuses[\"EMAIL_BUILDER_TEMPLATE_FOCUSES_ACQUIRE\"] = 1] = \"EMAIL_BUILDER_TEMPLATE_FOCUSES_ACQUIRE\";\n EmailBuilderTemplateFocuses[EmailBuilderTemplateFocuses[\"EMAIL_BUILDER_TEMPLATE_FOCUSES_UPSELL\"] = 2] = \"EMAIL_BUILDER_TEMPLATE_FOCUSES_UPSELL\";\n EmailBuilderTemplateFocuses[EmailBuilderTemplateFocuses[\"EMAIL_BUILDER_TEMPLATE_FOCUSES_ADOPT\"] = 3] = \"EMAIL_BUILDER_TEMPLATE_FOCUSES_ADOPT\";\n return EmailBuilderTemplateFocuses;\n}(EmailBuilderTemplateFocuses || {});\nvar ImageAlign = /*#__PURE__*/function (ImageAlign) {\n ImageAlign[ImageAlign[\"IMAGE_ALIGN_UNSPECIFIED\"] = 0] = \"IMAGE_ALIGN_UNSPECIFIED\";\n ImageAlign[ImageAlign[\"IMAGE_ALIGN_LEFT\"] = 1] = \"IMAGE_ALIGN_LEFT\";\n ImageAlign[ImageAlign[\"IMAGE_ALIGN_CENTER\"] = 2] = \"IMAGE_ALIGN_CENTER\";\n ImageAlign[ImageAlign[\"IMAGE_ALIGN_RIGHT\"] = 3] = \"IMAGE_ALIGN_RIGHT\";\n return ImageAlign;\n}(ImageAlign || {});\nvar EmailBuilderTemplateStatuses = /*#__PURE__*/function (EmailBuilderTemplateStatuses) {\n EmailBuilderTemplateStatuses[EmailBuilderTemplateStatuses[\"EMAIL_BUILDER_TEMPLATE_STATUSES_UNSPECIFIED\"] = 0] = \"EMAIL_BUILDER_TEMPLATE_STATUSES_UNSPECIFIED\";\n EmailBuilderTemplateStatuses[EmailBuilderTemplateStatuses[\"EMAIL_BUILDER_TEMPLATE_STATUSES_DRAFT\"] = 1] = \"EMAIL_BUILDER_TEMPLATE_STATUSES_DRAFT\";\n EmailBuilderTemplateStatuses[EmailBuilderTemplateStatuses[\"EMAIL_BUILDER_TEMPLATE_STATUSES_PUBLISHED\"] = 2] = \"EMAIL_BUILDER_TEMPLATE_STATUSES_PUBLISHED\";\n EmailBuilderTemplateStatuses[EmailBuilderTemplateStatuses[\"EMAIL_BUILDER_TEMPLATE_STATUSES_ACTIVE\"] = 3] = \"EMAIL_BUILDER_TEMPLATE_STATUSES_ACTIVE\";\n EmailBuilderTemplateStatuses[EmailBuilderTemplateStatuses[\"EMAIL_BUILDER_TEMPLATE_STATUSES_ARCHIVED\"] = 4] = \"EMAIL_BUILDER_TEMPLATE_STATUSES_ARCHIVED\";\n return EmailBuilderTemplateStatuses;\n}(EmailBuilderTemplateStatuses || {});\n// *********************************\n// Code generated by sdkgen\n// DO NOT EDIT!.\n//\n// Enums.\n// *********************************\nvar DateDefault = /*#__PURE__*/function (DateDefault) {\n DateDefault[DateDefault[\"DATE_DEFAULT_INVALID\"] = 0] = \"DATE_DEFAULT_INVALID\";\n DateDefault[DateDefault[\"DATE_DEFAULT_TODAY\"] = 1] = \"DATE_DEFAULT_TODAY\";\n DateDefault[DateDefault[\"DATE_DEFAULT_YESTERDAY\"] = 2] = \"DATE_DEFAULT_YESTERDAY\";\n DateDefault[DateDefault[\"DATE_DEFAULT_TOMORROW\"] = 3] = \"DATE_DEFAULT_TOMORROW\";\n DateDefault[DateDefault[\"DATE_DEFAULT_THIS_WEEK\"] = 4] = \"DATE_DEFAULT_THIS_WEEK\";\n DateDefault[DateDefault[\"DATE_DEFAULT_LAST_WEEK\"] = 5] = \"DATE_DEFAULT_LAST_WEEK\";\n DateDefault[DateDefault[\"DATE_DEFAULT_NEXT_WEEK\"] = 6] = \"DATE_DEFAULT_NEXT_WEEK\";\n DateDefault[DateDefault[\"DATE_DEFAULT_THIS_MONTH\"] = 7] = \"DATE_DEFAULT_THIS_MONTH\";\n DateDefault[DateDefault[\"DATE_DEFAULT_LAST_MONTH\"] = 8] = \"DATE_DEFAULT_LAST_MONTH\";\n DateDefault[DateDefault[\"DATE_DEFAULT_NEXT_MONTH\"] = 9] = \"DATE_DEFAULT_NEXT_MONTH\";\n DateDefault[DateDefault[\"DATE_DEFAULT_THIS_QUARTER\"] = 10] = \"DATE_DEFAULT_THIS_QUARTER\";\n DateDefault[DateDefault[\"DATE_DEFAULT_LAST_QUARTER\"] = 11] = \"DATE_DEFAULT_LAST_QUARTER\";\n DateDefault[DateDefault[\"DATE_DEFAULT_NEXT_QUARTER\"] = 12] = \"DATE_DEFAULT_NEXT_QUARTER\";\n DateDefault[DateDefault[\"DATE_DEFAULT_THIS_YEAR\"] = 13] = \"DATE_DEFAULT_THIS_YEAR\";\n DateDefault[DateDefault[\"DATE_DEFAULT_LAST_YEAR\"] = 14] = \"DATE_DEFAULT_LAST_YEAR\";\n DateDefault[DateDefault[\"DATE_DEFAULT_NEXT_YEAR\"] = 15] = \"DATE_DEFAULT_NEXT_YEAR\";\n return DateDefault;\n}(DateDefault || {});\nvar FilterGroupOperator = /*#__PURE__*/function (FilterGroupOperator) {\n FilterGroupOperator[FilterGroupOperator[\"FILTER_GROUP_OPERATOR_INVALID\"] = 0] = \"FILTER_GROUP_OPERATOR_INVALID\";\n FilterGroupOperator[FilterGroupOperator[\"FILTER_GROUP_OPERATOR_AND\"] = 1] = \"FILTER_GROUP_OPERATOR_AND\";\n FilterGroupOperator[FilterGroupOperator[\"FILTER_GROUP_OPERATOR_OR\"] = 2] = \"FILTER_GROUP_OPERATOR_OR\";\n return FilterGroupOperator;\n}(FilterGroupOperator || {});\nvar FilterOperator = /*#__PURE__*/function (FilterOperator) {\n FilterOperator[FilterOperator[\"FILTER_OPERATOR_INVALID\"] = 0] = \"FILTER_OPERATOR_INVALID\";\n FilterOperator[FilterOperator[\"FILTER_OPERATOR_IS_EMPTY\"] = 1] = \"FILTER_OPERATOR_IS_EMPTY\";\n FilterOperator[FilterOperator[\"FILTER_OPERATOR_IS_NOT_EMPTY\"] = 2] = \"FILTER_OPERATOR_IS_NOT_EMPTY\";\n FilterOperator[FilterOperator[\"FILTER_OPERATOR_IS\"] = 3] = \"FILTER_OPERATOR_IS\";\n FilterOperator[FilterOperator[\"FILTER_OPERATOR_IS_NOT\"] = 4] = \"FILTER_OPERATOR_IS_NOT\";\n FilterOperator[FilterOperator[\"FILTER_OPERATOR_IS_ANY\"] = 5] = \"FILTER_OPERATOR_IS_ANY\";\n FilterOperator[FilterOperator[\"FILTER_OPERATOR_IS_NOT_ANY\"] = 6] = \"FILTER_OPERATOR_IS_NOT_ANY\";\n FilterOperator[FilterOperator[\"FILTER_OPERATOR_IS_ALL\"] = 7] = \"FILTER_OPERATOR_IS_ALL\";\n FilterOperator[FilterOperator[\"FILTER_OPERATOR_IS_NOT_ALL\"] = 8] = \"FILTER_OPERATOR_IS_NOT_ALL\";\n FilterOperator[FilterOperator[\"FILTER_OPERATOR_CONTAINS\"] = 9] = \"FILTER_OPERATOR_CONTAINS\";\n FilterOperator[FilterOperator[\"FILTER_OPERATOR_DOES_NOT_CONTAIN\"] = 10] = \"FILTER_OPERATOR_DOES_NOT_CONTAIN\";\n FilterOperator[FilterOperator[\"FILTER_OPERATOR_IS_EQUAL_TO\"] = 11] = \"FILTER_OPERATOR_IS_EQUAL_TO\";\n FilterOperator[FilterOperator[\"FILTER_OPERATOR_IS_NOT_EQUAL_TO\"] = 12] = \"FILTER_OPERATOR_IS_NOT_EQUAL_TO\";\n FilterOperator[FilterOperator[\"FILTER_OPERATOR_IS_GREATER_THAN\"] = 13] = \"FILTER_OPERATOR_IS_GREATER_THAN\";\n FilterOperator[FilterOperator[\"FILTER_OPERATOR_IS_GREATER_THAN_OR_EQUAL_TO\"] = 14] = \"FILTER_OPERATOR_IS_GREATER_THAN_OR_EQUAL_TO\";\n FilterOperator[FilterOperator[\"FILTER_OPERATOR_IS_LESS_THAN\"] = 15] = \"FILTER_OPERATOR_IS_LESS_THAN\";\n FilterOperator[FilterOperator[\"FILTER_OPERATOR_IS_LESS_THAN_OR_EQUAL_TO\"] = 16] = \"FILTER_OPERATOR_IS_LESS_THAN_OR_EQUAL_TO\";\n FilterOperator[FilterOperator[\"FILTER_OPERATOR_IS_BEFORE\"] = 17] = \"FILTER_OPERATOR_IS_BEFORE\";\n FilterOperator[FilterOperator[\"FILTER_OPERATOR_IS_BEFORE_OR_ON\"] = 18] = \"FILTER_OPERATOR_IS_BEFORE_OR_ON\";\n FilterOperator[FilterOperator[\"FILTER_OPERATOR_IS_AFTER\"] = 19] = \"FILTER_OPERATOR_IS_AFTER\";\n FilterOperator[FilterOperator[\"FILTER_OPERATOR_IS_AFTER_OR_ON\"] = 20] = \"FILTER_OPERATOR_IS_AFTER_OR_ON\";\n FilterOperator[FilterOperator[\"FILTER_OPERATOR_IS_BETWEEN\"] = 21] = \"FILTER_OPERATOR_IS_BETWEEN\";\n FilterOperator[FilterOperator[\"FILTER_OPERATOR_IS_NOT_BETWEEN\"] = 22] = \"FILTER_OPERATOR_IS_NOT_BETWEEN\";\n return FilterOperator;\n}(FilterOperator || {});\nvar FilterType = /*#__PURE__*/function (FilterType) {\n FilterType[FilterType[\"FILTER_TYPE_INVALID\"] = 0] = \"FILTER_TYPE_INVALID\";\n FilterType[FilterType[\"FILTER_TYPE_STRING\"] = 1] = \"FILTER_TYPE_STRING\";\n FilterType[FilterType[\"FILTER_TYPE_INTEGER\"] = 2] = \"FILTER_TYPE_INTEGER\";\n FilterType[FilterType[\"FILTER_TYPE_DATE\"] = 3] = \"FILTER_TYPE_DATE\";\n FilterType[FilterType[\"FILTER_TYPE_FLOAT\"] = 4] = \"FILTER_TYPE_FLOAT\";\n FilterType[FilterType[\"FILTER_TYPE_BOOLEAN\"] = 5] = \"FILTER_TYPE_BOOLEAN\";\n FilterType[FilterType[\"FILTER_TYPE_TAG\"] = 6] = \"FILTER_TYPE_TAG\";\n return FilterType;\n}(FilterType || {});\n// *********************************\n// Code generated by sdkgen\n// DO NOT EDIT!.\n//\n// Enums.\n// *********************************\nvar AsyncWorkStatus = /*#__PURE__*/function (AsyncWorkStatus) {\n AsyncWorkStatus[AsyncWorkStatus[\"ASYNC_WORK_STATUS_INVALID\"] = 0] = \"ASYNC_WORK_STATUS_INVALID\";\n AsyncWorkStatus[AsyncWorkStatus[\"ASYNC_WORK_STATUS_IN_PROGRESS\"] = 1] = \"ASYNC_WORK_STATUS_IN_PROGRESS\";\n AsyncWorkStatus[AsyncWorkStatus[\"ASYNC_WORK_STATUS_COMPLETE\"] = 2] = \"ASYNC_WORK_STATUS_COMPLETE\";\n AsyncWorkStatus[AsyncWorkStatus[\"ASYNC_WORK_STATUS_ERROR\"] = 3] = \"ASYNC_WORK_STATUS_ERROR\";\n return AsyncWorkStatus;\n}(AsyncWorkStatus || {});\nvar CampaignQuotaCategory = /*#__PURE__*/function (CampaignQuotaCategory) {\n CampaignQuotaCategory[CampaignQuotaCategory[\"CAMPAIGN_QUOTA_TYPE_INVALID\"] = 0] = \"CAMPAIGN_QUOTA_TYPE_INVALID\";\n CampaignQuotaCategory[CampaignQuotaCategory[\"CAMPAIGN_QUOTA_TYPE_EMAIL\"] = 1] = \"CAMPAIGN_QUOTA_TYPE_EMAIL\";\n CampaignQuotaCategory[CampaignQuotaCategory[\"CAMPAIGN_QUOTA_TYPE_SMS\"] = 2] = \"CAMPAIGN_QUOTA_TYPE_SMS\";\n return CampaignQuotaCategory;\n}(CampaignQuotaCategory || {});\nvar CampaignScheduleStatus = /*#__PURE__*/function (CampaignScheduleStatus) {\n CampaignScheduleStatus[CampaignScheduleStatus[\"CAMPAIGN_SCHEDULE_STATUS_UNSPECIFIED\"] = 0] = \"CAMPAIGN_SCHEDULE_STATUS_UNSPECIFIED\";\n CampaignScheduleStatus[CampaignScheduleStatus[\"CAMPAIGN_SCHEDULE_STATUS_ACTIVE\"] = 1] = \"CAMPAIGN_SCHEDULE_STATUS_ACTIVE\";\n CampaignScheduleStatus[CampaignScheduleStatus[\"CAMPAIGN_SCHEDULE_STATUS_WAITING_ON_RATE_LIMIT\"] = 2] = \"CAMPAIGN_SCHEDULE_STATUS_WAITING_ON_RATE_LIMIT\";\n CampaignScheduleStatus[CampaignScheduleStatus[\"CAMPAIGN_SCHEDULE_STATUS_STOPPED\"] = 3] = \"CAMPAIGN_SCHEDULE_STATUS_STOPPED\";\n CampaignScheduleStatus[CampaignScheduleStatus[\"CAMPAIGN_SCHEDULE_STATUS_COMPLETED\"] = 4] = \"CAMPAIGN_SCHEDULE_STATUS_COMPLETED\";\n return CampaignScheduleStatus;\n}(CampaignScheduleStatus || {});\nvar CampaignState = /*#__PURE__*/function (CampaignState) {\n CampaignState[CampaignState[\"CAMPAIGN_STATE_UNSPECIFIED\"] = 0] = \"CAMPAIGN_STATE_UNSPECIFIED\";\n CampaignState[CampaignState[\"CAMPAIGN_STATE_ACTIVE\"] = 1] = \"CAMPAIGN_STATE_ACTIVE\";\n CampaignState[CampaignState[\"CAMPAIGN_STATE_IDLE\"] = 2] = \"CAMPAIGN_STATE_IDLE\";\n return CampaignState;\n}(CampaignState || {});\nvar CampaignStepEventType = /*#__PURE__*/function (CampaignStepEventType) {\n CampaignStepEventType[CampaignStepEventType[\"CAMPAIGN_STEP_EVENT_TYPE_UNSPECIFIED\"] = 0] = \"CAMPAIGN_STEP_EVENT_TYPE_UNSPECIFIED\";\n CampaignStepEventType[CampaignStepEventType[\"CAMPAIGN_STEP_EVENT_TYPE_PROCESSED\"] = 1] = \"CAMPAIGN_STEP_EVENT_TYPE_PROCESSED\";\n CampaignStepEventType[CampaignStepEventType[\"CAMPAIGN_STEP_EVENT_TYPE_DROPPED\"] = 2] = \"CAMPAIGN_STEP_EVENT_TYPE_DROPPED\";\n CampaignStepEventType[CampaignStepEventType[\"CAMPAIGN_STEP_EVENT_TYPE_DELIVERED\"] = 3] = \"CAMPAIGN_STEP_EVENT_TYPE_DELIVERED\";\n CampaignStepEventType[CampaignStepEventType[\"CAMPAIGN_STEP_EVENT_TYPE_DEFERRED\"] = 4] = \"CAMPAIGN_STEP_EVENT_TYPE_DEFERRED\";\n CampaignStepEventType[CampaignStepEventType[\"CAMPAIGN_STEP_EVENT_TYPE_BOUNCE\"] = 5] = \"CAMPAIGN_STEP_EVENT_TYPE_BOUNCE\";\n CampaignStepEventType[CampaignStepEventType[\"CAMPAIGN_STEP_EVENT_TYPE_OPEN\"] = 6] = \"CAMPAIGN_STEP_EVENT_TYPE_OPEN\";\n CampaignStepEventType[CampaignStepEventType[\"CAMPAIGN_STEP_EVENT_TYPE_CLICK\"] = 7] = \"CAMPAIGN_STEP_EVENT_TYPE_CLICK\";\n CampaignStepEventType[CampaignStepEventType[\"CAMPAIGN_STEP_EVENT_TYPE_SPAM_REPORT\"] = 8] = \"CAMPAIGN_STEP_EVENT_TYPE_SPAM_REPORT\";\n CampaignStepEventType[CampaignStepEventType[\"CAMPAIGN_STEP_EVENT_TYPE_UNSUBSCRIBE\"] = 9] = \"CAMPAIGN_STEP_EVENT_TYPE_UNSUBSCRIBE\";\n CampaignStepEventType[CampaignStepEventType[\"CAMPAIGN_STEP_EVENT_TYPE_CREATED\"] = 10] = \"CAMPAIGN_STEP_EVENT_TYPE_CREATED\";\n CampaignStepEventType[CampaignStepEventType[\"CAMPAIGN_STEP_EVENT_TYPE_NOT_REQUIRED\"] = 11] = \"CAMPAIGN_STEP_EVENT_TYPE_NOT_REQUIRED\";\n CampaignStepEventType[CampaignStepEventType[\"CAMPAIGN_STEP_EVENT_TYPE_REFRESHED\"] = 12] = \"CAMPAIGN_STEP_EVENT_TYPE_REFRESHED\";\n return CampaignStepEventType;\n}(CampaignStepEventType || {});\nvar CampaignStepSendStatusType = /*#__PURE__*/function (CampaignStepSendStatusType) {\n CampaignStepSendStatusType[CampaignStepSendStatusType[\"CAMPAIGN_STEP_SEND_STATUS_TYPE_UNSPECIFIED\"] = 0] = \"CAMPAIGN_STEP_SEND_STATUS_TYPE_UNSPECIFIED\";\n CampaignStepSendStatusType[CampaignStepSendStatusType[\"CAMPAIGN_STEP_SEND_STATUS_TYPE_UNSENT\"] = 1] = \"CAMPAIGN_STEP_SEND_STATUS_TYPE_UNSENT\";\n CampaignStepSendStatusType[CampaignStepSendStatusType[\"CAMPAIGN_STEP_SEND_STATUS_TYPE_QUEUED\"] = 2] = \"CAMPAIGN_STEP_SEND_STATUS_TYPE_QUEUED\";\n CampaignStepSendStatusType[CampaignStepSendStatusType[\"CAMPAIGN_STEP_SEND_STATUS_TYPE_SENDING\"] = 3] = \"CAMPAIGN_STEP_SEND_STATUS_TYPE_SENDING\";\n CampaignStepSendStatusType[CampaignStepSendStatusType[\"CAMPAIGN_STEP_SEND_STATUS_TYPE_SENT\"] = 4] = \"CAMPAIGN_STEP_SEND_STATUS_TYPE_SENT\";\n return CampaignStepSendStatusType;\n}(CampaignStepSendStatusType || {});\nvar CampaignStepType = /*#__PURE__*/function (CampaignStepType) {\n CampaignStepType[CampaignStepType[\"CAMPAIGN_STEP_TYPE_UNSPECIFIED\"] = 0] = \"CAMPAIGN_STEP_TYPE_UNSPECIFIED\";\n CampaignStepType[CampaignStepType[\"CAMPAIGN_STEP_TYPE_EMAIL\"] = 1] = \"CAMPAIGN_STEP_TYPE_EMAIL\";\n CampaignStepType[CampaignStepType[\"CAMPAIGN_STEP_TYPE_SNAPSHOT_CREATION\"] = 2] = \"CAMPAIGN_STEP_TYPE_SNAPSHOT_CREATION\";\n CampaignStepType[CampaignStepType[\"CAMPAIGN_STEP_TYPE_SMS\"] = 3] = \"CAMPAIGN_STEP_TYPE_SMS\";\n return CampaignStepType;\n}(CampaignStepType || {});\nvar ContactType = /*#__PURE__*/function (ContactType) {\n ContactType[ContactType[\"CONTACT_TYPE_INVALID\"] = 0] = \"CONTACT_TYPE_INVALID\";\n ContactType[ContactType[\"CONTACT_TYPE_EMAIL\"] = 1] = \"CONTACT_TYPE_EMAIL\";\n return ContactType;\n}(ContactType || {});\nvar DaysOfTheWeek = /*#__PURE__*/function (DaysOfTheWeek) {\n DaysOfTheWeek[DaysOfTheWeek[\"DAYS_OF_THE_WEEK_MONDAY\"] = 0] = \"DAYS_OF_THE_WEEK_MONDAY\";\n DaysOfTheWeek[DaysOfTheWeek[\"DAYS_OF_THE_WEEK_TUESDAY\"] = 1] = \"DAYS_OF_THE_WEEK_TUESDAY\";\n DaysOfTheWeek[DaysOfTheWeek[\"DAYS_OF_THE_WEEK_WEDNESDAY\"] = 2] = \"DAYS_OF_THE_WEEK_WEDNESDAY\";\n DaysOfTheWeek[DaysOfTheWeek[\"DAYS_OF_THE_WEEK_THURSDAY\"] = 3] = \"DAYS_OF_THE_WEEK_THURSDAY\";\n DaysOfTheWeek[DaysOfTheWeek[\"DAYS_OF_THE_WEEK_FRIDAY\"] = 4] = \"DAYS_OF_THE_WEEK_FRIDAY\";\n DaysOfTheWeek[DaysOfTheWeek[\"DAYS_OF_THE_WEEK_SATURDAY\"] = 5] = \"DAYS_OF_THE_WEEK_SATURDAY\";\n DaysOfTheWeek[DaysOfTheWeek[\"DAYS_OF_THE_WEEK_SUNDAY\"] = 6] = \"DAYS_OF_THE_WEEK_SUNDAY\";\n return DaysOfTheWeek;\n}(DaysOfTheWeek || {});\nvar DeletedTagsPolicy = /*#__PURE__*/function (DeletedTagsPolicy) {\n DeletedTagsPolicy[DeletedTagsPolicy[\"DELETED_TAGS_POLICY_EXCLUDE_FROM_RESPONSE\"] = 0] = \"DELETED_TAGS_POLICY_EXCLUDE_FROM_RESPONSE\";\n return DeletedTagsPolicy;\n}(DeletedTagsPolicy || {});\nvar DuplicateCampaignStepStatus = /*#__PURE__*/function (DuplicateCampaignStepStatus) {\n DuplicateCampaignStepStatus[DuplicateCampaignStepStatus[\"DUPLICATE_CAMPAIGN_STEP_STATUS_INVALID\"] = 0] = \"DUPLICATE_CAMPAIGN_STEP_STATUS_INVALID\";\n DuplicateCampaignStepStatus[DuplicateCampaignStepStatus[\"DUPLICATE_CAMPAIGN_STEP_STATUS_IN_PROGRESS\"] = 1] = \"DUPLICATE_CAMPAIGN_STEP_STATUS_IN_PROGRESS\";\n DuplicateCampaignStepStatus[DuplicateCampaignStepStatus[\"DUPLICATE_CAMPAIGN_STEP_STATUS_COMPLETE\"] = 2] = \"DUPLICATE_CAMPAIGN_STEP_STATUS_COMPLETE\";\n return DuplicateCampaignStepStatus;\n}(DuplicateCampaignStepStatus || {});\nvar Feature = /*#__PURE__*/function (Feature) {\n Feature[Feature[\"SEND_UNKNOWN\"] = 0] = \"SEND_UNKNOWN\";\n Feature[Feature[\"SEND_SMS\"] = 1] = \"SEND_SMS\";\n Feature[Feature[\"SEND_EMAIL\"] = 2] = \"SEND_EMAIL\";\n Feature[Feature[\"SEND_SNAPSHOT\"] = 3] = \"SEND_SNAPSHOT\";\n return Feature;\n}(Feature || {});\nvar Focuses = /*#__PURE__*/function (Focuses) {\n Focuses[Focuses[\"FOCUSES_UNSPECIFIED\"] = 0] = \"FOCUSES_UNSPECIFIED\";\n Focuses[Focuses[\"FOCUSES_ACQUIRE\"] = 1] = \"FOCUSES_ACQUIRE\";\n Focuses[Focuses[\"FOCUSES_UPSELL\"] = 2] = \"FOCUSES_UPSELL\";\n Focuses[Focuses[\"FOCUSES_ADOPT\"] = 3] = \"FOCUSES_ADOPT\";\n Focuses[Focuses[\"FOCUSES_NONE\"] = 4] = \"FOCUSES_NONE\";\n return Focuses;\n}(Focuses || {});\nvar Period = /*#__PURE__*/function (Period) {\n Period[Period[\"PERIOD_INVALID\"] = 0] = \"PERIOD_INVALID\";\n Period[Period[\"PERIOD_MONTH\"] = 1] = \"PERIOD_MONTH\";\n return Period;\n}(Period || {});\nvar RecipientCampaignStatus = /*#__PURE__*/function (RecipientCampaignStatus) {\n RecipientCampaignStatus[RecipientCampaignStatus[\"RECIPIENT_CAMPAIGN_STATUS_UNSPECIFIED\"] = 0] = \"RECIPIENT_CAMPAIGN_STATUS_UNSPECIFIED\";\n RecipientCampaignStatus[RecipientCampaignStatus[\"RECIPIENT_CAMPAIGN_STATUS_ACTIVE\"] = 1] = \"RECIPIENT_CAMPAIGN_STATUS_ACTIVE\";\n RecipientCampaignStatus[RecipientCampaignStatus[\"RECIPIENT_CAMPAIGN_STATUS_PAUSED\"] = 2] = \"RECIPIENT_CAMPAIGN_STATUS_PAUSED\";\n RecipientCampaignStatus[RecipientCampaignStatus[\"RECIPIENT_CAMPAIGN_STATUS_COMPLETED\"] = 3] = \"RECIPIENT_CAMPAIGN_STATUS_COMPLETED\";\n return RecipientCampaignStatus;\n}(RecipientCampaignStatus || {});\nvar RecipientType = /*#__PURE__*/function (RecipientType) {\n RecipientType[RecipientType[\"RECIPIENT_TYPE_INVALID\"] = 0] = \"RECIPIENT_TYPE_INVALID\";\n RecipientType[RecipientType[\"RECIPIENT_TYPE_CRM_CONTACT\"] = 1] = \"RECIPIENT_TYPE_CRM_CONTACT\";\n RecipientType[RecipientType[\"RECIPIENT_TYPE_BUSINESS\"] = 2] = \"RECIPIENT_TYPE_BUSINESS\";\n return RecipientType;\n}(RecipientType || {});\nvar SenderType = /*#__PURE__*/function (SenderType) {\n SenderType[SenderType[\"SENDER_TYPE_INVALID\"] = 0] = \"SENDER_TYPE_INVALID\";\n SenderType[SenderType[\"SENDER_TYPE_PARTNER\"] = 1] = \"SENDER_TYPE_PARTNER\";\n SenderType[SenderType[\"SENDER_TYPE_BUSINESS\"] = 2] = \"SENDER_TYPE_BUSINESS\";\n return SenderType;\n}(SenderType || {});\nvar SortDirection = /*#__PURE__*/function (SortDirection) {\n SortDirection[SortDirection[\"SORT_ORDER_INVALID\"] = 0] = \"SORT_ORDER_INVALID\";\n SortDirection[SortDirection[\"SORT_ORDER_ASCENDING\"] = 1] = \"SORT_ORDER_ASCENDING\";\n SortDirection[SortDirection[\"SORT_ORDER_DESCENDING\"] = 2] = \"SORT_ORDER_DESCENDING\";\n return SortDirection;\n}(SortDirection || {});\nvar SortField = /*#__PURE__*/function (SortField) {\n SortField[SortField[\"SORT_FIELDS_INVALID\"] = 0] = \"SORT_FIELDS_INVALID\";\n SortField[SortField[\"SORT_FIELDS_NAME\"] = 1] = \"SORT_FIELDS_NAME\";\n SortField[SortField[\"SORT_FIELDS_CREATED_AT\"] = 2] = \"SORT_FIELDS_CREATED_AT\";\n SortField[SortField[\"SORT_FIELDS_UPDATED_AT\"] = 3] = \"SORT_FIELDS_UPDATED_AT\";\n return SortField;\n}(SortField || {});\nvar Statuses = /*#__PURE__*/function (Statuses) {\n Statuses[Statuses[\"STATUSES_UNSPECIFIED\"] = 0] = \"STATUSES_UNSPECIFIED\";\n Statuses[Statuses[\"STATUSES_DRAFT\"] = 1] = \"STATUSES_DRAFT\";\n Statuses[Statuses[\"STATUSES_PUBLISHED\"] = 2] = \"STATUSES_PUBLISHED\";\n Statuses[Statuses[\"STATUSES_ACTIVE\"] = 3] = \"STATUSES_ACTIVE\";\n Statuses[Statuses[\"STATUSES_ARCHIVED\"] = 4] = \"STATUSES_ARCHIVED\";\n return Statuses;\n}(Statuses || {});\nvar TemplateStatus = /*#__PURE__*/function (TemplateStatus) {\n TemplateStatus[TemplateStatus[\"TEMPLATE_STATUS_INVALID\"] = 0] = \"TEMPLATE_STATUS_INVALID\";\n TemplateStatus[TemplateStatus[\"TEMPLATE_STATUS_DRAFT\"] = 1] = \"TEMPLATE_STATUS_DRAFT\";\n TemplateStatus[TemplateStatus[\"TEMPLATE_STATUS_PUBLISHED\"] = 2] = \"TEMPLATE_STATUS_PUBLISHED\";\n return TemplateStatus;\n}(TemplateStatus || {});\n// *********************************\n// Code generated by sdkgen\n// DO NOT EDIT!.\n//\n// Enums Index.\n// *********************************\n\nfunction enumStringToValue$4(enumRef, value) {\n if (typeof value === 'number') {\n return value;\n }\n return enumRef[value];\n}\nclass Colors {\n static fromProto(proto) {\n let m = new Colors();\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.textColor !== 'undefined') {\n toReturn['textColor'] = this.textColor;\n }\n if (typeof this.titleColor !== 'undefined') {\n toReturn['titleColor'] = this.titleColor;\n }\n if (typeof this.subtitleColor !== 'undefined') {\n toReturn['subtitleColor'] = this.subtitleColor;\n }\n if (typeof this.linkColor !== 'undefined') {\n toReturn['linkColor'] = this.linkColor;\n }\n if (typeof this.footerTextColor !== 'undefined') {\n toReturn['footerTextColor'] = this.footerTextColor;\n }\n if (typeof this.textBackground !== 'undefined') {\n toReturn['textBackground'] = this.textBackground;\n }\n if (typeof this.pageBackground !== 'undefined') {\n toReturn['pageBackground'] = this.pageBackground;\n }\n return toReturn;\n }\n}\nclass EmailBuilderConfiguration {\n static fromProto(proto) {\n let m = new EmailBuilderConfiguration();\n m = Object.assign(m, proto);\n if (proto.googleAnalyticsOptions) {\n m.googleAnalyticsOptions = GoogleAnalyticsOptions.fromProto(proto.googleAnalyticsOptions);\n }\n if (proto.pageSetup) {\n m.pageSetup = PageSetup.fromProto(proto.pageSetup);\n }\n if (proto.topLogo) {\n m.topLogo = TopLogo.fromProto(proto.topLogo);\n }\n if (proto.footer) {\n m.footer = Footer.fromProto(proto.footer);\n }\n if (proto.colors) {\n m.colors = Colors.fromProto(proto.colors);\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.googleAnalyticsOptions !== 'undefined' && this.googleAnalyticsOptions !== null) {\n toReturn['googleAnalyticsOptions'] = 'toApiJson' in this.googleAnalyticsOptions ? this.googleAnalyticsOptions.toApiJson() : this.googleAnalyticsOptions;\n }\n if (typeof this.pageSetup !== 'undefined' && this.pageSetup !== null) {\n toReturn['pageSetup'] = 'toApiJson' in this.pageSetup ? this.pageSetup.toApiJson() : this.pageSetup;\n }\n if (typeof this.topLogo !== 'undefined' && this.topLogo !== null) {\n toReturn['topLogo'] = 'toApiJson' in this.topLogo ? this.topLogo.toApiJson() : this.topLogo;\n }\n if (typeof this.footer !== 'undefined' && this.footer !== null) {\n toReturn['footer'] = 'toApiJson' in this.footer ? this.footer.toApiJson() : this.footer;\n }\n if (typeof this.contentBlocks !== 'undefined') {\n toReturn['contentBlocks'] = this.contentBlocks;\n }\n if (typeof this.colors !== 'undefined' && this.colors !== null) {\n toReturn['colors'] = 'toApiJson' in this.colors ? this.colors.toApiJson() : this.colors;\n }\n return toReturn;\n }\n}\nclass EmailBuilderTemplate {\n static fromProto(proto) {\n let m = new EmailBuilderTemplate();\n m = Object.assign(m, proto);\n if (proto.emailBuilderConfiguration) {\n m.emailBuilderConfiguration = EmailBuilderConfiguration.fromProto(proto.emailBuilderConfiguration);\n }\n if (proto.campaignFocus) {\n m.campaignFocus = enumStringToValue$4(EmailBuilderTemplateFocuses, proto.campaignFocus);\n }\n if (proto.status) {\n m.status = enumStringToValue$4(EmailBuilderTemplateStatuses, proto.status);\n }\n if (proto.parent) {\n m.parent = TemplateReference.fromProto(proto.parent);\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.partnerId !== 'undefined') {\n toReturn['partnerId'] = this.partnerId;\n }\n if (typeof this.marketId !== 'undefined') {\n toReturn['marketId'] = this.marketId;\n }\n if (typeof this.name !== 'undefined') {\n toReturn['name'] = this.name;\n }\n if (typeof this.subjectLine !== 'undefined') {\n toReturn['subjectLine'] = this.subjectLine;\n }\n if (typeof this.previewText !== 'undefined') {\n toReturn['previewText'] = this.previewText;\n }\n if (typeof this.lastModifiedBy !== 'undefined') {\n toReturn['lastModifiedBy'] = this.lastModifiedBy;\n }\n if (typeof this.emailBuilderConfiguration !== 'undefined' && this.emailBuilderConfiguration !== null) {\n toReturn['emailBuilderConfiguration'] = 'toApiJson' in this.emailBuilderConfiguration ? this.emailBuilderConfiguration.toApiJson() : this.emailBuilderConfiguration;\n }\n if (typeof this.createdBy !== 'undefined') {\n toReturn['createdBy'] = this.createdBy;\n }\n if (typeof this.campaignFocus !== 'undefined') {\n toReturn['campaignFocus'] = this.campaignFocus;\n }\n if (typeof this.status !== 'undefined') {\n toReturn['status'] = this.status;\n }\n if (typeof this.isEditable !== 'undefined') {\n toReturn['isEditable'] = this.isEditable;\n }\n if (typeof this.parent !== 'undefined' && this.parent !== null) {\n toReturn['parent'] = 'toApiJson' in this.parent ? this.parent.toApiJson() : this.parent;\n }\n return toReturn;\n }\n}\nclass Footer {\n static fromProto(proto) {\n let m = new Footer();\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.disclaimer !== 'undefined') {\n toReturn['disclaimer'] = this.disclaimer;\n }\n if (typeof this.showContactInfo !== 'undefined') {\n toReturn['showContactInfo'] = this.showContactInfo;\n }\n if (typeof this.showUnsubscribeLinks !== 'undefined') {\n toReturn['showUnsubscribeLinks'] = this.showUnsubscribeLinks;\n }\n return toReturn;\n }\n}\nclass GoogleAnalyticsOptions {\n static fromProto(proto) {\n let m = new GoogleAnalyticsOptions();\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.campaignName !== 'undefined') {\n toReturn['campaignName'] = this.campaignName;\n }\n if (typeof this.campaignSource !== 'undefined') {\n toReturn['campaignSource'] = this.campaignSource;\n }\n return toReturn;\n }\n}\nclass PageSetup {\n static fromProto(proto) {\n let m = new PageSetup();\n m = Object.assign(m, proto);\n if (proto.outerWidth) {\n m.outerWidth = parseInt(proto.outerWidth, 10);\n }\n if (proto.innerWidth) {\n m.innerWidth = parseInt(proto.innerWidth, 10);\n }\n if (proto.topPadding) {\n m.topPadding = parseInt(proto.topPadding, 10);\n }\n if (proto.bottomContentPadding) {\n m.bottomContentPadding = parseInt(proto.bottomContentPadding, 10);\n }\n if (proto.innerHorizontalPadding) {\n m.innerHorizontalPadding = parseInt(proto.innerHorizontalPadding, 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.outerWidth !== 'undefined') {\n toReturn['outerWidth'] = this.outerWidth;\n }\n if (typeof this.innerWidth !== 'undefined') {\n toReturn['innerWidth'] = this.innerWidth;\n }\n if (typeof this.topPadding !== 'undefined') {\n toReturn['topPadding'] = this.topPadding;\n }\n if (typeof this.bottomContentPadding !== 'undefined') {\n toReturn['bottomContentPadding'] = this.bottomContentPadding;\n }\n if (typeof this.innerHorizontalPadding !== 'undefined') {\n toReturn['innerHorizontalPadding'] = this.innerHorizontalPadding;\n }\n return toReturn;\n }\n}\nclass TemplateReference {\n static fromProto(proto) {\n let m = new TemplateReference();\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.appNamespace !== 'undefined') {\n toReturn['appNamespace'] = this.appNamespace;\n }\n if (typeof this.templateId !== 'undefined') {\n toReturn['templateId'] = this.templateId;\n }\n return toReturn;\n }\n}\nclass TopLogo {\n static fromProto(proto) {\n let m = new TopLogo();\n m = Object.assign(m, proto);\n if (proto.width) {\n m.width = parseInt(proto.width, 10);\n }\n if (proto.align) {\n m.align = enumStringToValue$4(ImageAlign, proto.align);\n }\n if (proto.topPadding) {\n m.topPadding = parseInt(proto.topPadding, 10);\n }\n if (proto.bottomPadding) {\n m.bottomPadding = parseInt(proto.bottomPadding, 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.showLogo !== 'undefined') {\n toReturn['showLogo'] = this.showLogo;\n }\n if (typeof this.customImageUrl !== 'undefined') {\n toReturn['customImageUrl'] = this.customImageUrl;\n }\n if (typeof this.width !== 'undefined') {\n toReturn['width'] = this.width;\n }\n if (typeof this.align !== 'undefined') {\n toReturn['align'] = this.align;\n }\n if (typeof this.topPadding !== 'undefined') {\n toReturn['topPadding'] = this.topPadding;\n }\n if (typeof this.bottomPadding !== 'undefined') {\n toReturn['bottomPadding'] = this.bottomPadding;\n }\n if (typeof this.link !== 'undefined') {\n toReturn['link'] = this.link;\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 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$2(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$1(enumRef, value) {\n if (typeof value === 'number') {\n return value;\n }\n return enumRef[value];\n}\nclass Filter {\n static fromProto(proto) {\n let m = new Filter();\n m = Object.assign(m, proto);\n if (proto.operator) {\n m.operator = enumStringToValue$1(FilterOperator, proto.operator);\n }\n if (proto.values) {\n m.values = proto.values.map(FilterValue.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.fieldId !== 'undefined') {\n toReturn['fieldId'] = this.fieldId;\n }\n if (typeof this.operator !== 'undefined') {\n toReturn['operator'] = this.operator;\n }\n if (typeof this.values !== 'undefined' && this.values !== null) {\n toReturn['values'] = 'toApiJson' in this.values ? this.values.toApiJson() : this.values;\n }\n if (typeof this.floatTolerance !== 'undefined') {\n toReturn['floatTolerance'] = this.floatTolerance;\n }\n return toReturn;\n }\n}\nclass FilterGroup {\n static fromProto(proto) {\n let m = new FilterGroup();\n m = Object.assign(m, proto);\n if (proto.operator) {\n m.operator = enumStringToValue$1(FilterGroupOperator, proto.operator);\n }\n if (proto.filters) {\n m.filters = proto.filters.map(Filter.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.operator !== 'undefined') {\n toReturn['operator'] = this.operator;\n }\n if (typeof this.filters !== 'undefined' && this.filters !== null) {\n toReturn['filters'] = 'toApiJson' in this.filters ? this.filters.toApiJson() : this.filters;\n }\n return toReturn;\n }\n}\nclass FilterValue {\n static fromProto(proto) {\n let m = new FilterValue();\n m = Object.assign(m, proto);\n if (proto.integer) {\n m.integer = parseInt(proto.integer, 10);\n }\n if (proto.date) {\n m.date = new Date(proto.date);\n }\n if (proto.dateDefault) {\n m.dateDefault = enumStringToValue$1(DateDefault, proto.dateDefault);\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.boolean !== 'undefined') {\n toReturn['boolean'] = this.boolean;\n }\n if (typeof this.integer !== 'undefined') {\n toReturn['integer'] = this.integer;\n }\n if (typeof this.float !== 'undefined') {\n toReturn['float'] = this.float;\n }\n if (typeof this.string !== 'undefined') {\n toReturn['string'] = this.string;\n }\n if (typeof this.date !== 'undefined' && this.date !== null) {\n toReturn['date'] = 'toApiJson' in this.date ? this.date.toApiJson() : this.date;\n }\n if (typeof this.dateDefault !== 'undefined') {\n toReturn['dateDefault'] = this.dateDefault;\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 RecipientClickStatsAccount {\n static fromProto(proto) {\n let m = new RecipientClickStatsAccount();\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 return toReturn;\n }\n}\nclass ActivateProductForSenderRequest {\n static fromProto(proto) {\n let m = new ActivateProductForSenderRequest();\n m = Object.assign(m, proto);\n if (proto.sender) {\n m.sender = Sender.fromProto(proto.sender);\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.sender !== 'undefined' && this.sender !== null) {\n toReturn['sender'] = 'toApiJson' in this.sender ? this.sender.toApiJson() : this.sender;\n }\n if (typeof this.sku !== 'undefined') {\n toReturn['sku'] = this.sku;\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.sender) {\n m.sender = Sender.fromProto(proto.sender);\n }\n if (proto.recipient) {\n m.recipient = RecipientV2.fromProto(proto.recipient);\n }\n if (proto.date) {\n m.date = new Date(proto.date);\n }\n return m;\n }\n constructor(kwargs) {\n if (!kwargs) {\n return;\n }\n Object.assign(this, kwargs);\n }\n toApiJson() {\n const toReturn = {};\n if (typeof this.campaignId !== 'undefined') {\n toReturn['campaignId'] = this.campaignId;\n }\n if (typeof this.sender !== 'undefined' && this.sender !== null) {\n toReturn['sender'] = 'toApiJson' in this.sender ? this.sender.toApiJson() : this.sender;\n }\n if (typeof this.recipient !== 'undefined' && this.recipient !== null) {\n toReturn['recipient'] = 'toApiJson' in this.recipient ? this.recipient.toApiJson() : this.recipient;\n }\n if (typeof this.date !== 'undefined' && this.date !== null) {\n toReturn['date'] = 'toApiJson' in this.date ? this.date.toApiJson() : this.date;\n }\n return toReturn;\n }\n}\nclass AddContactToCampaignResponse {\n static fromProto(proto) {\n let m = new AddContactToCampaignResponse();\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.recipientCampaignId !== 'undefined') {\n toReturn['recipientCampaignId'] = this.recipientCampaignId;\n }\n return toReturn;\n }\n}\nclass AddStepToCampaignRequest {\n static fromProto(proto) {\n let m = new AddStepToCampaignRequest();\n m = Object.assign(m, proto);\n if (proto.stepType) {\n m.stepType = enumStringToValue(CampaignStepType, proto.stepType);\n }\n if (proto.sender) {\n m.sender = Sender.fromProto(proto.sender);\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.campaignId !== 'undefined') {\n toReturn['campaignId'] = this.campaignId;\n }\n if (typeof this.stepType !== 'undefined') {\n toReturn['stepType'] = this.stepType;\n }\n if (typeof this.contentId !== 'undefined') {\n toReturn['contentId'] = this.contentId;\n }\n if (typeof this.sender !== 'undefined' && this.sender !== null) {\n toReturn['sender'] = 'toApiJson' in this.sender ? this.sender.toApiJson() : this.sender;\n }\n if (typeof this.name !== 'undefined') {\n toReturn['name'] = this.name;\n }\n return toReturn;\n }\n}\nclass AddTagToCampaignRequest {\n static fromProto(proto) {\n let m = new AddTagToCampaignRequest();\n m = Object.assign(m, proto);\n if (proto.senderType) {\n m.senderType = enumStringToValue(SenderType, proto.senderType);\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.senderType !== 'undefined') {\n toReturn['senderType'] = this.senderType;\n }\n if (typeof this.senderId !== 'undefined') {\n toReturn['senderId'] = this.senderId;\n }\n if (typeof this.campaignId !== 'undefined') {\n toReturn['campaignId'] = this.campaignId;\n }\n if (typeof this.tagId !== 'undefined') {\n toReturn['tagId'] = this.tagId;\n }\n return toReturn;\n }\n}\nclass BulkAddContactsToCampaignRequest {\n static fromProto(proto) {\n let m = new BulkAddContactsToCampaignRequest();\n m = Object.assign(m, proto);\n if (proto.sender) {\n m.sender = Sender.fromProto(proto.sender);\n }\n if (proto.date) {\n m.date = new Date(proto.date);\n }\n if (proto.criteria) {\n m.criteria = RecipientCriteria.fromProto(proto.criteria);\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.campaignId !== 'undefined') {\n toReturn['campaignId'] = this.campaignId;\n }\n if (typeof this.sender !== 'undefined' && this.sender !== null) {\n toReturn['sender'] = 'toApiJson' in this.sender ? this.sender.toApiJson() : this.sender;\n }\n if (typeof this.date !== 'undefined' && this.date !== null) {\n toReturn['date'] = 'toApiJson' in this.date ? this.date.toApiJson() : this.date;\n }\n if (typeof this.criteria !== 'undefined' && this.criteria !== null) {\n toReturn['criteria'] = 'toApiJson' in this.criteria ? this.criteria.toApiJson() : this.criteria;\n }\n return toReturn;\n }\n}\nclass CampaignDetailStats {\n static fromProto(proto) {\n let m = new CampaignDetailStats();\n m = Object.assign(m, proto);\n if (proto.active) {\n m.active = parseInt(proto.active, 10);\n }\n if (proto.clicksPerOpenedEmail) {\n m.clicksPerOpenedEmail = parseInt(proto.clicksPerOpenedEmail, 10);\n }\n if (proto.completed) {\n m.completed = parseInt(proto.completed, 10);\n }\n if (proto.delivered) {\n m.delivered = parseInt(proto.delivered, 10);\n }\n if (proto.opened) {\n m.opened = parseInt(proto.opened, 10);\n }\n if (proto.sent) {\n m.sent = parseInt(proto.sent, 10);\n }\n if (proto.stopped) {\n m.stopped = parseInt(proto.stopped, 10);\n }\n if (proto.totalAccounts) {\n m.totalAccounts = parseInt(proto.totalAccounts, 10);\n }\n if (proto.totalLeads) {\n m.totalLeads = parseInt(proto.totalLeads, 10);\n }\n if (proto.totalRecipients) {\n m.totalRecipients = parseInt(proto.totalRecipients, 10);\n }\n if (proto.undeliverable) {\n m.undeliverable = parseInt(proto.undeliverable, 10);\n }\n if (proto.waitingOnRateLimit) {\n m.waitingOnRateLimit = parseInt(proto.waitingOnRateLimit, 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.active !== 'undefined') {\n toReturn['active'] = this.active;\n }\n if (typeof this.clicksPerOpenedEmail !== 'undefined') {\n toReturn['clicksPerOpenedEmail'] = this.clicksPerOpenedEmail;\n }\n if (typeof this.completed !== 'undefined') {\n toReturn['completed'] = this.completed;\n }\n if (typeof this.delivered !== 'undefined') {\n toReturn['delivered'] = this.delivered;\n }\n if (typeof this.opened !== 'undefined') {\n toReturn['opened'] = this.opened;\n }\n if (typeof this.sent !== 'undefined') {\n toReturn['sent'] = this.sent;\n }\n if (typeof this.stopped !== 'undefined') {\n toReturn['stopped'] = this.stopped;\n }\n if (typeof this.totalAccounts !== 'undefined') {\n toReturn['totalAccounts'] = this.totalAccounts;\n }\n if (typeof this.totalLeads !== 'undefined') {\n toReturn['totalLeads'] = this.totalLeads;\n }\n if (typeof this.totalRecipients !== 'undefined') {\n toReturn['totalRecipients'] = this.totalRecipients;\n }\n if (typeof this.undeliverable !== 'undefined') {\n toReturn['undeliverable'] = this.undeliverable;\n }\n if (typeof this.waitingOnRateLimit !== 'undefined') {\n toReturn['waitingOnRateLimit'] = this.waitingOnRateLimit;\n }\n return toReturn;\n }\n}\nclass CampaignRecipient {\n static fromProto(proto) {\n let m = new CampaignRecipient();\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.recipientId !== 'undefined') {\n toReturn['recipientId'] = this.recipientId;\n }\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.email !== 'undefined') {\n toReturn['email'] = this.email;\n }\n return toReturn;\n }\n}\nclass CampaignStepEvent {\n static fromProto(proto) {\n let m = new CampaignStepEvent();\n m = Object.assign(m, proto);\n if (proto.eventType) {\n m.eventType = enumStringToValue(CampaignStepEventType, proto.eventType);\n }\n if (proto.eventDate) {\n m.eventDate = new Date(proto.eventDate);\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.eventType !== 'undefined') {\n toReturn['eventType'] = this.eventType;\n }\n if (typeof this.eventDate !== 'undefined' && this.eventDate !== null) {\n toReturn['eventDate'] = 'toApiJson' in this.eventDate ? this.eventDate.toApiJson() : this.eventDate;\n }\n return toReturn;\n }\n}\nclass CampaignStepInterface {\n static fromProto(proto) {\n let m = new CampaignStepInterface();\n m = Object.assign(m, proto);\n if (proto.stepType) {\n m.stepType = enumStringToValue(CampaignStepType, proto.stepType);\n }\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.campaignStepId !== 'undefined') {\n toReturn['campaignStepId'] = this.campaignStepId;\n }\n if (typeof this.stepType !== 'undefined') {\n toReturn['stepType'] = this.stepType;\n }\n if (typeof this.templateId !== 'undefined') {\n toReturn['templateId'] = this.templateId;\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 return toReturn;\n }\n}\nclass CampaignStepStats {\n static fromProto(proto) {\n let m = new CampaignStepStats();\n m = Object.assign(m, proto);\n if (proto.delivered) {\n m.delivered = parseInt(proto.delivered, 10);\n }\n if (proto.opens) {\n m.opens = parseInt(proto.opens, 10);\n }\n if (proto.bounced) {\n m.bounced = parseInt(proto.bounced, 10);\n }\n if (proto.spam) {\n m.spam = parseInt(proto.spam, 10);\n }\n if (proto.unsubscribed) {\n m.unsubscribed = parseInt(proto.unsubscribed, 10);\n }\n if (proto.dropped) {\n m.dropped = parseInt(proto.dropped, 10);\n }\n if (proto.clicks) {\n m.clicks = parseInt(proto.clicks, 10);\n }\n if (proto.pending) {\n m.pending = parseInt(proto.pending, 10);\n }\n if (proto.created) {\n m.created = parseInt(proto.created, 10);\n }\n if (proto.refreshed) {\n m.refreshed = parseInt(proto.refreshed, 10);\n }\n if (proto.notRequired) {\n m.notRequired = parseInt(proto.notRequired, 10);\n }\n if (proto.sent) {\n m.sent = parseInt(proto.sent, 10);\n }\n if (proto.stopped) {\n m.stopped = parseInt(proto.stopped, 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.campaignStepId !== 'undefined') {\n toReturn['campaignStepId'] = this.campaignStepId;\n }\n if (typeof this.delivered !== 'undefined') {\n toReturn['delivered'] = this.delivered;\n }\n if (typeof this.opens !== 'undefined') {\n toReturn['opens'] = this.opens;\n }\n if (typeof this.openRate !== 'undefined') {\n toReturn['openRate'] = this.openRate;\n }\n if (typeof this.clickToOpenRate !== 'undefined') {\n toReturn['clickToOpenRate'] = this.clickToOpenRate;\n }\n if (typeof this.bounced !== 'undefined') {\n toReturn['bounced'] = this.bounced;\n }\n if (typeof this.spam !== 'undefined') {\n toReturn['spam'] = this.spam;\n }\n if (typeof this.unsubscribed !== 'undefined') {\n toReturn['unsubscribed'] = this.unsubscribed;\n }\n if (typeof this.dropped !== 'undefined') {\n toReturn['dropped'] = this.dropped;\n }\n if (typeof this.clicks !== 'undefined') {\n toReturn['clicks'] = this.clicks;\n }\n if (typeof this.pending !== 'undefined') {\n toReturn['pending'] = this.pending;\n }\n if (typeof this.created !== 'undefined') {\n toReturn['created'] = this.created;\n }\n if (typeof this.refreshed !== 'undefined') {\n toReturn['refreshed'] = this.refreshed;\n }\n if (typeof this.notRequired !== 'undefined') {\n toReturn['notRequired'] = this.notRequired;\n }\n if (typeof this.sent !== 'undefined') {\n toReturn['sent'] = this.sent;\n }\n if (typeof this.stopped !== 'undefined') {\n toReturn['stopped'] = this.stopped;\n }\n return toReturn;\n }\n}\nclass CampaignTag {\n static fromProto(proto) {\n let m = new CampaignTag();\n m = Object.assign(m, proto);\n if (proto.senderType) {\n m.senderType = enumStringToValue(SenderType, proto.senderType);\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.senderType !== 'undefined') {\n toReturn['senderType'] = this.senderType;\n }\n if (typeof this.senderId !== 'undefined') {\n toReturn['senderId'] = this.senderId;\n }\n if (typeof this.tagId !== 'undefined') {\n toReturn['tagId'] = this.tagId;\n }\n if (typeof this.text !== 'undefined') {\n toReturn['text'] = this.text;\n }\n if (typeof this.colour !== 'undefined') {\n toReturn['colour'] = this.colour;\n }\n return toReturn;\n }\n}\nclass CheckDuplicateCampaignStatusRequest {\n static fromProto(proto) {\n let m = new CheckDuplicateCampaignStatusRequest();\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.statusId !== 'undefined') {\n toReturn['statusId'] = this.statusId;\n }\n return toReturn;\n }\n}\nclass CheckDuplicateCampaignStatusResponse {\n static fromProto(proto) {\n let m = new CheckDuplicateCampaignStatusResponse();\n m = Object.assign(m, proto);\n if (proto.status) {\n m.status = enumStringToValue(AsyncWorkStatus, 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.status !== 'undefined') {\n toReturn['status'] = this.status;\n }\n if (typeof this.campaignId !== 'undefined') {\n toReturn['campaignId'] = this.campaignId;\n }\n return toReturn;\n }\n}\nclass CheckDuplicateCampaignStepStatusRequest {\n static fromProto(proto) {\n let m = new CheckDuplicateCampaignStepStatusRequest();\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.statusId !== 'undefined') {\n toReturn['statusId'] = this.statusId;\n }\n return toReturn;\n }\n}\nclass CheckDuplicateCampaignStepStatusResponse {\n static fromProto(proto) {\n let m = new CheckDuplicateCampaignStepStatusResponse();\n m = Object.assign(m, proto);\n if (proto.status) {\n m.status = enumStringToValue(DuplicateCampaignStepStatus, 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.status !== 'undefined') {\n toReturn['status'] = this.status;\n }\n return toReturn;\n }\n}\nclass Contact {\n static fromProto(proto) {\n let m = new Contact();\n m = Object.assign(m, proto);\n if (proto.type) {\n m.type = enumStringToValue(ContactType, proto.type);\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.type !== 'undefined') {\n toReturn['type'] = this.type;\n }\n if (typeof this.value !== 'undefined') {\n toReturn['value'] = this.value;\n }\n return toReturn;\n }\n}\nclass ConvertLegacyTemplateRequest {\n static fromProto(proto) {\n let m = new ConvertLegacyTemplateRequest();\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.templateId !== 'undefined') {\n toReturn['templateId'] = this.templateId;\n }\n if (typeof this.partnerId !== 'undefined') {\n toReturn['partnerId'] = this.partnerId;\n }\n return toReturn;\n }\n}\nclass ConvertLegacyTemplateResponse {\n static fromProto(proto) {\n let m = new ConvertLegacyTemplateResponse();\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.templateId !== 'undefined') {\n toReturn['templateId'] = this.templateId;\n }\n return toReturn;\n }\n}\nclass CreateCampaignRequest {\n static fromProto(proto) {\n let m = new CreateCampaignRequest();\n m = Object.assign(m, proto);\n if (proto.sender) {\n m.sender = Sender.fromProto(proto.sender);\n }\n if (proto.focus) {\n m.focus = enumStringToValue(Focuses, proto.focus);\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.sender !== 'undefined' && this.sender !== null) {\n toReturn['sender'] = 'toApiJson' in this.sender ? this.sender.toApiJson() : this.sender;\n }\n if (typeof this.focus !== 'undefined') {\n toReturn['focus'] = this.focus;\n }\n if (typeof this.name !== 'undefined') {\n toReturn['name'] = this.name;\n }\n return toReturn;\n }\n}\nclass CreateCampaignResponse {\n static fromProto(proto) {\n let m = new CreateCampaignResponse();\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.campaignId !== 'undefined') {\n toReturn['campaignId'] = this.campaignId;\n }\n return toReturn;\n }\n}\nclass CreateEmailTemplateRequest {\n static fromProto(proto) {\n let m = new CreateEmailTemplateRequest();\n m = Object.assign(m, proto);\n if (proto.template) {\n m.template = EmailTemplateStruct.fromProto(proto.template);\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.template !== 'undefined' && this.template !== null) {\n toReturn['template'] = 'toApiJson' in this.template ? this.template.toApiJson() : this.template;\n }\n return toReturn;\n }\n}\nclass CreateQuotaRequest {\n static fromProto(proto) {\n let m = new CreateQuotaRequest();\n m = Object.assign(m, proto);\n if (proto.sender) {\n m.sender = Sender.fromProto(proto.sender);\n }\n if (proto.type) {\n m.type = enumStringToValue(CampaignQuotaCategory, proto.type);\n }\n if (proto.limit) {\n m.limit = parseInt(proto.limit, 10);\n }\n if (proto.quotaStartDate) {\n m.quotaStartDate = new Date(proto.quotaStartDate);\n }\n if (proto.quotaEndDate) {\n m.quotaEndDate = new Date(proto.quotaEndDate);\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.sender !== 'undefined' && this.sender !== null) {\n toReturn['sender'] = 'toApiJson' in this.sender ? this.sender.toApiJson() : this.sender;\n }\n if (typeof this.type !== 'undefined') {\n toReturn['type'] = this.type;\n }\n if (typeof this.limit !== 'undefined') {\n toReturn['limit'] = this.limit;\n }\n if (typeof this.quotaStartDate !== 'undefined' && this.quotaStartDate !== null) {\n toReturn['quotaStartDate'] = 'toApiJson' in this.quotaStartDate ? this.quotaStartDate.toApiJson() : this.quotaStartDate;\n }\n if (typeof this.quotaEndDate !== 'undefined' && this.quotaEndDate !== null) {\n toReturn['quotaEndDate'] = 'toApiJson' in this.quotaEndDate ? this.quotaEndDate.toApiJson() : this.quotaEndDate;\n }\n return toReturn;\n }\n}\nclass CreateRecipientCampaignStepEventRequest {\n static fromProto(proto) {\n let m = new CreateRecipientCampaignStepEventRequest();\n m = Object.assign(m, proto);\n if (proto.version) {\n m.version = parseInt(proto.version, 10);\n }\n if (proto.eventType) {\n m.eventType = enumStringToValue(CampaignStepEventType, proto.eventType);\n }\n if (proto.eventDate) {\n m.eventDate = new Date(proto.eventDate);\n }\n return m;\n }\n constructor(kwargs) {\n if (!kwargs) {\n return;\n }\n Object.assign(this, kwargs);\n }\n toApiJson() {\n const toReturn = {};\n if (typeof this.version !== 'undefined') {\n toReturn['version'] = this.version;\n }\n if (typeof this.eventId !== 'undefined') {\n toReturn['eventId'] = this.eventId;\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.accountGroupId !== 'undefined') {\n toReturn['accountGroupId'] = this.accountGroupId;\n }\n if (typeof this.campaignId !== 'undefined') {\n toReturn['campaignId'] = this.campaignId;\n }\n if (typeof this.campaignStepId !== 'undefined') {\n toReturn['campaignStepId'] = this.campaignStepId;\n }\n if (typeof this.recipientId !== 'undefined') {\n toReturn['recipientId'] = this.recipientId;\n }\n if (typeof this.recipientCampaignId !== 'undefined') {\n toReturn['recipientCampaignId'] = this.recipientCampaignId;\n }\n if (typeof this.recipientCampaignStepId !== 'undefined') {\n toReturn['recipientCampaignStepId'] = this.recipientCampaignStepId;\n }\n if (typeof this.eventType !== 'undefined') {\n toReturn['eventType'] = this.eventType;\n }\n if (typeof this.eventDate !== 'undefined' && this.eventDate !== null) {\n toReturn['eventDate'] = 'toApiJson' in this.eventDate ? this.eventDate.toApiJson() : this.eventDate;\n }\n if (typeof this.templateId !== 'undefined') {\n toReturn['templateId'] = this.templateId;\n }\n if (typeof this.probablyBot !== 'undefined') {\n toReturn['probablyBot'] = this.probablyBot;\n }\n if (typeof this.url !== 'undefined') {\n toReturn['url'] = this.url;\n }\n if (typeof this.normalizedUrl !== 'undefined') {\n toReturn['normalizedUrl'] = this.normalizedUrl;\n }\n return toReturn;\n }\n}\nclass CreateRecipientRequest {\n static fromProto(proto) {\n let m = new CreateRecipientRequest();\n m = Object.assign(m, proto);\n if (proto.sender) {\n m.sender = Sender.fromProto(proto.sender);\n }\n if (proto.recipient) {\n m.recipient = RecipientV2.fromProto(proto.recipient);\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.recipientId !== 'undefined') {\n toReturn['recipientId'] = this.recipientId;\n }\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.email !== 'undefined') {\n toReturn['email'] = this.email;\n }\n if (typeof this.sender !== 'undefined' && this.sender !== null) {\n toReturn['sender'] = 'toApiJson' in this.sender ? this.sender.toApiJson() : this.sender;\n }\n if (typeof this.recipient !== 'undefined' && this.recipient !== null) {\n toReturn['recipient'] = 'toApiJson' in this.recipient ? this.recipient.toApiJson() : this.recipient;\n }\n if (typeof this.phoneNumber !== 'undefined') {\n toReturn['phoneNumber'] = this.phoneNumber;\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.emailBuilderTemplate) {\n m.emailBuilderTemplate = EmailBuilderTemplate.fromProto(proto.emailBuilderTemplate);\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.emailBuilderTemplate !== 'undefined' && this.emailBuilderTemplate !== null) {\n toReturn['emailBuilderTemplate'] = 'toApiJson' in this.emailBuilderTemplate ? this.emailBuilderTemplate.toApiJson() : this.emailBuilderTemplate;\n }\n return toReturn;\n }\n}\nclass CreateResponse {\n static fromProto(proto) {\n let m = new CreateResponse();\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.id !== 'undefined') {\n toReturn['id'] = this.id;\n }\n return toReturn;\n }\n}\nclass CreateTagRequest {\n static fromProto(proto) {\n let m = new CreateTagRequest();\n m = Object.assign(m, proto);\n if (proto.senderType) {\n m.senderType = enumStringToValue(SenderType, proto.senderType);\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.senderType !== 'undefined') {\n toReturn['senderType'] = this.senderType;\n }\n if (typeof this.senderId !== 'undefined') {\n toReturn['senderId'] = this.senderId;\n }\n if (typeof this.text !== 'undefined') {\n toReturn['text'] = this.text;\n }\n if (typeof this.colour !== 'undefined') {\n toReturn['colour'] = this.colour;\n }\n return toReturn;\n }\n}\nclass CreateTagResponse {\n static fromProto(proto) {\n let m = new CreateTagResponse();\n m = Object.assign(m, proto);\n if (proto.campaignTag) {\n m.campaignTag = CampaignTag.fromProto(proto.campaignTag);\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.campaignTag !== 'undefined' && this.campaignTag !== null) {\n toReturn['campaignTag'] = 'toApiJson' in this.campaignTag ? this.campaignTag.toApiJson() : this.campaignTag;\n }\n return toReturn;\n }\n}\nclass DateFilter {\n static fromProto(proto) {\n let m = new DateFilter();\n m = Object.assign(m, proto);\n if (proto.dateLte) {\n m.dateLte = new Date(proto.dateLte);\n }\n if (proto.dateGte) {\n m.dateGte = new Date(proto.dateGte);\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.dateLte !== 'undefined' && this.dateLte !== null) {\n toReturn['dateLte'] = 'toApiJson' in this.dateLte ? this.dateLte.toApiJson() : this.dateLte;\n }\n if (typeof this.dateGte !== 'undefined' && this.dateGte !== null) {\n toReturn['dateGte'] = 'toApiJson' in this.dateGte ? this.dateGte.toApiJson() : this.dateGte;\n }\n return toReturn;\n }\n}\nclass DeactivateProductForSenderRequest {\n static fromProto(proto) {\n let m = new DeactivateProductForSenderRequest();\n m = Object.assign(m, proto);\n if (proto.sender) {\n m.sender = Sender.fromProto(proto.sender);\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.sender !== 'undefined' && this.sender !== null) {\n toReturn['sender'] = 'toApiJson' in this.sender ? this.sender.toApiJson() : this.sender;\n }\n if (typeof this.sku !== 'undefined') {\n toReturn['sku'] = this.sku;\n }\n return toReturn;\n }\n}\nclass DeleteCampaignRequest {\n static fromProto(proto) {\n let m = new DeleteCampaignRequest();\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.campaignId !== 'undefined') {\n toReturn['campaignId'] = this.campaignId;\n }\n return toReturn;\n }\n}\nclass DeleteRequest {\n static fromProto(proto) {\n let m = new DeleteRequest();\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.id !== 'undefined') {\n toReturn['id'] = this.id;\n }\n return toReturn;\n }\n}\nclass DeleteTagRequest {\n static fromProto(proto) {\n let m = new DeleteTagRequest();\n m = Object.assign(m, proto);\n if (proto.senderType) {\n m.senderType = enumStringToValue(SenderType, proto.senderType);\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.senderType !== 'undefined') {\n toReturn['senderType'] = this.senderType;\n }\n if (typeof this.senderId !== 'undefined') {\n toReturn['senderId'] = this.senderId;\n }\n if (typeof this.tagId !== 'undefined') {\n toReturn['tagId'] = this.tagId;\n }\n return toReturn;\n }\n}\nclass DuplicateAndRecommendCampaignRequest {\n static fromProto(proto) {\n let m = new DuplicateAndRecommendCampaignRequest();\n m = Object.assign(m, proto);\n if (proto.campaignDetails) {\n m.campaignDetails = DuplicateCampaignDetails.fromProto(proto.campaignDetails);\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.campaignId !== 'undefined') {\n toReturn['campaignId'] = this.campaignId;\n }\n if (typeof this.campaignDetails !== 'undefined' && this.campaignDetails !== null) {\n toReturn['campaignDetails'] = 'toApiJson' in this.campaignDetails ? this.campaignDetails.toApiJson() : this.campaignDetails;\n }\n return toReturn;\n }\n}\nclass DuplicateCampaignDetails {\n static fromProto(proto) {\n let m = new DuplicateCampaignDetails();\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.name !== 'undefined') {\n toReturn['name'] = this.name;\n }\n return toReturn;\n }\n}\nclass DuplicateCampaignRequest {\n static fromProto(proto) {\n let m = new DuplicateCampaignRequest();\n m = Object.assign(m, proto);\n if (proto.campaignDetails) {\n m.campaignDetails = DuplicateCampaignDetails.fromProto(proto.campaignDetails);\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.campaignId !== 'undefined') {\n toReturn['campaignId'] = this.campaignId;\n }\n if (typeof this.partnerId !== 'undefined') {\n toReturn['partnerId'] = this.partnerId;\n }\n if (typeof this.campaignDetails !== 'undefined' && this.campaignDetails !== null) {\n toReturn['campaignDetails'] = 'toApiJson' in this.campaignDetails ? this.campaignDetails.toApiJson() : this.campaignDetails;\n }\n return toReturn;\n }\n}\nclass DuplicateCampaignRequestV2 {\n static fromProto(proto) {\n let m = new DuplicateCampaignRequestV2();\n m = Object.assign(m, proto);\n if (proto.sender) {\n m.sender = Sender.fromProto(proto.sender);\n }\n if (proto.campaignDetails) {\n m.campaignDetails = DuplicateCampaignDetails.fromProto(proto.campaignDetails);\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.campaignId !== 'undefined') {\n toReturn['campaignId'] = this.campaignId;\n }\n if (typeof this.sender !== 'undefined' && this.sender !== null) {\n toReturn['sender'] = 'toApiJson' in this.sender ? this.sender.toApiJson() : this.sender;\n }\n if (typeof this.campaignDetails !== 'undefined' && this.campaignDetails !== null) {\n toReturn['campaignDetails'] = 'toApiJson' in this.campaignDetails ? this.campaignDetails.toApiJson() : this.campaignDetails;\n }\n return toReturn;\n }\n}\nclass DuplicateCampaignResponse {\n static fromProto(proto) {\n let m = new DuplicateCampaignResponse();\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.statusId !== 'undefined') {\n toReturn['statusId'] = this.statusId;\n }\n return toReturn;\n }\n}\nclass DuplicateCampaignStepRequest {\n static fromProto(proto) {\n let m = new DuplicateCampaignStepRequest();\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.campaignId !== 'undefined') {\n toReturn['campaignId'] = this.campaignId;\n }\n if (typeof this.campaignStepId !== 'undefined') {\n toReturn['campaignStepId'] = this.campaignStepId;\n }\n return toReturn;\n }\n}\nclass DuplicateCampaignStepResponse {\n static fromProto(proto) {\n let m = new DuplicateCampaignStepResponse();\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.statusId !== 'undefined') {\n toReturn['statusId'] = this.statusId;\n }\n return toReturn;\n }\n}\nclass EmailTemplateStruct {\n static fromProto(proto) {\n let m = new EmailTemplateStruct();\n m = Object.assign(m, proto);\n if (proto.campaignFocus) {\n m.campaignFocus = enumStringToValue(Focuses, proto.campaignFocus);\n }\n if (proto.status) {\n m.status = enumStringToValue(TemplateStatus, proto.status);\n }\n if (proto.version) {\n m.version = parseInt(proto.version, 10);\n }\n return m;\n }\n constructor(kwargs) {\n if (!kwargs) {\n return;\n }\n Object.assign(this, kwargs);\n }\n toApiJson() {\n const toReturn = {};\n if (typeof this.templateId !== 'undefined') {\n toReturn['templateId'] = this.templateId;\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.name !== 'undefined') {\n toReturn['name'] = this.name;\n }\n if (typeof this.campaignFocus !== 'undefined') {\n toReturn['campaignFocus'] = this.campaignFocus;\n }\n if (typeof this.status !== 'undefined') {\n toReturn['status'] = this.status;\n }\n if (typeof this.isEditable !== 'undefined') {\n toReturn['isEditable'] = this.isEditable;\n }\n if (typeof this.updatedByUserEmail !== 'undefined') {\n toReturn['updatedByUserEmail'] = this.updatedByUserEmail;\n }\n if (typeof this.createdByUserEmail !== 'undefined') {\n toReturn['createdByUserEmail'] = this.createdByUserEmail;\n }\n if (typeof this.publishedByUserEmail !== 'undefined') {\n toReturn['publishedByUserEmail'] = this.publishedByUserEmail;\n }\n if (typeof this.subject !== 'undefined') {\n toReturn['subject'] = this.subject;\n }\n if (typeof this.htmlBody !== 'undefined') {\n toReturn['htmlBody'] = this.htmlBody;\n }\n if (typeof this.useFullHtml !== 'undefined') {\n toReturn['useFullHtml'] = this.useFullHtml;\n }\n if (typeof this.fullHtml !== 'undefined') {\n toReturn['fullHtml'] = this.fullHtml;\n }\n if (typeof this.version !== 'undefined') {\n toReturn['version'] = this.version;\n }\n return toReturn;\n }\n}\nclass ExecuteStepRequest {\n static fromProto(proto) {\n let m = new ExecuteStepRequest();\n m = Object.assign(m, proto);\n if (proto.sender) {\n m.sender = Sender.fromProto(proto.sender);\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.recipientCampaignId !== 'undefined') {\n toReturn['recipientCampaignId'] = this.recipientCampaignId;\n }\n if (typeof this.recipientCampaignStepId !== 'undefined') {\n toReturn['recipientCampaignStepId'] = this.recipientCampaignStepId;\n }\n if (typeof this.sender !== 'undefined' && this.sender !== null) {\n toReturn['sender'] = 'toApiJson' in this.sender ? this.sender.toApiJson() : this.sender;\n }\n return toReturn;\n }\n}\nclass ExportRecipientLinkClickStatsRequest {\n static fromProto(proto) {\n let m = new ExportRecipientLinkClickStatsRequest();\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.campaignStepId !== 'undefined') {\n toReturn['campaignStepId'] = this.campaignStepId;\n }\n if (typeof this.normalizedUrl !== 'undefined') {\n toReturn['normalizedUrl'] = this.normalizedUrl;\n }\n if (typeof this.userId !== 'undefined') {\n toReturn['userId'] = this.userId;\n }\n return toReturn;\n }\n}\nclass ExtractLinkTrackingDataForTemplateRequest {\n static fromProto(proto) {\n let m = new ExtractLinkTrackingDataForTemplateRequest();\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.templateId !== 'undefined') {\n toReturn['templateId'] = this.templateId;\n }\n if (typeof this.hydratedTemplateContent !== 'undefined') {\n toReturn['hydratedTemplateContent'] = this.hydratedTemplateContent;\n }\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.marketId !== 'undefined') {\n toReturn['marketId'] = this.marketId;\n }\n if (typeof this.userId !== 'undefined') {\n toReturn['userId'] = this.userId;\n }\n return toReturn;\n }\n}\nclass ExtractLinkTrackingDataForTemplateResponse {\n static fromProto(proto) {\n let m = new ExtractLinkTrackingDataForTemplateResponse();\n m = Object.assign(m, proto);\n if (proto.links) {\n m.links = proto.links.map(LinkTrackingData.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.links !== 'undefined' && this.links !== null) {\n toReturn['links'] = 'toApiJson' in this.links ? this.links.toApiJson() : this.links;\n }\n return toReturn;\n }\n}\nclass GetAggregatedCampaignStatsRequest {\n static fromProto(proto) {\n let m = new GetAggregatedCampaignStatsRequest();\n m = Object.assign(m, proto);\n if (proto.focus) {\n m.focus = enumStringToValue(Focuses, proto.focus);\n }\n if (proto.statuses) {\n m.statuses = proto.statuses.map(v => enumStringToValue(Statuses, v));\n }\n if (proto.states) {\n m.states = proto.states.map(v => enumStringToValue(CampaignState, v));\n }\n if (proto.dateFilter) {\n m.dateFilter = DateFilter.fromProto(proto.dateFilter);\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.focus !== 'undefined') {\n toReturn['focus'] = this.focus;\n }\n if (typeof this.marketId !== 'undefined') {\n toReturn['marketId'] = this.marketId;\n }\n if (typeof this.statuses !== 'undefined') {\n toReturn['statuses'] = this.statuses;\n }\n if (typeof this.states !== 'undefined') {\n toReturn['states'] = this.states;\n }\n if (typeof this.searchTerm !== 'undefined') {\n toReturn['searchTerm'] = this.searchTerm;\n }\n if (typeof this.dateFilter !== 'undefined' && this.dateFilter !== null) {\n toReturn['dateFilter'] = 'toApiJson' in this.dateFilter ? this.dateFilter.toApiJson() : this.dateFilter;\n }\n return toReturn;\n }\n}\nclass GetAggregatedCampaignStatsResponse {\n static fromProto(proto) {\n let m = new GetAggregatedCampaignStatsResponse();\n m = Object.assign(m, proto);\n if (proto.totalAccounts) {\n m.totalAccounts = parseInt(proto.totalAccounts, 10);\n }\n if (proto.totalActiveCampaigns) {\n m.totalActiveCampaigns = parseInt(proto.totalActiveCampaigns, 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.totalAccounts !== 'undefined') {\n toReturn['totalAccounts'] = this.totalAccounts;\n }\n if (typeof this.averageClickThroughRate !== 'undefined') {\n toReturn['averageClickThroughRate'] = this.averageClickThroughRate;\n }\n if (typeof this.averageOpenRate !== 'undefined') {\n toReturn['averageOpenRate'] = this.averageOpenRate;\n }\n if (typeof this.totalActiveCampaigns !== 'undefined') {\n toReturn['totalActiveCampaigns'] = this.totalActiveCampaigns;\n }\n return toReturn;\n }\n}\nclass GetAvailableStepTypesForSenderRequest {\n static fromProto(proto) {\n let m = new GetAvailableStepTypesForSenderRequest();\n m = Object.assign(m, proto);\n if (proto.sender) {\n m.sender = Sender.fromProto(proto.sender);\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.sender !== 'undefined' && this.sender !== null) {\n toReturn['sender'] = 'toApiJson' in this.sender ? this.sender.toApiJson() : this.sender;\n }\n return toReturn;\n }\n}\nclass GetAvailableStepTypesForSenderResponse {\n static fromProto(proto) {\n let m = new GetAvailableStepTypesForSenderResponse();\n m = Object.assign(m, proto);\n if (proto.availableStepTypes) {\n m.availableStepTypes = proto.availableStepTypes.map(v => enumStringToValue(Feature, v));\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.availableStepTypes !== 'undefined') {\n toReturn['availableStepTypes'] = this.availableStepTypes;\n }\n return toReturn;\n }\n}\nclass GetCampaignDetailsStatsRequest {\n static fromProto(proto) {\n let m = new GetCampaignDetailsStatsRequest();\n m = Object.assign(m, proto);\n if (proto.dateFilter) {\n m.dateFilter = DateFilter.fromProto(proto.dateFilter);\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.dateFilter !== 'undefined' && this.dateFilter !== null) {\n toReturn['dateFilter'] = 'toApiJson' in this.dateFilter ? this.dateFilter.toApiJson() : this.dateFilter;\n }\n return toReturn;\n }\n}\nclass GetCampaignDetailsStatsResponse {\n static fromProto(proto) {\n let m = new GetCampaignDetailsStatsResponse();\n m = Object.assign(m, proto);\n if (proto.stats) {\n m.stats = CampaignDetailStats.fromProto(proto.stats);\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.stats !== 'undefined' && this.stats !== null) {\n toReturn['stats'] = 'toApiJson' in this.stats ? this.stats.toApiJson() : this.stats;\n }\n return toReturn;\n }\n}\nclass GetCampaignQuotaRequest {\n static fromProto(proto) {\n let m = new GetCampaignQuotaRequest();\n m = Object.assign(m, proto);\n if (proto.sender) {\n m.sender = Sender.fromProto(proto.sender);\n }\n if (proto.type) {\n m.type = enumStringToValue(CampaignQuotaCategory, proto.type);\n }\n if (proto.datePeriod) {\n m.datePeriod = enumStringToValue(Period, proto.datePeriod);\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.sender !== 'undefined' && this.sender !== null) {\n toReturn['sender'] = 'toApiJson' in this.sender ? this.sender.toApiJson() : this.sender;\n }\n if (typeof this.type !== 'undefined') {\n toReturn['type'] = this.type;\n }\n if (typeof this.datePeriod !== 'undefined') {\n toReturn['datePeriod'] = this.datePeriod;\n }\n return toReturn;\n }\n}\nclass GetCampaignQuotaResponse {\n static fromProto(proto) {\n let m = new GetCampaignQuotaResponse();\n m = Object.assign(m, proto);\n if (proto.count) {\n m.count = parseInt(proto.count, 10);\n }\n if (proto.limit) {\n m.limit = parseInt(proto.limit, 10);\n }\n if (proto.quotaStartDate) {\n m.quotaStartDate = new Date(proto.quotaStartDate);\n }\n if (proto.quotaEndDate) {\n m.quotaEndDate = new Date(proto.quotaEndDate);\n }\n return m;\n }\n constructor(kwargs) {\n if (!kwargs) {\n return;\n }\n Object.assign(this, kwargs);\n }\n toApiJson() {\n const toReturn = {};\n if (typeof this.count !== 'undefined') {\n toReturn['count'] = this.count;\n }\n if (typeof this.limit !== 'undefined') {\n toReturn['limit'] = this.limit;\n }\n if (typeof this.quotaStartDate !== 'undefined' && this.quotaStartDate !== null) {\n toReturn['quotaStartDate'] = 'toApiJson' in this.quotaStartDate ? this.quotaStartDate.toApiJson() : this.quotaStartDate;\n }\n if (typeof this.quotaEndDate !== 'undefined' && this.quotaEndDate !== null) {\n toReturn['quotaEndDate'] = 'toApiJson' in this.quotaEndDate ? this.quotaEndDate.toApiJson() : this.quotaEndDate;\n }\n return toReturn;\n }\n}\nclass GetCampaignRequest {\n static fromProto(proto) {\n let m = new GetCampaignRequest();\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.campaignId !== 'undefined') {\n toReturn['campaignId'] = this.campaignId;\n }\n return toReturn;\n }\n}\nclass GetCampaignResponse {\n static fromProto(proto) {\n let m = new GetCampaignResponse();\n m = Object.assign(m, proto);\n if (proto.campaign) {\n m.campaign = GetterCampaignData.fromProto(proto.campaign);\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.campaign !== 'undefined' && this.campaign !== null) {\n toReturn['campaign'] = 'toApiJson' in this.campaign ? this.campaign.toApiJson() : this.campaign;\n }\n return toReturn;\n }\n}\nclass GetCampaignStepContentRequest {\n static fromProto(proto) {\n let m = new GetCampaignStepContentRequest();\n m = Object.assign(m, proto);\n if (proto.stepData) {\n m.stepData = Object.keys(proto.stepData).reduce((obj, k) => {\n obj[k] = proto.stepData[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.campaignId !== 'undefined') {\n toReturn['campaignId'] = this.campaignId;\n }\n if (typeof this.campaignStepId !== 'undefined') {\n toReturn['campaignStepId'] = this.campaignStepId;\n }\n if (typeof this.stepData !== 'undefined' && this.stepData !== null) {\n toReturn['stepData'] = 'toApiJson' in this.stepData ? this.stepData.toApiJson() : this.stepData;\n }\n return toReturn;\n }\n}\nclass GetCampaignStepContentResponse {\n static fromProto(proto) {\n let m = new GetCampaignStepContentResponse();\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.html !== 'undefined') {\n toReturn['html'] = this.html;\n }\n if (typeof this.subject !== 'undefined') {\n toReturn['subject'] = this.subject;\n }\n return toReturn;\n }\n}\nclass GetCampaignStepStatsRequest {\n static fromProto(proto) {\n let m = new GetCampaignStepStatsRequest();\n m = Object.assign(m, proto);\n if (proto.dateFilter) {\n m.dateFilter = DateFilter.fromProto(proto.dateFilter);\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.dateFilter !== 'undefined' && this.dateFilter !== null) {\n toReturn['dateFilter'] = 'toApiJson' in this.dateFilter ? this.dateFilter.toApiJson() : this.dateFilter;\n }\n return toReturn;\n }\n}\nclass GetCampaignStepStatsResponse {\n static fromProto(proto) {\n let m = new GetCampaignStepStatsResponse();\n m = Object.assign(m, proto);\n if (proto.stepStats) {\n m.stepStats = proto.stepStats.map(CampaignStepStats.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.stepStats !== 'undefined' && this.stepStats !== null) {\n toReturn['stepStats'] = 'toApiJson' in this.stepStats ? this.stepStats.toApiJson() : this.stepStats;\n }\n return toReturn;\n }\n}\nclass GetConfigRequest {\n static fromProto(proto) {\n let m = new GetConfigRequest();\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.campaignId !== 'undefined') {\n toReturn['campaignId'] = this.campaignId;\n }\n return toReturn;\n }\n}\nclass GetConfigResponse {\n static fromProto(proto) {\n let m = new GetConfigResponse();\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.timezone !== 'undefined') {\n toReturn['timezone'] = this.timezone;\n }\n if (typeof this.days !== 'undefined') {\n toReturn['days'] = this.days;\n }\n return toReturn;\n }\n}\nclass GetEmailTemplateRequest {\n static fromProto(proto) {\n let m = new GetEmailTemplateRequest();\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.templateId !== 'undefined') {\n toReturn['templateId'] = this.templateId;\n }\n return toReturn;\n }\n}\nclass GetEmailTemplateResponse {\n static fromProto(proto) {\n let m = new GetEmailTemplateResponse();\n m = Object.assign(m, proto);\n if (proto.template) {\n m.template = EmailTemplateStruct.fromProto(proto.template);\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.template !== 'undefined' && this.template !== null) {\n toReturn['template'] = 'toApiJson' in this.template ? this.template.toApiJson() : this.template;\n }\n return toReturn;\n }\n}\nclass GetEmailTemplatesRequest {\n static fromProto(proto) {\n let m = new GetEmailTemplatesRequest();\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.templateIds !== 'undefined') {\n toReturn['templateIds'] = this.templateIds;\n }\n return toReturn;\n }\n}\nclass GetEmailTemplatesResponse {\n static fromProto(proto) {\n let m = new GetEmailTemplatesResponse();\n m = Object.assign(m, proto);\n if (proto.templates) {\n m.templates = proto.templates.map(EmailTemplateStruct.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.templates !== 'undefined' && this.templates !== null) {\n toReturn['templates'] = 'toApiJson' in this.templates ? this.templates.toApiJson() : this.templates;\n }\n return toReturn;\n }\n}\nclass GetLinkStatsRequest {\n static fromProto(proto) {\n let m = new GetLinkStatsRequest();\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.templateId !== 'undefined') {\n toReturn['templateId'] = this.templateId;\n }\n if (typeof this.campaignStepId !== 'undefined') {\n toReturn['campaignStepId'] = this.campaignStepId;\n }\n return toReturn;\n }\n}\nclass GetLinkStatsResponse {\n static fromProto(proto) {\n let m = new GetLinkStatsResponse();\n m = Object.assign(m, proto);\n if (proto.stats) {\n m.stats = proto.stats.map(LinkStats.fromProto);\n }\n if (proto.totalClicksOnCampaignStep) {\n m.totalClicksOnCampaignStep = parseInt(proto.totalClicksOnCampaignStep, 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.stats !== 'undefined' && this.stats !== null) {\n toReturn['stats'] = 'toApiJson' in this.stats ? this.stats.toApiJson() : this.stats;\n }\n if (typeof this.totalClicksOnCampaignStep !== 'undefined') {\n toReturn['totalClicksOnCampaignStep'] = this.totalClicksOnCampaignStep;\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.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(GetterCampaignData.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 GetRecipientCampaignRequest {\n static fromProto(proto) {\n let m = new GetRecipientCampaignRequest();\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.recipientCampaignId !== 'undefined') {\n toReturn['recipientCampaignId'] = this.recipientCampaignId;\n }\n return toReturn;\n }\n}\nclass GetRecipientCampaignResponse {\n static fromProto(proto) {\n let m = new GetRecipientCampaignResponse();\n m = Object.assign(m, proto);\n if (proto.recipientCampaign) {\n m.recipientCampaign = RecipientCampaignStruct.fromProto(proto.recipientCampaign);\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.recipientCampaign !== 'undefined' && this.recipientCampaign !== null) {\n toReturn['recipientCampaign'] = 'toApiJson' in this.recipientCampaign ? this.recipientCampaign.toApiJson() : this.recipientCampaign;\n }\n return toReturn;\n }\n}\nclass GetRecipientLinkClickStatsRequest {\n static fromProto(proto) {\n let m = new GetRecipientLinkClickStatsRequest();\n m = Object.assign(m, proto);\n if (proto.pagingOptions) {\n m.pagingOptions = GetRecipientLinkClickStatsRequestPagedRequestOptions.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.campaignStepId !== 'undefined') {\n toReturn['campaignStepId'] = this.campaignStepId;\n }\n if (typeof this.normalizedUrl !== 'undefined') {\n toReturn['normalizedUrl'] = this.normalizedUrl;\n }\n return toReturn;\n }\n}\nclass GetRecipientLinkClickStatsResponse {\n static fromProto(proto) {\n let m = new GetRecipientLinkClickStatsResponse();\n m = Object.assign(m, proto);\n if (proto.pagingMetadata) {\n m.pagingMetadata = PagedResponseMetadata.fromProto(proto.pagingMetadata);\n }\n if (proto.data) {\n m.data = proto.data.map(RecipientClickStats.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.pagingMetadata !== 'undefined' && this.pagingMetadata !== null) {\n toReturn['pagingMetadata'] = 'toApiJson' in this.pagingMetadata ? this.pagingMetadata.toApiJson() : this.pagingMetadata;\n }\n if (typeof this.data !== 'undefined' && this.data !== null) {\n toReturn['data'] = 'toApiJson' in this.data ? this.data.toApiJson() : this.data;\n }\n return toReturn;\n }\n}\nclass GetRecipientRequest {\n static fromProto(proto) {\n let m = new GetRecipientRequest();\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.recipientId !== 'undefined') {\n toReturn['recipientId'] = this.recipientId;\n }\n return toReturn;\n }\n}\nclass GetRecipientResponse {\n static fromProto(proto) {\n let m = new GetRecipientResponse();\n m = Object.assign(m, proto);\n if (proto.sender) {\n m.sender = Sender.fromProto(proto.sender);\n }\n if (proto.recipient) {\n m.recipient = RecipientV2.fromProto(proto.recipient);\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.recipientId !== 'undefined') {\n toReturn['recipientId'] = this.recipientId;\n }\n if (typeof this.email !== 'undefined') {\n toReturn['email'] = this.email;\n }\n if (typeof this.sender !== 'undefined' && this.sender !== null) {\n toReturn['sender'] = 'toApiJson' in this.sender ? this.sender.toApiJson() : this.sender;\n }\n if (typeof this.recipient !== 'undefined' && this.recipient !== null) {\n toReturn['recipient'] = 'toApiJson' in this.recipient ? this.recipient.toApiJson() : this.recipient;\n }\n return toReturn;\n }\n}\nclass GetRequest {\n static fromProto(proto) {\n let m = new GetRequest();\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.id !== 'undefined') {\n toReturn['id'] = this.id;\n }\n return toReturn;\n }\n}\nclass GetResponse {\n static fromProto(proto) {\n let m = new GetResponse();\n m = Object.assign(m, proto);\n if (proto.emailBuilderTemplate) {\n m.emailBuilderTemplate = EmailBuilderTemplate.fromProto(proto.emailBuilderTemplate);\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.emailBuilderTemplate !== 'undefined' && this.emailBuilderTemplate !== null) {\n toReturn['emailBuilderTemplate'] = 'toApiJson' in this.emailBuilderTemplate ? this.emailBuilderTemplate.toApiJson() : this.emailBuilderTemplate;\n }\n return toReturn;\n }\n}\nclass GetterCampaignData {\n static fromProto(proto) {\n let m = new GetterCampaignData();\n m = Object.assign(m, proto);\n if (proto.version) {\n m.version = parseInt(proto.version, 10);\n }\n if (proto.focus) {\n m.focus = enumStringToValue(Focuses, proto.focus);\n }\n if (proto.campaignSchedule) {\n m.campaignSchedule = proto.campaignSchedule.map(CampaignStepInterface.fromProto);\n }\n if (proto.campaignScheduleVersion) {\n m.campaignScheduleVersion = parseInt(proto.campaignScheduleVersion, 10);\n }\n if (proto.eventsCount) {\n m.eventsCount = parseInt(proto.eventsCount, 10);\n }\n if (proto.status) {\n m.status = enumStringToValue(Statuses, proto.status);\n }\n if (proto.published) {\n m.published = new Date(proto.published);\n }\n if (proto.created) {\n m.created = new Date(proto.created);\n }\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.version !== 'undefined') {\n toReturn['version'] = this.version;\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.campaignId !== 'undefined') {\n toReturn['campaignId'] = this.campaignId;\n }\n if (typeof this.focus !== 'undefined') {\n toReturn['focus'] = this.focus;\n }\n if (typeof this.campaignSchedule !== 'undefined' && this.campaignSchedule !== null) {\n toReturn['campaignSchedule'] = 'toApiJson' in this.campaignSchedule ? this.campaignSchedule.toApiJson() : this.campaignSchedule;\n }\n if (typeof this.campaignScheduleVersion !== 'undefined') {\n toReturn['campaignScheduleVersion'] = this.campaignScheduleVersion;\n }\n if (typeof this.eventsCount !== 'undefined') {\n toReturn['eventsCount'] = this.eventsCount;\n }\n if (typeof this.name !== 'undefined') {\n toReturn['name'] = this.name;\n }\n if (typeof this.status !== 'undefined') {\n toReturn['status'] = this.status;\n }\n if (typeof this.locale !== 'undefined') {\n toReturn['locale'] = this.locale;\n }\n if (typeof this.isEnabled !== 'undefined') {\n toReturn['isEnabled'] = this.isEnabled;\n }\n if (typeof this.isEditable !== 'undefined') {\n toReturn['isEditable'] = this.isEditable;\n }\n if (typeof this.hiddenForPartners !== 'undefined') {\n toReturn['hiddenForPartners'] = this.hiddenForPartners;\n }\n if (typeof this.isPremade !== 'undefined') {\n toReturn['isPremade'] = this.isPremade;\n }\n if (typeof this.parentCampaignId !== 'undefined') {\n toReturn['parentCampaignId'] = this.parentCampaignId;\n }\n if (typeof this.rootCampaignId !== 'undefined') {\n toReturn['rootCampaignId'] = this.rootCampaignId;\n }\n if (typeof this.createdUser !== 'undefined') {\n toReturn['createdUser'] = this.createdUser;\n }\n if (typeof this.updatedUser !== 'undefined') {\n toReturn['updatedUser'] = this.updatedUser;\n }\n if (typeof this.publishedUser !== 'undefined') {\n toReturn['publishedUser'] = this.publishedUser;\n }\n if (typeof this.emailCategoryId !== 'undefined') {\n toReturn['emailCategoryId'] = this.emailCategoryId;\n }\n if (typeof this.published !== 'undefined' && this.published !== null) {\n toReturn['published'] = 'toApiJson' in this.published ? this.published.toApiJson() : this.published;\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.updated !== 'undefined' && this.updated !== null) {\n toReturn['updated'] = 'toApiJson' in this.updated ? this.updated.toApiJson() : this.updated;\n }\n return toReturn;\n }\n}\nclass IsFeatureActiveForSenderRequest {\n static fromProto(proto) {\n let m = new IsFeatureActiveForSenderRequest();\n m = Object.assign(m, proto);\n if (proto.sender) {\n m.sender = Sender.fromProto(proto.sender);\n }\n if (proto.featureId) {\n m.featureId = enumStringToValue(Feature, proto.featureId);\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.sender !== 'undefined' && this.sender !== null) {\n toReturn['sender'] = 'toApiJson' in this.sender ? this.sender.toApiJson() : this.sender;\n }\n if (typeof this.featureId !== 'undefined') {\n toReturn['featureId'] = this.featureId;\n }\n return toReturn;\n }\n}\nclass IsFeatureActiveForSenderResponse {\n static fromProto(proto) {\n let m = new IsFeatureActiveForSenderResponse();\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.isActive !== 'undefined') {\n toReturn['isActive'] = this.isActive;\n }\n return toReturn;\n }\n}\nclass IsProductActiveForSenderRequest {\n static fromProto(proto) {\n let m = new IsProductActiveForSenderRequest();\n m = Object.assign(m, proto);\n if (proto.sender) {\n m.sender = Sender.fromProto(proto.sender);\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.sender !== 'undefined' && this.sender !== null) {\n toReturn['sender'] = 'toApiJson' in this.sender ? this.sender.toApiJson() : this.sender;\n }\n if (typeof this.sku !== 'undefined') {\n toReturn['sku'] = this.sku;\n }\n return toReturn;\n }\n}\nclass IsProductActiveForSenderResponse {\n static fromProto(proto) {\n let m = new IsProductActiveForSenderResponse();\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.isActive !== 'undefined') {\n toReturn['isActive'] = this.isActive;\n }\n return toReturn;\n }\n}\nclass LegacyAddAccountGroupToCampaignRequest {\n static fromProto(proto) {\n let m = new LegacyAddAccountGroupToCampaignRequest();\n m = Object.assign(m, proto);\n if (proto.scheduledDate) {\n m.scheduledDate = new Date(proto.scheduledDate);\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.campaignId !== 'undefined') {\n toReturn['campaignId'] = this.campaignId;\n }\n if (typeof this.accountGroupId !== 'undefined') {\n toReturn['accountGroupId'] = this.accountGroupId;\n }\n if (typeof this.scheduledDate !== 'undefined' && this.scheduledDate !== null) {\n toReturn['scheduledDate'] = 'toApiJson' in this.scheduledDate ? this.scheduledDate.toApiJson() : this.scheduledDate;\n }\n return toReturn;\n }\n}\nclass LegacyGetRecipientCampaignsByAgidRequest {\n static fromProto(proto) {\n let m = new LegacyGetRecipientCampaignsByAgidRequest();\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 LegacyGetRecipientCampaignsByAgidResponse {\n static fromProto(proto) {\n let m = new LegacyGetRecipientCampaignsByAgidResponse();\n m = Object.assign(m, proto);\n if (proto.recipientCampaignPairs) {\n m.recipientCampaignPairs = proto.recipientCampaignPairs.map(RecipientCampaignPair.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.recipientCampaignPairs !== 'undefined' && this.recipientCampaignPairs !== null) {\n toReturn['recipientCampaignPairs'] = 'toApiJson' in this.recipientCampaignPairs ? this.recipientCampaignPairs.toApiJson() : this.recipientCampaignPairs;\n }\n return toReturn;\n }\n}\nclass LegacyPauseAccountGroupOnCampaignRequest {\n static fromProto(proto) {\n let m = new LegacyPauseAccountGroupOnCampaignRequest();\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.campaignId !== 'undefined') {\n toReturn['campaignId'] = this.campaignId;\n }\n if (typeof this.accountGroupId !== 'undefined') {\n toReturn['accountGroupId'] = this.accountGroupId;\n }\n return toReturn;\n }\n}\nclass LegacyRateLimitedAddToCampaignRequest {\n static fromProto(proto) {\n let m = new LegacyRateLimitedAddToCampaignRequest();\n m = Object.assign(m, proto);\n if (proto.scheduledDate) {\n m.scheduledDate = new Date(proto.scheduledDate);\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.campaignId !== 'undefined') {\n toReturn['campaignId'] = this.campaignId;\n }\n if (typeof this.email !== 'undefined') {\n toReturn['email'] = this.email;\n }\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 if (typeof this.scheduledDate !== 'undefined' && this.scheduledDate !== null) {\n toReturn['scheduledDate'] = 'toApiJson' in this.scheduledDate ? this.scheduledDate.toApiJson() : this.scheduledDate;\n }\n if (typeof this.fromEmail !== 'undefined') {\n toReturn['fromEmail'] = this.fromEmail;\n }\n if (typeof this.fromName !== 'undefined') {\n toReturn['fromName'] = this.fromName;\n }\n if (typeof this.fromId !== 'undefined') {\n toReturn['fromId'] = this.fromId;\n }\n return toReturn;\n }\n}\nclass LegacyRateLimitedAddToCampaignResponse {\n static fromProto(proto) {\n let m = new LegacyRateLimitedAddToCampaignResponse();\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.recipientCampaignId !== 'undefined') {\n toReturn['recipientCampaignId'] = this.recipientCampaignId;\n }\n return toReturn;\n }\n}\nclass LegacyUpdateRecipientCampaignStatusRequest {\n static fromProto(proto) {\n let m = new LegacyUpdateRecipientCampaignStatusRequest();\n m = Object.assign(m, proto);\n if (proto.status) {\n m.status = enumStringToValue(RecipientCampaignStatus, 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.recipientCampaignId !== 'undefined') {\n toReturn['recipientCampaignId'] = this.recipientCampaignId;\n }\n if (typeof this.status !== 'undefined') {\n toReturn['status'] = this.status;\n }\n return toReturn;\n }\n}\nclass LinkStats {\n static fromProto(proto) {\n let m = new LinkStats();\n m = Object.assign(m, proto);\n if (proto.totalClicks) {\n m.totalClicks = parseInt(proto.totalClicks, 10);\n }\n if (proto.uniqueClicks) {\n m.uniqueClicks = parseInt(proto.uniqueClicks, 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.url !== 'undefined') {\n toReturn['url'] = this.url;\n }\n if (typeof this.totalClicks !== 'undefined') {\n toReturn['totalClicks'] = this.totalClicks;\n }\n if (typeof this.uniqueClicks !== 'undefined') {\n toReturn['uniqueClicks'] = this.uniqueClicks;\n }\n if (typeof this.clickRate !== 'undefined') {\n toReturn['clickRate'] = this.clickRate;\n }\n return toReturn;\n }\n}\nclass LinkTrackingData {\n static fromProto(proto) {\n let m = new LinkTrackingData();\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.normalizedUrl !== 'undefined') {\n toReturn['normalizedUrl'] = this.normalizedUrl;\n }\n if (typeof this.hydratedUrl !== 'undefined') {\n toReturn['hydratedUrl'] = this.hydratedUrl;\n }\n return toReturn;\n }\n}\nclass ListCampaignStatsForSenderRequest {\n static fromProto(proto) {\n let m = new ListCampaignStatsForSenderRequest();\n m = Object.assign(m, proto);\n if (proto.sender) {\n m.sender = Sender.fromProto(proto.sender);\n }\n if (proto.focus) {\n m.focus = enumStringToValue(Focuses, proto.focus);\n }\n if (proto.statuses) {\n m.statuses = proto.statuses.map(v => enumStringToValue(Statuses, v));\n }\n if (proto.states) {\n m.states = proto.states.map(v => enumStringToValue(CampaignState, v));\n }\n if (proto.pagingOptions) {\n m.pagingOptions = PagedRequestOptions.fromProto(proto.pagingOptions);\n }\n if (proto.deletedTagsPolicy) {\n m.deletedTagsPolicy = enumStringToValue(DeletedTagsPolicy, proto.deletedTagsPolicy);\n }\n if (proto.sortOptions) {\n m.sortOptions = SortOptions.fromProto(proto.sortOptions);\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.sender !== 'undefined' && this.sender !== null) {\n toReturn['sender'] = 'toApiJson' in this.sender ? this.sender.toApiJson() : this.sender;\n }\n if (typeof this.focus !== 'undefined') {\n toReturn['focus'] = this.focus;\n }\n if (typeof this.marketId !== 'undefined') {\n toReturn['marketId'] = this.marketId;\n }\n if (typeof this.statuses !== 'undefined') {\n toReturn['statuses'] = this.statuses;\n }\n if (typeof this.states !== 'undefined') {\n toReturn['states'] = this.states;\n }\n if (typeof this.searchTerm !== 'undefined') {\n toReturn['searchTerm'] = this.searchTerm;\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.deletedTagsPolicy !== 'undefined') {\n toReturn['deletedTagsPolicy'] = this.deletedTagsPolicy;\n }\n if (typeof this.tagIds !== 'undefined') {\n toReturn['tagIds'] = this.tagIds;\n }\n if (typeof this.sortOptions !== 'undefined' && this.sortOptions !== null) {\n toReturn['sortOptions'] = 'toApiJson' in this.sortOptions ? this.sortOptions.toApiJson() : this.sortOptions;\n }\n return toReturn;\n }\n}\nclass ListCampaignStatsForSenderResponse {\n static fromProto(proto) {\n let m = new ListCampaignStatsForSenderResponse();\n m = Object.assign(m, proto);\n if (proto.stats) {\n m.stats = proto.stats.map(ListCampaignStatsStruct.fromProto);\n }\n if (proto.pagingMetadata) {\n m.pagingMetadata = PagedResponseMetadata.fromProto(proto.pagingMetadata);\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.stats !== 'undefined' && this.stats !== null) {\n toReturn['stats'] = 'toApiJson' in this.stats ? this.stats.toApiJson() : this.stats;\n }\n if (typeof this.pagingMetadata !== 'undefined' && this.pagingMetadata !== null) {\n toReturn['pagingMetadata'] = 'toApiJson' in this.pagingMetadata ? this.pagingMetadata.toApiJson() : this.pagingMetadata;\n }\n return toReturn;\n }\n}\nclass ListCampaignStatsRequest {\n static fromProto(proto) {\n let m = new ListCampaignStatsRequest();\n m = Object.assign(m, proto);\n if (proto.focus) {\n m.focus = enumStringToValue(Focuses, proto.focus);\n }\n if (proto.statuses) {\n m.statuses = proto.statuses.map(v => enumStringToValue(Statuses, v));\n }\n if (proto.states) {\n m.states = proto.states.map(v => enumStringToValue(CampaignState, v));\n }\n if (proto.pagingOptions) {\n m.pagingOptions = PagedRequestOptions.fromProto(proto.pagingOptions);\n }\n if (proto.deletedTagsPolicy) {\n m.deletedTagsPolicy = enumStringToValue(DeletedTagsPolicy, proto.deletedTagsPolicy);\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.focus !== 'undefined') {\n toReturn['focus'] = this.focus;\n }\n if (typeof this.marketId !== 'undefined') {\n toReturn['marketId'] = this.marketId;\n }\n if (typeof this.statuses !== 'undefined') {\n toReturn['statuses'] = this.statuses;\n }\n if (typeof this.states !== 'undefined') {\n toReturn['states'] = this.states;\n }\n if (typeof this.searchTerm !== 'undefined') {\n toReturn['searchTerm'] = this.searchTerm;\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.deletedTagsPolicy !== 'undefined') {\n toReturn['deletedTagsPolicy'] = this.deletedTagsPolicy;\n }\n if (typeof this.tagIds !== 'undefined') {\n toReturn['tagIds'] = this.tagIds;\n }\n return toReturn;\n }\n}\nclass ListCampaignStatsResponse {\n static fromProto(proto) {\n let m = new ListCampaignStatsResponse();\n m = Object.assign(m, proto);\n if (proto.stats) {\n m.stats = proto.stats.map(ListCampaignStatsStruct.fromProto);\n }\n if (proto.pagingMetadata) {\n m.pagingMetadata = PagedResponseMetadata.fromProto(proto.pagingMetadata);\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.stats !== 'undefined' && this.stats !== null) {\n toReturn['stats'] = 'toApiJson' in this.stats ? this.stats.toApiJson() : this.stats;\n }\n if (typeof this.pagingMetadata !== 'undefined' && this.pagingMetadata !== null) {\n toReturn['pagingMetadata'] = 'toApiJson' in this.pagingMetadata ? this.pagingMetadata.toApiJson() : this.pagingMetadata;\n }\n return toReturn;\n }\n}\nclass ListCampaignStatsStruct {\n static fromProto(proto) {\n let m = new ListCampaignStatsStruct();\n m = Object.assign(m, proto);\n if (proto.totalAccounts) {\n m.totalAccounts = parseInt(proto.totalAccounts, 10);\n }\n if (proto.activeAccounts) {\n m.activeAccounts = parseInt(proto.activeAccounts, 10);\n }\n if (proto.emailsDelivered) {\n m.emailsDelivered = parseInt(proto.emailsDelivered, 10);\n }\n if (proto.status) {\n m.status = enumStringToValue(Statuses, proto.status);\n }\n if (proto.state) {\n m.state = enumStringToValue(CampaignState, proto.state);\n }\n if (proto.eventsCount) {\n m.eventsCount = parseInt(proto.eventsCount, 10);\n }\n if (proto.tags) {\n m.tags = proto.tags.map(ListCampaignTagDetails.fromProto);\n }\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.name !== 'undefined') {\n toReturn['name'] = this.name;\n }\n if (typeof this.totalAccounts !== 'undefined') {\n toReturn['totalAccounts'] = this.totalAccounts;\n }\n if (typeof this.activeAccounts !== 'undefined') {\n toReturn['activeAccounts'] = this.activeAccounts;\n }\n if (typeof this.emailsDelivered !== 'undefined') {\n toReturn['emailsDelivered'] = this.emailsDelivered;\n }\n if (typeof this.clickThroughRate !== 'undefined') {\n toReturn['clickThroughRate'] = this.clickThroughRate;\n }\n if (typeof this.openRate !== 'undefined') {\n toReturn['openRate'] = this.openRate;\n }\n if (typeof this.status !== 'undefined') {\n toReturn['status'] = this.status;\n }\n if (typeof this.state !== 'undefined') {\n toReturn['state'] = this.state;\n }\n if (typeof this.automations !== 'undefined') {\n toReturn['automations'] = this.automations;\n }\n if (typeof this.campaignId !== 'undefined') {\n toReturn['campaignId'] = this.campaignId;\n }\n if (typeof this.eventsCount !== 'undefined') {\n toReturn['eventsCount'] = this.eventsCount;\n }\n if (typeof this.isEditable !== 'undefined') {\n toReturn['isEditable'] = this.isEditable;\n }\n if (typeof this.tags !== 'undefined' && this.tags !== null) {\n toReturn['tags'] = 'toApiJson' in this.tags ? this.tags.toApiJson() : this.tags;\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}\nclass ListCampaignTagDetails {\n static fromProto(proto) {\n let m = new ListCampaignTagDetails();\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.tagId !== 'undefined') {\n toReturn['tagId'] = this.tagId;\n }\n if (typeof this.text !== 'undefined') {\n toReturn['text'] = this.text;\n }\n if (typeof this.color !== 'undefined') {\n toReturn['color'] = this.color;\n }\n return toReturn;\n }\n}\nclass ListCampaignsRequest {\n static fromProto(proto) {\n let m = new ListCampaignsRequest();\n m = Object.assign(m, proto);\n if (proto.focuses) {\n m.focuses = proto.focuses.map(v => enumStringToValue(Focuses, v));\n }\n if (proto.statuses) {\n m.statuses = proto.statuses.map(v => enumStringToValue(Statuses, v));\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.partnerId !== 'undefined') {\n toReturn['partnerId'] = this.partnerId;\n }\n if (typeof this.focuses !== 'undefined') {\n toReturn['focuses'] = this.focuses;\n }\n if (typeof this.statuses !== 'undefined') {\n toReturn['statuses'] = this.statuses;\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.name !== 'undefined') {\n toReturn['name'] = this.name;\n }\n return toReturn;\n }\n}\nclass ListCampaignsResponse {\n static fromProto(proto) {\n let m = new ListCampaignsResponse();\n m = Object.assign(m, proto);\n if (proto.campaigns) {\n m.campaigns = proto.campaigns.map(GetterCampaignData.fromProto);\n }\n if (proto.pagingMetadata) {\n m.pagingMetadata = PagedResponseMetadata.fromProto(proto.pagingMetadata);\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 if (typeof this.pagingMetadata !== 'undefined' && this.pagingMetadata !== null) {\n toReturn['pagingMetadata'] = 'toApiJson' in this.pagingMetadata ? this.pagingMetadata.toApiJson() : this.pagingMetadata;\n }\n return toReturn;\n }\n}\nclass ListCampaignsV2Request {\n static fromProto(proto) {\n let m = new ListCampaignsV2Request();\n m = Object.assign(m, proto);\n if (proto.sender) {\n m.sender = Sender.fromProto(proto.sender);\n }\n if (proto.statuses) {\n m.statuses = proto.statuses.map(v => enumStringToValue(Statuses, v));\n }\n if (proto.pagingOptions) {\n m.pagingOptions = PagedRequestOptions.fromProto(proto.pagingOptions);\n }\n if (proto.sortOptions) {\n m.sortOptions = SortOptions.fromProto(proto.sortOptions);\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.sender !== 'undefined' && this.sender !== null) {\n toReturn['sender'] = 'toApiJson' in this.sender ? this.sender.toApiJson() : this.sender;\n }\n if (typeof this.statuses !== 'undefined') {\n toReturn['statuses'] = this.statuses;\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.searchTerm !== 'undefined') {\n toReturn['searchTerm'] = this.searchTerm;\n }\n if (typeof this.sortOptions !== 'undefined' && this.sortOptions !== null) {\n toReturn['sortOptions'] = 'toApiJson' in this.sortOptions ? this.sortOptions.toApiJson() : this.sortOptions;\n }\n return toReturn;\n }\n}\nclass ListCampaignsV2Response {\n static fromProto(proto) {\n let m = new ListCampaignsV2Response();\n m = Object.assign(m, proto);\n if (proto.campaigns) {\n m.campaigns = proto.campaigns.map(GetterCampaignData.fromProto);\n }\n if (proto.metadata) {\n m.metadata = PagedResponseMetadata.fromProto(proto.metadata);\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 if (typeof this.metadata !== 'undefined' && this.metadata !== null) {\n toReturn['metadata'] = 'toApiJson' in this.metadata ? this.metadata.toApiJson() : this.metadata;\n }\n return toReturn;\n }\n}\nclass ListLinksInTemplateRequest {\n static fromProto(proto) {\n let m = new ListLinksInTemplateRequest();\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.templateId !== 'undefined') {\n toReturn['templateId'] = this.templateId;\n }\n return toReturn;\n }\n}\nclass ListLinksInTemplateResponse {\n static fromProto(proto) {\n let m = new ListLinksInTemplateResponse();\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.links !== 'undefined') {\n toReturn['links'] = this.links;\n }\n return toReturn;\n }\n}\nclass ListRecipientCampaignsRequest {\n static fromProto(proto) {\n let m = new ListRecipientCampaignsRequest();\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 return toReturn;\n }\n}\nclass ListRecipientCampaignsResponse {\n static fromProto(proto) {\n let m = new ListRecipientCampaignsResponse();\n m = Object.assign(m, proto);\n if (proto.recipientCampaign) {\n m.recipientCampaign = proto.recipientCampaign.map(RecipientCampaignStruct.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.recipientCampaign !== 'undefined' && this.recipientCampaign !== null) {\n toReturn['recipientCampaign'] = 'toApiJson' in this.recipientCampaign ? this.recipientCampaign.toApiJson() : this.recipientCampaign;\n }\n return toReturn;\n }\n}\nclass ListRecommendedCampaignsRequest {\n static fromProto(proto) {\n let m = new ListRecommendedCampaignsRequest();\n m = Object.assign(m, proto);\n if (proto.focuses) {\n m.focuses = proto.focuses.map(v => enumStringToValue(Focuses, v));\n }\n if (proto.statuses) {\n m.statuses = proto.statuses.map(v => enumStringToValue(Statuses, v));\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.focuses !== 'undefined') {\n toReturn['focuses'] = this.focuses;\n }\n if (typeof this.statuses !== 'undefined') {\n toReturn['statuses'] = this.statuses;\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 ListTagsForCampaignRequest {\n static fromProto(proto) {\n let m = new ListTagsForCampaignRequest();\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.campaignId !== 'undefined') {\n toReturn['campaignId'] = this.campaignId;\n }\n if (typeof this.cursor !== 'undefined') {\n toReturn['cursor'] = this.cursor;\n }\n if (typeof this.pageSize !== 'undefined') {\n toReturn['pageSize'] = this.pageSize;\n }\n return toReturn;\n }\n}\nclass ListTagsForCampaignResponse {\n static fromProto(proto) {\n let m = new ListTagsForCampaignResponse();\n m = Object.assign(m, proto);\n if (proto.campaignTags) {\n m.campaignTags = proto.campaignTags.map(CampaignTag.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.campaignTags !== 'undefined' && this.campaignTags !== null) {\n toReturn['campaignTags'] = 'toApiJson' in this.campaignTags ? this.campaignTags.toApiJson() : this.campaignTags;\n }\n if (typeof this.cursor !== 'undefined') {\n toReturn['cursor'] = this.cursor;\n }\n if (typeof this.hasMore !== 'undefined') {\n toReturn['hasMore'] = this.hasMore;\n }\n return toReturn;\n }\n}\nclass ListTagsForSenderRequest {\n static fromProto(proto) {\n let m = new ListTagsForSenderRequest();\n m = Object.assign(m, proto);\n if (proto.senderType) {\n m.senderType = enumStringToValue(SenderType, proto.senderType);\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.senderType !== 'undefined') {\n toReturn['senderType'] = this.senderType;\n }\n if (typeof this.senderId !== 'undefined') {\n toReturn['senderId'] = this.senderId;\n }\n if (typeof this.cursor !== 'undefined') {\n toReturn['cursor'] = this.cursor;\n }\n if (typeof this.pageSize !== 'undefined') {\n toReturn['pageSize'] = this.pageSize;\n }\n return toReturn;\n }\n}\nclass ListTagsForSenderResponse {\n static fromProto(proto) {\n let m = new ListTagsForSenderResponse();\n m = Object.assign(m, proto);\n if (proto.campaignTags) {\n m.campaignTags = proto.campaignTags.map(CampaignTag.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.campaignTags !== 'undefined' && this.campaignTags !== null) {\n toReturn['campaignTags'] = 'toApiJson' in this.campaignTags ? this.campaignTags.toApiJson() : this.campaignTags;\n }\n if (typeof this.cursor !== 'undefined') {\n toReturn['cursor'] = this.cursor;\n }\n if (typeof this.hasMore !== 'undefined') {\n toReturn['hasMore'] = this.hasMore;\n }\n return toReturn;\n }\n}\nclass LookupRecipientCampaignRequest {\n static fromProto(proto) {\n let m = new LookupRecipientCampaignRequest();\n m = Object.assign(m, proto);\n if (proto.sender) {\n m.sender = Sender.fromProto(proto.sender);\n }\n if (proto.recipient) {\n m.recipient = RecipientV2.fromProto(proto.recipient);\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.sender !== 'undefined' && this.sender !== null) {\n toReturn['sender'] = 'toApiJson' in this.sender ? this.sender.toApiJson() : this.sender;\n }\n if (typeof this.recipient !== 'undefined' && this.recipient !== null) {\n toReturn['recipient'] = 'toApiJson' in this.recipient ? this.recipient.toApiJson() : this.recipient;\n }\n if (typeof this.campaignId !== 'undefined') {\n toReturn['campaignId'] = this.campaignId;\n }\n return toReturn;\n }\n}\nclass LookupRecipientCampaignResponse {\n static fromProto(proto) {\n let m = new LookupRecipientCampaignResponse();\n m = Object.assign(m, proto);\n if (proto.recipientCampaign) {\n m.recipientCampaign = RecipientCampaignStruct.fromProto(proto.recipientCampaign);\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.recipientCampaign !== 'undefined' && this.recipientCampaign !== null) {\n toReturn['recipientCampaign'] = 'toApiJson' in this.recipientCampaign ? this.recipientCampaign.toApiJson() : this.recipientCampaign;\n }\n return toReturn;\n }\n}\nclass LookupRecipientCampaignsRequest {\n static fromProto(proto) {\n let m = new LookupRecipientCampaignsRequest();\n m = Object.assign(m, proto);\n if (proto.sender) {\n m.sender = Sender.fromProto(proto.sender);\n }\n if (proto.recipients) {\n m.recipients = proto.recipients.map(RecipientV2.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.sender !== 'undefined' && this.sender !== null) {\n toReturn['sender'] = 'toApiJson' in this.sender ? this.sender.toApiJson() : this.sender;\n }\n if (typeof this.recipients !== 'undefined' && this.recipients !== null) {\n toReturn['recipients'] = 'toApiJson' in this.recipients ? this.recipients.toApiJson() : this.recipients;\n }\n if (typeof this.campaignId !== 'undefined') {\n toReturn['campaignId'] = this.campaignId;\n }\n return toReturn;\n }\n}\nclass LookupRecipientCampaignsResponse {\n static fromProto(proto) {\n let m = new LookupRecipientCampaignsResponse();\n m = Object.assign(m, proto);\n if (proto.recipientCampaigns) {\n m.recipientCampaigns = proto.recipientCampaigns.map(RecipientCampaignStruct.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.recipientCampaigns !== 'undefined' && this.recipientCampaigns !== null) {\n toReturn['recipientCampaigns'] = 'toApiJson' in this.recipientCampaigns ? this.recipientCampaigns.toApiJson() : this.recipientCampaigns;\n }\n return toReturn;\n }\n}\nclass GetRecipientLinkClickStatsRequestPagedRequestOptions {\n static fromProto(proto) {\n let m = new GetRecipientLinkClickStatsRequestPagedRequestOptions();\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.cursor !== 'undefined') {\n toReturn['cursor'] = this.cursor;\n }\n if (typeof this.pageSize !== 'undefined') {\n toReturn['pageSize'] = this.pageSize;\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.cursor !== 'undefined') {\n toReturn['cursor'] = this.cursor;\n }\n if (typeof this.pageSize !== 'undefined') {\n toReturn['pageSize'] = this.pageSize;\n }\n return toReturn;\n }\n}\nclass PagedResponseMetadata {\n static fromProto(proto) {\n let m = new PagedResponseMetadata();\n m = Object.assign(m, proto);\n if (proto.totalResults) {\n m.totalResults = parseInt(proto.totalResults, 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.nextCursor !== 'undefined') {\n toReturn['nextCursor'] = this.nextCursor;\n }\n if (typeof this.hasMore !== 'undefined') {\n toReturn['hasMore'] = this.hasMore;\n }\n if (typeof this.totalResults !== 'undefined') {\n toReturn['totalResults'] = this.totalResults;\n }\n return toReturn;\n }\n}\nclass PauseCampaignRequest {\n static fromProto(proto) {\n let m = new PauseCampaignRequest();\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.campaignId !== 'undefined') {\n toReturn['campaignId'] = this.campaignId;\n }\n return toReturn;\n }\n}\nclass PreviewEmailTemplateRequest {\n static fromProto(proto) {\n let m = new PreviewEmailTemplateRequest();\n m = Object.assign(m, proto);\n if (proto.sender) {\n m.sender = Sender.fromProto(proto.sender);\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.templateId !== 'undefined') {\n toReturn['templateId'] = this.templateId;\n }\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.marketId !== 'undefined') {\n toReturn['marketId'] = this.marketId;\n }\n if (typeof this.locale !== 'undefined') {\n toReturn['locale'] = this.locale;\n }\n if (typeof this.userId !== 'undefined') {\n toReturn['userId'] = this.userId;\n }\n if (typeof this.contactId !== 'undefined') {\n toReturn['contactId'] = this.contactId;\n }\n if (typeof this.sender !== 'undefined' && this.sender !== null) {\n toReturn['sender'] = 'toApiJson' in this.sender ? this.sender.toApiJson() : this.sender;\n }\n return toReturn;\n }\n}\nclass PreviewEmailTemplateResponse {\n static fromProto(proto) {\n let m = new PreviewEmailTemplateResponse();\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.templateHtml !== 'undefined') {\n toReturn['templateHtml'] = this.templateHtml;\n }\n if (typeof this.subject !== 'undefined') {\n toReturn['subject'] = this.subject;\n }\n if (typeof this.name !== 'undefined') {\n toReturn['name'] = this.name;\n }\n return toReturn;\n }\n}\nclass RecipientClickStatsRecipient {\n static fromProto(proto) {\n let m = new RecipientClickStatsRecipient();\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.emailAddress !== 'undefined') {\n toReturn['emailAddress'] = this.emailAddress;\n }\n return toReturn;\n }\n}\nclass RecipientCampaignPair {\n static fromProto(proto) {\n let m = new RecipientCampaignPair();\n m = Object.assign(m, proto);\n if (proto.recipientCampaign) {\n m.recipientCampaign = RecipientCampaignStruct.fromProto(proto.recipientCampaign);\n }\n if (proto.recipient) {\n m.recipient = CampaignRecipient.fromProto(proto.recipient);\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.recipientCampaign !== 'undefined' && this.recipientCampaign !== null) {\n toReturn['recipientCampaign'] = 'toApiJson' in this.recipientCampaign ? this.recipientCampaign.toApiJson() : this.recipientCampaign;\n }\n if (typeof this.recipient !== 'undefined' && this.recipient !== null) {\n toReturn['recipient'] = 'toApiJson' in this.recipient ? this.recipient.toApiJson() : this.recipient;\n }\n return toReturn;\n }\n}\nclass RecipientCampaignStepEventStruct {\n static fromProto(proto) {\n let m = new RecipientCampaignStepEventStruct();\n m = Object.assign(m, proto);\n if (proto.version) {\n m.version = parseInt(proto.version, 10);\n }\n if (proto.eventType) {\n m.eventType = enumStringToValue(CampaignStepEventType, proto.eventType);\n }\n if (proto.eventDate) {\n m.eventDate = new Date(proto.eventDate);\n }\n return m;\n }\n constructor(kwargs) {\n if (!kwargs) {\n return;\n }\n Object.assign(this, kwargs);\n }\n toApiJson() {\n const toReturn = {};\n if (typeof this.version !== 'undefined') {\n toReturn['version'] = this.version;\n }\n if (typeof this.eventId !== 'undefined') {\n toReturn['eventId'] = this.eventId;\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.accountGroupId !== 'undefined') {\n toReturn['accountGroupId'] = this.accountGroupId;\n }\n if (typeof this.campaignId !== 'undefined') {\n toReturn['campaignId'] = this.campaignId;\n }\n if (typeof this.campaignStepId !== 'undefined') {\n toReturn['campaignStepId'] = this.campaignStepId;\n }\n if (typeof this.recipientId !== 'undefined') {\n toReturn['recipientId'] = this.recipientId;\n }\n if (typeof this.recipientCampaignId !== 'undefined') {\n toReturn['recipientCampaignId'] = this.recipientCampaignId;\n }\n if (typeof this.recipientCampaignStepId !== 'undefined') {\n toReturn['recipientCampaignStepId'] = this.recipientCampaignStepId;\n }\n if (typeof this.eventType !== 'undefined') {\n toReturn['eventType'] = this.eventType;\n }\n if (typeof this.eventDate !== 'undefined' && this.eventDate !== null) {\n toReturn['eventDate'] = 'toApiJson' in this.eventDate ? this.eventDate.toApiJson() : this.eventDate;\n }\n if (typeof this.templateId !== 'undefined') {\n toReturn['templateId'] = this.templateId;\n }\n if (typeof this.probablyBot !== 'undefined') {\n toReturn['probablyBot'] = this.probablyBot;\n }\n if (typeof this.url !== 'undefined') {\n toReturn['url'] = this.url;\n }\n if (typeof this.normalizedUrl !== 'undefined') {\n toReturn['normalizedUrl'] = this.normalizedUrl;\n }\n return toReturn;\n }\n}\nclass RecipientCampaignStruct {\n static fromProto(proto) {\n let m = new RecipientCampaignStruct();\n m = Object.assign(m, proto);\n if (proto.version) {\n m.version = parseInt(proto.version, 10);\n }\n if (proto.status) {\n m.status = enumStringToValue(CampaignScheduleStatus, proto.status);\n }\n if (proto.schedule) {\n m.schedule = proto.schedule.map(ScheduledCampaignStepInterface.fromProto);\n }\n if (proto.scheduleStep) {\n m.scheduleStep = parseInt(proto.scheduleStep, 10);\n }\n if (proto.pausedDateTime) {\n m.pausedDateTime = new Date(proto.pausedDateTime);\n }\n return m;\n }\n constructor(kwargs) {\n if (!kwargs) {\n return;\n }\n Object.assign(this, kwargs);\n }\n toApiJson() {\n const toReturn = {};\n if (typeof this.version !== 'undefined') {\n toReturn['version'] = this.version;\n }\n if (typeof this.recipientCampaignId !== 'undefined') {\n toReturn['recipientCampaignId'] = this.recipientCampaignId;\n }\n if (typeof this.recipientId !== 'undefined') {\n toReturn['recipientId'] = this.recipientId;\n }\n if (typeof this.campaignId !== 'undefined') {\n toReturn['campaignId'] = this.campaignId;\n }\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 if (typeof this.fromId !== 'undefined') {\n toReturn['fromId'] = this.fromId;\n }\n if (typeof this.fromEmail !== 'undefined') {\n toReturn['fromEmail'] = this.fromEmail;\n }\n if (typeof this.fromName !== 'undefined') {\n toReturn['fromName'] = this.fromName;\n }\n if (typeof this.isActive !== 'undefined') {\n toReturn['isActive'] = this.isActive;\n }\n if (typeof this.isCompleted !== 'undefined') {\n toReturn['isCompleted'] = this.isCompleted;\n }\n if (typeof this.status !== 'undefined') {\n toReturn['status'] = this.status;\n }\n if (typeof this.schedule !== 'undefined' && this.schedule !== null) {\n toReturn['schedule'] = 'toApiJson' in this.schedule ? this.schedule.toApiJson() : this.schedule;\n }\n if (typeof this.scheduleStep !== 'undefined') {\n toReturn['scheduleStep'] = this.scheduleStep;\n }\n if (typeof this.errorMessage !== 'undefined') {\n toReturn['errorMessage'] = this.errorMessage;\n }\n if (typeof this.pausedDateTime !== 'undefined' && this.pausedDateTime !== null) {\n toReturn['pausedDateTime'] = 'toApiJson' in this.pausedDateTime ? this.pausedDateTime.toApiJson() : this.pausedDateTime;\n }\n return toReturn;\n }\n}\nclass RecipientClickStats {\n static fromProto(proto) {\n let m = new RecipientClickStats();\n m = Object.assign(m, proto);\n if (proto.recipient) {\n m.recipient = RecipientClickStatsRecipient.fromProto(proto.recipient);\n }\n if (proto.account) {\n m.account = RecipientClickStatsAccount.fromProto(proto.account);\n }\n if (proto.recentDate) {\n m.recentDate = new Date(proto.recentDate);\n }\n if (proto.count) {\n m.count = parseInt(proto.count, 10);\n }\n return m;\n }\n constructor(kwargs) {\n if (!kwargs) {\n return;\n }\n Object.assign(this, kwargs);\n }\n toApiJson() {\n const toReturn = {};\n if (typeof this.recipient !== 'undefined' && this.recipient !== null) {\n toReturn['recipient'] = 'toApiJson' in this.recipient ? this.recipient.toApiJson() : this.recipient;\n }\n if (typeof this.account !== 'undefined' && this.account !== null) {\n toReturn['account'] = 'toApiJson' in this.account ? this.account.toApiJson() : this.account;\n }\n if (typeof this.recentDate !== 'undefined' && this.recentDate !== null) {\n toReturn['recentDate'] = 'toApiJson' in this.recentDate ? this.recentDate.toApiJson() : this.recentDate;\n }\n if (typeof this.count !== 'undefined') {\n toReturn['count'] = this.count;\n }\n if (typeof this.partnerId !== 'undefined') {\n toReturn['partnerId'] = this.partnerId;\n }\n return toReturn;\n }\n}\nclass RecipientCriteria {\n static fromProto(proto) {\n let m = new RecipientCriteria();\n m = Object.assign(m, proto);\n if (proto.filterGroupV2) {\n m.filterGroupV2 = FilterGroup.fromProto(proto.filterGroupV2);\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.searchTerm !== 'undefined') {\n toReturn['searchTerm'] = this.searchTerm;\n }\n if (typeof this.filterGroupV2 !== 'undefined' && this.filterGroupV2 !== null) {\n toReturn['filterGroupV2'] = 'toApiJson' in this.filterGroupV2 ? this.filterGroupV2.toApiJson() : this.filterGroupV2;\n }\n return toReturn;\n }\n}\nclass RecipientV2 {\n static fromProto(proto) {\n let m = new RecipientV2();\n m = Object.assign(m, proto);\n if (proto.type) {\n m.type = enumStringToValue(RecipientType, proto.type);\n }\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.id !== 'undefined') {\n toReturn['id'] = this.id;\n }\n if (typeof this.type !== 'undefined') {\n toReturn['type'] = this.type;\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.phoneNumber !== 'undefined') {\n toReturn['phoneNumber'] = this.phoneNumber;\n }\n if (typeof this.emailAddress !== 'undefined') {\n toReturn['emailAddress'] = this.emailAddress;\n }\n return toReturn;\n }\n}\nclass RemoveTagFromCampaignRequest {\n static fromProto(proto) {\n let m = new RemoveTagFromCampaignRequest();\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.campaignId !== 'undefined') {\n toReturn['campaignId'] = this.campaignId;\n }\n if (typeof this.tagId !== 'undefined') {\n toReturn['tagId'] = this.tagId;\n }\n return toReturn;\n }\n}\nclass RenderRequest {\n static fromProto(proto) {\n let m = new RenderRequest();\n m = Object.assign(m, proto);\n if (proto.emailBuilderTemplate) {\n m.emailBuilderTemplate = EmailBuilderTemplate.fromProto(proto.emailBuilderTemplate);\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.emailBuilderTemplate !== 'undefined' && this.emailBuilderTemplate !== null) {\n toReturn['emailBuilderTemplate'] = 'toApiJson' in this.emailBuilderTemplate ? this.emailBuilderTemplate.toApiJson() : this.emailBuilderTemplate;\n }\n return toReturn;\n }\n}\nclass RenderResponse {\n static fromProto(proto) {\n let m = new RenderResponse();\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.content !== 'undefined') {\n toReturn['content'] = this.content;\n }\n return toReturn;\n }\n}\nclass ScheduledCampaignStepInterface {\n static fromProto(proto) {\n let m = new ScheduledCampaignStepInterface();\n m = Object.assign(m, proto);\n if (proto.version) {\n m.version = parseInt(proto.version, 10);\n }\n if (proto.campaignStepType) {\n m.campaignStepType = enumStringToValue(CampaignStepType, proto.campaignStepType);\n }\n if (proto.scheduledDate) {\n m.scheduledDate = new Date(proto.scheduledDate);\n }\n if (proto.dateSent) {\n m.dateSent = new Date(proto.dateSent);\n }\n if (proto.secondsAfterLastEmail) {\n m.secondsAfterLastEmail = parseInt(proto.secondsAfterLastEmail, 10);\n }\n if (proto.sendStatus) {\n m.sendStatus = enumStringToValue(CampaignStepSendStatusType, proto.sendStatus);\n }\n if (proto.events) {\n m.events = proto.events.map(CampaignStepEvent.fromProto);\n }\n return m;\n }\n constructor(kwargs) {\n if (!kwargs) {\n return;\n }\n Object.assign(this, kwargs);\n }\n toApiJson() {\n const toReturn = {};\n if (typeof this.version !== 'undefined') {\n toReturn['version'] = this.version;\n }\n if (typeof this.campaignStepId !== 'undefined') {\n toReturn['campaignStepId'] = this.campaignStepId;\n }\n if (typeof this.templateId !== 'undefined') {\n toReturn['templateId'] = this.templateId;\n }\n if (typeof this.recipientCampaignId !== 'undefined') {\n toReturn['recipientCampaignId'] = this.recipientCampaignId;\n }\n if (typeof this.stepId !== 'undefined') {\n toReturn['stepId'] = this.stepId;\n }\n if (typeof this.campaignStepType !== 'undefined') {\n toReturn['campaignStepType'] = this.campaignStepType;\n }\n if (typeof this.name !== 'undefined') {\n toReturn['name'] = this.name;\n }\n if (typeof this.scheduledDate !== 'undefined' && this.scheduledDate !== null) {\n toReturn['scheduledDate'] = 'toApiJson' in this.scheduledDate ? this.scheduledDate.toApiJson() : this.scheduledDate;\n }\n if (typeof this.dateSent !== 'undefined' && this.dateSent !== null) {\n toReturn['dateSent'] = 'toApiJson' in this.dateSent ? this.dateSent.toApiJson() : this.dateSent;\n }\n if (typeof this.secondsAfterLastEmail !== 'undefined') {\n toReturn['secondsAfterLastEmail'] = this.secondsAfterLastEmail;\n }\n if (typeof this.sendStatus !== 'undefined') {\n toReturn['sendStatus'] = this.sendStatus;\n }\n if (typeof this.completed !== 'undefined') {\n toReturn['completed'] = this.completed;\n }\n if (typeof this.events !== 'undefined' && this.events !== null) {\n toReturn['events'] = 'toApiJson' in this.events ? this.events.toApiJson() : this.events;\n }\n return toReturn;\n }\n}\nclass SendCampaignStepTestEmailRequest {\n static fromProto(proto) {\n let m = new SendCampaignStepTestEmailRequest();\n m = Object.assign(m, proto);\n if (proto.sender) {\n m.sender = Sender.fromProto(proto.sender);\n }\n if (proto.stepData) {\n m.stepData = Object.keys(proto.stepData).reduce((obj, k) => {\n obj[k] = proto.stepData[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.sender !== 'undefined' && this.sender !== null) {\n toReturn['sender'] = 'toApiJson' in this.sender ? this.sender.toApiJson() : this.sender;\n }\n if (typeof this.campaignId !== 'undefined') {\n toReturn['campaignId'] = this.campaignId;\n }\n if (typeof this.campaignStepId !== 'undefined') {\n toReturn['campaignStepId'] = this.campaignStepId;\n }\n if (typeof this.sendToUserId !== 'undefined') {\n toReturn['sendToUserId'] = this.sendToUserId;\n }\n if (typeof this.stepData !== 'undefined' && this.stepData !== null) {\n toReturn['stepData'] = 'toApiJson' in this.stepData ? this.stepData.toApiJson() : this.stepData;\n }\n return toReturn;\n }\n}\nclass SendCampaignStepTestEmailResponse {\n static fromProto(proto) {\n let m = new SendCampaignStepTestEmailResponse();\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.emailId !== 'undefined') {\n toReturn['emailId'] = this.emailId;\n }\n return toReturn;\n }\n}\nclass SendRecipientCampaignStepEmailRequest {\n static fromProto(proto) {\n let m = new SendRecipientCampaignStepEmailRequest();\n m = Object.assign(m, proto);\n if (proto.sender) {\n m.sender = Sender.fromProto(proto.sender);\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.ignoreCampaignState !== 'undefined') {\n toReturn['ignoreCampaignState'] = this.ignoreCampaignState;\n }\n if (typeof this.sender !== 'undefined' && this.sender !== null) {\n toReturn['sender'] = 'toApiJson' in this.sender ? this.sender.toApiJson() : this.sender;\n }\n if (typeof this.recipientCampaignId !== 'undefined') {\n toReturn['recipientCampaignId'] = this.recipientCampaignId;\n }\n if (typeof this.recipientCampaignStepId !== 'undefined') {\n toReturn['recipientCampaignStepId'] = this.recipientCampaignStepId;\n }\n return toReturn;\n }\n}\nclass Sender {\n static fromProto(proto) {\n let m = new Sender();\n m = Object.assign(m, proto);\n if (proto.type) {\n m.type = enumStringToValue(SenderType, proto.type);\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.type !== 'undefined') {\n toReturn['type'] = this.type;\n }\n if (typeof this.id !== 'undefined') {\n toReturn['id'] = this.id;\n }\n return toReturn;\n }\n}\nclass SortOptions {\n static fromProto(proto) {\n let m = new SortOptions();\n m = Object.assign(m, proto);\n if (proto.field) {\n m.field = enumStringToValue(SortField, proto.field);\n }\n if (proto.direction) {\n m.direction = enumStringToValue(SortDirection, proto.direction);\n }\n return m;\n }\n constructor(kwargs) {\n if (!kwargs) {\n return;\n }\n Object.assign(this, kwargs);\n }\n toApiJson() {\n const toReturn = {};\n if (typeof this.field !== 'undefined') {\n toReturn['field'] = this.field;\n }\n if (typeof this.direction !== 'undefined') {\n toReturn['direction'] = this.direction;\n }\n return toReturn;\n }\n}\nclass SendCampaignStepTestEmailRequestStepDataEntry {\n static fromProto(proto) {\n let m = new SendCampaignStepTestEmailRequestStepDataEntry();\n m = Object.assign(m, proto);\n return m;\n }\n constructor(kwargs) {\n if (!kwargs) {\n return;\n }\n Object.assign(this, kwargs);\n }\n toApiJson() {\n const toReturn = {};\n if (typeof this.key !== 'undefined') {\n toReturn['key'] = this.key;\n }\n if (typeof this.value !== 'undefined') {\n toReturn['value'] = this.value;\n }\n return toReturn;\n }\n}\nclass GetCampaignStepContentRequestStepDataEntry {\n static fromProto(proto) {\n let m = new GetCampaignStepContentRequestStepDataEntry();\n m = Object.assign(m, proto);\n return m;\n }\n constructor(kwargs) {\n if (!kwargs) {\n return;\n }\n Object.assign(this, kwargs);\n }\n toApiJson() {\n const toReturn = {};\n if (typeof this.key !== 'undefined') {\n toReturn['key'] = this.key;\n }\n if (typeof this.value !== 'undefined') {\n toReturn['value'] = this.value;\n }\n return toReturn;\n }\n}\nclass StepDataResponse {\n static fromProto(proto) {\n let m = new StepDataResponse();\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.templateId !== 'undefined') {\n toReturn['templateId'] = this.templateId;\n }\n if (typeof this.campaignStepId !== 'undefined') {\n toReturn['campaignStepId'] = this.campaignStepId;\n }\n return toReturn;\n }\n}\nclass UnpauseCampaignRequest {\n static fromProto(proto) {\n let m = new UnpauseCampaignRequest();\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.campaignId !== 'undefined') {\n toReturn['campaignId'] = this.campaignId;\n }\n return toReturn;\n }\n}\nclass UpdateCampaignNameRequest {\n static fromProto(proto) {\n let m = new UpdateCampaignNameRequest();\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.campaignId !== 'undefined') {\n toReturn['campaignId'] = this.campaignId;\n }\n if (typeof this.locale !== 'undefined') {\n toReturn['locale'] = this.locale;\n }\n return toReturn;\n }\n}\nclass UpdateConfigRequest {\n static fromProto(proto) {\n let m = new UpdateConfigRequest();\n m = Object.assign(m, proto);\n if (proto.daysEmailsCanBeSent) {\n m.daysEmailsCanBeSent = proto.daysEmailsCanBeSent.map(v => enumStringToValue(DaysOfTheWeek, v));\n }\n if (proto.recipientsAddedRateLimit) {\n m.recipientsAddedRateLimit = parseInt(proto.recipientsAddedRateLimit, 10);\n }\n if (proto.sender) {\n m.sender = Sender.fromProto(proto.sender);\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.campaignId !== 'undefined') {\n toReturn['campaignId'] = this.campaignId;\n }\n if (typeof this.timeZoneForEmailsSent !== 'undefined') {\n toReturn['timeZoneForEmailsSent'] = this.timeZoneForEmailsSent;\n }\n if (typeof this.daysEmailsCanBeSent !== 'undefined') {\n toReturn['daysEmailsCanBeSent'] = this.daysEmailsCanBeSent;\n }\n if (typeof this.recipientsAddedRateLimitEnabled !== 'undefined') {\n toReturn['recipientsAddedRateLimitEnabled'] = this.recipientsAddedRateLimitEnabled;\n }\n if (typeof this.recipientsAddedRateLimit !== 'undefined') {\n toReturn['recipientsAddedRateLimit'] = this.recipientsAddedRateLimit;\n }\n if (typeof this.sender !== 'undefined' && this.sender !== null) {\n toReturn['sender'] = 'toApiJson' in this.sender ? this.sender.toApiJson() : this.sender;\n }\n if (typeof this.emailSchedulingDay !== 'undefined') {\n toReturn['emailSchedulingDay'] = this.emailSchedulingDay;\n }\n return toReturn;\n }\n}\nclass UpdateConfigResponse {\n static fromProto(proto) {\n let m = new UpdateConfigResponse();\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.timezone !== 'undefined') {\n toReturn['timezone'] = this.timezone;\n }\n if (typeof this.days !== 'undefined') {\n toReturn['days'] = this.days;\n }\n return toReturn;\n }\n}\nclass UpdateEmailTemplateRequest {\n static fromProto(proto) {\n let m = new UpdateEmailTemplateRequest();\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.templateId !== 'undefined') {\n toReturn['templateId'] = this.templateId;\n }\n if (typeof this.name !== 'undefined') {\n toReturn['name'] = this.name;\n }\n if (typeof this.subject !== 'undefined') {\n toReturn['subject'] = this.subject;\n }\n if (typeof this.htmlBody !== 'undefined') {\n toReturn['htmlBody'] = this.htmlBody;\n }\n if (typeof this.fullHtml !== 'undefined') {\n toReturn['fullHtml'] = this.fullHtml;\n }\n if (typeof this.updatedByUserEmail !== 'undefined') {\n toReturn['updatedByUserEmail'] = this.updatedByUserEmail;\n }\n return toReturn;\n }\n}\nclass UpdateQuotaLimitRequest {\n static fromProto(proto) {\n let m = new UpdateQuotaLimitRequest();\n m = Object.assign(m, proto);\n if (proto.sender) {\n m.sender = Sender.fromProto(proto.sender);\n }\n if (proto.type) {\n m.type = enumStringToValue(CampaignQuotaCategory, proto.type);\n }\n if (proto.limit) {\n m.limit = parseInt(proto.limit, 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.sender !== 'undefined' && this.sender !== null) {\n toReturn['sender'] = 'toApiJson' in this.sender ? this.sender.toApiJson() : this.sender;\n }\n if (typeof this.type !== 'undefined') {\n toReturn['type'] = this.type;\n }\n if (typeof this.limit !== 'undefined') {\n toReturn['limit'] = this.limit;\n }\n return toReturn;\n }\n}\nclass UpdateRecipientRequest {\n static fromProto(proto) {\n let m = new UpdateRecipientRequest();\n m = Object.assign(m, proto);\n if (proto.sender) {\n m.sender = Sender.fromProto(proto.sender);\n }\n if (proto.recipient) {\n m.recipient = RecipientV2.fromProto(proto.recipient);\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.recipientId !== 'undefined') {\n toReturn['recipientId'] = this.recipientId;\n }\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.email !== 'undefined') {\n toReturn['email'] = this.email;\n }\n if (typeof this.sender !== 'undefined' && this.sender !== null) {\n toReturn['sender'] = 'toApiJson' in this.sender ? this.sender.toApiJson() : this.sender;\n }\n if (typeof this.recipient !== 'undefined' && this.recipient !== null) {\n toReturn['recipient'] = 'toApiJson' in this.recipient ? this.recipient.toApiJson() : this.recipient;\n }\n if (typeof this.phoneNumber !== 'undefined') {\n toReturn['phoneNumber'] = this.phoneNumber;\n }\n return toReturn;\n }\n}\nclass UpdateRequest {\n static fromProto(proto) {\n let m = new UpdateRequest();\n m = Object.assign(m, proto);\n if (proto.emailBuilderTemplate) {\n m.emailBuilderTemplate = EmailBuilderTemplate.fromProto(proto.emailBuilderTemplate);\n }\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.emailBuilderTemplate !== 'undefined' && this.emailBuilderTemplate !== null) {\n toReturn['emailBuilderTemplate'] = 'toApiJson' in this.emailBuilderTemplate ? this.emailBuilderTemplate.toApiJson() : this.emailBuilderTemplate;\n }\n if (typeof this.fieldMask !== 'undefined' && this.fieldMask !== null) {\n toReturn['fieldMask'] = 'toApiJson' in this.fieldMask ? this.fieldMask.toApiJson() : this.fieldMask;\n }\n return toReturn;\n }\n}\nclass UpdateStepOnCampaignRequest {\n static fromProto(proto) {\n let m = new UpdateStepOnCampaignRequest();\n m = Object.assign(m, proto);\n if (proto.sender) {\n m.sender = Sender.fromProto(proto.sender);\n }\n if (proto.secondsAfterLastStep) {\n m.secondsAfterLastStep = parseInt(proto.secondsAfterLastStep, 10);\n }\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.campaignId !== 'undefined') {\n toReturn['campaignId'] = this.campaignId;\n }\n if (typeof this.campaignStepId !== 'undefined') {\n toReturn['campaignStepId'] = this.campaignStepId;\n }\n if (typeof this.sender !== 'undefined' && this.sender !== null) {\n toReturn['sender'] = 'toApiJson' in this.sender ? this.sender.toApiJson() : this.sender;\n }\n if (typeof this.contentId !== 'undefined') {\n toReturn['contentId'] = this.contentId;\n }\n if (typeof this.name !== 'undefined') {\n toReturn['name'] = this.name;\n }\n if (typeof this.secondsAfterLastStep !== 'undefined') {\n toReturn['secondsAfterLastStep'] = this.secondsAfterLastStep;\n }\n if (typeof this.fieldMask !== 'undefined' && this.fieldMask !== null) {\n toReturn['fieldMask'] = 'toApiJson' in this.fieldMask ? this.fieldMask.toApiJson() : this.fieldMask;\n }\n return toReturn;\n }\n}\nclass UpsertCampaignRequest {\n static fromProto(proto) {\n let m = new UpsertCampaignRequest();\n m = Object.assign(m, proto);\n if (proto.focus) {\n m.focus = enumStringToValue(Focuses, proto.focus);\n }\n if (proto.status) {\n m.status = enumStringToValue(Statuses, proto.status);\n }\n if (proto.campaignSchedule) {\n m.campaignSchedule = proto.campaignSchedule.map(CampaignStepInterface.fromProto);\n }\n if (proto.campaignScheduleVersion) {\n m.campaignScheduleVersion = parseInt(proto.campaignScheduleVersion, 10);\n }\n if (proto.version) {\n m.version = parseInt(proto.version, 10);\n }\n if (proto.published) {\n m.published = new Date(proto.published);\n }\n if (proto.fieldMask) {\n m.fieldMask = FieldMask.fromProto(proto.fieldMask);\n }\n if (proto.sender) {\n m.sender = Sender.fromProto(proto.sender);\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.focus !== 'undefined') {\n toReturn['focus'] = this.focus;\n }\n if (typeof this.name !== 'undefined') {\n toReturn['name'] = this.name;\n }\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.parentCampaignId !== 'undefined') {\n toReturn['parentCampaignId'] = this.parentCampaignId;\n }\n if (typeof this.rootCampaignId !== 'undefined') {\n toReturn['rootCampaignId'] = this.rootCampaignId;\n }\n if (typeof this.createdUser !== 'undefined') {\n toReturn['createdUser'] = this.createdUser;\n }\n if (typeof this.updatedUser !== 'undefined') {\n toReturn['updatedUser'] = this.updatedUser;\n }\n if (typeof this.publishedUser !== 'undefined') {\n toReturn['publishedUser'] = this.publishedUser;\n }\n if (typeof this.locale !== 'undefined') {\n toReturn['locale'] = this.locale;\n }\n if (typeof this.status !== 'undefined') {\n toReturn['status'] = this.status;\n }\n if (typeof this.campaignSchedule !== 'undefined' && this.campaignSchedule !== null) {\n toReturn['campaignSchedule'] = 'toApiJson' in this.campaignSchedule ? this.campaignSchedule.toApiJson() : this.campaignSchedule;\n }\n if (typeof this.isEnabled !== 'undefined') {\n toReturn['isEnabled'] = this.isEnabled;\n }\n if (typeof this.hiddenForPartners !== 'undefined') {\n toReturn['hiddenForPartners'] = this.hiddenForPartners;\n }\n if (typeof this.campaignScheduleVersion !== 'undefined') {\n toReturn['campaignScheduleVersion'] = this.campaignScheduleVersion;\n }\n if (typeof this.version !== 'undefined') {\n toReturn['version'] = this.version;\n }\n if (typeof this.published !== 'undefined' && this.published !== null) {\n toReturn['published'] = 'toApiJson' in this.published ? this.published.toApiJson() : this.published;\n }\n if (typeof this.emailCategoryId !== 'undefined') {\n toReturn['emailCategoryId'] = this.emailCategoryId;\n }\n if (typeof this.isPremade !== 'undefined') {\n toReturn['isPremade'] = this.isPremade;\n }\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.sender !== 'undefined' && this.sender !== null) {\n toReturn['sender'] = 'toApiJson' in this.sender ? this.sender.toApiJson() : this.sender;\n }\n return toReturn;\n }\n}\nclass UpsertConfigRequest {\n static fromProto(proto) {\n let m = new UpsertConfigRequest();\n m = Object.assign(m, proto);\n if (proto.daysEmailsCanBeSent) {\n m.daysEmailsCanBeSent = proto.daysEmailsCanBeSent.map(v => enumStringToValue(DaysOfTheWeek, v));\n }\n if (proto.recipientsAddedRateLimit) {\n m.recipientsAddedRateLimit = parseInt(proto.recipientsAddedRateLimit, 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.campaignId !== 'undefined') {\n toReturn['campaignId'] = this.campaignId;\n }\n if (typeof this.partnerId !== 'undefined') {\n toReturn['partnerId'] = this.partnerId;\n }\n if (typeof this.timeZoneForEmailsSent !== 'undefined') {\n toReturn['timeZoneForEmailsSent'] = this.timeZoneForEmailsSent;\n }\n if (typeof this.daysEmailsCanBeSent !== 'undefined') {\n toReturn['daysEmailsCanBeSent'] = this.daysEmailsCanBeSent;\n }\n if (typeof this.recipientsAddedRateLimitEnabled !== 'undefined') {\n toReturn['recipientsAddedRateLimitEnabled'] = this.recipientsAddedRateLimitEnabled;\n }\n if (typeof this.recipientsAddedRateLimit !== 'undefined') {\n toReturn['recipientsAddedRateLimit'] = this.recipientsAddedRateLimit;\n }\n return toReturn;\n }\n}\nclass UpsertRecipientCampaignActivatedEventRequest {\n static fromProto(proto) {\n let m = new UpsertRecipientCampaignActivatedEventRequest();\n m = Object.assign(m, proto);\n if (proto.version) {\n m.version = parseInt(proto.version, 10);\n }\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.version !== 'undefined') {\n toReturn['version'] = this.version;\n }\n if (typeof this.recipientCampaignId !== 'undefined') {\n toReturn['recipientCampaignId'] = this.recipientCampaignId;\n }\n if (typeof this.campaignId !== 'undefined') {\n toReturn['campaignId'] = this.campaignId;\n }\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.fromId !== 'undefined') {\n toReturn['fromId'] = this.fromId;\n }\n if (typeof this.fieldMask !== 'undefined' && this.fieldMask !== null) {\n toReturn['fieldMask'] = 'toApiJson' in this.fieldMask ? this.fieldMask.toApiJson() : this.fieldMask;\n }\n return toReturn;\n }\n}\nclass UpsertRecipientCampaignRequest {\n static fromProto(proto) {\n let m = new UpsertRecipientCampaignRequest();\n m = Object.assign(m, proto);\n if (proto.version) {\n m.version = parseInt(proto.version, 10);\n }\n if (proto.status) {\n m.status = enumStringToValue(CampaignScheduleStatus, proto.status);\n }\n if (proto.schedule) {\n m.schedule = proto.schedule.map(ScheduledCampaignStepInterface.fromProto);\n }\n if (proto.scheduleStep) {\n m.scheduleStep = parseInt(proto.scheduleStep, 10);\n }\n if (proto.pausedDateTime) {\n m.pausedDateTime = new Date(proto.pausedDateTime);\n }\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.version !== 'undefined') {\n toReturn['version'] = this.version;\n }\n if (typeof this.recipientCampaignId !== 'undefined') {\n toReturn['recipientCampaignId'] = this.recipientCampaignId;\n }\n if (typeof this.recipientId !== 'undefined') {\n toReturn['recipientId'] = this.recipientId;\n }\n if (typeof this.campaignId !== 'undefined') {\n toReturn['campaignId'] = this.campaignId;\n }\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 if (typeof this.fromId !== 'undefined') {\n toReturn['fromId'] = this.fromId;\n }\n if (typeof this.fromEmail !== 'undefined') {\n toReturn['fromEmail'] = this.fromEmail;\n }\n if (typeof this.fromName !== 'undefined') {\n toReturn['fromName'] = this.fromName;\n }\n if (typeof this.isActive !== 'undefined') {\n toReturn['isActive'] = this.isActive;\n }\n if (typeof this.isCompleted !== 'undefined') {\n toReturn['isCompleted'] = this.isCompleted;\n }\n if (typeof this.status !== 'undefined') {\n toReturn['status'] = this.status;\n }\n if (typeof this.schedule !== 'undefined' && this.schedule !== null) {\n toReturn['schedule'] = 'toApiJson' in this.schedule ? this.schedule.toApiJson() : this.schedule;\n }\n if (typeof this.scheduleStep !== 'undefined') {\n toReturn['scheduleStep'] = this.scheduleStep;\n }\n if (typeof this.errorMessage !== 'undefined') {\n toReturn['errorMessage'] = this.errorMessage;\n }\n if (typeof this.pausedDateTime !== 'undefined' && this.pausedDateTime !== null) {\n toReturn['pausedDateTime'] = 'toApiJson' in this.pausedDateTime ? this.pausedDateTime.toApiJson() : this.pausedDateTime;\n }\n if (typeof this.fieldMask !== 'undefined' && this.fieldMask !== null) {\n toReturn['fieldMask'] = 'toApiJson' in this.fieldMask ? this.fieldMask.toApiJson() : this.fieldMask;\n }\n return toReturn;\n }\n}\nclass UpsertRecipientCampaignStepEventRequest {\n static fromProto(proto) {\n let m = new UpsertRecipientCampaignStepEventRequest();\n m = Object.assign(m, proto);\n if (proto.stepEvent) {\n m.stepEvent = RecipientCampaignStepEventStruct.fromProto(proto.stepEvent);\n }\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.stepEvent !== 'undefined' && this.stepEvent !== null) {\n toReturn['stepEvent'] = 'toApiJson' in this.stepEvent ? this.stepEvent.toApiJson() : this.stepEvent;\n }\n if (typeof this.fieldMask !== 'undefined' && this.fieldMask !== null) {\n toReturn['fieldMask'] = 'toApiJson' in this.fieldMask ? this.fieldMask.toApiJson() : this.fieldMask;\n }\n return toReturn;\n }\n}\n\n// *********************************\n// Code generated by sdkgen\n// DO NOT EDIT!.\n//\n// Objects Index.\n// *********************************\n\nconst environment = (window ? window['environment'] : 'prod') ?? 'prod';\nconst hostMap = {\n 'local': 'campaigns-api.vendasta-local.com',\n 'test': '',\n 'demo': 'campaigns-demo.apigateway.co',\n 'prod': 'campaigns-prod.apigateway.co',\n 'production': 'campaigns-prod.apigateway.co'\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(t) {\n return new (t || HostService)();\n };\n HostService.ɵprov = /* @__PURE__ */i0.ɵɵdefineInjectable({\n token: HostService,\n factory: HostService.ɵfac,\n providedIn: 'root'\n });\n return HostService;\n})();\n(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && void 0;\n})();\n\n// *********************************\n// Code generated by sdkgen\n// DO NOT EDIT!.\n//\n// API Service.\n// *********************************\nlet ActivationsApiService = /*#__PURE__*/(() => {\n class ActivationsApiService {\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 activateProductForSender(r) {\n const request = r.toApiJson ? r : new ActivateProductForSenderRequest(r);\n return this.http.post(this._host + \"/campaigns.v1.Activations/ActivateProductForSender\", request.toApiJson(), {\n ...this.apiOptions(),\n observe: 'response'\n });\n }\n isProductActive(r) {\n const request = r.toApiJson ? r : new IsProductActiveForSenderRequest(r);\n return this.http.post(this._host + \"/campaigns.v1.Activations/IsProductActive\", request.toApiJson(), this.apiOptions()).pipe(map(resp => IsProductActiveForSenderResponse.fromProto(resp)));\n }\n deactivateProduct(r) {\n const request = r.toApiJson ? r : new DeactivateProductForSenderRequest(r);\n return this.http.post(this._host + \"/campaigns.v1.Activations/DeactivateProduct\", request.toApiJson(), {\n ...this.apiOptions(),\n observe: 'response'\n });\n }\n isFeatureActive(r) {\n const request = r.toApiJson ? r : new IsFeatureActiveForSenderRequest(r);\n return this.http.post(this._host + \"/campaigns.v1.Activations/IsFeatureActive\", request.toApiJson(), this.apiOptions()).pipe(map(resp => IsFeatureActiveForSenderResponse.fromProto(resp)));\n }\n }\n ActivationsApiService.ɵfac = function ActivationsApiService_Factory(t) {\n return new (t || ActivationsApiService)(i0.ɵɵinject(i1.HttpClient), i0.ɵɵinject(HostService));\n };\n ActivationsApiService.ɵprov = /* @__PURE__ */i0.ɵɵdefineInjectable({\n token: ActivationsApiService,\n factory: ActivationsApiService.ɵfac,\n providedIn: 'root'\n });\n return ActivationsApiService;\n})();\n(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && void 0;\n})();\n\n// *********************************\n// Code generated by sdkgen\n// DO NOT EDIT!.\n//\n// API Service.\n// *********************************\nlet CampaignConfigApiService = /*#__PURE__*/(() => {\n class CampaignConfigApiService {\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 upsertConfig(r) {\n const request = r.toApiJson ? r : new UpsertConfigRequest(r);\n return this.http.post(this._host + \"/campaigns.v1.CampaignConfig/UpsertConfig\", request.toApiJson(), {\n ...this.apiOptions(),\n observe: 'response'\n });\n }\n getConfig(r) {\n const request = r.toApiJson ? r : new GetConfigRequest(r);\n return this.http.post(this._host + \"/campaigns.v1.CampaignConfig/GetConfig\", request.toApiJson(), this.apiOptions()).pipe(map(resp => GetConfigResponse.fromProto(resp)));\n }\n updateConfig(r) {\n const request = r.toApiJson ? r : new UpdateConfigRequest(r);\n return this.http.post(this._host + \"/campaigns.v1.CampaignConfig/UpdateConfig\", request.toApiJson(), this.apiOptions()).pipe(map(resp => UpdateConfigResponse.fromProto(resp)));\n }\n }\n CampaignConfigApiService.ɵfac = function CampaignConfigApiService_Factory(t) {\n return new (t || CampaignConfigApiService)(i0.ɵɵinject(i1.HttpClient), i0.ɵɵinject(HostService));\n };\n CampaignConfigApiService.ɵprov = /* @__PURE__ */i0.ɵɵdefineInjectable({\n token: CampaignConfigApiService,\n factory: CampaignConfigApiService.ɵfac,\n providedIn: 'root'\n });\n return CampaignConfigApiService;\n})();\n(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && void 0;\n})();\n\n// *********************************\n// Code generated by sdkgen\n// DO NOT EDIT!.\n//\n// API Service.\n// *********************************\nlet CampaignQuotaApiService = /*#__PURE__*/(() => {\n class CampaignQuotaApiService {\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 getCampaignQuota(r) {\n const request = r.toApiJson ? r : new GetCampaignQuotaRequest(r);\n return this.http.post(this._host + \"/campaigns.v1.CampaignQuota/GetCampaignQuota\", request.toApiJson(), this.apiOptions()).pipe(map(resp => GetCampaignQuotaResponse.fromProto(resp)));\n }\n createQuota(r) {\n const request = r.toApiJson ? r : new CreateQuotaRequest(r);\n return this.http.post(this._host + \"/campaigns.v1.CampaignQuota/CreateQuota\", request.toApiJson(), {\n ...this.apiOptions(),\n observe: 'response'\n });\n }\n updateQuotaLimit(r) {\n const request = r.toApiJson ? r : new UpdateQuotaLimitRequest(r);\n return this.http.post(this._host + \"/campaigns.v1.CampaignQuota/UpdateQuotaLimit\", request.toApiJson(), {\n ...this.apiOptions(),\n observe: 'response'\n });\n }\n }\n CampaignQuotaApiService.ɵfac = function CampaignQuotaApiService_Factory(t) {\n return new (t || CampaignQuotaApiService)(i0.ɵɵinject(i1.HttpClient), i0.ɵɵinject(HostService));\n };\n CampaignQuotaApiService.ɵprov = /* @__PURE__ */i0.ɵɵdefineInjectable({\n token: CampaignQuotaApiService,\n factory: CampaignQuotaApiService.ɵfac,\n providedIn: 'root'\n });\n return CampaignQuotaApiService;\n})();\n(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && void 0;\n})();\n\n// *********************************\n// Code generated by sdkgen\n// DO NOT EDIT!.\n//\n// API Service.\n// *********************************\nlet CampaignStatsApiService = /*#__PURE__*/(() => {\n class CampaignStatsApiService {\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 getAggregatedCampaignStats(r) {\n const request = r.toApiJson ? r : new GetAggregatedCampaignStatsRequest(r);\n return this.http.post(this._host + \"/campaigns.v1.CampaignStats/GetAggregatedCampaignStats\", request.toApiJson(), this.apiOptions()).pipe(map(resp => GetAggregatedCampaignStatsResponse.fromProto(resp)));\n }\n listCampaignStats(r) {\n const request = r.toApiJson ? r : new ListCampaignStatsRequest(r);\n return this.http.post(this._host + \"/campaigns.v1.CampaignStats/ListCampaignStats\", request.toApiJson(), this.apiOptions()).pipe(map(resp => ListCampaignStatsResponse.fromProto(resp)));\n }\n getCampaignDetailsStats(r) {\n const request = r.toApiJson ? r : new GetCampaignDetailsStatsRequest(r);\n return this.http.post(this._host + \"/campaigns.v1.CampaignStats/GetCampaignDetailsStats\", request.toApiJson(), this.apiOptions()).pipe(map(resp => GetCampaignDetailsStatsResponse.fromProto(resp)));\n }\n getLinkStats(r) {\n const request = r.toApiJson ? r : new GetLinkStatsRequest(r);\n return this.http.post(this._host + \"/campaigns.v1.CampaignStats/GetLinkStats\", request.toApiJson(), this.apiOptions()).pipe(map(resp => GetLinkStatsResponse.fromProto(resp)));\n }\n getRecipientLinkClickStats(r) {\n const request = r.toApiJson ? r : new GetRecipientLinkClickStatsRequest(r);\n return this.http.post(this._host + \"/campaigns.v1.CampaignStats/GetRecipientLinkClickStats\", request.toApiJson(), this.apiOptions()).pipe(map(resp => GetRecipientLinkClickStatsResponse.fromProto(resp)));\n }\n getCampaignStepStats(r) {\n const request = r.toApiJson ? r : new GetCampaignStepStatsRequest(r);\n return this.http.post(this._host + \"/campaigns.v1.CampaignStats/GetCampaignStepStats\", request.toApiJson(), this.apiOptions()).pipe(map(resp => GetCampaignStepStatsResponse.fromProto(resp)));\n }\n exportRecipientLinkClickStats(r) {\n const request = r.toApiJson ? r : new ExportRecipientLinkClickStatsRequest(r);\n return this.http.post(this._host + \"/campaigns.v1.CampaignStats/ExportRecipientLinkClickStats\", request.toApiJson(), {\n ...this.apiOptions(),\n observe: 'response'\n });\n }\n listCampaignStatsForSender(r) {\n const request = r.toApiJson ? r : new ListCampaignStatsForSenderRequest(r);\n return this.http.post(this._host + \"/campaigns.v1.CampaignStats/ListCampaignStatsForSender\", request.toApiJson(), this.apiOptions()).pipe(map(resp => ListCampaignStatsForSenderResponse.fromProto(resp)));\n }\n }\n CampaignStatsApiService.ɵfac = function CampaignStatsApiService_Factory(t) {\n return new (t || CampaignStatsApiService)(i0.ɵɵinject(i1.HttpClient), i0.ɵɵinject(HostService));\n };\n CampaignStatsApiService.ɵprov = /* @__PURE__ */i0.ɵɵdefineInjectable({\n token: CampaignStatsApiService,\n factory: CampaignStatsApiService.ɵfac,\n providedIn: 'root'\n });\n return CampaignStatsApiService;\n})();\n(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && void 0;\n})();\n\n// *********************************\n// Code generated by sdkgen\n// DO NOT EDIT!.\n//\n// API Service.\n// *********************************\nlet CampaignTaggingApiService = /*#__PURE__*/(() => {\n class CampaignTaggingApiService {\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 create(r) {\n const request = r.toApiJson ? r : new CreateTagRequest(r);\n return this.http.post(this._host + \"/campaigns.v1.CampaignTagging/Create\", request.toApiJson(), this.apiOptions()).pipe(map(resp => CreateTagResponse.fromProto(resp)));\n }\n listTagsForSender(r) {\n const request = r.toApiJson ? r : new ListTagsForSenderRequest(r);\n return this.http.post(this._host + \"/campaigns.v1.CampaignTagging/ListTagsForSender\", request.toApiJson(), this.apiOptions()).pipe(map(resp => ListTagsForSenderResponse.fromProto(resp)));\n }\n addTagToCampaign(r) {\n const request = r.toApiJson ? r : new AddTagToCampaignRequest(r);\n return this.http.post(this._host + \"/campaigns.v1.CampaignTagging/AddTagToCampaign\", request.toApiJson(), {\n ...this.apiOptions(),\n observe: 'response'\n });\n }\n removeTagFromCampaign(r) {\n const request = r.toApiJson ? r : new RemoveTagFromCampaignRequest(r);\n return this.http.post(this._host + \"/campaigns.v1.CampaignTagging/RemoveTagFromCampaign\", request.toApiJson(), {\n ...this.apiOptions(),\n observe: 'response'\n });\n }\n listTagsForCampaign(r) {\n const request = r.toApiJson ? r : new ListTagsForCampaignRequest(r);\n return this.http.post(this._host + \"/campaigns.v1.CampaignTagging/ListTagsForCampaign\", request.toApiJson(), this.apiOptions()).pipe(map(resp => ListTagsForCampaignResponse.fromProto(resp)));\n }\n delete(r) {\n const request = r.toApiJson ? r : new DeleteTagRequest(r);\n return this.http.post(this._host + \"/campaigns.v1.CampaignTagging/Delete\", request.toApiJson(), {\n ...this.apiOptions(),\n observe: 'response'\n });\n }\n }\n CampaignTaggingApiService.ɵfac = function CampaignTaggingApiService_Factory(t) {\n return new (t || CampaignTaggingApiService)(i0.ɵɵinject(i1.HttpClient), i0.ɵɵinject(HostService));\n };\n CampaignTaggingApiService.ɵprov = /* @__PURE__ */i0.ɵɵdefineInjectable({\n token: CampaignTaggingApiService,\n factory: CampaignTaggingApiService.ɵfac,\n providedIn: 'root'\n });\n return CampaignTaggingApiService;\n})();\n(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && void 0;\n})();\n\n// *********************************\n// Code generated by sdkgen\n// DO NOT EDIT!.\n//\n// API Service.\n// *********************************\nlet CampaignsApiService = /*#__PURE__*/(() => {\n class CampaignsApiService {\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 deleteCampaign(r) {\n const request = r.toApiJson ? r : new DeleteCampaignRequest(r);\n return this.http.post(this._host + \"/campaigns.v1.Campaigns/DeleteCampaign\", request.toApiJson(), {\n ...this.apiOptions(),\n observe: 'response'\n });\n }\n upsertCampaign(r) {\n const request = r.toApiJson ? r : new UpsertCampaignRequest(r);\n return this.http.post(this._host + \"/campaigns.v1.Campaigns/UpsertCampaign\", request.toApiJson(), {\n ...this.apiOptions(),\n observe: 'response'\n });\n }\n updateCampaignName(r) {\n const request = r.toApiJson ? r : new UpdateCampaignNameRequest(r);\n return this.http.post(this._host + \"/campaigns.v1.Campaigns/UpdateCampaignName\", request.toApiJson(), {\n ...this.apiOptions(),\n observe: 'response'\n });\n }\n listCampaigns(r) {\n const request = r.toApiJson ? r : new ListCampaignsRequest(r);\n return this.http.post(this._host + \"/campaigns.v1.Campaigns/ListCampaigns\", request.toApiJson(), this.apiOptions()).pipe(map(resp => ListCampaignsResponse.fromProto(resp)));\n }\n listRecommendedCampaigns(r) {\n const request = r.toApiJson ? r : new ListRecommendedCampaignsRequest(r);\n return this.http.post(this._host + \"/campaigns.v1.Campaigns/ListRecommendedCampaigns\", request.toApiJson(), this.apiOptions()).pipe(map(resp => ListCampaignsResponse.fromProto(resp)));\n }\n getCampaign(r) {\n const request = r.toApiJson ? r : new GetCampaignRequest(r);\n return this.http.post(this._host + \"/campaigns.v1.Campaigns/GetCampaign\", request.toApiJson(), this.apiOptions()).pipe(map(resp => GetCampaignResponse.fromProto(resp)));\n }\n getMultiCampaigns(r) {\n const request = r.toApiJson ? r : new GetMultiCampaignsRequest(r);\n return this.http.post(this._host + \"/campaigns.v1.Campaigns/GetMultiCampaigns\", request.toApiJson(), this.apiOptions()).pipe(map(resp => GetMultiCampaignsResponse.fromProto(resp)));\n }\n duplicateCampaignStepAsync(r) {\n const request = r.toApiJson ? r : new DuplicateCampaignStepRequest(r);\n return this.http.post(this._host + \"/campaigns.v1.Campaigns/DuplicateCampaignStepAsync\", request.toApiJson(), this.apiOptions()).pipe(map(resp => DuplicateCampaignStepResponse.fromProto(resp)));\n }\n checkDuplicateCampaignStepStatus(r) {\n const request = r.toApiJson ? r : new CheckDuplicateCampaignStepStatusRequest(r);\n return this.http.post(this._host + \"/campaigns.v1.Campaigns/CheckDuplicateCampaignStepStatus\", request.toApiJson(), this.apiOptions()).pipe(map(resp => CheckDuplicateCampaignStepStatusResponse.fromProto(resp)));\n }\n duplicateCampaignAsync(r) {\n const request = r.toApiJson ? r : new DuplicateCampaignRequest(r);\n return this.http.post(this._host + \"/campaigns.v1.Campaigns/DuplicateCampaignAsync\", request.toApiJson(), this.apiOptions()).pipe(map(resp => DuplicateCampaignResponse.fromProto(resp)));\n }\n duplicateCampaignAsyncV2(r) {\n const request = r.toApiJson ? r : new DuplicateCampaignRequestV2(r);\n return this.http.post(this._host + \"/campaigns.v1.Campaigns/DuplicateCampaignAsyncV2\", request.toApiJson(), this.apiOptions()).pipe(map(resp => DuplicateCampaignResponse.fromProto(resp)));\n }\n checkDuplicateCampaignStatus(r) {\n const request = r.toApiJson ? r : new CheckDuplicateCampaignStatusRequest(r);\n return this.http.post(this._host + \"/campaigns.v1.Campaigns/CheckDuplicateCampaignStatus\", request.toApiJson(), this.apiOptions()).pipe(map(resp => CheckDuplicateCampaignStatusResponse.fromProto(resp)));\n }\n duplicateAndRecommendCampaign(r) {\n const request = r.toApiJson ? r : new DuplicateAndRecommendCampaignRequest(r);\n return this.http.post(this._host + \"/campaigns.v1.Campaigns/DuplicateAndRecommendCampaign\", request.toApiJson(), {\n ...this.apiOptions(),\n observe: 'response'\n });\n }\n sendRecipientCampaignStepEmail(r) {\n const request = r.toApiJson ? r : new SendRecipientCampaignStepEmailRequest(r);\n return this.http.post(this._host + \"/campaigns.v1.Campaigns/SendRecipientCampaignStepEmail\", request.toApiJson(), {\n ...this.apiOptions(),\n observe: 'response'\n });\n }\n executeStep(r) {\n const request = r.toApiJson ? r : new ExecuteStepRequest(r);\n return this.http.post(this._host + \"/campaigns.v1.Campaigns/ExecuteStep\", request.toApiJson(), {\n ...this.apiOptions(),\n observe: 'response'\n });\n }\n createCampaign(r) {\n const request = r.toApiJson ? r : new CreateCampaignRequest(r);\n return this.http.post(this._host + \"/campaigns.v1.Campaigns/CreateCampaign\", request.toApiJson(), this.apiOptions()).pipe(map(resp => CreateCampaignResponse.fromProto(resp)));\n }\n addStepToCampaign(r) {\n const request = r.toApiJson ? r : new AddStepToCampaignRequest(r);\n return this.http.post(this._host + \"/campaigns.v1.Campaigns/AddStepToCampaign\", request.toApiJson(), this.apiOptions()).pipe(map(resp => StepDataResponse.fromProto(resp)));\n }\n getCampaignStepContent(r) {\n const request = r.toApiJson ? r : new GetCampaignStepContentRequest(r);\n return this.http.post(this._host + \"/campaigns.v1.Campaigns/GetCampaignStepContent\", request.toApiJson(), this.apiOptions()).pipe(map(resp => GetCampaignStepContentResponse.fromProto(resp)));\n }\n sendCampaignStepTestEmail(r) {\n const request = r.toApiJson ? r : new SendCampaignStepTestEmailRequest(r);\n return this.http.post(this._host + \"/campaigns.v1.Campaigns/SendCampaignStepTestEmail\", request.toApiJson(), this.apiOptions()).pipe(map(resp => SendCampaignStepTestEmailResponse.fromProto(resp)));\n }\n updateStepOnCampaign(r) {\n const request = r.toApiJson ? r : new UpdateStepOnCampaignRequest(r);\n return this.http.post(this._host + \"/campaigns.v1.Campaigns/UpdateStepOnCampaign\", request.toApiJson(), this.apiOptions()).pipe(map(resp => StepDataResponse.fromProto(resp)));\n }\n listCampaignsV2(r) {\n const request = r.toApiJson ? r : new ListCampaignsV2Request(r);\n return this.http.post(this._host + \"/campaigns.v1.Campaigns/ListCampaignsV2\", request.toApiJson(), this.apiOptions()).pipe(map(resp => ListCampaignsV2Response.fromProto(resp)));\n }\n pauseCampaign(r) {\n const request = r.toApiJson ? r : new PauseCampaignRequest(r);\n return this.http.post(this._host + \"/campaigns.v1.Campaigns/PauseCampaign\", request.toApiJson(), {\n ...this.apiOptions(),\n observe: 'response'\n });\n }\n unpauseCampaign(r) {\n const request = r.toApiJson ? r : new UnpauseCampaignRequest(r);\n return this.http.post(this._host + \"/campaigns.v1.Campaigns/UnpauseCampaign\", request.toApiJson(), {\n ...this.apiOptions(),\n observe: 'response'\n });\n }\n getAvailableStepTypesForSender(r) {\n const request = r.toApiJson ? r : new GetAvailableStepTypesForSenderRequest(r);\n return this.http.post(this._host + \"/campaigns.v1.Campaigns/GetAvailableStepTypesForSender\", request.toApiJson(), this.apiOptions()).pipe(map(resp => GetAvailableStepTypesForSenderResponse.fromProto(resp)));\n }\n }\n CampaignsApiService.ɵfac = function CampaignsApiService_Factory(t) {\n return new (t || CampaignsApiService)(i0.ɵɵinject(i1.HttpClient), i0.ɵɵinject(HostService));\n };\n CampaignsApiService.ɵprov = /* @__PURE__ */i0.ɵɵdefineInjectable({\n token: CampaignsApiService,\n factory: CampaignsApiService.ɵfac,\n providedIn: 'root'\n });\n return CampaignsApiService;\n})();\n(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && void 0;\n})();\n\n// *********************************\n// Code generated by sdkgen\n// DO NOT EDIT!.\n//\n// API Service.\n// *********************************\nlet EmailBuilderApiService = /*#__PURE__*/(() => {\n class EmailBuilderApiService {\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 create(r) {\n const request = r.toApiJson ? r : new CreateRequest(r);\n return this.http.post(this._host + \"/campaigns.v1.EmailBuilder/Create\", request.toApiJson(), this.apiOptions()).pipe(map(resp => CreateResponse.fromProto(resp)));\n }\n get(r) {\n const request = r.toApiJson ? r : new GetRequest(r);\n return this.http.post(this._host + \"/campaigns.v1.EmailBuilder/Get\", request.toApiJson(), this.apiOptions()).pipe(map(resp => GetResponse.fromProto(resp)));\n }\n update(r) {\n const request = r.toApiJson ? r : new UpdateRequest(r);\n return this.http.post(this._host + \"/campaigns.v1.EmailBuilder/Update\", request.toApiJson(), {\n ...this.apiOptions(),\n observe: 'response'\n });\n }\n delete(r) {\n const request = r.toApiJson ? r : new DeleteRequest(r);\n return this.http.post(this._host + \"/campaigns.v1.EmailBuilder/Delete\", request.toApiJson(), {\n ...this.apiOptions(),\n observe: 'response'\n });\n }\n render(r) {\n const request = r.toApiJson ? r : new RenderRequest(r);\n return this.http.post(this._host + \"/campaigns.v1.EmailBuilder/Render\", request.toApiJson(), this.apiOptions()).pipe(map(resp => RenderResponse.fromProto(resp)));\n }\n convert(r) {\n const request = r.toApiJson ? r : new ConvertLegacyTemplateRequest(r);\n return this.http.post(this._host + \"/campaigns.v1.EmailBuilder/Convert\", request.toApiJson(), this.apiOptions()).pipe(map(resp => ConvertLegacyTemplateResponse.fromProto(resp)));\n }\n }\n EmailBuilderApiService.ɵfac = function EmailBuilderApiService_Factory(t) {\n return new (t || EmailBuilderApiService)(i0.ɵɵinject(i1.HttpClient), i0.ɵɵinject(HostService));\n };\n EmailBuilderApiService.ɵprov = /* @__PURE__ */i0.ɵɵdefineInjectable({\n token: EmailBuilderApiService,\n factory: EmailBuilderApiService.ɵfac,\n providedIn: 'root'\n });\n return EmailBuilderApiService;\n})();\n(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && void 0;\n})();\n\n// *********************************\n// Code generated by sdkgen\n// DO NOT EDIT!.\n//\n// API Service.\n// *********************************\nlet EmailTemplateApiService = /*#__PURE__*/(() => {\n class EmailTemplateApiService {\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 createEmailTemplate(r) {\n const request = r.toApiJson ? r : new CreateEmailTemplateRequest(r);\n return this.http.post(this._host + \"/campaigns.v1.EmailTemplate/CreateEmailTemplate\", request.toApiJson(), {\n ...this.apiOptions(),\n observe: 'response'\n });\n }\n updateEmailTemplate(r) {\n const request = r.toApiJson ? r : new UpdateEmailTemplateRequest(r);\n return this.http.post(this._host + \"/campaigns.v1.EmailTemplate/UpdateEmailTemplate\", request.toApiJson(), {\n ...this.apiOptions(),\n observe: 'response'\n });\n }\n getEmailTemplate(r) {\n const request = r.toApiJson ? r : new GetEmailTemplateRequest(r);\n return this.http.post(this._host + \"/campaigns.v1.EmailTemplate/GetEmailTemplate\", request.toApiJson(), this.apiOptions()).pipe(map(resp => GetEmailTemplateResponse.fromProto(resp)));\n }\n getEmailTemplates(r) {\n const request = r.toApiJson ? r : new GetEmailTemplatesRequest(r);\n return this.http.post(this._host + \"/campaigns.v1.EmailTemplate/GetEmailTemplates\", request.toApiJson(), this.apiOptions()).pipe(map(resp => GetEmailTemplatesResponse.fromProto(resp)));\n }\n previewEmailTemplate(r) {\n const request = r.toApiJson ? r : new PreviewEmailTemplateRequest(r);\n return this.http.post(this._host + \"/campaigns.v1.EmailTemplate/PreviewEmailTemplate\", request.toApiJson(), this.apiOptions()).pipe(map(resp => PreviewEmailTemplateResponse.fromProto(resp)));\n }\n listLinksInTemplate(r) {\n const request = r.toApiJson ? r : new ListLinksInTemplateRequest(r);\n return this.http.post(this._host + \"/campaigns.v1.EmailTemplate/ListLinksInTemplate\", request.toApiJson(), this.apiOptions()).pipe(map(resp => ListLinksInTemplateResponse.fromProto(resp)));\n }\n extractLinkTrackingDataForTemplate(r) {\n const request = r.toApiJson ? r : new ExtractLinkTrackingDataForTemplateRequest(r);\n return this.http.post(this._host + \"/campaigns.v1.EmailTemplate/ExtractLinkTrackingDataForTemplate\", request.toApiJson(), this.apiOptions()).pipe(map(resp => ExtractLinkTrackingDataForTemplateResponse.fromProto(resp)));\n }\n }\n EmailTemplateApiService.ɵfac = function EmailTemplateApiService_Factory(t) {\n return new (t || EmailTemplateApiService)(i0.ɵɵinject(i1.HttpClient), i0.ɵɵinject(HostService));\n };\n EmailTemplateApiService.ɵprov = /* @__PURE__ */i0.ɵɵdefineInjectable({\n token: EmailTemplateApiService,\n factory: EmailTemplateApiService.ɵfac,\n providedIn: 'root'\n });\n return EmailTemplateApiService;\n})();\n(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && void 0;\n})();\n\n// *********************************\n// Code generated by sdkgen\n// DO NOT EDIT!.\n//\n// API Service.\n// *********************************\nlet LegacyAppengineAPIApiService = /*#__PURE__*/(() => {\n class LegacyAppengineAPIApiService {\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 rateLimitedAddAccountGroupToCampaign(r) {\n const request = r.toApiJson ? r : new LegacyAddAccountGroupToCampaignRequest(r);\n return this.http.post(this._host + \"/campaigns.v1.LegacyAppengineAPIService/RateLimitedAddAccountGroupToCampaign\", request.toApiJson(), {\n ...this.apiOptions(),\n observe: 'response'\n });\n }\n rateLimitedAddToCampaign(r) {\n const request = r.toApiJson ? r : new LegacyRateLimitedAddToCampaignRequest(r);\n return this.http.post(this._host + \"/campaigns.v1.LegacyAppengineAPIService/RateLimitedAddToCampaign\", request.toApiJson(), this.apiOptions()).pipe(map(resp => LegacyRateLimitedAddToCampaignResponse.fromProto(resp)));\n }\n pauseAccountGroupOnCampaign(r) {\n const request = r.toApiJson ? r : new LegacyPauseAccountGroupOnCampaignRequest(r);\n return this.http.post(this._host + \"/campaigns.v1.LegacyAppengineAPIService/PauseAccountGroupOnCampaign\", request.toApiJson(), {\n ...this.apiOptions(),\n observe: 'response'\n });\n }\n getRecipientCampaignsByAgid(r) {\n const request = r.toApiJson ? r : new LegacyGetRecipientCampaignsByAgidRequest(r);\n return this.http.post(this._host + \"/campaigns.v1.LegacyAppengineAPIService/GetRecipientCampaignsByAgid\", request.toApiJson(), this.apiOptions()).pipe(map(resp => LegacyGetRecipientCampaignsByAgidResponse.fromProto(resp)));\n }\n updateRecipientCampaignStatus(r) {\n const request = r.toApiJson ? r : new LegacyUpdateRecipientCampaignStatusRequest(r);\n return this.http.post(this._host + \"/campaigns.v1.LegacyAppengineAPIService/UpdateRecipientCampaignStatus\", request.toApiJson(), {\n ...this.apiOptions(),\n observe: 'response'\n });\n }\n }\n LegacyAppengineAPIApiService.ɵfac = function LegacyAppengineAPIApiService_Factory(t) {\n return new (t || LegacyAppengineAPIApiService)(i0.ɵɵinject(i1.HttpClient), i0.ɵɵinject(HostService));\n };\n LegacyAppengineAPIApiService.ɵprov = /* @__PURE__ */i0.ɵɵdefineInjectable({\n token: LegacyAppengineAPIApiService,\n factory: LegacyAppengineAPIApiService.ɵfac,\n providedIn: 'root'\n });\n return LegacyAppengineAPIApiService;\n})();\n(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && void 0;\n})();\n\n// *********************************\n// Code generated by sdkgen\n// DO NOT EDIT!.\n//\n// API Service.\n// *********************************\nlet RecipientApiService = /*#__PURE__*/(() => {\n class RecipientApiService {\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 createRecipient(r) {\n const request = r.toApiJson ? r : new CreateRecipientRequest(r);\n return this.http.post(this._host + \"/campaigns.v1.Recipient/CreateRecipient\", request.toApiJson(), {\n ...this.apiOptions(),\n observe: 'response'\n });\n }\n updateRecipient(r) {\n const request = r.toApiJson ? r : new UpdateRecipientRequest(r);\n return this.http.post(this._host + \"/campaigns.v1.Recipient/UpdateRecipient\", request.toApiJson(), {\n ...this.apiOptions(),\n observe: 'response'\n });\n }\n getRecipient(r) {\n const request = r.toApiJson ? r : new GetRecipientRequest(r);\n return this.http.post(this._host + \"/campaigns.v1.Recipient/GetRecipient\", request.toApiJson(), this.apiOptions()).pipe(map(resp => GetRecipientResponse.fromProto(resp)));\n }\n }\n RecipientApiService.ɵfac = function RecipientApiService_Factory(t) {\n return new (t || RecipientApiService)(i0.ɵɵinject(i1.HttpClient), i0.ɵɵinject(HostService));\n };\n RecipientApiService.ɵprov = /* @__PURE__ */i0.ɵɵdefineInjectable({\n token: RecipientApiService,\n factory: RecipientApiService.ɵfac,\n providedIn: 'root'\n });\n return RecipientApiService;\n})();\n(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && void 0;\n})();\n\n// *********************************\n// Code generated by sdkgen\n// DO NOT EDIT!.\n//\n// API Service.\n// *********************************\nlet RecipientCampaignApiService = /*#__PURE__*/(() => {\n class RecipientCampaignApiService {\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 upsertRecipientCampaign(r) {\n const request = r.toApiJson ? r : new UpsertRecipientCampaignRequest(r);\n return this.http.post(this._host + \"/campaigns.v1.RecipientCampaign/UpsertRecipientCampaign\", request.toApiJson(), {\n ...this.apiOptions(),\n observe: 'response'\n });\n }\n listRecipientCampaigns(r) {\n const request = r.toApiJson ? r : new ListRecipientCampaignsRequest(r);\n return this.http.post(this._host + \"/campaigns.v1.RecipientCampaign/ListRecipientCampaigns\", request.toApiJson(), this.apiOptions()).pipe(map(resp => ListRecipientCampaignsResponse.fromProto(resp)));\n }\n getRecipientCampaign(r) {\n const request = r.toApiJson ? r : new GetRecipientCampaignRequest(r);\n return this.http.post(this._host + \"/campaigns.v1.RecipientCampaign/GetRecipientCampaign\", request.toApiJson(), this.apiOptions()).pipe(map(resp => GetRecipientCampaignResponse.fromProto(resp)));\n }\n lookupRecipientCampaign(r) {\n const request = r.toApiJson ? r : new LookupRecipientCampaignRequest(r);\n return this.http.post(this._host + \"/campaigns.v1.RecipientCampaign/LookupRecipientCampaign\", request.toApiJson(), this.apiOptions()).pipe(map(resp => LookupRecipientCampaignResponse.fromProto(resp)));\n }\n lookupRecipientCampaigns(r) {\n const request = r.toApiJson ? r : new LookupRecipientCampaignsRequest(r);\n return this.http.post(this._host + \"/campaigns.v1.RecipientCampaign/LookupRecipientCampaigns\", request.toApiJson(), this.apiOptions()).pipe(map(resp => LookupRecipientCampaignsResponse.fromProto(resp)));\n }\n addContactToCampaign(r) {\n const request = r.toApiJson ? r : new AddContactToCampaignRequest(r);\n return this.http.post(this._host + \"/campaigns.v1.RecipientCampaign/AddContactToCampaign\", request.toApiJson(), this.apiOptions()).pipe(map(resp => AddContactToCampaignResponse.fromProto(resp)));\n }\n bulkAddContactsToCampaign(r) {\n const request = r.toApiJson ? r : new BulkAddContactsToCampaignRequest(r);\n return this.http.post(this._host + \"/campaigns.v1.RecipientCampaign/BulkAddContactsToCampaign\", request.toApiJson(), {\n ...this.apiOptions(),\n observe: 'response'\n });\n }\n }\n RecipientCampaignApiService.ɵfac = function RecipientCampaignApiService_Factory(t) {\n return new (t || RecipientCampaignApiService)(i0.ɵɵinject(i1.HttpClient), i0.ɵɵinject(HostService));\n };\n RecipientCampaignApiService.ɵprov = /* @__PURE__ */i0.ɵɵdefineInjectable({\n token: RecipientCampaignApiService,\n factory: RecipientCampaignApiService.ɵfac,\n providedIn: 'root'\n });\n return RecipientCampaignApiService;\n})();\n(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && void 0;\n})();\n\n// *********************************\n// Code generated by sdkgen\n// DO NOT EDIT!.\n//\n// API Service.\n// *********************************\nlet RecipientCampaignActivatedEventApiService = /*#__PURE__*/(() => {\n class RecipientCampaignActivatedEventApiService {\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 upsertRecipientCampaignActivatedEvent(r) {\n const request = r.toApiJson ? r : new UpsertRecipientCampaignActivatedEventRequest(r);\n return this.http.post(this._host + \"/campaigns.v1.RecipientCampaignActivatedEvent/UpsertRecipientCampaignActivatedEvent\", request.toApiJson(), {\n ...this.apiOptions(),\n observe: 'response'\n });\n }\n }\n RecipientCampaignActivatedEventApiService.ɵfac = function RecipientCampaignActivatedEventApiService_Factory(t) {\n return new (t || RecipientCampaignActivatedEventApiService)(i0.ɵɵinject(i1.HttpClient), i0.ɵɵinject(HostService));\n };\n RecipientCampaignActivatedEventApiService.ɵprov = /* @__PURE__ */i0.ɵɵdefineInjectable({\n token: RecipientCampaignActivatedEventApiService,\n factory: RecipientCampaignActivatedEventApiService.ɵfac,\n providedIn: 'root'\n });\n return RecipientCampaignActivatedEventApiService;\n})();\n(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && void 0;\n})();\n\n// *********************************\n// Code generated by sdkgen\n// DO NOT EDIT!.\n//\n// API Service.\n// *********************************\nlet RecipientCampaignStepEventApiService = /*#__PURE__*/(() => {\n class RecipientCampaignStepEventApiService {\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 createRecipientCampaignStepEvent(r) {\n const request = r.toApiJson ? r : new CreateRecipientCampaignStepEventRequest(r);\n return this.http.post(this._host + \"/campaigns.v1.RecipientCampaignStepEvent/CreateRecipientCampaignStepEvent\", request.toApiJson(), {\n ...this.apiOptions(),\n observe: 'response'\n });\n }\n upsertRecipientCampaignStepEvent(r) {\n const request = r.toApiJson ? r : new UpsertRecipientCampaignStepEventRequest(r);\n return this.http.post(this._host + \"/campaigns.v1.RecipientCampaignStepEvent/UpsertRecipientCampaignStepEvent\", request.toApiJson(), {\n ...this.apiOptions(),\n observe: 'response'\n });\n }\n }\n RecipientCampaignStepEventApiService.ɵfac = function RecipientCampaignStepEventApiService_Factory(t) {\n return new (t || RecipientCampaignStepEventApiService)(i0.ɵɵinject(i1.HttpClient), i0.ɵɵinject(HostService));\n };\n RecipientCampaignStepEventApiService.ɵprov = /* @__PURE__ */i0.ɵɵdefineInjectable({\n token: RecipientCampaignStepEventApiService,\n factory: RecipientCampaignStepEventApiService.ɵfac,\n providedIn: 'root'\n });\n return RecipientCampaignStepEventApiService;\n})();\n(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && void 0;\n})();\n\n// *********************************\n// Code generated by sdkgen\n// DO NOT EDIT!.\n//\n// Index.\n// *********************************\n\n/**\n * AllDates is a DateFilter which does not apply any filtering. When used in a\n * filter, you can expect to be returned data which spans all possible dates.\n */\nconst AllDates = new DateFilter();\nlet CampaignService = /*#__PURE__*/(() => {\n class CampaignService {\n constructor(api) {\n this.api = api;\n }\n create(sender, name) {\n return this.api.createCampaign({\n name: name,\n sender: sender,\n focus: Focuses.FOCUSES_NONE\n }).pipe(map(v => v.campaignId));\n }\n delete(campaignId) {\n return this.api.deleteCampaign({\n campaignId: campaignId\n }).pipe(map(() => null));\n }\n addStep(sender, campaignId, stepType, contentId, name) {\n const req = {\n campaignId: campaignId,\n stepType: stepType,\n contentId: contentId,\n sender: sender,\n name: name\n };\n return this.api.addStepToCampaign(req).pipe(map(resp => resp));\n }\n updateStep(sender, campaignId, campaignStepId, contentId, name, secondsAfterLastStep, fm) {\n const req = {\n campaignId: campaignId,\n campaignStepId: campaignStepId,\n contentId: contentId,\n sender: sender,\n name: name,\n secondsAfterLastStep: secondsAfterLastStep,\n fieldMask: fm\n };\n return this.api.updateStepOnCampaign(req).pipe(map(resp => resp));\n }\n get(campaignID) {\n return this.api.getCampaign({\n campaignId: campaignID\n }).pipe(map(resp => resp.campaign), map(campaign => {\n campaign.campaignSchedule = campaign.campaignSchedule || [];\n return campaign;\n }));\n }\n getMulti(campaignIDs) {\n return this.api.getMultiCampaigns({\n campaignIds: campaignIDs\n }).pipe(map(resp => resp.campaigns));\n }\n list(partnerID, focuses, statuses, name, pagingOptions) {\n return this.api.listCampaigns(new ListCampaignsRequest({\n partnerId: partnerID,\n focuses: focuses || [],\n statuses: statuses || [],\n pagingOptions: pagingOptions || {},\n name: name\n })).pipe(map(v => (v.campaigns || []).map(vv => {\n vv.campaignSchedule = vv.campaignSchedule || [];\n vv.hiddenForPartners = vv.hiddenForPartners || [];\n return vv;\n })));\n }\n listRecommendedCampaigns(data) {\n return this.api.listRecommendedCampaigns({\n focuses: data.focuses,\n statuses: data.statuses,\n pagingOptions: data.pagingOptions\n }).pipe(map(resp => resp));\n }\n duplicateCampaignStepAsync(campaignId, stepId) {\n const req = {\n campaignId: campaignId,\n campaignStepId: stepId\n };\n return this.api.duplicateCampaignStepAsync(req).pipe(map(v => v.statusId));\n }\n checkCampaignStepDuplicateStatus(workflowStatusId) {\n const req = {\n statusId: workflowStatusId\n };\n return this.api.checkDuplicateCampaignStepStatus(req).pipe(map(v => v.status));\n }\n duplicateCampaignAsync(campaignId, targetPartnerId) {\n const req = {\n campaignId: campaignId,\n partnerId: targetPartnerId\n };\n return this.api.duplicateCampaignAsync(req).pipe(map(v => v.statusId));\n }\n duplicateCampaignAsyncV2(campaignId, sender) {\n const req = {\n campaignId: campaignId,\n sender: sender\n };\n return this.api.duplicateCampaignAsyncV2(req).pipe(map(v => v.statusId));\n }\n checkCampaignDuplicateStatus(workflowStatusId) {\n const req = {\n statusId: workflowStatusId\n };\n return this.api.checkDuplicateCampaignStatus(req);\n }\n getEmailStepContent(campaignId, campaignStepId, data) {\n return this.api.getCampaignStepContent({\n campaignId: campaignId,\n campaignStepId: campaignStepId,\n stepData: data\n });\n }\n sendStepTestEmail(sender, campaignId, campaignStepId, sendToUserId, data) {\n return this.api.sendCampaignStepTestEmail({\n sender: sender,\n campaignId: campaignId,\n campaignStepId: campaignStepId,\n sendToUserId: sendToUserId,\n stepData: data\n });\n }\n updateStatus(sender, campaignID, status) {\n return this.api.upsertCampaign({\n sender: sender,\n campaignId: campaignID,\n status: status,\n fieldMask: {\n paths: [\"Status\"]\n }\n }).pipe(mapTo(undefined));\n }\n updateName(sender, campaignID, name) {\n return this.api.upsertCampaign({\n sender: sender,\n campaignId: campaignID,\n name: name,\n fieldMask: {\n paths: [\"Name\"]\n }\n }).pipe(mapTo(undefined));\n }\n updateCampaignSchedule(sender, campaignID, campaignSchedule) {\n return this.api.upsertCampaign({\n sender: sender,\n campaignId: campaignID,\n campaignSchedule: campaignSchedule,\n fieldMask: {\n paths: [\"CampaignSchedule\"]\n }\n }).pipe(mapTo(undefined));\n }\n updateCampaignLocale(sender, campaignID, locale) {\n return this.api.upsertCampaign({\n sender: sender,\n campaignId: campaignID,\n locale: locale,\n fieldMask: {\n paths: [\"Locale\"]\n }\n }).pipe(mapTo(undefined));\n }\n listCampaignsV2(sender, statuses, searchTerm, pagingOptions, sortOptions) {\n return this.api.listCampaignsV2({\n sender: sender,\n statuses: statuses || [],\n pagingOptions: pagingOptions || {},\n searchTerm: searchTerm,\n sortOptions: sortOptions || {}\n }).pipe(map(resp => resp));\n }\n pauseCampaign(campaignId) {\n return this.api.pauseCampaign({\n campaignId: campaignId\n }).pipe(mapTo(undefined));\n }\n unpauseCampaign(campaignId) {\n return this.api.unpauseCampaign({\n campaignId: campaignId\n }).pipe(mapTo(undefined));\n }\n getAvailableStepTypesForSender(sender) {\n return this.api.getAvailableStepTypesForSender({\n sender: sender\n }).pipe(map(resp => resp));\n }\n }\n CampaignService.ɵfac = function CampaignService_Factory(t) {\n return new (t || CampaignService)(i0.ɵɵinject(CampaignsApiService));\n };\n CampaignService.ɵprov = /* @__PURE__ */i0.ɵɵdefineInjectable({\n token: CampaignService,\n factory: CampaignService.ɵfac,\n providedIn: 'root'\n });\n return CampaignService;\n})();\n(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && void 0;\n})();\nlet RecipientCampaignService = /*#__PURE__*/(() => {\n class RecipientCampaignService {\n constructor(api) {\n this.api = api;\n }\n list(accountGroupID) {\n return this.api.listRecipientCampaigns({\n accountGroupId: accountGroupID\n }).pipe(map(resp => resp.recipientCampaign));\n }\n addToCampaign(campaignId, sender, recipient, date) {\n return this.api.addContactToCampaign({\n campaignId: campaignId,\n sender: sender,\n recipient: recipient,\n date: date\n }).pipe(map(resp => resp));\n }\n bulkAddToCampaign(campaignId, sender, date, filterGroup, searchTerm) {\n return this.api.bulkAddContactsToCampaign({\n campaignId: campaignId,\n sender: sender,\n date: date,\n criteria: {\n filterGroupV2: filterGroup,\n searchTerm: searchTerm\n }\n }).pipe(map(() => null));\n }\n lookupRecipientCampaign(campaignId, sender, recipient) {\n return this.api.lookupRecipientCampaign({\n campaignId: campaignId,\n sender: sender,\n recipient: recipient\n }).pipe(map(resp => resp));\n }\n lookupRecipientCampaigns(campaignId, sender, recipients) {\n return this.api.lookupRecipientCampaigns({\n campaignId: campaignId,\n sender: sender,\n recipients: recipients\n }).pipe(map(resp => resp));\n }\n getRecipientCampaign(recipientCampaignId) {\n return this.api.getRecipientCampaign({\n recipientCampaignId: recipientCampaignId\n }).pipe(map(resp => resp?.recipientCampaign));\n }\n }\n RecipientCampaignService.ɵfac = function RecipientCampaignService_Factory(t) {\n return new (t || RecipientCampaignService)(i0.ɵɵinject(RecipientCampaignApiService));\n };\n RecipientCampaignService.ɵprov = /* @__PURE__ */i0.ɵɵdefineInjectable({\n token: RecipientCampaignService,\n factory: RecipientCampaignService.ɵfac,\n providedIn: 'root'\n });\n return RecipientCampaignService;\n})();\n(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && void 0;\n})();\nlet EmailTemplateService = /*#__PURE__*/(() => {\n class EmailTemplateService {\n constructor(api) {\n this.api = api;\n }\n get(templateID) {\n return this.api.getEmailTemplate({\n templateId: templateID\n }).pipe(map(resp => resp.template));\n }\n listLinksInTemplate(templateID) {\n return this.api.listLinksInTemplate({\n templateId: templateID\n }).pipe(map(resp => resp.links));\n }\n getMulti(templateIDs) {\n return this.api.getEmailTemplates({\n templateIds: templateIDs\n }).pipe(map(resp => resp.templates));\n }\n previewEmailTemplate(templateId, accountGroupId, partnerId, marketId, locale, userId, sender) {\n const req = {\n templateId: templateId,\n accountGroupId: accountGroupId,\n partnerId: partnerId,\n marketId: marketId,\n locale: locale,\n userId: userId,\n sender: sender\n };\n return this.api.previewEmailTemplate(req).pipe(map(v => ({\n htmlBody: v.templateHtml,\n subject: v.subject,\n name: v.name\n })));\n }\n }\n EmailTemplateService.ɵfac = function EmailTemplateService_Factory(t) {\n return new (t || EmailTemplateService)(i0.ɵɵinject(EmailTemplateApiService));\n };\n EmailTemplateService.ɵprov = /* @__PURE__ */i0.ɵɵdefineInjectable({\n token: EmailTemplateService,\n factory: EmailTemplateService.ɵfac,\n providedIn: 'root'\n });\n return EmailTemplateService;\n})();\n(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && void 0;\n})();\n/**\n * EmailBuilderTemplates are used by the new EmailBuilder (from @vendasta/email-ui)\n * to create and edit email templates. They are different from the legacy\n * EmailTemplates because they store their editable content as JSON, not HTML.\n */\nlet EmailBuilderTemplateService = /*#__PURE__*/(() => {\n class EmailBuilderTemplateService {\n constructor(api) {\n this.api = api;\n }\n createNewTemplate(template) {\n const req = {\n emailBuilderTemplate: template\n };\n return this.api.create(req).pipe(map(v => v.id));\n }\n getTemplate(id) {\n const req = {\n id: id\n };\n return this.api.get(req).pipe(map(v => v.emailBuilderTemplate));\n }\n updateExistingTemplate(template) {\n const req = {\n emailBuilderTemplate: template\n };\n return this.api.update(req).pipe(mapTo(null));\n }\n convertLegacyTemplate(templateId, partnerId) {\n const req = {\n templateId: templateId,\n partnerId: partnerId\n };\n return this.api.convert(req).pipe(map(v => v.templateId));\n }\n }\n EmailBuilderTemplateService.ɵfac = function EmailBuilderTemplateService_Factory(t) {\n return new (t || EmailBuilderTemplateService)(i0.ɵɵinject(EmailBuilderApiService));\n };\n EmailBuilderTemplateService.ɵprov = /* @__PURE__ */i0.ɵɵdefineInjectable({\n token: EmailBuilderTemplateService,\n factory: EmailBuilderTemplateService.ɵfac,\n providedIn: 'root'\n });\n return EmailBuilderTemplateService;\n})();\n(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && void 0;\n})();\nlet CampaignStatsService = /*#__PURE__*/(() => {\n class CampaignStatsService {\n constructor(api) {\n this.api = api;\n }\n get(data) {\n return this.api.getAggregatedCampaignStats(data).pipe(map(resp => resp));\n }\n list(data) {\n return this.api.listCampaignStats(data).pipe(map(resp => {\n resp.stats = resp.stats || [];\n resp.stats = resp.stats.map(stat => {\n stat.tags = stat.tags || [];\n return stat;\n });\n return resp;\n }));\n }\n getCampaignDetailsStats(data) {\n return this.api.getCampaignDetailsStats(data).pipe(map(resp => resp));\n }\n getLinkStats(data) {\n return this.api.getLinkStats(data).pipe(map(resp => resp));\n }\n getRecipientLinkClickStats(data) {\n return this.api.getRecipientLinkClickStats(data);\n }\n getCampaignStepStats(data) {\n return this.api.getCampaignStepStats(data).pipe(map(resp => resp));\n }\n exportRecipientLinkClickStats(data) {\n return this.api.exportRecipientLinkClickStats(data).pipe(map(() => null));\n }\n listStatsForSender(data) {\n return this.api.listCampaignStatsForSender(data).pipe(map(v => {\n v.stats = v.stats || [];\n return v;\n }));\n }\n }\n CampaignStatsService.ɵfac = function CampaignStatsService_Factory(t) {\n return new (t || CampaignStatsService)(i0.ɵɵinject(CampaignStatsApiService));\n };\n CampaignStatsService.ɵprov = /* @__PURE__ */i0.ɵɵdefineInjectable({\n token: CampaignStatsService,\n factory: CampaignStatsService.ɵfac,\n providedIn: 'root'\n });\n return CampaignStatsService;\n})();\n(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && void 0;\n})();\nlet CampaignTaggingService = /*#__PURE__*/(() => {\n class CampaignTaggingService {\n constructor(api) {\n this.api = api;\n }\n create(senderType, senderId, text, colour) {\n const req = {\n senderType: senderType,\n senderId: senderId,\n text: text,\n colour: colour\n };\n return this.api.create(req).pipe(map(resp => resp.campaignTag));\n }\n listTagsForSender(senderType, senderId, cursor, pageSize) {\n const req = {\n senderType: senderType,\n senderId: senderId,\n cursor: cursor,\n pageSize: pageSize\n };\n return this.api.listTagsForSender(req).pipe(map(v => {\n v.campaignTags = v.campaignTags || [];\n return v;\n }));\n }\n addTagToCampaign(senderType, senderId, campaignId, tagId) {\n const req = {\n senderType: senderType,\n senderId: senderId,\n campaignId: campaignId,\n tagId: tagId\n };\n return this.api.addTagToCampaign(req).pipe(map(() => null));\n }\n removeTagFromCampaign(campaignId, tagId) {\n const req = new RemoveTagFromCampaignRequest({\n campaignId: campaignId,\n tagId: tagId\n });\n return this.api.removeTagFromCampaign(req).pipe(map(() => null));\n }\n listTagsForCampaign(campaignId, cursor, pageSize) {\n const req = {\n campaignId: campaignId,\n cursor: cursor,\n pageSize: pageSize\n };\n return this.api.listTagsForCampaign(req).pipe(map(v => {\n v.campaignTags = v.campaignTags || [];\n return v;\n }));\n }\n deleteTag(senderType, senderId, tagId) {\n const req = {\n senderType: senderType,\n senderId: senderId,\n tagId: tagId\n };\n return this.api.delete(req).pipe(map(() => null));\n }\n }\n CampaignTaggingService.ɵfac = function CampaignTaggingService_Factory(t) {\n return new (t || CampaignTaggingService)(i0.ɵɵinject(CampaignTaggingApiService));\n };\n CampaignTaggingService.ɵprov = /* @__PURE__ */i0.ɵɵdefineInjectable({\n token: CampaignTaggingService,\n factory: CampaignTaggingService.ɵfac,\n providedIn: 'root'\n });\n return CampaignTaggingService;\n})();\n(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && void 0;\n})();\nlet LegacyAppengineService = /*#__PURE__*/(() => {\n class LegacyAppengineService {\n constructor(api) {\n this.api = api;\n }\n updateRecipientCampaignStatus(recipientCampaignId, status) {\n const req = {\n recipientCampaignId: recipientCampaignId,\n status: status\n };\n return this.api.updateRecipientCampaignStatus(req).pipe(map(() => null));\n }\n }\n LegacyAppengineService.ɵfac = function LegacyAppengineService_Factory(t) {\n return new (t || LegacyAppengineService)(i0.ɵɵinject(LegacyAppengineAPIApiService));\n };\n LegacyAppengineService.ɵprov = /* @__PURE__ */i0.ɵɵdefineInjectable({\n token: LegacyAppengineService,\n factory: LegacyAppengineService.ɵfac,\n providedIn: 'root'\n });\n return LegacyAppengineService;\n})();\n(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && void 0;\n})();\nlet ConfigService = /*#__PURE__*/(() => {\n class ConfigService {\n constructor(api) {\n this.api = api;\n }\n getConfig(campaignId) {\n const req = {\n campaignId: campaignId\n };\n return this.api.getConfig(req);\n }\n updateConfig(campaignId, timeZoneForEmailsSent, daysEmailsCanBeSent, recipientsAddedRateLimitEnabled, recipientsAddedRateLimit, sender, emailsCanbeSent) {\n const req = {\n campaignId: campaignId,\n timeZoneForEmailsSent: timeZoneForEmailsSent,\n daysEmailsCanBeSent: daysEmailsCanBeSent,\n recipientsAddedRateLimitEnabled: recipientsAddedRateLimitEnabled,\n recipientsAddedRateLimit: recipientsAddedRateLimit,\n sender: sender,\n emailSchedulingDay: emailsCanbeSent\n };\n return this.api.updateConfig(req);\n }\n }\n ConfigService.ɵfac = function ConfigService_Factory(t) {\n return new (t || ConfigService)(i0.ɵɵinject(CampaignConfigApiService));\n };\n ConfigService.ɵprov = /* @__PURE__ */i0.ɵɵdefineInjectable({\n token: ConfigService,\n factory: ConfigService.ɵfac,\n providedIn: 'root'\n });\n return ConfigService;\n})();\n(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && void 0;\n})();\nlet ActivationService = /*#__PURE__*/(() => {\n class ActivationService {\n constructor(api) {\n this.api = api;\n }\n isFeatureActive(sender, feature) {\n const req = {\n sender: sender,\n featureId: feature\n };\n return this.api.isFeatureActive(req).pipe(map(v => v));\n }\n }\n ActivationService.ɵfac = function ActivationService_Factory(t) {\n return new (t || ActivationService)(i0.ɵɵinject(ActivationsApiService));\n };\n ActivationService.ɵprov = /* @__PURE__ */i0.ɵɵdefineInjectable({\n token: ActivationService,\n factory: ActivationService.ɵfac,\n providedIn: 'root'\n });\n return ActivationService;\n})();\n(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && void 0;\n})();\nlet QuotaService = /*#__PURE__*/(() => {\n class QuotaService {\n constructor(api) {\n this.api = api;\n }\n getCampaignQuota(sender, type, datePeriod) {\n const req = {\n sender: sender,\n type: type,\n datePeriod: datePeriod\n };\n return this.api.getCampaignQuota(req);\n }\n }\n QuotaService.ɵfac = function QuotaService_Factory(t) {\n return new (t || QuotaService)(i0.ɵɵinject(CampaignQuotaApiService));\n };\n QuotaService.ɵprov = /* @__PURE__ */i0.ɵɵdefineInjectable({\n token: QuotaService,\n factory: QuotaService.ɵfac,\n providedIn: 'root'\n });\n return QuotaService;\n})();\n(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && void 0;\n})();\n\n/**\n * Generated bundle index. Do not edit.\n */\n\nexport { Access, ActivateProductForSenderRequest, ActivationService, AddContactToCampaignRequest, AddContactToCampaignResponse, AddStepToCampaignRequest, AddTagToCampaignRequest, AllDates, AsyncWorkStatus, BulkAddContactsToCampaignRequest, CampaignDetailStats, CampaignQuotaCategory, CampaignRecipient, CampaignScheduleStatus, CampaignService, CampaignState, CampaignStatsService, CampaignStepEvent, CampaignStepEventType, CampaignStepInterface, CampaignStepSendStatusType, CampaignStepStats, CampaignStepType, CampaignTag, CampaignTaggingService, CheckDuplicateCampaignStatusRequest, CheckDuplicateCampaignStatusResponse, CheckDuplicateCampaignStepStatusRequest, CheckDuplicateCampaignStepStatusResponse, Colors, ConfigService, Contact, ContactType, ConvertLegacyTemplateRequest, ConvertLegacyTemplateResponse, CreateCampaignRequest, CreateCampaignResponse, CreateEmailTemplateRequest, CreateQuotaRequest, CreateRecipientCampaignStepEventRequest, CreateRecipientRequest, CreateRequest, CreateResponse, CreateTagRequest, CreateTagResponse, DateDefault, DateFilter, DaysOfTheWeek, DeactivateProductForSenderRequest, DeleteCampaignRequest, DeleteRequest, DeleteTagRequest, DeletedTagsPolicy, DuplicateAndRecommendCampaignRequest, DuplicateCampaignDetails, DuplicateCampaignRequest, DuplicateCampaignRequestV2, DuplicateCampaignResponse, DuplicateCampaignStepRequest, DuplicateCampaignStepResponse, DuplicateCampaignStepStatus, EmailBuilderConfiguration, EmailBuilderTemplate, EmailBuilderTemplateFocuses, EmailBuilderTemplateService, EmailBuilderTemplateStatuses, EmailTemplateService, EmailTemplateStruct, ExecuteStepRequest, ExportRecipientLinkClickStatsRequest, ExtractLinkTrackingDataForTemplateRequest, ExtractLinkTrackingDataForTemplateResponse, Feature, FieldMask, Filter, FilterGroup, FilterGroupOperator, FilterOperator, FilterType, FilterValue, Focuses, Footer, GetAggregatedCampaignStatsRequest, GetAggregatedCampaignStatsResponse, GetAvailableStepTypesForSenderRequest, GetAvailableStepTypesForSenderResponse, GetCampaignDetailsStatsRequest, GetCampaignDetailsStatsResponse, GetCampaignQuotaRequest, GetCampaignQuotaResponse, GetCampaignRequest, GetCampaignResponse, GetCampaignStepContentRequest, GetCampaignStepContentRequestStepDataEntry, GetCampaignStepContentResponse, GetCampaignStepStatsRequest, GetCampaignStepStatsResponse, GetConfigRequest, GetConfigResponse, GetEmailTemplateRequest, GetEmailTemplateResponse, GetEmailTemplatesRequest, GetEmailTemplatesResponse, GetLinkStatsRequest, GetLinkStatsResponse, GetMultiCampaignsRequest, GetMultiCampaignsResponse, GetRecipientCampaignRequest, GetRecipientCampaignResponse, GetRecipientLinkClickStatsRequest, GetRecipientLinkClickStatsRequestPagedRequestOptions, GetRecipientLinkClickStatsResponse, GetRecipientRequest, GetRecipientResponse, GetRequest, GetResponse, GetterCampaignData, GoogleAnalyticsOptions, ImageAlign, IsFeatureActiveForSenderRequest, IsFeatureActiveForSenderResponse, IsProductActiveForSenderRequest, IsProductActiveForSenderResponse, LegacyAddAccountGroupToCampaignRequest, LegacyAppengineService, LegacyGetRecipientCampaignsByAgidRequest, LegacyGetRecipientCampaignsByAgidResponse, LegacyPauseAccountGroupOnCampaignRequest, LegacyRateLimitedAddToCampaignRequest, LegacyRateLimitedAddToCampaignResponse, LegacyUpdateRecipientCampaignStatusRequest, LinkStats, LinkTrackingData, ListCampaignStatsForSenderRequest, ListCampaignStatsForSenderResponse, ListCampaignStatsRequest, ListCampaignStatsResponse, ListCampaignStatsStruct, ListCampaignTagDetails, ListCampaignsRequest, ListCampaignsResponse, ListCampaignsV2Request, ListCampaignsV2Response, ListLinksInTemplateRequest, ListLinksInTemplateResponse, ListRecipientCampaignsRequest, ListRecipientCampaignsResponse, ListRecommendedCampaignsRequest, ListTagsForCampaignRequest, ListTagsForCampaignResponse, ListTagsForSenderRequest, ListTagsForSenderResponse, LookupRecipientCampaignRequest, LookupRecipientCampaignResponse, LookupRecipientCampaignsRequest, LookupRecipientCampaignsResponse, PageSetup, PagedRequestOptions, PagedResponseMetadata, PauseCampaignRequest, Period, PreviewEmailTemplateRequest, PreviewEmailTemplateResponse, QuotaService, RecipientCampaignPair, RecipientCampaignService, RecipientCampaignStatus, RecipientCampaignStepEventStruct, RecipientCampaignStruct, RecipientClickStats, RecipientClickStatsAccount, RecipientClickStatsRecipient, RecipientCriteria, RecipientType, RecipientV2, RemoveTagFromCampaignRequest, RenderRequest, RenderResponse, ScheduledCampaignStepInterface, SendCampaignStepTestEmailRequest, SendCampaignStepTestEmailRequestStepDataEntry, SendCampaignStepTestEmailResponse, SendRecipientCampaignStepEmailRequest, Sender, SenderType, SortDirection, SortField, SortOptions, Statuses, StepDataResponse, TemplateReference, TemplateStatus, TopLogo, UnpauseCampaignRequest, UpdateCampaignNameRequest, UpdateConfigRequest, UpdateConfigResponse, UpdateEmailTemplateRequest, UpdateQuotaLimitRequest, UpdateRecipientRequest, UpdateRequest, UpdateStepOnCampaignRequest, UpsertCampaignRequest, UpsertConfigRequest, UpsertRecipientCampaignActivatedEventRequest, UpsertRecipientCampaignRequest, UpsertRecipientCampaignStepEventRequest };\n","import { Component, DestroyRef, Inject, OnInit } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { MatButtonModule } from '@angular/material/button';\nimport { TranslateModule, TranslateService } from '@ngx-translate/core';\nimport { GalaxyLoadingSpinnerModule } from '@vendasta/galaxy/loading-spinner';\nimport { MAT_DIALOG_DATA, MatDialog, MatDialogModule, MatDialogRef } from '@angular/material/dialog';\nimport { GalaxyEmptyStateModule } from '@vendasta/galaxy/empty-state';\nimport { MatIconModule } from '@angular/material/icon';\nimport { GalaxyFormFieldModule } from '@vendasta/galaxy/form-field';\nimport { MatRadioModule } from '@angular/material/radio';\nimport { FormBuilder, FormsModule, ReactiveFormsModule } from '@angular/forms';\nimport { VaFormsModule } from '@vendasta/forms';\nimport { MatInputModule } from '@angular/material/input';\nimport { GalaxyButtonLoadingIndicatorModule } from '@vendasta/galaxy/button-loading-indicator';\nimport { MatProgressSpinnerModule } from '@angular/material/progress-spinner';\nimport { VaFilterModule } from '@vendasta/uikit';\nimport { GalaxyInfiniteScrollTriggerModule } from '@vendasta/galaxy/infinite-scroll-trigger';\nimport { GalaxyTooltipModule } from '@vendasta/galaxy/tooltip';\nimport { GalaxyAlertModule } from '@vendasta/galaxy/alert';\nimport { ContactType, RecipientCampaignService, RecipientType, Sender, SenderType } from '@vendasta/campaigns';\nimport { CrmFieldService, StandardExternalIds } from '../../../../shared-services/crm-services/field.service';\nimport { CrmObjectService } from '../../../../shared-services/crm-services/crm-object-service/crm-object.service';\nimport {\n CrmDependencies,\n CrmInjectionToken,\n PageAnalyticsInjectionToken,\n pageAnalyticsInjectionTokenGenerator,\n} from '../../../../tokens-and-interfaces';\nimport { GalaxyDatepickerModule } from '@vendasta/galaxy/datepicker';\nimport { MatDatepickerModule } from '@angular/material/datepicker';\nimport { BehaviorSubject, combineLatest, Observable, of } from 'rxjs';\nimport { RecipientV2Interface } from '@vendasta/campaigns';\nimport { catchError, map, switchMap, take } from 'rxjs/operators';\nimport { SnackbarService } from '@vendasta/galaxy/snackbar-service';\nimport { CrmObjectInterface } from '@vendasta/crm';\nimport { AddCampaignDialogComponent, Campaign } from './add-campaign-dialog.component';\nimport { format as formatDate } from 'date-fns-tz';\nimport { takeUntilDestroyed } from '@angular/core/rxjs-interop';\n\nexport interface dialogData {\n campaign: Campaign;\n id: string;\n}\n@Component({\n selector: 'crm-start-campaign-modal',\n templateUrl: './start-campaign-dialog.component.html',\n styleUrls: ['./start-campaign-dialog.component.scss'],\n imports: [\n CommonModule,\n MatButtonModule,\n TranslateModule,\n GalaxyLoadingSpinnerModule,\n MatDialogModule,\n GalaxyEmptyStateModule,\n MatIconModule,\n GalaxyFormFieldModule,\n MatRadioModule,\n FormsModule,\n VaFormsModule,\n MatInputModule,\n GalaxyButtonLoadingIndicatorModule,\n MatProgressSpinnerModule,\n VaFilterModule,\n GalaxyInfiniteScrollTriggerModule,\n ReactiveFormsModule,\n GalaxyTooltipModule,\n GalaxyAlertModule,\n GalaxyDatepickerModule,\n MatDatepickerModule,\n ],\n providers: [\n RecipientCampaignService,\n CrmFieldService,\n {\n provide: PageAnalyticsInjectionToken,\n useFactory: pageAnalyticsInjectionTokenGenerator('Contact'),\n },\n ],\n\n standalone: true,\n})\nexport class StartCampaignDialogComponent implements OnInit {\n formGroup = new FormBuilder().nonNullable.group({\n selectFormControl: '',\n dateFormControl: formatDate(new Date(), \"yyyy-MM-dd'T'HH:mm\"),\n });\n\n campaignStartTime: Date;\n nowDate = new Date(Date.now());\n crmObject$: Observable;\n selectedCampaign: Campaign;\n loading$$: BehaviorSubject = new BehaviorSubject(false);\n\n constructor(\n private readonly destroyRef: DestroyRef,\n @Inject(MAT_DIALOG_DATA) readonly modalData: dialogData,\n private dialog: MatDialog,\n private readonly translate: TranslateService,\n private readonly objectService: CrmObjectService,\n @Inject(CrmInjectionToken) private readonly config: CrmDependencies,\n readonly ref: MatDialogRef,\n private snackbarService: SnackbarService,\n private readonly recipientCampaignService: RecipientCampaignService,\n\n private crmFieldService: CrmFieldService,\n ) {\n this.crmObject$ = objectService.getMultiObject('Contact', [this.modalData.id || '']).pipe(\n map((resp) => {\n const object = resp?.crmObjects?.[0];\n if (resp?.crmObjects?.length === 0 || !object) {\n return {};\n }\n return object;\n }),\n );\n }\n\n ngOnInit() {\n this.selectedCampaign = this.modalData.campaign;\n }\n\n sendCampaign() {\n if (this.selectedCampaign === undefined) {\n this.snackbarService.openErrorSnack('CAMPAIGNS.CONTACTS.MODAL.ERRORS.NO_CAMPAIGN_SELECTED');\n return;\n }\n let sender: Sender;\n combineLatest([this.config.namespace$, this.config.parentNamespace$])\n .pipe(take(1))\n .subscribe(([namespace, parentNamespace]) => {\n let senderType = SenderType.SENDER_TYPE_PARTNER;\n if (parentNamespace) {\n senderType = SenderType.SENDER_TYPE_BUSINESS;\n }\n sender = {\n type: senderType,\n id: namespace,\n } as Sender;\n });\n\n const recipient: Observable = this.crmObject$.pipe(\n map((object) => {\n return {\n id: object.crmObjectId,\n type: RecipientType.RECIPIENT_TYPE_CRM_CONTACT,\n contact: {\n type: ContactType.CONTACT_TYPE_EMAIL,\n value: this.crmFieldService.getFieldValueFromCrmObject(object, StandardExternalIds.Email)?.stringValue,\n },\n emailAddress: this.crmFieldService.getFieldValueFromCrmObject(object, StandardExternalIds.Email)?.stringValue,\n phoneNumber: this.crmFieldService.getFieldValueFromCrmObject(object, StandardExternalIds.PhoneNumber)\n ?.stringValue,\n };\n }),\n );\n\n this.loading$$.next(true);\n recipient\n .pipe(\n takeUntilDestroyed(this.destroyRef),\n switchMap((rec) => {\n const formValues = this.formGroup.getRawValue();\n\n this.campaignStartTime = formValues.dateFormControl\n ? new Date(formValues.dateFormControl)\n : new Date(Date.now());\n\n return this.recipientCampaignService\n .addToCampaign(this.selectedCampaign.id, sender, rec, this.campaignStartTime)\n .pipe(\n map(() => ''),\n catchError(() => {\n return of(rec.contact?.value || rec.emailAddress);\n }),\n );\n }),\n )\n .subscribe((resp) => {\n const failedAddresses = resp !== '' ? [resp] : [];\n if (failedAddresses.length > 0) {\n this.snackbarService.openErrorSnack(this.translate.instant('ASSOCIATIONS.CAMPAIGNS.MODAL.ERROR'));\n } else {\n this.loading$$.next(false);\n this.snackbarService.openSuccessSnack(\n this.translate.instant('ASSOCIATIONS.CAMPAIGNS.MODAL.SUCCESS') + ' ' + this.selectedCampaign.title,\n );\n }\n this.close();\n });\n }\n\n close() {\n this.ref.close();\n }\n\n back() {\n this.ref.close();\n this.dialog.open(AddCampaignDialogComponent, {\n width: '500px',\n data: {\n id: this.modalData.id,\n },\n });\n }\n}\n","

{{ 'ASSOCIATIONS.CAMPAIGNS.ADD_ASSOCIATION' | translate }}

\n\n

{{ 'ASSOCIATIONS.CAMPAIGNS.START' | translate }}

\n
\n
\n \n \n \n {{ 'ASSOCIATIONS.CAMPAIGNS.START_CAMPAIGN.NOW' | translate }}\n \n {{ 'ASSOCIATIONS.CAMPAIGNS.START_NOW' | translate }} {{ nowDate | date: 'long' }}\n \n \n {{ 'ASSOCIATIONS.CAMPAIGNS.START_CAMPAIGN.LATER' | translate }}\n \n {{ 'ASSOCIATIONS.CAMPAIGNS.START_LATER' | translate }}\n \n \n \n \n \n \n \n
\n
\n
\n\n \n \n \n \n\n","import { CommonModule } from '@angular/common';\nimport { Component, Inject, OnInit } from '@angular/core';\nimport { FormsModule, ReactiveFormsModule, UntypedFormControl } from '@angular/forms';\nimport { MatButtonModule } from '@angular/material/button';\nimport { MAT_DIALOG_DATA, MatDialog, MatDialogModule, MatDialogRef } from '@angular/material/dialog';\nimport { MatIconModule } from '@angular/material/icon';\nimport { MatInputModule } from '@angular/material/input';\nimport { MatProgressSpinnerModule } from '@angular/material/progress-spinner';\nimport { MatRadioModule } from '@angular/material/radio';\nimport { CrmFieldService } from '../../../../shared-services/crm-services/field.service';\nimport { CrmObjectService } from '../../../../shared-services/crm-services/crm-object-service/crm-object.service';\nimport {\n CrmDependencies,\n CrmInjectionToken,\n PageAnalyticsInjectionToken,\n pageAnalyticsInjectionTokenGenerator,\n} from '../../../../tokens-and-interfaces';\nimport { TranslateModule, TranslateService } from '@ngx-translate/core';\nimport { GalaxyAlertModule } from '@vendasta/galaxy/alert';\nimport {\n CampaignService,\n RecipientCampaignService,\n SenderType,\n SortDirection,\n SortField,\n SortOptions,\n Statuses,\n} from '@vendasta/campaigns';\nimport { SenderInterface } from '@vendasta/email';\nimport { VaFormsModule } from '@vendasta/forms';\nimport { GalaxyButtonLoadingIndicatorModule } from '@vendasta/galaxy/button-loading-indicator';\nimport { GalaxyEmptyStateModule } from '@vendasta/galaxy/empty-state';\nimport { GalaxyFormFieldModule } from '@vendasta/galaxy/form-field';\nimport { GalaxyInfiniteScrollTriggerModule } from '@vendasta/galaxy/infinite-scroll-trigger';\nimport { GalaxyLoadingSpinnerModule } from '@vendasta/galaxy/loading-spinner';\nimport { GalaxyTooltipModule } from '@vendasta/galaxy/tooltip';\nimport { Scrollable } from '@vendasta/rx-utils';\nimport { VaFilterModule } from '@vendasta/uikit';\nimport { BehaviorSubject, combineLatest, Observable, of } from 'rxjs';\nimport { catchError, debounceTime, distinctUntilChanged, map, startWith, take } from 'rxjs/operators';\nimport { CrmObjectInterface } from '@vendasta/crm';\nimport { StartCampaignDialogComponent } from './start-campaign-dialog.component';\nimport { MatExpansionModule } from '@angular/material/expansion';\n\nexport interface Campaign {\n id: string;\n title: string;\n updated: string;\n}\n\nexport interface contactCard {\n id: string;\n}\n\n@Component({\n selector: 'crm-add-campaign-modal',\n templateUrl: './add-campaign-dialog.component.html',\n styleUrls: ['./add-campaign-dialog.component.scss'],\n imports: [\n CommonModule,\n MatButtonModule,\n TranslateModule,\n GalaxyLoadingSpinnerModule,\n MatDialogModule,\n GalaxyEmptyStateModule,\n MatIconModule,\n GalaxyFormFieldModule,\n MatRadioModule,\n FormsModule,\n VaFormsModule,\n MatInputModule,\n GalaxyButtonLoadingIndicatorModule,\n MatProgressSpinnerModule,\n VaFilterModule,\n GalaxyInfiniteScrollTriggerModule,\n ReactiveFormsModule,\n GalaxyTooltipModule,\n GalaxyAlertModule,\n MatExpansionModule,\n ],\n providers: [\n RecipientCampaignService,\n CrmFieldService,\n {\n provide: PageAnalyticsInjectionToken,\n useFactory: pageAnalyticsInjectionTokenGenerator('Contact'),\n },\n ],\n\n standalone: true,\n})\nexport class AddCampaignDialogComponent implements OnInit {\n crmObject$: Observable;\n searchControl = new UntypedFormControl();\n campaigns$$ = new BehaviorSubject([] as Campaign[]);\n campaigns$ = this.campaigns$$.asObservable();\n criteria$ = this.searchControl.valueChanges.pipe(startWith(''), distinctUntilChanged(), debounceTime(300));\n selectedCampaign: Campaign;\n scrollable: Scrollable;\n loading$$: BehaviorSubject = new BehaviorSubject(false);\n placeholder = '';\n\n constructor(\n private readonly translate: TranslateService,\n private readonly objectService: CrmObjectService,\n @Inject(CrmInjectionToken) private readonly config: CrmDependencies,\n readonly ref: MatDialogRef,\n private readonly campaignService: CampaignService,\n private dialog: MatDialog,\n @Inject(MAT_DIALOG_DATA) readonly modalData: contactCard,\n ) {\n this.crmObject$ = objectService.getMultiObject('Contact', [this.modalData.id || '']).pipe(\n map((resp) => {\n const object = resp?.crmObjects?.[0];\n if (resp?.crmObjects?.length === 0 || !object) {\n return {};\n }\n return object;\n }),\n );\n }\n\n ngOnInit() {\n combineLatest([this.config.namespace$, this.config.parentNamespace$])\n .pipe(take(1))\n .subscribe(([namespace, parentNamespace]) => {\n let senderType = SenderType.SENDER_TYPE_PARTNER;\n if (parentNamespace) {\n senderType = SenderType.SENDER_TYPE_BUSINESS;\n }\n this.scrollable = this.getScrollableList(namespace, senderType);\n this.campaigns$ = this.scrollable.items$;\n this.placeholder = this.translate.instant('CAMPAIGNS.CONTACTS.MODAL.SEARCH_PLACEHOLDER');\n });\n }\n\n close() {\n this.ref.close();\n }\n\n loadNext() {\n this.scrollable.loadMore();\n }\n\n onItemChange(campaign: Campaign) {\n this.selectedCampaign = campaign;\n }\n\n getScrollableList(senderId: string, senderType: SenderType) {\n return new Scrollable(this.criteria$, (criteria, cursor) => {\n return this.loadMore(criteria, cursor, senderId, senderType);\n });\n }\n\n loadMore(criteria: string, cursor: string, senderId: string, senderType: SenderType) {\n this.loading$$.next(true);\n return this.campaignService\n .listCampaignsV2(\n { type: senderType, id: senderId } as SenderInterface,\n [Statuses.STATUSES_ACTIVE, Statuses.STATUSES_PUBLISHED],\n criteria,\n { cursor: cursor, pageSize: 10 },\n { field: SortField.SORT_FIELDS_UPDATED_AT, direction: SortDirection.SORT_ORDER_DESCENDING } as SortOptions,\n )\n .pipe(\n map((response) => {\n this.loading$$.next(false);\n return {\n items: response.campaigns.map((campaign) => {\n return {\n id: campaign.campaignId,\n title: campaign.name,\n updated: campaign.updated.toISOString(),\n } as Campaign;\n }),\n cursor: response.metadata?.nextCursor ?? null,\n hasMore: response.metadata?.hasMore ?? false,\n };\n }),\n catchError(() => of({ items: [] as Array, cursor: '', hasMore: false })),\n );\n }\n\n openStartCampaignDialog() {\n this.ref.close();\n this.dialog.open(StartCampaignDialogComponent, {\n data: {\n campaign: this.selectedCampaign,\n id: this.modalData.id,\n },\n width: '500px',\n });\n }\n}\n","

{{ 'ASSOCIATIONS.CAMPAIGNS.ADD_ASSOCIATION' | translate }}

\n\n \n \n \n \n
\n \n \n
\n
\n \n {{ campaign.title }}\n \n {{ 'ASSOCIATIONS.CAMPAIGNS.MODAL.UPDATED' | translate }}\n {{ campaign.updated | date: 'mediumDate' }}\n \n \n
\n
\n
\n
\n \n \n account_circle\n \n

{{ 'ASSOCIATIONS.CAMPAIGNS.MODAL.NO_CAMPAIGNS' | translate }}

\n
\n
\n \n \n \n
\n
\n
\n
\n\n \n \n \n \n {{ 'ACTIONS.NEXT' | translate }}\n \n \n \n\n","import { BreakpointObserver, BreakpointState, Breakpoints } from '@angular/cdk/layout';\nimport { AsyncPipe, CommonModule } from '@angular/common';\nimport { Component, Inject } from '@angular/core';\nimport { MatButtonModule } from '@angular/material/button';\nimport { MAT_DIALOG_DATA, MatDialogModule, MatDialogRef } from '@angular/material/dialog';\nimport { MatSort } from '@angular/material/sort';\nimport { MatTableModule } from '@angular/material/table';\nimport { TranslateService } from '@ngx-translate/core';\nimport { RxState } from '@rx-angular/state';\nimport { GalaxyEmptyStateModule } from '@vendasta/galaxy/empty-state';\nimport { GalaxyFilterChipsModule, GalaxyFilterInterface } from '@vendasta/galaxy/filter/chips';\nimport { GalaxyLoadingSpinnerModule } from '@vendasta/galaxy/loading-spinner';\nimport { SnackbarService } from '@vendasta/galaxy/snackbar-service';\nimport { GalaxyDataSource, GalaxyTableModule, Row } from '@vendasta/galaxy/table';\nimport { GalaxyColumnDef } from '@vendasta/galaxy/table/src/table.interface';\nimport { Observable } from 'rxjs';\nimport { map, startWith } from 'rxjs/operators';\nimport { Association } from '../../shared-services/crm-services/crm-object-service/crm-association.service';\nimport { LIST_OBJECTS_DEFAULT_PAGE_SIZE, LIST_OBJECTS_PAGE_SIZE_OPTIONS, SNACKBAR_DURATION } from '../../constants';\nimport { ObjectType } from '../../tokens-and-interfaces';\nimport { TranslationModule } from '../../i18n/translation-module';\nimport { ListObjectsTableComponent } from '../list-objects/list-objects-table.component';\nimport { ListObjectsTableService } from '../list-objects/list-objects-table.service';\nimport { TranslateByObjectTypePipe } from '../../i18n/translate-by-object-type/translate-by-object-type.pipe';\nimport { TranslateByObjectTypeService } from '../../i18n/translate-by-object-type/translate-by-object-type.service';\n\nexport interface ListObjectTypeDialogData {\n baseColumnIds: string[];\n modalTitle: string;\n objectType: ObjectType;\n associations: Association[];\n associationType: string;\n newSelection: string;\n enableMultiplePreSelectedRows?: boolean;\n newSelectionIDs?: string[];\n hideCreateButton: boolean;\n singleSelection?: boolean;\n}\nexport interface ListObjectTypeDialogResult {\n selectedRows: Row[];\n clickedCreate?: boolean;\n}\n\n@Component({\n selector: 'crm-select-object-type-modal',\n templateUrl: './select-object-type-modal.component.html',\n styleUrls: ['./select-object-type-modal.component.scss'],\n imports: [\n CommonModule,\n MatButtonModule,\n TranslationModule,\n MatDialogModule,\n AsyncPipe,\n ListObjectsTableComponent,\n GalaxyLoadingSpinnerModule,\n GalaxyEmptyStateModule,\n GalaxyTableModule,\n MatTableModule,\n GalaxyFilterChipsModule,\n TranslateByObjectTypePipe,\n ],\n providers: [ListObjectsTableService, RxState],\n standalone: true,\n})\nexport class SelectObjectTypeModalComponent {\n dataSource: GalaxyDataSource = this.service.dataSource;\n columns$: Observable = this.service.columns$;\n initialLoading$: Observable = this.service.initialLoading$;\n showObjects$: Observable = this.service.showObjects$;\n showEmptyState$: Observable = this.service.showEmptyState$;\n objectType: ObjectType;\n selectedRows: Row[] = [];\n showFiltersApplied$: Observable = this.dataSource.filtersApplied$;\n isMobile$: Observable;\n\n newSelectedRow: Row[] = [\n {\n id: this.data?.newSelection,\n data: {},\n } as Row,\n ];\n enablePreselectedRows: boolean = this.data?.enableMultiplePreSelectedRows ?? false;\n preSelectedRows?: Row[] = this.data?.newSelectionIDs?.map((id) => {\n return {\n id,\n data: {},\n } as Row;\n });\n newSelection: Row[] = this.enablePreselectedRows ? this.preSelectedRows ?? [] : this.newSelectedRow;\n\n shouldOpenSelectModal = false;\n\n pageSizeOptions: number[] = LIST_OBJECTS_PAGE_SIZE_OPTIONS;\n pageSize: number = LIST_OBJECTS_DEFAULT_PAGE_SIZE;\n\n hasAssociations: boolean = this.data.associations.length > 0 ? true : false;\n preSelectedLockedRow: Row[] = this.data.associations.map((association) => {\n return {\n id: association?.associatedObject?.crmObjectId,\n data: {},\n } as Row;\n });\n\n constructor(\n @Inject(MAT_DIALOG_DATA) public data: ListObjectTypeDialogData,\n private readonly service: ListObjectsTableService,\n private dialogRef: MatDialogRef,\n private readonly snackService: SnackbarService,\n private readonly translateService: TranslateService,\n private readonly breakpointObserver: BreakpointObserver,\n private readonly translateByObjectTypeService: TranslateByObjectTypeService,\n ) {\n this.service.setObjectType(this.data.objectType);\n this.service.setShowActions(false);\n this.service.setBaseColumns(this.data.baseColumnIds);\n this.objectType = this.data.objectType;\n this.isMobile$ = this.breakpointObserver.observe(Breakpoints.XSmall).pipe(\n startWith({\n matches: false,\n breakpoints: {\n [Breakpoints.XSmall]: false,\n },\n } as BreakpointState),\n map((breakpoint: BreakpointState) => breakpoint.matches),\n );\n }\n\n updateFilters(filters: GalaxyFilterInterface[]): void {\n this.service.filters = filters;\n this.dataSource.setFilters(filters);\n }\n\n selectionChanged(rows: Row[]): void {\n if (this.preSelectedLockedRow.length > 0) {\n const filteredData = rows.filter((data) => !this.preSelectedLockedRow.some((item) => item.id === data.id));\n this.selectedRows = filteredData;\n return;\n }\n this.selectedRows = rows;\n }\n\n cancel(): void {\n this.dialogRef.close();\n }\n\n selectContacts(): void {\n if (this.selectedRows.length > 0) {\n this.dialogRef.close({ selectedRows: this.selectedRows });\n } else {\n const translatedString = this.translateByObjectTypeService.getTranslationByObjectType(\n this.objectType,\n 'SELECT_MODAL.NO_SELECTED',\n );\n this.snackService.openWithOptions(this.translateService.instant(translatedString), {\n duration: SNACKBAR_DURATION,\n });\n }\n }\n\n saveCompanies(): void {\n if (this.selectedRows.length > 0) {\n this.dialogRef.close({ selectedRows: this.selectedRows });\n } else {\n const translatedString = this.translateByObjectTypeService.getTranslationByObjectType(\n this.objectType,\n 'SELECT_MODAL.NO_SELECTED',\n );\n this.snackService.openWithOptions(this.translateService.instant(translatedString), {\n duration: SNACKBAR_DURATION,\n });\n }\n }\n\n createContactModal(): void {\n this.shouldOpenSelectModal = true;\n\n this.dialogRef.close({ selectedRows: this.selectedRows, clickedCreate: true } as ListObjectTypeDialogResult);\n }\n\n save(): void {\n if (this.selectedRows.length > 0) {\n this.dialogRef.close({ selectedRows: this.selectedRows });\n } else {\n const translatedString = this.translateByObjectTypeService.getTranslationByObjectType(\n this.objectType,\n 'SELECT_MODAL.NO_SELECTED',\n );\n this.snackService.openWithOptions(this.translateService.instant(translatedString), {\n duration: SNACKBAR_DURATION,\n });\n }\n }\n}\n","

{{ data.modalTitle }}

\n\n \n\n \n \n \n \n \n {{ 'LIST_OBJECTS_TABLE.EMPTY_TABLE.HEADER' | translateByObjectType: objectType }}\n \n

{{ 'LIST_OBJECTS_TABLE.EMPTY_TABLE.HINT' | translateByObjectType: objectType }}

\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 \n
\n \n
\n \n\n \n
\n \n \n \n \n \n \n \n \n \n \n
\n {{ 'SELECT_MODAL.ONE_SELECTED' | translateByObjectType: objectType }}\n
\n
\n \n
\n {{ 'SELECT_MODAL.MORE_SELECTED' | translateByObjectType: objectType : { totalSelected: selectedRows.length } }}\n
\n
\n
\n","import { CommonModule } from '@angular/common';\nimport { Component, Inject } from '@angular/core';\nimport { MatButtonModule } from '@angular/material/button';\nimport { MAT_DIALOG_DATA, MatDialogModule, MatDialogRef } from '@angular/material/dialog';\nimport { TranslateModule } from '@ngx-translate/core';\nimport { SnackbarService } from '@vendasta/galaxy/snackbar-service';\nimport { CrmAssociationService } from '../../../shared-services/crm-services/crm-object-service/crm-association.service';\nimport { SNACKBAR_DURATION } from '../../../constants';\n\nexport interface RemoveAssociationData {\n associationID: string;\n fromName: string;\n removeName: string;\n}\n\n@Component({\n selector: 'crm-remove-association-dialog',\n standalone: true,\n imports: [CommonModule, TranslateModule, MatDialogModule, MatButtonModule],\n templateUrl: './remove-association-dialog.component.html',\n styleUrls: ['./remove-association-dialog.component.scss'],\n})\nexport class RemoveAssociationDialogComponent {\n constructor(\n public dialogRef: MatDialogRef,\n @Inject(MAT_DIALOG_DATA) public data: RemoveAssociationData,\n private readonly crmAssociationService: CrmAssociationService,\n private readonly snackService: SnackbarService,\n ) {}\n\n remove(): void {\n this.crmAssociationService.removeAssociation(this.data.associationID).subscribe({\n next: () => {\n this.snackService.openSuccessSnack('ASSOCIATIONS.REMOVE_DIALOG.SUCCESS', {\n duration: SNACKBAR_DURATION,\n });\n this.dialogRef.close(true);\n },\n error: () => {\n this.snackService.openErrorSnack('ASSOCIATIONS.REMOVE_DIALOG.ERROR', {\n duration: SNACKBAR_DURATION,\n });\n },\n });\n }\n cancel(): void {\n this.dialogRef.close();\n }\n}\n","

\n {{ 'ASSOCIATIONS.REMOVE_DIALOG.TITLE' | translate }}\n

\n\n

\n {{ 'ASSOCIATIONS.REMOVE_DIALOG.MESSAGE' | translate : { fromName: data.fromName, removeName: data.removeName } }}\n

\n
\n\n \n \n\n","import { CommonModule } from '@angular/common';\nimport { Component, Inject, inject, Injector } from '@angular/core';\nimport { MatButtonModule } from '@angular/material/button';\nimport { MatDialog, MatDialogModule } from '@angular/material/dialog';\nimport { MatExpansionModule } from '@angular/material/expansion';\nimport { MatIconModule } from '@angular/material/icon';\nimport { MatMenuModule } from '@angular/material/menu';\nimport { MatTooltipModule } from '@angular/material/tooltip';\nimport { RouterLink } from '@angular/router';\nimport { TranslateService } from '@ngx-translate/core';\nimport { GalaxyAlertModule } from '@vendasta/galaxy/alert';\nimport { GalaxyFilterChipInjectionToken } from '@vendasta/galaxy/filter/chips';\nimport { SnackbarService } from '@vendasta/galaxy/snackbar-service';\nimport { Row } from '@vendasta/galaxy/table';\nimport { BehaviorSubject, combineLatest, Observable } from 'rxjs';\nimport { filter, map, mergeMap, switchMap, take, tap } from 'rxjs/operators';\nimport {\n Association,\n CrmAssociationService,\n SelectedObjects,\n} from '../../../shared-services/crm-services/crm-object-service/crm-association.service';\nimport { CrmObjectService } from '../../../shared-services/crm-services/crm-object-service/crm-object.service';\nimport { CrmFieldService, StandardIds } from '../../../shared-services/crm-services/field.service';\nimport { TranslationModule } from '../../../i18n/translation-module';\nimport { AssociationCardComponent } from '../association-card/association-card.component';\nimport { CommonAssociationCardContentComponent } from '../association-card/common-associaon-card-content/common-association-card-content.component';\nimport { TagsComponent } from '../association-card/tags/tags.component';\nimport { AssociationsDialogData } from '../select-associations-modal/select-associations-modal.component';\nimport {\n ListObjectTypeDialogData,\n SelectObjectTypeModalComponent,\n} from '../../select-object-type-modal/select-object-type-modal.component';\nimport {\n RemoveAssociationData,\n RemoveAssociationDialogComponent,\n} from '../remove-association-dialog/remove-association-dialog.component';\nimport { MatCardModule } from '@angular/material/card';\nimport {\n combineAssociationsWithChanges,\n DefaultAssociationActionsService,\n} from '../../../shared-services/default-association-actions.service';\nimport { CrmObjectInterface } from '@vendasta/crm/lib/_internal/interfaces/crm-objects.interface';\nimport {\n CardData,\n COMPANY_PROFILE_CARD_DATA_TOKEN,\n CrmDependencies,\n CrmInjectionToken,\n PageAnalyticsInjectionToken,\n pageAnalyticsInjectionTokenGenerator,\n tableFiltersInjectionTokenGenerator,\n} from '../../../tokens-and-interfaces';\nimport { PAGE_ROUTES, SNACKBAR_DURATION } from '../../../constants';\nimport { CompanyTableCustomizationService } from '../../../shared-services';\n\ninterface ChildCompanyAssociationsCardData extends CardData {\n associationId: string;\n parentCompanyName: string;\n}\n\ninterface ParentCompanyAssociationsCardData extends CardData {\n associationId: string;\n childCompanyName: string;\n}\n\n@Component({\n selector: 'crm-parent-child-company-associations-card',\n standalone: true,\n imports: [\n CommonModule,\n TranslationModule,\n MatExpansionModule,\n AssociationCardComponent,\n CommonAssociationCardContentComponent,\n TagsComponent,\n GalaxyAlertModule,\n MatIconModule,\n MatButtonModule,\n MatTooltipModule,\n RouterLink,\n MatMenuModule,\n MatDialogModule,\n MatCardModule,\n ],\n providers: [\n {\n provide: PageAnalyticsInjectionToken,\n useFactory: pageAnalyticsInjectionTokenGenerator('Company'),\n },\n ],\n templateUrl: './parent-child-company-associations-card.component.html',\n styleUrls: [\n './parent-child-company-associations-card.component.scss',\n '../../../shared-styles/association-panel-shared.scss',\n ],\n})\nexport class ParentChildCompanyAssociationsCardComponent {\n data = inject(COMPANY_PROFILE_CARD_DATA_TOKEN);\n childCompanies$: Observable;\n parentCompany$: Observable;\n\n getAssociations$: Observable;\n loadAssociations$$ = new BehaviorSubject([]);\n preSelectedRows$$ = new BehaviorSubject([]);\n fullName$: Observable;\n modalData$: Observable;\n canOpenModal = false;\n removedAssociationIds$$ = new BehaviorSubject([]);\n removedParentAssociationIds$$ = new BehaviorSubject([]);\n setParentAssociation$$ = new BehaviorSubject(undefined);\n\n newCompany$$ = new BehaviorSubject('');\n changedAssociations$$ = new BehaviorSubject([]);\n\n private readonly injector = inject(Injector);\n\n constructor(\n @Inject(CrmInjectionToken) private readonly config: CrmDependencies,\n private readonly objectService: CrmObjectService,\n private readonly fieldService: CrmFieldService,\n private readonly associationService: CrmAssociationService,\n private readonly dialog: MatDialog,\n private translateService: TranslateService,\n private readonly companyCustomizationService: CompanyTableCustomizationService,\n private crmAssociationService: CrmAssociationService,\n private readonly snackService: SnackbarService,\n private readonly defaultAssociationActionsService: DefaultAssociationActionsService,\n ) {\n this.associationService.setCrmObjectIdToAssociate(this.data?.company_id || '');\n this.fullName$ = objectService.getMultiObject('Company', [this.data.company_id || '']).pipe(\n map((resp) => {\n const object = resp?.crmObjects?.[0];\n if (resp?.crmObjects?.length === 0 || !object) {\n return '';\n }\n return this.companyCustomizationService.getRowFullName(object || {});\n }),\n );\n\n this.getAssociations$ = this.associationService.getChildCompanyAssociationsForCompany$(this.data.company_id || '');\n\n const latestCompanies$ = this.loadAssociations$$.pipe(\n switchMap(() =>\n combineLatest([\n this.getAssociations$,\n this.config.routePrefix$,\n this.loadAssociations$$,\n this.changedAssociations$$,\n this.fullName$,\n ]),\n ),\n tap(() => {\n this.removedAssociationIds$$.next([]);\n }),\n map(([associations, routePrefix, copyCrmObject, changed, fullName]) => {\n const associatedObjects = copyCrmObject.map((association) => {\n return {\n associationId: association.associationId,\n associationType: 'Company-Company',\n tags: [],\n associatedObject: association,\n } as Association;\n });\n\n const combinedData = [...associations, ...associatedObjects];\n const existingAssociationsCombined = [...associatedObjects];\n this.preSelectedRows$$.next(existingAssociationsCombined);\n const dataWithChanges = combineAssociationsWithChanges(combinedData, changed);\n\n return dataWithChanges\n .filter((association, index, array) => {\n return (\n !!association.associatedObject &&\n array.findIndex((a) => a.associationId === association.associationId) === index\n );\n })\n .map((association) => {\n if (!association.associatedObject) {\n return {} as ChildCompanyAssociationsCardData;\n }\n\n const data = {\n associationId: association.associationId,\n parentCompanyName: fullName,\n businessName: this.fieldService.getFieldValueFromCrmObject(\n association.associatedObject,\n StandardIds.CompanyName,\n )?.stringValue,\n businessWebsite: this.fieldService.getFieldValueFromCrmObject(\n association.associatedObject,\n StandardIds.CompanyWebsite,\n )?.stringValue,\n type: 'business',\n tags: (association.tags || []).filter((tag) => tag !== 'Parent'),\n id: association.associatedObject.crmObjectId || '',\n profileButtonUrl:\n `${routePrefix}/${PAGE_ROUTES.COMPANY.ROOT}/${PAGE_ROUTES.COMPANY.SUBROUTES.PROFILE}`.replace(\n ':crmObjectId',\n association.associatedObject.crmObjectId || '',\n ),\n } as ChildCompanyAssociationsCardData;\n return data;\n });\n }),\n );\n\n this.childCompanies$ = combineLatest([latestCompanies$, this.removedAssociationIds$$.asObservable()]).pipe(\n map(([companies, removed]) => {\n return companies.filter((company) => {\n return !removed.includes(company.associationId);\n });\n }),\n );\n\n const latestParentCompany$ = this.associationService.getParentCompanyAssociationsForCompany$(\n this.data.company_id || '',\n );\n this.parentCompany$ = combineLatest([\n latestParentCompany$,\n this.removedParentAssociationIds$$.asObservable(),\n this.config.routePrefix$,\n this.fullName$,\n this.setParentAssociation$$.asObservable(),\n ]).pipe(\n map(([parentCompany, removed, routePrefix, fullName, setParentAssociation]) => {\n if (setParentAssociation) {\n parentCompany.splice(0, 0, {\n associationId: setParentAssociation.associationId,\n associationType: 'Company-Company',\n tags: [],\n associatedObject: setParentAssociation,\n } as Association);\n }\n return parentCompany\n .filter((company) => {\n return !removed.includes(company.associationId);\n })\n .map((company) => {\n return {\n associationId: company.associationId,\n childCompanyName: fullName,\n businessName: this.fieldService.getFieldValueFromCrmObject(\n company.associatedObject,\n StandardIds.CompanyName,\n )?.stringValue,\n businessWebsite: this.fieldService.getFieldValueFromCrmObject(\n company.associatedObject,\n StandardIds.CompanyWebsite,\n )?.stringValue,\n type: 'business',\n tags: (company.tags || []).filter((tag) => tag !== 'Parent'),\n id: company.associatedObject.crmObjectId || '',\n profileButtonUrl:\n `${routePrefix}/${PAGE_ROUTES.COMPANY.ROOT}/${PAGE_ROUTES.COMPANY.SUBROUTES.PROFILE}`.replace(\n ':crmObjectId',\n company.associatedObject.crmObjectId || '',\n ),\n } as ParentCompanyAssociationsCardData;\n })[0];\n }),\n );\n\n this.modalData$ = combineLatest([this.fullName$, this.preSelectedRows$$, this.newCompany$$]).pipe(\n map(([objectIdAndName, associations, newContact]) => ({\n modalTitle: objectIdAndName,\n primarySelect: '',\n description: '',\n selectedRows: [],\n selectedCompanyNames: [],\n fromId: '',\n copyCrmObjects: [],\n associationType: '',\n associations: associations,\n newSelection: newContact,\n })),\n );\n }\n\n openAddChildModal(): void {\n if (this.canOpenModal) {\n return;\n }\n this.canOpenModal = true;\n this.modalData$\n .pipe(\n take(1),\n tap(() => {\n this.canOpenModal = false;\n }),\n switchMap((data) => {\n const dialogRef = this.dialog.open(SelectObjectTypeModalComponent, {\n data: {\n baseColumnIds: [],\n objectType: 'Company',\n modalTitle: this.translateService.instant(\n 'ASSOCIATIONS.PARENT_CHILD_COMPANIES.ADD_CHILD_COMPANY_MODAL.TITLE',\n {\n companyName: data.modalTitle,\n },\n ),\n associations: data.associations,\n associationType: 'Company-Company',\n newSelection: data.newSelection,\n hideCreateButton: true,\n } as ListObjectTypeDialogData,\n injector: Injector.create({\n providers: [\n {\n provide: PageAnalyticsInjectionToken,\n useFactory: pageAnalyticsInjectionTokenGenerator('Company'),\n },\n {\n provide: GalaxyFilterChipInjectionToken,\n useFactory: tableFiltersInjectionTokenGenerator('Company'),\n },\n ],\n parent: this.injector,\n }),\n });\n return dialogRef.afterClosed();\n }),\n map((modalResponse) => {\n let selectedRows = modalResponse?.selectedRows || [];\n if (modalResponse?.clickedCreate === true) {\n selectedRows = new Array();\n }\n return selectedRows;\n }),\n filter((selectedRows) => !!selectedRows),\n switchMap((selectedRows: Row[]) => {\n const selectedIDs = selectedRows.map((row) => {\n return row.id;\n });\n return this.objectService.getMultiObject('Company', selectedIDs).pipe(\n map((resp) => {\n const copyCrmObjects: CrmObjectInterface[] = resp.crmObjects?.map((object) => object) || [];\n return {\n crmObjects: copyCrmObjects,\n objects: resp.crmObjects?.map((object) => {\n return {\n id: object?.crmObjectId,\n name: this.companyCustomizationService.getRowFullName(object || {}),\n };\n }),\n } as SelectedObjects;\n }),\n );\n }),\n tap((selectedObjects: SelectedObjects) => {\n const updatedObjects = {\n crmObjects: selectedObjects.crmObjects || [],\n objects: selectedObjects.objects || [],\n };\n this.associationService.setCopyCrmObjects(updatedObjects);\n }),\n mergeMap((): Observable => {\n return this.crmAssociationService.createAssociation$('Company-Company', ['Parent'], false);\n }),\n )\n\n .subscribe((copyCrmObjects) => {\n if (copyCrmObjects.respCount.error) {\n this.snackService.openSuccessSnack('ASSOCIATIONS.SUCCESS.PARTIAL_SUCCESS', {\n duration: SNACKBAR_DURATION,\n interpolateTranslateParams: {\n createdCount: copyCrmObjects.respCount.createdCount,\n totalCount: copyCrmObjects.respCount.totalCount,\n },\n });\n } else {\n this.snackService.openSuccessSnack('ASSOCIATIONS.SUCCESS.GENERIC', {\n duration: SNACKBAR_DURATION,\n });\n }\n this.loadAssociations$$.next(copyCrmObjects.copyCrmObjectsUpdated);\n });\n }\n\n openSetParentModal(): void {\n if (this.canOpenModal) {\n return;\n }\n this.canOpenModal = true;\n this.modalData$\n .pipe(\n take(1),\n tap(() => {\n this.canOpenModal = false;\n }),\n switchMap((data) => {\n const dialogRef = this.dialog.open(SelectObjectTypeModalComponent, {\n data: {\n baseColumnIds: [],\n objectType: 'Company',\n modalTitle: this.translateService.instant(\n 'ASSOCIATIONS.PARENT_CHILD_COMPANIES.SET_PARENT_COMPANY_MODAL.TITLE',\n {\n companyName: data.modalTitle,\n },\n ),\n associations: data.associations,\n associationType: 'Company-Company',\n newSelection: data.newSelection,\n hideCreateButton: true,\n singleSelection: true,\n } as ListObjectTypeDialogData,\n injector: Injector.create({\n providers: [\n {\n provide: PageAnalyticsInjectionToken,\n useFactory: pageAnalyticsInjectionTokenGenerator('Company'),\n },\n {\n provide: GalaxyFilterChipInjectionToken,\n useFactory: tableFiltersInjectionTokenGenerator('Company'),\n },\n ],\n parent: this.injector,\n }),\n });\n return dialogRef.afterClosed();\n }),\n map((modalResponse) => {\n let selectedRows = modalResponse?.selectedRows || [];\n if (modalResponse?.clickedCreate === true) {\n selectedRows = new Array();\n }\n return selectedRows;\n }),\n filter((selectedRows) => !!selectedRows),\n switchMap((selectedRows: Row[]) => {\n const selectedIDs = selectedRows.map((row) => {\n return row.id;\n });\n return this.objectService.getMultiObject('Company', selectedIDs).pipe(\n map((resp) => {\n const copyCrmObjects: CrmObjectInterface[] = resp.crmObjects?.map((object) => object) || [];\n return {\n crmObjects: copyCrmObjects,\n objects: resp.crmObjects?.map((object) => {\n return {\n id: object?.crmObjectId,\n name: this.companyCustomizationService.getRowFullName(object || {}),\n };\n }),\n } as SelectedObjects;\n }),\n );\n }),\n tap((selectedObjects: SelectedObjects) => {\n const updatedObjects = {\n crmObjects: selectedObjects.crmObjects || [],\n objects: selectedObjects.objects || [],\n };\n this.associationService.setCopyCrmObjects(updatedObjects);\n }),\n mergeMap((): Observable => {\n return this.crmAssociationService.createAssociation$('Company-Company', ['Parent'], false, 'to');\n }),\n )\n\n .subscribe((copyCrmObjects) => {\n if (copyCrmObjects.respCount.error) {\n this.snackService.openSuccessSnack('ASSOCIATIONS.SUCCESS.PARTIAL_SUCCESS', {\n duration: SNACKBAR_DURATION,\n interpolateTranslateParams: {\n createdCount: copyCrmObjects.respCount.createdCount,\n totalCount: copyCrmObjects.respCount.totalCount,\n },\n });\n } else {\n this.snackService.openSuccessSnack('ASSOCIATIONS.SUCCESS.GENERIC', {\n duration: SNACKBAR_DURATION,\n });\n }\n this.setParentAssociation$$.next(copyCrmObjects.copyCrmObjectsUpdated[0]);\n });\n }\n\n removeChildAssociation(cardData: ChildCompanyAssociationsCardData): void {\n this.dialog\n .open(RemoveAssociationDialogComponent, {\n width: '660px',\n data: {\n associationID: cardData.associationId,\n fromName: cardData.parentCompanyName,\n removeName: cardData.businessName,\n } as RemoveAssociationData,\n })\n .afterClosed()\n .pipe(\n take(1),\n tap((success) => {\n if (success) {\n this.associationService.removeAssociation(cardData.associationId);\n this.removedAssociationIds$$.next([...this.removedAssociationIds$$.value, cardData.associationId]);\n this.preSelectedRows$$.next(\n this.preSelectedRows$$.getValue().filter((row) => row.associationId !== cardData.associationId),\n );\n }\n }),\n )\n .subscribe();\n }\n\n removeParentAssociation(cardData: ParentCompanyAssociationsCardData): void {\n this.dialog\n .open(RemoveAssociationDialogComponent, {\n width: '660px',\n data: {\n associationID: cardData.associationId,\n fromName: cardData.childCompanyName,\n removeName: cardData.businessName,\n } as RemoveAssociationData,\n })\n .afterClosed()\n .pipe(\n take(1),\n tap((success) => {\n if (success) {\n this.associationService.removeAssociation(cardData.associationId);\n this.removedParentAssociationIds$$.next([\n ...this.removedParentAssociationIds$$.value,\n cardData.associationId,\n ]);\n this.setParentAssociation$$.next(undefined);\n }\n }),\n )\n .subscribe();\n }\n}\n","\n \n {{ 'ASSOCIATIONS.PARENT_CHILD_COMPANIES.TITLE' | translate }}\n \n
{{ 'ASSOCIATIONS.PARENT_CHILD_COMPANIES.PARENT_SECTION_TITLE' | translate }}
\n \n \n \n \n \n \n
{{ 'ASSOCIATIONS.PARENT_CHILD_COMPANIES.CHILD_SECTION_TITLE' | translate }}
\n \n \n \n \n
\n","import { CommonModule } from '@angular/common';\nimport { Component, Inject, OnDestroy, OnInit } from '@angular/core';\nimport {\n AbstractControl,\n FormArray,\n FormBuilder,\n FormControl,\n FormGroup,\n ReactiveFormsModule,\n UntypedFormControl,\n} from '@angular/forms';\nimport { MatButtonModule } from '@angular/material/button';\nimport { MAT_DIALOG_DATA, MatDialog, MatDialogModule, MatDialogRef } from '@angular/material/dialog';\nimport { MatRadioModule } from '@angular/material/radio';\nimport { GalaxyFormFieldModule } from '@vendasta/galaxy/form-field';\nimport { Subject, take, takeUntil } from 'rxjs';\nimport {\n Association,\n CrmAssociationService,\n} from '../../../shared-services/crm-services/crm-object-service/crm-association.service';\nimport { PRIMARY_TAG } from '../../../constants';\nimport { TranslationModule } from '../../../i18n/translation-module';\nimport { EditAssociationTagsComponent } from '../edit-association-tags/edit-association-tags.component';\nimport { CompanyTableCustomizationService } from '../../../shared-services';\n\nexport interface SelectedRows {\n id: string;\n name: string;\n}\n\nexport interface AssociationsDialogData {\n newSelection: string;\n modalTitle: string;\n primarySelect: string;\n description: string;\n selectedRows: SelectedRows[];\n associationType: string;\n associations: Association[];\n}\n\n@Component({\n selector: 'crm-select-associations-modal',\n templateUrl: './select-associations-modal.component.html',\n styleUrls: ['./select-associations-modal.component.scss'],\n imports: [\n CommonModule,\n TranslationModule,\n MatDialogModule,\n MatButtonModule,\n GalaxyFormFieldModule,\n MatRadioModule,\n ReactiveFormsModule,\n EditAssociationTagsComponent,\n ],\n providers: [{ provide: CompanyTableCustomizationService }],\n standalone: true,\n})\nexport class SelectAssociationsModalComponent implements OnInit, OnDestroy {\n private destroy$ = new Subject();\n\n constructor(\n @Inject(MAT_DIALOG_DATA) public data: AssociationsDialogData,\n private dialogRef: MatDialogRef,\n private dialog: MatDialog,\n private readonly crmAssociationService: CrmAssociationService,\n private fb: FormBuilder,\n ) {}\n\n ngOnInit(): void {\n this.data.selectedRows.forEach((row, index) => {\n const association = this.fb.group({\n id: new FormControl(row.id || ''),\n tags: new FormControl([]) as UntypedFormControl,\n name: new FormControl(row.name || ''),\n isPrimary: new FormControl(index === 0),\n });\n\n this.associationFormArray.push(association);\n\n association\n .get('tags')\n ?.valueChanges.pipe(takeUntil(this.destroy$))\n .subscribe((tags: string[]) => {\n if (tags?.includes(PRIMARY_TAG)) {\n this.setPrimaryAssociation(index);\n const updatedTags = tags.filter((tag: string) => tag !== PRIMARY_TAG);\n association.get('tags')?.setValue(updatedTags, { emitEvent: false });\n }\n });\n });\n }\n\n ngOnDestroy(): void {\n this.destroy$.next();\n this.destroy$.complete();\n }\n\n associationsFormGroup: FormGroup = this.fb.group({\n associations: this.fb.array([]),\n });\n\n get associationFormArray(): FormArray {\n return this.associationsFormGroup.get('associations') as FormArray;\n }\n\n private get associationTags(): Map {\n const tagsMap = new Map();\n this.associationFormArray.controls.forEach((control) => {\n const association = control as FormGroup;\n const tagsArray = association?.get('tags')?.value;\n if (tagsArray && tagsArray.length > 0) {\n tagsMap.set(association.get('id')?.value, tagsArray);\n }\n });\n return tagsMap;\n }\n\n private get primaryAssociation(): string {\n return this.associationFormArray.controls.find((control) => control.get('isPrimary')?.value)?.get('id')?.value;\n }\n\n cancel(): void {\n this.dialogRef?.close([]);\n }\n\n save(): void {\n this.crmAssociationService\n .createContactCompanyAssociation$(this.data.associationType, this.primaryAssociation, this.associationTags)\n .pipe(take(1))\n .subscribe((copyCrmObjects) => {\n return this.dialogRef.close(copyCrmObjects);\n });\n }\n\n setPrimaryAssociation(selectedIndex: number): void {\n this.associationFormArray.controls.forEach((control: AbstractControl, index: number) => {\n const association = control as FormGroup;\n association?.get('isPrimary')?.setValue(index === selectedIndex);\n });\n }\n\n tagsChanged(selectedIndex: number, tags: string[]): void {\n this.associationFormArray.controls[selectedIndex].get('tags')?.setValue(tags);\n }\n}\n","

{{ data.modalTitle }}

\n\n \n \n \n {{ association?.get('name')?.value }}\n
\n \n {{ data.primarySelect }}\n {{ data.description }}\n \n \n
\n
\n
\n
\n
\n\n \n \n\n","import { Overlay, OverlayConfig, OverlayRef } from '@angular/cdk/overlay';\nimport { ComponentPortal } from '@angular/cdk/portal';\nimport { Directive, ElementRef, HostListener, Injectable, Input, OnDestroy, TemplateRef, inject } from '@angular/core';\n\nimport { ContactInfoCardComponent } from '../contact-info-card/contact-info-card.component';\nimport { CardDataType } from '../contact-info-types';\nimport { cardPositions } from './positions';\n\n@Directive({\n selector: '[glxyContactCard]',\n standalone: true,\n})\nexport class ContactInfoOnHoverDirective implements OnDestroy {\n @Input('glxyContactCard') cardData?: CardDataType;\n\n @Input('glxyContactCardShowDelay') showDelay = 500;\n\n @Input('glxyContactCardActionsRef') actionsRef?: TemplateRef;\n\n private overlay = inject(Overlay);\n private stateService = inject(ContactCardStateService);\n private elementRef = inject(ElementRef);\n\n contactCardComponent = new ComponentPortal(ContactInfoCardComponent);\n currentOverlayComponent: ContactInfoCardComponent | null = null;\n contactCardOverlayRef?: OverlayRef;\n\n triggerIsHovered = false;\n\n mouseX?: number;\n mouseY?: number;\n\n openTimer = 0; // the id for our window.setTimeout used to open the popover\n closeTimer = 0; // the id for our window.setTimeout used to open the popover\n\n @HostListener('mousemove', ['$event']) onMouseMove(event: MouseEvent): void {\n this.mouseX = event.pageX;\n this.mouseY = event.pageY;\n }\n\n @HostListener('mouseenter') onMouseEnter(): void {\n this.triggerIsHovered = true;\n if (!this.currentOverlayComponent) this.startOpenTimer();\n }\n\n @HostListener('mouseleave') onMouseLeave(): void {\n this.triggerIsHovered = false;\n window.clearTimeout(this.openTimer);\n this.startCloseTimer();\n }\n\n @HostListener('window:keydown.escape') onEscapeKey() {\n this.close();\n }\n\n startOpenTimer() {\n this.openTimer = window.setTimeout(() => {\n this.open();\n }, this.showDelay);\n }\n\n startCloseTimer() {\n window.clearInterval(this.closeTimer); // close any preexisting timers first\n this.closeTimer = window.setInterval(() => {\n this.checkIfCanClose();\n }, 1000);\n }\n\n checkIfCanClose() {\n if (!this.triggerIsHovered && !this.currentOverlayComponent?.popoverIsHovered) {\n this.close();\n }\n }\n\n open() {\n if (!this.cardData) {\n console.warn('appContactCard: No userdata provided!');\n return;\n }\n this.stateService.currentPopover?.close();\n\n // inspired by https://github.com/scttcper/ngx-rightclick/blob/master/src/lib/context-menu.service.ts\n\n let tempElement;\n\n // If the mouse position is not set, use the elementRef\n if (!this.mouseX && !this.mouseY) {\n tempElement = this.elementRef.nativeElement.getBoundingClientRect();\n } else {\n // otherwise, use the mouse position\n tempElement = new ElementRef({\n getBoundingClientRect: () => new DOMRect(this.mouseX, this.mouseY, 0, 0),\n });\n }\n\n const positionStrategy = this.overlay\n .position()\n .flexibleConnectedTo(tempElement)\n .withFlexibleDimensions(false)\n .withPositions(cardPositions);\n\n const config = new OverlayConfig({\n positionStrategy: positionStrategy,\n });\n\n this.contactCardOverlayRef = this.overlay.create(config);\n this.currentOverlayComponent = this.contactCardOverlayRef.attach(this.contactCardComponent).instance;\n this.currentOverlayComponent.cardIsPopover = true;\n this.currentOverlayComponent.cardData = this.cardData;\n if (this.actionsRef) {\n this.currentOverlayComponent.actionsRef = this.actionsRef;\n }\n this.stateService.currentPopover = this;\n }\n\n close() {\n window.clearInterval(this.closeTimer);\n if (!this.currentOverlayComponent) return;\n this.contactCardOverlayRef?.dispose();\n this.currentOverlayComponent = null;\n }\n\n ngOnDestroy() {\n this.close();\n }\n}\n\n//\n//\n\n@Injectable({\n providedIn: 'root',\n})\nexport class ContactCardStateService {\n public currentPopover: ContactInfoOnHoverDirective | null = null;\n}\n","import { OverlayModule } from '@angular/cdk/overlay';\nimport { CommonModule } from '@angular/common';\nimport {\n ChangeDetectionStrategy,\n Component,\n HostBinding,\n HostListener,\n inject,\n Input,\n OnInit,\n TemplateRef,\n} from '@angular/core';\nimport { Router, RouterModule } from '@angular/router';\nimport { ClipboardModule } from '@angular/cdk/clipboard';\nimport { MatMenuModule } from '@angular/material/menu';\nimport { MatTooltipModule } from '@angular/material/tooltip';\nimport { MatButtonModule } from '@angular/material/button';\nimport { MatIconModule } from '@angular/material/icon';\nimport { MatCardModule } from '@angular/material/card';\nimport { GalaxyAvatarModule } from '@vendasta/galaxy/avatar';\n\nimport { ContactCardStateService } from '../contact-info-on-hover/contact-info-on-hover.directive';\nimport { CardDataType } from '../contact-info-types';\nimport { GalaxyTooltipModule } from '@vendasta/galaxy/tooltip';\n\n@Component({\n selector: 'glxy-contact-info-card',\n standalone: true,\n imports: [\n CommonModule,\n RouterModule,\n OverlayModule,\n GalaxyAvatarModule,\n MatButtonModule,\n MatIconModule,\n MatTooltipModule,\n MatMenuModule,\n MatCardModule,\n ClipboardModule,\n GalaxyTooltipModule,\n ],\n templateUrl: './contact-info-card.component.html',\n styleUrls: ['./contact-info-card.component.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class ContactInfoCardComponent implements OnInit {\n @HostBinding('class') class = 'glxy-contact-info-card';\n\n @HostBinding('class.is-popover') @Input() cardIsPopover = false;\n\n @Input() cardData?: CardDataType;\n\n @Input() showDefaultActions = true;\n\n @Input() actionsRef: TemplateRef | undefined = undefined;\n\n private router = inject(Router);\n\n cardType: 'user' | 'business' = 'user';\n\n popoverIsHovered = false;\n\n fullBusinessAddress?: string;\n\n stateService = inject(ContactCardStateService);\n\n isCopied = false;\n\n ngOnInit() {\n this.generateAddressString();\n }\n\n @HostListener('mouseenter') onMouseEnter(): void {\n this.popoverIsHovered = true;\n }\n\n @HostListener('mouseleave') onMouseLeave(): void {\n this.popoverIsHovered = false;\n }\n\n handleProfileButtonClick() {\n if (this.cardData?.profileButtonAction) {\n this.cardData.profileButtonAction();\n return;\n }\n\n if (this.cardData?.profileButtonUrlUseRouterLink) {\n if (Array.isArray(this.cardData.profileButtonUrl)) {\n this.router.navigate(this.cardData.profileButtonUrl);\n } else {\n this.router.navigate([this.cardData.profileButtonUrl]);\n }\n }\n // If the link is a normal link, we handle this in the\n // template with the [href] attribute\n }\n\n generateAddressString() {\n // prettier-ignore\n if (this.cardData?.businessAddress) {\n this.fullBusinessAddress = '';\n const addy = this.cardData.businessAddress\n\n // build the address string\n if (addy.address1)\n this.fullBusinessAddress += addy.address1 + ', ';\n if (addy.address2)\n this.fullBusinessAddress += addy.address2 + ', ';\n if (addy.city)\n this.fullBusinessAddress += addy.city + ', ';\n if (addy.state)\n this.fullBusinessAddress += addy.state;\n\n if (addy.country || addy.zip)\n this.fullBusinessAddress += '\\n';\n if (addy.country)\n this.fullBusinessAddress += addy.country + ', ';\n if (addy.zip)\n this.fullBusinessAddress += addy.zip;\n\n this.fullBusinessAddress = this.fullBusinessAddress.trim();\n if (this.fullBusinessAddress.endsWith(','))\n this.fullBusinessAddress = this.fullBusinessAddress.slice(0, -1);\n }\n }\n\n copyClicked() {\n this.isCopied = true;\n window.setTimeout(() => {\n this.isCopied = false;\n }, 3000);\n }\n}\n","\n \n \n\n \n\n \n \n {{ cardData.userName }}\n \n \n {{ cardData.email }}\n \n\n \n \n {{ cardData.businessName }}\n \n \n {{ cardData.businessWebsite }}\n \n\n \n \n \n \n\n
\n business\n {{ cardData.businessName }}\n
\n\n
\n badge\n \n {{ cardData.id }}\n \n \n content_copy\n \n
\n\n
\n location_on\n
{{ fullBusinessAddress }}
\n
\n
\n \n \n\n \n \n \n\n \n \n \n \n {{ cardData.profileButtonLabel ?? 'View details' }}\n \n \n\n \n \n \n \n \n phone_forwarded\n Call {{ cardData.userName ?? cardData.businessName ?? cardData.phone }}\n \n
\n {{ cardData.phone }}\n
\n
\n
\n\n \n \n \n \n \n email\n Send email\n {{\n cardData.userName || cardData.businessName ? 'to ' + (cardData.userName ?? cardData.businessName) : ''\n }}\n \n
\n {{ cardData.email }}\n
\n
\n
\n\n \n
\n\n \n \n
\n
\n
\n","import { CommonModule } from '@angular/common';\nimport { NgModule } from '@angular/core';\n\nimport { ContactInfoCardComponent } from './contact-info-card/contact-info-card.component';\nexport { ContactInfoCardComponent };\n\nimport { ContactInfoOnHoverDirective } from './contact-info-on-hover/contact-info-on-hover.directive';\nexport { ContactInfoOnHoverDirective };\n\nimport { CardDataType } from './contact-info-types';\nexport { CardDataType };\n\nexport const MODULE_IMPORTS = [CommonModule, ContactInfoCardComponent, ContactInfoOnHoverDirective];\nexport const MODULE_EXPORTS = [ContactInfoCardComponent, ContactInfoOnHoverDirective];\n\n@NgModule({\n imports: MODULE_IMPORTS,\n exports: MODULE_EXPORTS,\n})\nexport class GalaxyContactInfoCardModule {}\n","// Export things like public API, and interfaces from here.\nexport * from './src/contact-info-card.module';\n","export * from './public_api';\n","import { AsyncValidatorFn, ValidatorFn } from '@angular/forms';\n\nexport type ValidationSeverity = 'INVALID' | 'WARNING';\n\nexport interface ValidationError {\n message: string;\n severity: ValidationSeverity;\n validationFn: ValidatorFn | null;\n asyncValidationFn: AsyncValidatorFn | null;\n}\n\nexport class FieldValidation {\n errorCodeMap: { [key: string]: ValidationError } = {};\n\n addValidationError(codeMapEntries: { [key: string]: ValidationError }): void {\n this.errorCodeMap = { ...this.errorCodeMap, ...codeMapEntries };\n }\n\n getAsyncValidators(): AsyncValidatorFn[] {\n const asyncValidators = [];\n for (const errorValue of Object.values(this.errorCodeMap)) {\n if (errorValue.asyncValidationFn && errorValue.severity === 'INVALID') {\n asyncValidators.push(errorValue.asyncValidationFn);\n }\n }\n return asyncValidators;\n }\n\n getValidators(): ValidatorFn[] {\n const validators = [];\n for (const errorValue of Object.values(this.errorCodeMap)) {\n if (errorValue.validationFn && errorValue.severity === 'INVALID') {\n validators.push(errorValue.validationFn);\n }\n }\n return validators;\n }\n\n getWarningValidators(): AsyncValidatorFn[] {\n const asyncValidators = [];\n for (const errorValue of Object.values(this.errorCodeMap)) {\n if (errorValue.asyncValidationFn && errorValue.severity === 'WARNING') {\n asyncValidators.push(errorValue.asyncValidationFn);\n }\n }\n return asyncValidators;\n }\n}\n","import { Injectable, signal } from '@angular/core';\nimport { toObservable } from '@angular/core/rxjs-interop';\nimport { SnackbarService } from '@vendasta/galaxy/snackbar-service';\nimport { take } from 'rxjs';\nimport { FieldValueInterface, ObjectType } from '../../tokens-and-interfaces';\nimport { SNACKBAR_DURATION } from '../../constants';\nimport { CRMTrackingService } from '../../shared-services/page-analytics.service';\nimport { TranslateByObjectTypeService } from '../../i18n/translate-by-object-type/translate-by-object-type.service';\nimport { CrmFormService } from '../../shared-services/crm-services/crm-form.service';\n\n@Injectable()\nexport class InlineEditService {\n constructor(\n private readonly crmFormService: CrmFormService,\n private readonly snackService: SnackbarService,\n private readonly trackingService: CRMTrackingService,\n private readonly translateByObjectTypeService: TranslateByObjectTypeService,\n ) {}\n\n private crmObjectId = '';\n setObjectId(objectId: string): void {\n this.crmObjectId = objectId;\n }\n private isInlineEdit = signal(false);\n isInlineEdit$ = toObservable(this.isInlineEdit);\n setInlineEdit(inlineEdit: boolean): void {\n this.isInlineEdit.set(inlineEdit);\n }\n\n saveInlineEdit(objectType: ObjectType, value: FieldValueInterface): void {\n if (!this.isInlineEdit()) {\n return;\n }\n\n this.crmFormService\n .validateAndUpdateCrmObjectField$(objectType, this.crmObjectId, value)\n .pipe(take(1))\n .subscribe({\n next: (updatedValue) => {\n if (updatedValue === null) {\n return;\n }\n this.trackingService.trackEvent(objectType, 'edited-crm-object');\n const translatedString = this.translateByObjectTypeService.getTranslationByObjectType(\n objectType,\n 'EDIT_PAGE.SAVE.SUCCESS',\n );\n this.snackService.openSuccessSnack(translatedString, {\n duration: SNACKBAR_DURATION,\n });\n },\n error: (error) => {\n this.trackingService.trackEvent(objectType, 'failed-crm-edit');\n this.errorSnackbar(error, 'ERRORS.GENERIC_EDIT_MESSAGE');\n },\n });\n }\n\n private errorSnackbar(error: any | null, defaultMessage: string) {\n let message: string | null = null;\n if (error && error.message) {\n message = error.message;\n }\n this.snackService.openErrorSnack(message ?? defaultMessage, {\n duration: SNACKBAR_DURATION,\n });\n }\n}\n","import { Component, Input, OnChanges, OnInit, ViewContainerRef, ViewEncapsulation } from '@angular/core';\nimport { RenderableFieldInterface } from '../../tokens-and-interfaces';\n\n@Component({\n selector: 'crm-renderer-selector',\n template: '',\n standalone: true,\n encapsulation: ViewEncapsulation.None,\n})\nexport class RendererSelectorComponent implements OnInit, OnChanges {\n @Input() handler!: RenderableFieldInterface;\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 { Injectable } from '@angular/core';\nimport { AsyncValidatorFn, ValidationErrors } from '@angular/forms';\nimport { defaultIfEmpty, forkJoin, Observable } from 'rxjs';\nimport { map } from 'rxjs/operators';\n\n@Injectable()\nexport class FieldWarningService {\n validateWarning(control: any, validatorFns: AsyncValidatorFn[]): Observable {\n const results$ = [];\n for (const validatorFn of validatorFns) {\n results$.push(validatorFn(control));\n }\n return forkJoin(results$).pipe(\n defaultIfEmpty(null),\n map((results) => {\n let validationErrors: ValidationErrors = {};\n if (!results) {\n return null;\n }\n for (const err of results) {\n validationErrors = { ...validationErrors, ...err };\n }\n return validationErrors;\n }),\n );\n }\n}\n","import { Injectable } from '@angular/core';\nimport { BehaviorSubject, Observable, of, switchMap, take } from 'rxjs';\nimport { debounceTime, map, shareReplay, tap } from 'rxjs/operators';\nimport { ValidationError } from './field-validation';\nimport { ObjectType, RenderableFieldInterface } from '../../tokens-and-interfaces';\nimport { ValidateErrorsWithFieldSchemas, CrmFormService } from '../../shared-services';\n\nconst uniquenessInvalidValidatorFn =\n (validationChanges$: Observable, fieldId: string) => () => {\n return validationChanges$.pipe(\n take(1),\n map((validationErrors) => {\n const uniquenessErrorForField = validationErrors.errors.find(\n (e) => e.ruleId === 'uniqueness_enforced' && e.details?.uniquenessCheck?.fieldId === fieldId,\n );\n if (!uniquenessErrorForField) {\n return null;\n }\n return {\n uniqueness_enforced: true,\n };\n }),\n );\n };\n\nconst uniquenessWarningValidatorFn =\n (validationChanges$: Observable, fieldId: string) => () => {\n return validationChanges$.pipe(\n take(1),\n map((validationErrors) => {\n const uniquenessErrorForField = validationErrors.errors.find(\n (e) => e.ruleId === 'uniqueness_warning' && e.details?.uniquenessCheck?.fieldId === fieldId,\n );\n if (!uniquenessErrorForField) {\n return null;\n }\n const existingObjectIds = uniquenessErrorForField.details?.uniquenessCheck?.existingCrmObjectIds;\n const hasErrors = existingObjectIds.length > 0;\n if (hasErrors) {\n return {\n uniqueness_warning: true,\n };\n }\n return null;\n }),\n );\n };\n\n@Injectable()\nexport class ValidatorFactoryService {\n private objectType!: ObjectType;\n private existingObjectId = '';\n private valueChanges$: Observable = of(false);\n private renderableFields: RenderableFieldInterface[] = [];\n private validationChanges$!: Observable;\n\n latestValidationErrors$$: BehaviorSubject =\n new BehaviorSubject(null);\n\n constructor(private readonly formService: CrmFormService) {}\n\n initialize(\n objectType: ObjectType,\n existingObjectId: string,\n renderableFields: RenderableFieldInterface[],\n valueChanges$: Observable,\n ): void {\n this.objectType = objectType;\n this.existingObjectId = existingObjectId;\n this.valueChanges$ = valueChanges$.pipe(map((v) => !!v));\n this.renderableFields = renderableFields;\n this.validationChanges$ = this.valueChanges$.pipe(\n debounceTime(500),\n switchMap(() => {\n const fields = this.renderableFields.map((r) => r.fieldValue());\n return this.formService.validateCrmObject$(this.objectType, {\n crmObjectId: existingObjectId,\n fields,\n });\n }),\n shareReplay({ bufferSize: 1, refCount: true }),\n // request for validation happens in validator before loading\n // shared-components dependent upon validation data, cache manually to handle scenario\n // for uniqueness suggestions\n tap((v) => this.latestValidationErrors$$.next(v)),\n );\n }\n\n buildUniquenessValidatorCodeMappings(fieldId: string): { [key: string]: ValidationError } {\n return {\n uniqueness_enforced: {\n severity: 'INVALID',\n message: 'STANDARD_FIELD_RULES.UNIQUE_FIELD_VALUE.ENFORCED',\n validationFn: null,\n asyncValidationFn: uniquenessInvalidValidatorFn(this.validationChanges$, fieldId),\n },\n uniqueness_warning: {\n severity: 'WARNING',\n message: 'STANDARD_FIELD_RULES.UNIQUE_FIELD_VALUE.WARNING',\n validationFn: null,\n asyncValidationFn: uniquenessWarningValidatorFn(this.validationChanges$, fieldId),\n },\n };\n }\n}\n","import { CommonModule } from '@angular/common';\nimport { Component, Inject, Input } from '@angular/core';\nimport { FormsModule, ReactiveFormsModule } from '@angular/forms';\nimport { MatButtonModule } from '@angular/material/button';\nimport { MatIconModule } from '@angular/material/icon';\nimport { TranslateModule } from '@ngx-translate/core';\nimport { CrmObjectInterface } from '@vendasta/crm';\nimport { GalaxyFormFieldModule } from '@vendasta/galaxy/form-field';\nimport { GalaxyLoadingSpinnerModule } from '@vendasta/galaxy/loading-spinner';\nimport { SnackbarService } from '@vendasta/galaxy/snackbar-service';\nimport { Observable, of } from 'rxjs';\nimport { catchError, map, switchMap, withLatestFrom } from 'rxjs/operators';\nimport { ValidatorFactoryService } from '../../validator-factory.service';\nimport { CrmInjectionToken, CrmDependencies, ObjectType, CardData } from '../../../../tokens-and-interfaces';\nimport { PAGE_ROUTES } from '../../../../constants';\nimport { TranslateByObjectTypePipe } from '../../../../i18n/translate-by-object-type/translate-by-object-type.pipe';\nimport { TableCustomizationService } from '../../../../shared-services/table-customization/_abstract-table-customization.service';\nimport { CrmObjectService } from '../../../../shared-services/crm-services/crm-object-service/crm-object.service';\nimport { CrmFieldService, StandardExternalIds } from '../../../../shared-services/crm-services/field.service';\nimport { AssociationCardComponent } from '../../../association-panel-components/association-card/association-card.component';\n\n@Component({\n selector: 'crm-uniqueness-suggestion-card',\n templateUrl: './uniqueness-suggestion-card.component.html',\n styleUrls: ['./uniqueness-suggestion-card.component.scss'],\n standalone: true,\n imports: [\n CommonModule,\n FormsModule,\n ReactiveFormsModule,\n TranslateModule,\n GalaxyFormFieldModule,\n TranslateByObjectTypePipe,\n GalaxyLoadingSpinnerModule,\n MatButtonModule,\n MatIconModule,\n\n AssociationCardComponent,\n ],\n})\nexport class CrmUniquenessSuggestionCardComponent {\n @Input({ required: true }) displayCard: boolean;\n @Input({ required: true }) objectType: ObjectType;\n @Input({ required: true }) fieldId: string;\n\n private uniquenessDetailsForField$ = this.validatorFactory.latestValidationErrors$$.pipe(\n map((validation) => {\n const uniquenessDetailsFound = (validation?.errors ?? []).filter(\n (e) => e.details?.uniquenessCheck?.fieldId === this.fieldId,\n );\n if (uniquenessDetailsFound.length > 0) {\n return uniquenessDetailsFound[0];\n }\n return null;\n }),\n );\n private crmObject$ = this.uniquenessDetailsForField$.pipe(\n map((uniquenessDetails) => {\n const existingObjectIds = uniquenessDetails?.details?.uniquenessCheck?.existingCrmObjectIds;\n if (!existingObjectIds?.length) {\n return '';\n }\n return existingObjectIds[0];\n }),\n switchMap((objectId) => {\n if (!objectId) {\n return [];\n }\n return this.objectService.getMultiObject(this.objectType, [objectId]);\n }),\n map((response) => (response.crmObjects ? response.crmObjects[0] : { fields: [] })),\n catchError((error) => {\n console.error(error);\n this.snackbar.openErrorSnack('ERRORS.GENERIC_MESSAGE');\n return of({} as CrmObjectInterface);\n }),\n );\n objectCardInfo$: Observable = this.crmObject$.pipe(\n switchMap((crmObject) => {\n return this.objectCardLink$.pipe(\n map((link) => {\n switch (this.objectType) {\n case 'Contact':\n return this.buildCardForContact(crmObject, link);\n default:\n console.warn('Unsupported object type for uniqueness suggestion card');\n return null;\n }\n }),\n );\n }),\n );\n objectCardLink$: Observable = this.crmObject$.pipe(\n withLatestFrom(this.config.routePrefix$),\n map(([{ crmObjectId }, routePrefix]) => {\n let templateLink = '';\n switch (this.objectType) {\n case 'Contact':\n templateLink = `${routePrefix}/${PAGE_ROUTES.CONTACT.ROOT}/${PAGE_ROUTES.CONTACT.SUBROUTES.PROFILE}`;\n return templateLink.replace(':crmObjectId', crmObjectId);\n default:\n console.warn('Unsupported object type for uniqueness suggestion card');\n return '';\n }\n }),\n );\n\n constructor(\n @Inject(CrmInjectionToken) private readonly config: CrmDependencies,\n private readonly validatorFactory: ValidatorFactoryService,\n private readonly objectService: CrmObjectService,\n private readonly crmFieldService: CrmFieldService,\n private readonly customization: TableCustomizationService,\n private readonly snackbar: SnackbarService,\n ) {}\n\n private buildCardForContact(crmObject: CrmObjectInterface, profileButtonUrl: string): CardData {\n const email = this.crmFieldService.getFieldId(StandardExternalIds.Email);\n const emailData = crmObject.fields?.find((f) => f.fieldId === email);\n const emailValue = emailData.stringValue || '';\n\n return {\n type: 'user',\n userName: this.customization.getRowFullName(crmObject),\n email: emailValue,\n profileButtonUrl: profileButtonUrl,\n } as CardData;\n }\n}\n","
\n \n \n \n \n \n \n
\n","import { CommonModule } from '@angular/common';\nimport { Component, Input, OnInit } from '@angular/core';\nimport { FormsModule, ReactiveFormsModule, UntypedFormControl } from '@angular/forms';\nimport { TranslateModule } from '@ngx-translate/core';\nimport { GalaxyFormFieldModule } from '@vendasta/galaxy/form-field';\nimport { Observable } from 'rxjs';\nimport { map, switchMap } from 'rxjs/operators';\nimport { FieldValidation } from '../../field-validation';\nimport { FieldWarningService } from './field-warning.service';\nimport { CrmUniquenessSuggestionCardComponent } from './uniqueness-suggestion-card.component';\nimport { ObjectType } from '../../../../tokens-and-interfaces';\nimport { TranslateByObjectTypePipe } from '../../../../i18n/translate-by-object-type/translate-by-object-type.pipe';\n\n@Component({\n selector: 'crm-model-driven-form-error',\n templateUrl: './model-driven-form-error.component.html',\n styleUrls: ['./model-driven-form-error.component.scss'],\n standalone: true,\n imports: [\n CommonModule,\n FormsModule,\n ReactiveFormsModule,\n TranslateModule,\n GalaxyFormFieldModule,\n TranslateByObjectTypePipe,\n CrmUniquenessSuggestionCardComponent,\n ],\n})\nexport class CrmModelDrivenFormErrorComponent implements OnInit {\n @Input({ required: true }) objectType!: ObjectType;\n @Input({ required: true }) fieldId!: string;\n @Input({ required: true }) control!: UntypedFormControl;\n @Input({ required: true }) validation!: FieldValidation;\n @Input() label!: string;\n\n errorCodes: string[] = [];\n warningCode$!: Observable;\n\n constructor(private warningService: FieldWarningService) {}\n\n ngOnInit(): void {\n this.errorCodes = Object.keys(this.validation.errorCodeMap);\n this.warningCode$ = this.control.valueChanges.pipe(\n switchMap(() => {\n return this.warningService.validateWarning(this.control, this.validation.getWarningValidators());\n }),\n map((warnings) => {\n if (warnings !== null && Object.keys(warnings).length > 0) {\n return Object.keys(warnings)[0];\n }\n return '';\n }),\n );\n }\n}\n","\n \n {{\n validation.errorCodeMap[errorCode].message | translateByObjectType : objectType : { label: label.toLowerCase() }\n }}\n \n \n\n\n \n {{\n validation.errorCodeMap[warningCode].message | translateByObjectType : objectType : { label: label.toLowerCase() }\n }}\n \n\n","import { UntypedFormControl, ReactiveFormsModule } from '@angular/forms';\nimport { Component, ViewContainerRef, ViewEncapsulation } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { TranslateModule } from '@ngx-translate/core';\nimport { GalaxyFormFieldModule } from '@vendasta/galaxy/form-field';\nimport { MatInputModule } from '@angular/material/input';\nimport { CrmModelDrivenFormErrorComponent } from './model-driven-form-error/model-driven-form-error.component';\nimport { FieldValidation } from '../field-validation';\nimport { FieldWarningService } from './model-driven-form-error/field-warning.service';\nimport { InlineEditService } from '../inline-edit.service';\nimport { MatSelectModule } from '@angular/material/select';\nimport { FieldValueInterface, ObjectType, RenderableFieldInterface } from '../../../tokens-and-interfaces';\n\nexport class BooleanFieldHandler implements RenderableFieldInterface {\n formControl: UntypedFormControl;\n\n constructor(\n public objectType: ObjectType,\n public fieldId: string,\n public name: string,\n public label: string,\n public value: string,\n public description: string,\n public readOnly = false,\n public validation: FieldValidation = new FieldValidation(),\n ) {\n this.formControl = new UntypedFormControl(value);\n }\n\n setValidation(validation: FieldValidation): void {\n this.validation = validation;\n this.formControl.setValidators(validation.getValidators());\n this.formControl.setAsyncValidators(validation.getAsyncValidators());\n }\n\n fieldValue(): FieldValueInterface {\n return {\n fieldId: this.fieldId,\n booleanValue: this.formControl.value,\n };\n }\n\n hasModification(): boolean {\n return this.formControl?.dirty;\n }\n\n render(viewContainerRef: ViewContainerRef): void {\n viewContainerRef.clear();\n const component = viewContainerRef.createComponent(BooleanRendererComponent);\n component.instance.fieldId = this.fieldId;\n component.instance.objectType = this.objectType;\n component.instance.control = this.formControl;\n component.instance.label = this.label;\n component.instance.description = this.description;\n component.instance.readOnly = this.readOnly;\n }\n}\n\n@Component({\n template: `\n
\n
\n {{ label | translate }}\n
\n
\n \n \n {{ control.value }}\n \n
\n
\n \n \n {{ label | translate }}\n \n {{ 'MODEL_DRIVEN_FORM.BOOLEAN.TRUE' | translate }}\n {{ 'MODEL_DRIVEN_FORM.BOOLEAN.FALSE' | translate }}\n \n \n \n `,\n imports: [\n CommonModule,\n MatInputModule,\n ReactiveFormsModule,\n TranslateModule,\n GalaxyFormFieldModule,\n CrmModelDrivenFormErrorComponent,\n MatSelectModule,\n ],\n providers: [FieldWarningService],\n styleUrls: ['./renderers.scss'],\n standalone: true,\n encapsulation: ViewEncapsulation.None,\n})\nexport class BooleanRendererComponent {\n fieldId!: string;\n objectType!: ObjectType;\n control!: UntypedFormControl;\n label!: string;\n description!: string;\n readOnly!: boolean;\n\n constructor(private readonly inlineEditService: InlineEditService) {}\n\n saveField(): void {\n this.inlineEditService.saveInlineEdit(this.objectType, {\n fieldId: this.fieldId,\n booleanValue: this.control.value,\n });\n }\n}\n","/*\nChrome is really aggressive about autofilling form fields,\neven when you have autocomplete=\"off\" set.\nThis is because historically, many forms have been built with a default of\nautocomplete=\"off\", which would disable it on forms that actually need it.\nThey view CRM systems as in the minority, and not worth the trade-off\nof no longer helping with forms that have bad defaults.\n\nThe workaround (for now) is to have autocomplete value that doesn't match anything.\n\nFrom:\n https://bugs.chromium.org/p/chromium/issues/detail?id=468153#c164\nLinked from:\n https://github.com/alphagov/accessible-autocomplete/issues/325\n*/\n\nexport function stopChromeAutofill(): string {\n return Math.random().toString(36).substring(2);\n}\n","import { CommonModule } from '@angular/common';\nimport { Component, ViewContainerRef, ViewEncapsulation } from '@angular/core';\nimport { ReactiveFormsModule, UntypedFormControl } from '@angular/forms';\nimport { MatDatepickerModule } from '@angular/material/datepicker';\nimport { DateAdapter, MAT_DATE_FORMATS, MAT_DATE_LOCALE } from '@angular/material/core';\nimport { TranslateModule } from '@ngx-translate/core';\nimport { GalaxyFormFieldModule } from '@vendasta/galaxy/form-field';\nimport { stopChromeAutofill } from './stop-chrome-autofill';\nimport { CrmModelDrivenFormErrorComponent } from './model-driven-form-error/model-driven-form-error.component';\nimport { FieldValidation } from '../field-validation';\nimport { FieldWarningService } from './model-driven-form-error/field-warning.service';\nimport { getLocale } from '@vendasta/galaxy/utility/locale';\nimport { DateFnsAdapter, MAT_DATE_FNS_FORMATS } from '@angular/material-date-fns-adapter';\nimport { InlineEditService } from '../inline-edit.service';\nimport { FieldValueInterface, ObjectType, RenderableFieldInterface } from '../../../tokens-and-interfaces';\n\nexport class DateFieldHandler implements RenderableFieldInterface {\n formControl: UntypedFormControl;\n\n constructor(\n public objectType: ObjectType,\n public fieldId: string,\n public name: string,\n public label: string,\n public value: string,\n public description: string,\n public readOnly = false,\n public validation: FieldValidation = new FieldValidation(),\n ) {\n this.formControl = new UntypedFormControl(value);\n }\n\n setValidation(validation: FieldValidation): void {\n this.validation = validation;\n this.formControl.setValidators(validation.getValidators());\n this.formControl.setAsyncValidators(validation.getAsyncValidators());\n }\n\n render(viewContainerRef: ViewContainerRef): void {\n viewContainerRef.clear();\n const component = viewContainerRef.createComponent(DateRendererComponent);\n component.instance.objectType = this.objectType;\n component.instance.fieldId = this.fieldId;\n component.instance.control = this.formControl;\n component.instance.label = this.label;\n component.instance.validation = this.validation;\n component.instance.readOnly = this.readOnly;\n }\n\n hasModification(): boolean {\n return this.formControl?.dirty;\n }\n\n fieldValue(): FieldValueInterface {\n return {\n fieldId: this.fieldId,\n dateValue: 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 template: `\n
\n
\n {{ label | translate }}\n
\n
\n \n \n {{ control.value | date : 'shortDate' }}\n \n
\n
\n \n \n {{ label | translate }}\n \n \n \n\n \n \n \n `,\n providers: [\n //for browsers with a negative GMT, the default datepicker would show the previous day\n { provide: MAT_DATE_LOCALE, useValue: getLocale() },\n {\n provide: DateAdapter,\n useClass: DateFnsAdapter,\n },\n { provide: MAT_DATE_FORMATS, useValue: MAT_DATE_FNS_FORMATS },\n FieldWarningService,\n ],\n imports: [\n CommonModule,\n ReactiveFormsModule,\n MatDatepickerModule,\n TranslateModule,\n GalaxyFormFieldModule,\n CrmModelDrivenFormErrorComponent,\n ],\n styleUrls: ['./renderers.scss'],\n standalone: true,\n encapsulation: ViewEncapsulation.None,\n})\nexport class DateRendererComponent {\n fieldId!: string;\n objectType!: ObjectType;\n control!: UntypedFormControl;\n label!: string;\n validation!: FieldValidation;\n readOnly!: boolean;\n\n disableAutoComplete: string = stopChromeAutofill();\n\n constructor(private readonly inlineEditService: InlineEditService) {}\n\n saveField(): void {\n this.inlineEditService.saveInlineEdit(this.objectType, {\n fieldId: this.fieldId,\n dateValue: this.control.value,\n });\n }\n}\n","// source http://emailregex.com/\nimport { ValidationError } from '../field-validation';\n\nconst expr =\n '(?:[A-Za-z0-9!#$%&\\'*+/=?^_`{|}~-]+(?:\\\\.[A-Za-z0-9!#$%&\\'*+/=?^_`{|}~-]+)*|\"(?:[\\\\x01-\\\\x08\\\\x0b\\\\x0c\\\\x0e-\\\\x1f\\\\x21\\\\x23-\\\\x5b\\\\x5d-\\\\x7f]|\\\\\\\\[\\\\x01-\\\\x09\\\\x0b\\\\x0c\\\\x0e-\\\\x7f])*\")@(?:(?:[A-Za-z0-9](?:[A-Za-z0-9-]*[A-Za-z0-9])?\\\\.)+[A-Za-z0-9](?:[A-Za-z0-9-]*[A-Za-z0-9])?|\\\\[(?:(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\\\\.){3}(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?|[A-Za-z0-9-]*[A-Za-z0-9]:(?:[\\\\x01-\\\\x08\\\\x0b\\\\x0c\\\\x0e-\\\\x1f\\\\x21-\\\\x5a\\\\x53-\\\\x7f]|\\\\\\\\[\\\\x01-\\\\x09\\\\x0b\\\\x0c\\\\x0e-\\\\x7f])+)\\\\])';\nconst emailRegex = new RegExp(expr);\n\nconst emailValidatorFn = (control) => {\n if (!!control.value && emailRegex.exec(control.value) === null) {\n return { invalid_email: true };\n }\n return null;\n};\n\nexport const emailValidatorCodeMapping = {\n invalid_email: {\n severity: 'INVALID',\n message: 'MODEL_DRIVEN_FORM.INVALID_EMAIL_ERROR',\n validationFn: emailValidatorFn,\n asyncValidationFn: null,\n } as ValidationError,\n};\n","import { CommonModule } from '@angular/common';\nimport { Component, ViewContainerRef, ViewEncapsulation } from '@angular/core';\nimport { ReactiveFormsModule, UntypedFormControl } from '@angular/forms';\nimport { MatInputModule } from '@angular/material/input';\nimport { TranslateModule } from '@ngx-translate/core';\nimport { DigitOnlyModule } from '@uiowa/digit-only';\nimport { GalaxyFormFieldModule } from '@vendasta/galaxy/form-field';\nimport { stopChromeAutofill } from './stop-chrome-autofill';\nimport { CrmModelDrivenFormErrorComponent } from './model-driven-form-error/model-driven-form-error.component';\nimport { FieldValidation } from '../field-validation';\nimport { FieldWarningService } from './model-driven-form-error/field-warning.service';\nimport { InlineEditService } from '../inline-edit.service';\nimport { FieldValueInterface, ObjectType, RenderableFieldInterface } from '../../../tokens-and-interfaces';\n\nexport class IntegerFieldHandler implements RenderableFieldInterface {\n formControl: UntypedFormControl;\n\n constructor(\n public objectType: ObjectType,\n public fieldId: string,\n public name: string,\n public label: string,\n public value: number,\n public description: string,\n public readOnly = false,\n public validation: FieldValidation = new FieldValidation(),\n ) {\n this.formControl = new UntypedFormControl(value);\n }\n\n setValidation(validation: FieldValidation): void {\n this.validation = validation;\n this.formControl.setValidators(validation.getValidators());\n this.formControl.setAsyncValidators(validation.getAsyncValidators());\n }\n\n render(viewContainerRef: ViewContainerRef): void {\n viewContainerRef.clear();\n const component = viewContainerRef.createComponent(IntegerRendererComponent);\n component.instance.fieldId = this.fieldId;\n component.instance.objectType = this.objectType;\n component.instance.control = this.formControl;\n component.instance.label = this.label;\n component.instance.validation = this.validation;\n component.instance.readOnly = this.readOnly;\n }\n\n hasModification(): boolean {\n return this.formControl?.dirty;\n }\n\n fieldValue(): FieldValueInterface {\n return {\n fieldId: this.fieldId,\n integerValue: this.formControl.value,\n };\n }\n}\n\n@Component({\n template: `\n
\n
\n {{ label | translate }}\n
\n
\n \n \n {{ control.value }}\n \n
\n
\n \n \n {{ label | translate }}\n \n\n \n \n \n `,\n imports: [\n CommonModule,\n MatInputModule,\n ReactiveFormsModule,\n DigitOnlyModule,\n TranslateModule,\n GalaxyFormFieldModule,\n CrmModelDrivenFormErrorComponent,\n ],\n providers: [FieldWarningService],\n styleUrls: ['./renderers.scss'],\n standalone: true,\n encapsulation: ViewEncapsulation.None,\n})\nexport class IntegerRendererComponent {\n fieldId!: string;\n objectType!: ObjectType;\n control!: UntypedFormControl;\n label!: string;\n validation!: FieldValidation;\n readOnly!: boolean;\n\n disableAutoComplete: string = stopChromeAutofill();\n\n constructor(private readonly inlineEditService: InlineEditService) {}\n\n saveField(): void {\n this.inlineEditService.saveInlineEdit(this.objectType, {\n fieldId: this.fieldId,\n integerValue: this.control.value,\n });\n }\n}\n","import { Component, ViewEncapsulation } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { MatInputModule } from '@angular/material/input';\nimport { FormControl, ReactiveFormsModule } from '@angular/forms';\nimport { DigitOnlyModule } from '@uiowa/digit-only';\nimport { TranslateModule } from '@ngx-translate/core';\nimport { GalaxyFormFieldModule } from '@vendasta/galaxy/form-field';\nimport { CrmModelDrivenFormErrorComponent } from '../model-driven-form-error/model-driven-form-error.component';\nimport { FieldWarningService } from '../model-driven-form-error/field-warning.service';\nimport { stopChromeAutofill } from '../stop-chrome-autofill';\nimport { ObjectType } from '../../../../tokens-and-interfaces';\nimport { FieldValidation } from '../../field-validation';\nimport { InlineEditService } from '../../inline-edit.service';\n\n@Component({\n templateUrl: './float.html',\n imports: [\n CommonModule,\n MatInputModule,\n ReactiveFormsModule,\n DigitOnlyModule,\n TranslateModule,\n GalaxyFormFieldModule,\n CrmModelDrivenFormErrorComponent,\n ],\n providers: [FieldWarningService],\n styleUrls: ['../renderers.scss'],\n standalone: true,\n encapsulation: ViewEncapsulation.None,\n})\nexport class FloatRendererComponent {\n fieldId!: string;\n objectType!: ObjectType;\n control!: FormControl;\n label!: string;\n validation!: FieldValidation;\n readOnly!: boolean;\n\n disableAutoComplete: string = stopChromeAutofill();\n\n constructor(private readonly inlineEditService: InlineEditService) {}\n\n saveField(): void {\n this.inlineEditService.saveInlineEdit(this.objectType, {\n fieldId: this.fieldId,\n floatValue: this.control.value,\n });\n }\n}\n","
\n
{{ label | translate }}
\n
\n \n {{ control.value }} \n
\n
\n\n \n {{ label | translate }}\n \n \n \n\n","import { ViewContainerRef } from '@angular/core';\nimport { FormControl } from '@angular/forms';\nimport { FieldValidation } from '../../field-validation';\nimport { FieldValueInterface, ObjectType, RenderableFieldInterface } from '../../../../tokens-and-interfaces';\nimport { FloatRendererComponent } from './float';\n\nexport class FloatFieldHandler implements RenderableFieldInterface {\n formControl: FormControl;\n\n constructor(\n public objectType: ObjectType,\n public fieldId: string,\n public name: string,\n public label: string,\n public value: number,\n public description: string,\n public readOnly = false,\n public validation: FieldValidation = new FieldValidation(),\n ) {\n this.formControl = new FormControl(this.value);\n }\n\n setValidation(validation: FieldValidation): void {\n this.validation = validation;\n this.formControl.setValidators(validation.getValidators());\n this.formControl.setAsyncValidators(validation.getAsyncValidators());\n }\n\n render(viewContainerRef: ViewContainerRef): void {\n viewContainerRef.clear();\n const component = viewContainerRef.createComponent(FloatRendererComponent);\n component.instance.fieldId = this.fieldId;\n component.instance.objectType = this.objectType;\n component.instance.control = this.formControl;\n component.instance.label = this.label;\n component.instance.validation = this.validation;\n component.instance.readOnly = this.readOnly;\n }\n\n hasModification(): boolean {\n return this.formControl?.dirty;\n }\n\n fieldValue(): FieldValueInterface {\n return {\n fieldId: this.fieldId,\n floatValue: this.formControl.value,\n };\n }\n}\n","import { A, Z, ZERO, NINE, SPACE, HOME, END, ENTER, ESCAPE, UP_ARROW, DOWN_ARROW } from '@angular/cdk/keycodes';\nimport * as i0 from '@angular/core';\nimport { Directive, InjectionToken, EventEmitter, forwardRef, ElementRef, Component, ChangeDetectionStrategy, Inject, Optional, Input, Output, ViewChild, ContentChild, NgModule } from '@angular/core';\nimport * as i3 from '@angular/forms';\nimport { FormControl, NG_VALUE_ACCESSOR, ReactiveFormsModule } from '@angular/forms';\nimport * as i11 from '@angular/material/core';\nimport { MatOption } from '@angular/material/core';\nimport * as i12 from '@angular/material/form-field';\nimport { MatFormField } from '@angular/material/form-field';\nimport * as i10 from '@angular/material/select';\nimport { MatSelect } from '@angular/material/select';\nimport { BehaviorSubject, of, combineLatest, Subject } from 'rxjs';\nimport { switchMap, map, startWith, delay, takeUntil, take, tap, filter } from 'rxjs/operators';\nimport * as i1 from '@angular/cdk/scrolling';\nimport * as i2 from '@angular/common';\nimport { CommonModule } from '@angular/common';\nimport * as i4 from '@angular/material/button';\nimport { MatButtonModule } from '@angular/material/button';\nimport * as i5 from '@angular/material/checkbox';\nimport { MatCheckboxModule } from '@angular/material/checkbox';\nimport * as i6 from '@angular/material/icon';\nimport { MatIconModule } from '@angular/material/icon';\nimport * as i7 from '@angular/material/progress-spinner';\nimport { MatProgressSpinnerModule } from '@angular/material/progress-spinner';\nimport * as i8 from '@angular/material/tooltip';\nimport { MatTooltipModule } from '@angular/material/tooltip';\nimport * as i9 from '@angular/material/divider';\nimport { MatDividerModule } from '@angular/material/divider';\n\n/**\n * Directive for providing a custom clear-icon.\n * e.g.\n * \n * delete\n * \n */\nconst _c0 = [\"searchSelectInput\"];\nconst _c1 = [\"innerSelectSearch\"];\nconst _c2 = [[[\"\", 8, \"mat-select-search-custom-header-content\"]], [[\"\", \"ngxMatSelectSearchClear\", \"\"]], [[\"\", \"ngxMatSelectNoEntriesFound\", \"\"]]];\nconst _c3 = [\".mat-select-search-custom-header-content\", \"[ngxMatSelectSearchClear]\", \"[ngxMatSelectNoEntriesFound]\"];\nconst _c4 = (a0, a1) => ({\n \"mat-select-search-inner-multiple\": a0,\n \"mat-select-search-inner-toggle-all\": a1\n});\nfunction MatSelectSearchComponent_mat_checkbox_4_Template(rf, ctx) {\n if (rf & 1) {\n const _r2 = i0.ɵɵgetCurrentView();\n i0.ɵɵelementStart(0, \"mat-checkbox\", 12);\n i0.ɵɵlistener(\"change\", function MatSelectSearchComponent_mat_checkbox_4_Template_mat_checkbox_change_0_listener($event) {\n i0.ɵɵrestoreView(_r2);\n const ctx_r2 = i0.ɵɵnextContext();\n return i0.ɵɵresetView(ctx_r2._emitSelectAllBooleanToParent($event.checked));\n });\n i0.ɵɵelementEnd();\n }\n if (rf & 2) {\n const ctx_r2 = i0.ɵɵnextContext();\n i0.ɵɵproperty(\"color\", ctx_r2.matFormField == null ? null : ctx_r2.matFormField.color)(\"checked\", ctx_r2.toggleAllCheckboxChecked)(\"indeterminate\", ctx_r2.toggleAllCheckboxIndeterminate)(\"matTooltip\", ctx_r2.toggleAllCheckboxTooltipMessage)(\"matTooltipPosition\", ctx_r2.toggleAllCheckboxTooltipPosition);\n }\n}\nfunction MatSelectSearchComponent_mat_spinner_7_Template(rf, ctx) {\n if (rf & 1) {\n i0.ɵɵelement(0, \"mat-spinner\", 13);\n }\n}\nfunction MatSelectSearchComponent_button_8_ng_content_1_Template(rf, ctx) {\n if (rf & 1) {\n i0.ɵɵprojection(0, 1, [\"*ngIf\", \"clearIcon; else defaultIcon\"]);\n }\n}\nfunction MatSelectSearchComponent_button_8_ng_template_2_Template(rf, ctx) {\n if (rf & 1) {\n i0.ɵɵelementStart(0, \"mat-icon\", 16);\n i0.ɵɵtext(1);\n i0.ɵɵelementEnd();\n }\n if (rf & 2) {\n const ctx_r2 = i0.ɵɵnextContext(2);\n i0.ɵɵproperty(\"svgIcon\", ctx_r2.closeSvgIcon);\n i0.ɵɵadvance();\n i0.ɵɵtextInterpolate1(\" \", !ctx_r2.closeSvgIcon ? ctx_r2.closeIcon : null, \" \");\n }\n}\nfunction MatSelectSearchComponent_button_8_Template(rf, ctx) {\n if (rf & 1) {\n const _r4 = i0.ɵɵgetCurrentView();\n i0.ɵɵelementStart(0, \"button\", 14);\n i0.ɵɵlistener(\"click\", function MatSelectSearchComponent_button_8_Template_button_click_0_listener() {\n i0.ɵɵrestoreView(_r4);\n const ctx_r2 = i0.ɵɵnextContext();\n return i0.ɵɵresetView(ctx_r2._reset(true));\n });\n i0.ɵɵtemplate(1, MatSelectSearchComponent_button_8_ng_content_1_Template, 1, 0, \"ng-content\", 15)(2, MatSelectSearchComponent_button_8_ng_template_2_Template, 2, 2, \"ng-template\", null, 2, i0.ɵɵtemplateRefExtractor);\n i0.ɵɵelementEnd();\n }\n if (rf & 2) {\n const defaultIcon_r5 = i0.ɵɵreference(3);\n const ctx_r2 = i0.ɵɵnextContext();\n i0.ɵɵadvance();\n i0.ɵɵproperty(\"ngIf\", ctx_r2.clearIcon)(\"ngIfElse\", defaultIcon_r5);\n }\n}\nfunction MatSelectSearchComponent_div_11_ng_content_1_Template(rf, ctx) {\n if (rf & 1) {\n i0.ɵɵprojection(0, 2, [\"*ngIf\", \"noEntriesFound; else defaultNoEntriesFound\"]);\n }\n}\nfunction MatSelectSearchComponent_div_11_ng_template_2_Template(rf, ctx) {\n if (rf & 1) {\n i0.ɵɵtext(0);\n }\n if (rf & 2) {\n const ctx_r2 = i0.ɵɵnextContext(2);\n i0.ɵɵtextInterpolate(ctx_r2.noEntriesFoundLabel);\n }\n}\nfunction MatSelectSearchComponent_div_11_Template(rf, ctx) {\n if (rf & 1) {\n i0.ɵɵelementStart(0, \"div\", 17);\n i0.ɵɵtemplate(1, MatSelectSearchComponent_div_11_ng_content_1_Template, 1, 0, \"ng-content\", 15)(2, MatSelectSearchComponent_div_11_ng_template_2_Template, 1, 1, \"ng-template\", null, 3, i0.ɵɵtemplateRefExtractor);\n i0.ɵɵelementEnd();\n }\n if (rf & 2) {\n const defaultNoEntriesFound_r6 = i0.ɵɵreference(3);\n const ctx_r2 = i0.ɵɵnextContext();\n i0.ɵɵadvance();\n i0.ɵɵproperty(\"ngIf\", ctx_r2.noEntriesFound)(\"ngIfElse\", defaultNoEntriesFound_r6);\n }\n}\nlet MatSelectSearchClearDirective = /*#__PURE__*/(() => {\n class MatSelectSearchClearDirective {}\n MatSelectSearchClearDirective.ɵfac = function MatSelectSearchClearDirective_Factory(t) {\n return new (t || MatSelectSearchClearDirective)();\n };\n MatSelectSearchClearDirective.ɵdir = /* @__PURE__ */i0.ɵɵdefineDirective({\n type: MatSelectSearchClearDirective,\n selectors: [[\"\", \"ngxMatSelectSearchClear\", \"\"]]\n });\n return MatSelectSearchClearDirective;\n})();\n(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && void 0;\n})();\n\n/** List of inputs of NgxMatSelectSearchComponent that can be configured with a global default. */\nconst configurableDefaultOptions = ['ariaLabel', 'clearSearchInput', 'closeIcon', 'closeSvgIcon', 'disableInitialFocus', 'disableScrollToActiveOnOptionsChanged', 'enableClearOnEscapePressed', 'hideClearSearchButton', 'noEntriesFoundLabel', 'placeholderLabel', 'preventHomeEndKeyPropagation', 'searching'];\n/**\n * InjectionToken that can be used to specify global options. e.g.\n *\n * ```typescript\n * providers: [\n * {\n * provide: MAT_SELECTSEARCH_DEFAULT_OPTIONS,\n * useValue: {\n * closeIcon: 'delete',\n * noEntriesFoundLabel: 'No options found'\n * }\n * }\n * ]\n * ```\n *\n * See the corresponding inputs of `MatSelectSearchComponent` for documentation.\n */\nconst MAT_SELECTSEARCH_DEFAULT_OPTIONS = new InjectionToken('mat-selectsearch-default-options');\n\n/**\n * Directive for providing a custom no entries found element.\n * e.g.\n * \n * \n * No entries found \n * \n * \n */\nlet MatSelectNoEntriesFoundDirective = /*#__PURE__*/(() => {\n class MatSelectNoEntriesFoundDirective {}\n MatSelectNoEntriesFoundDirective.ɵfac = function MatSelectNoEntriesFoundDirective_Factory(t) {\n return new (t || MatSelectNoEntriesFoundDirective)();\n };\n MatSelectNoEntriesFoundDirective.ɵdir = /* @__PURE__ */i0.ɵɵdefineDirective({\n type: MatSelectNoEntriesFoundDirective,\n selectors: [[\"\", \"ngxMatSelectNoEntriesFound\", \"\"]]\n });\n return MatSelectNoEntriesFoundDirective;\n})();\n(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && void 0;\n})();\n\n/**\n * Copyright (c) 2018 Bithost GmbH All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\n/* tslint:disable:member-ordering component-selector */\n/**\n * Component providing an input field for searching MatSelect options.\n *\n * Example usage:\n *\n * interface Bank {\n * id: string;\n * name: string;\n * }\n *\n * @Component({\n * selector: 'my-app-data-selection',\n * template: `\n * \n * \n * \n * \n * \n * \n * {{bank.name}}\n * \n * \n * \n * `\n * })\n * export class DataSelectionComponent implements OnInit, OnDestroy {\n *\n * // control for the selected bank\n * public bankCtrl: FormControl = new FormControl();\n * // control for the MatSelect filter keyword\n * public bankFilterCtrl: FormControl = new FormControl();\n *\n * // list of banks\n * private banks: Bank[] = [{name: 'Bank A', id: 'A'}, {name: 'Bank B', id: 'B'}, {name: 'Bank C', id: 'C'}];\n * // list of banks filtered by search keyword\n * public filteredBanks: ReplaySubject = new ReplaySubject(1);\n *\n * // Subject that emits when the component has been destroyed.\n * private _onDestroy = new Subject();\n *\n *\n * ngOnInit() {\n * // load the initial bank list\n * this.filteredBanks.next(this.banks.slice());\n * // listen for search field value changes\n * this.bankFilterCtrl.valueChanges\n * .pipe(takeUntil(this._onDestroy))\n * .subscribe(() => {\n * this.filterBanks();\n * });\n * }\n *\n * ngOnDestroy() {\n * this._onDestroy.next();\n * this._onDestroy.complete();\n * }\n *\n * private filterBanks() {\n * if (!this.banks) {\n * return;\n * }\n *\n * // get the search keyword\n * let search = this.bankFilterCtrl.value;\n * if (!search) {\n * this.filteredBanks.next(this.banks.slice());\n * return;\n * } else {\n * search = search.toLowerCase();\n * }\n *\n * // filter the banks\n * this.filteredBanks.next(\n * this.banks.filter(bank => bank.name.toLowerCase().indexOf(search) > -1)\n * );\n * }\n * }\n */\nlet MatSelectSearchComponent = /*#__PURE__*/(() => {\n class MatSelectSearchComponent {\n constructor(matSelect, changeDetectorRef, _viewportRuler, matOption = null, matFormField = null, defaultOptions) {\n this.matSelect = matSelect;\n this.changeDetectorRef = changeDetectorRef;\n this._viewportRuler = _viewportRuler;\n this.matOption = matOption;\n this.matFormField = matFormField;\n /** Label of the search placeholder */\n this.placeholderLabel = 'Suche';\n /** Type of the search input field */\n this.type = 'text';\n /** Font-based icon used for displaying Close-Icon */\n this.closeIcon = 'close';\n /** Label to be shown when no entries are found. Set to null if no message should be shown. */\n this.noEntriesFoundLabel = 'Keine Optionen gefunden';\n /**\n * Whether or not the search field should be cleared after the dropdown menu is closed.\n * Useful for server-side filtering. See [#3](https://github.com/bithost-gmbh/ngx-mat-select-search/issues/3)\n */\n this.clearSearchInput = true;\n /** Whether to show the search-in-progress indicator */\n this.searching = false;\n /** Disables initial focusing of the input field */\n this.disableInitialFocus = false;\n /** Enable clear input on escape pressed */\n this.enableClearOnEscapePressed = false;\n /**\n * Prevents home / end key being propagated to mat-select,\n * allowing to move the cursor within the search input instead of navigating the options\n */\n this.preventHomeEndKeyPropagation = false;\n /** Disables scrolling to active options when option list changes. Useful for server-side search */\n this.disableScrollToActiveOnOptionsChanged = false;\n /** Adds 508 screen reader support for search box */\n this.ariaLabel = 'dropdown search';\n /** Whether to show Select All Checkbox (for mat-select[multi=true]) */\n this.showToggleAllCheckbox = false;\n /** select all checkbox checked state */\n this.toggleAllCheckboxChecked = false;\n /** select all checkbox indeterminate state */\n this.toggleAllCheckboxIndeterminate = false;\n /** Display a message in a tooltip on the toggle-all checkbox */\n this.toggleAllCheckboxTooltipMessage = '';\n /** Define the position of the tooltip on the toggle-all checkbox. */\n this.toggleAllCheckboxTooltipPosition = 'below';\n /** Show/Hide the search clear button of the search input */\n this.hideClearSearchButton = false;\n /**\n * Always restore selected options on selectionChange for mode multi (e.g. for lazy loading/infinity scrolling).\n * Defaults to false, so selected options are only restored while filtering is active.\n */\n this.alwaysRestoreSelectedOptionsMulti = false;\n /** Output emitter to send to parent component with the toggle all boolean */\n this.toggleAll = new EventEmitter();\n this.onTouched = _ => {};\n this._options$ = new BehaviorSubject(null);\n this.optionsList$ = this._options$.pipe(switchMap(_options => _options ? _options.changes.pipe(map(options => options.toArray()), startWith(_options.toArray())) : of(null)));\n this.optionsLength$ = this.optionsList$.pipe(map(options => options ? options.length : 0));\n this._formControl = new FormControl('');\n /** whether to show the no entries found message */\n this._showNoEntriesFound$ = combineLatest([this._formControl.valueChanges, this.optionsLength$]).pipe(map(([value, optionsLength]) => this.noEntriesFoundLabel && value && optionsLength === this.getOptionsLengthOffset()));\n /** Subject that emits when the component has been destroyed. */\n this._onDestroy = new Subject();\n this.applyDefaultOptions(defaultOptions);\n }\n /** Current search value */\n get value() {\n return this._formControl.value;\n }\n /** Reference to the MatSelect options */\n set _options(_options) {\n this._options$.next(_options);\n }\n get _options() {\n return this._options$.getValue();\n }\n applyDefaultOptions(defaultOptions) {\n if (!defaultOptions) {\n return;\n }\n for (const key of configurableDefaultOptions) {\n if (defaultOptions.hasOwnProperty(key)) {\n this[key] = defaultOptions[key];\n }\n }\n }\n ngOnInit() {\n // set custom mat-option class if the component was placed inside a mat-option\n if (this.matOption) {\n this.matOption.disabled = true;\n this.matOption._getHostElement().classList.add('contains-mat-select-search');\n this.matOption._getHostElement().setAttribute('aria-hidden', 'true');\n } else {\n console.error(' must be placed inside a element');\n }\n // when the select dropdown panel is opened or closed\n this.matSelect.openedChange.pipe(delay(1), takeUntil(this._onDestroy)).subscribe(opened => {\n if (opened) {\n this.updateInputWidth();\n // focus the search field when opening\n if (!this.disableInitialFocus) {\n this._focus();\n }\n } else {\n // clear it when closing\n if (this.clearSearchInput) {\n this._reset();\n }\n }\n });\n // set the first item active after the options changed\n this.matSelect.openedChange.pipe(take(1), switchMap(_ => {\n this._options = this.matSelect.options;\n // Closure variable for tracking the most recent first option.\n // In order to avoid avoid causing the list to\n // scroll to the top when options are added to the bottom of\n // the list (eg: infinite scroll), we compare only\n // the changes to the first options to determine if we\n // should set the first item as active.\n // This prevents unnecessary scrolling to the top of the list\n // when options are appended, but allows the first item\n // in the list to be set as active by default when there\n // is no active selection\n let previousFirstOption = this._options.toArray()[this.getOptionsLengthOffset()];\n return this._options.changes.pipe(tap(() => {\n // avoid \"expression has been changed\" error\n setTimeout(() => {\n // Convert the QueryList to an array\n const options = this._options.toArray();\n // The true first item is offset by 1\n const currentFirstOption = options[this.getOptionsLengthOffset()];\n const keyManager = this.matSelect._keyManager;\n if (keyManager && this.matSelect.panelOpen && currentFirstOption) {\n // set first item active and input width\n // Check to see if the first option in these changes is different from the previous.\n const firstOptionIsChanged = !previousFirstOption || !this.matSelect.compareWith(previousFirstOption.value, currentFirstOption.value);\n // CASE: The first option is different now.\n // Indiciates we should set it as active and scroll to the top.\n if (firstOptionIsChanged || !keyManager.activeItem || !options.find(option => this.matSelect.compareWith(option.value, keyManager.activeItem.value))) {\n keyManager.setActiveItem(this.getOptionsLengthOffset());\n }\n // wait for panel width changes\n setTimeout(() => {\n this.updateInputWidth();\n });\n }\n // Update our reference\n previousFirstOption = currentFirstOption;\n });\n }));\n })).pipe(takeUntil(this._onDestroy)).subscribe();\n // add or remove css class depending on whether to show the no entries found message\n // note: this is hacky\n this._showNoEntriesFound$.pipe(takeUntil(this._onDestroy)).subscribe(showNoEntriesFound => {\n // set no entries found class on mat option\n if (this.matOption) {\n if (showNoEntriesFound) {\n this.matOption._getHostElement().classList.add('mat-select-search-no-entries-found');\n } else {\n this.matOption._getHostElement().classList.remove('mat-select-search-no-entries-found');\n }\n }\n });\n // resize the input width when the viewport is resized, i.e. the trigger width could potentially be resized\n this._viewportRuler.change().pipe(takeUntil(this._onDestroy)).subscribe(() => {\n if (this.matSelect.panelOpen) {\n this.updateInputWidth();\n }\n });\n this.initMultipleHandling();\n this.optionsList$.pipe(takeUntil(this._onDestroy)).subscribe(() => {\n // update view when available options change\n this.changeDetectorRef.markForCheck();\n });\n }\n _emitSelectAllBooleanToParent(state) {\n this.toggleAll.emit(state);\n }\n ngOnDestroy() {\n this._onDestroy.next();\n this._onDestroy.complete();\n }\n _isToggleAllCheckboxVisible() {\n return this.matSelect.multiple && this.showToggleAllCheckbox;\n }\n /**\n * Handles the key down event with MatSelect.\n * Allows e.g. selecting with enter key, navigation with arrow keys, etc.\n * @param event\n */\n _handleKeydown(event) {\n // Prevent propagation for all alphanumeric characters in order to avoid selection issues\n if (event.key && event.key.length === 1 || event.keyCode >= A && event.keyCode <= Z || event.keyCode >= ZERO && event.keyCode <= NINE || event.keyCode === SPACE || this.preventHomeEndKeyPropagation && (event.keyCode === HOME || event.keyCode === END)) {\n event.stopPropagation();\n }\n if (this.matSelect.multiple && event.key && event.keyCode === ENTER) {\n // Regain focus after multiselect, so we can further type\n setTimeout(() => this._focus());\n }\n // Special case if click Escape, if input is empty, close the dropdown, if not, empty out the search field\n if (this.enableClearOnEscapePressed === true && event.keyCode === ESCAPE && this.value) {\n this._reset(true);\n event.stopPropagation();\n }\n }\n /**\n * Handles the key up event with MatSelect.\n * Allows e.g. the announcing of the currently activeDescendant by screen readers.\n */\n _handleKeyup(event) {\n if (event.keyCode === UP_ARROW || event.keyCode === DOWN_ARROW) {\n const ariaActiveDescendantId = this.matSelect._getAriaActiveDescendant();\n const index = this._options.toArray().findIndex(item => item.id === ariaActiveDescendantId);\n if (index !== -1) {\n this.unselectActiveDescendant();\n this.activeDescendant = this._options.toArray()[index]._getHostElement();\n this.activeDescendant.setAttribute('aria-selected', 'true');\n this.searchSelectInput.nativeElement.setAttribute('aria-activedescendant', ariaActiveDescendantId);\n }\n }\n }\n writeValue(value) {\n this._lastExternalInputValue = value;\n this._formControl.setValue(value);\n this.changeDetectorRef.markForCheck();\n }\n onBlur() {\n this.unselectActiveDescendant();\n this.onTouched();\n }\n registerOnChange(fn) {\n this._formControl.valueChanges.pipe(filter(value => value !== this._lastExternalInputValue), tap(() => this._lastExternalInputValue = undefined), takeUntil(this._onDestroy)).subscribe(fn);\n }\n registerOnTouched(fn) {\n this.onTouched = fn;\n }\n /**\n * Focuses the search input field\n */\n _focus() {\n if (!this.searchSelectInput || !this.matSelect.panel) {\n return;\n }\n // save and restore scrollTop of panel, since it will be reset by focus()\n // note: this is hacky\n const panel = this.matSelect.panel.nativeElement;\n const scrollTop = panel.scrollTop;\n // focus\n this.searchSelectInput.nativeElement.focus();\n panel.scrollTop = scrollTop;\n }\n /**\n * Resets the current search value\n * @param focus whether to focus after resetting\n */\n _reset(focus) {\n this._formControl.setValue('');\n if (focus) {\n this._focus();\n }\n }\n /**\n * Initializes handling \n * Note: to improve this code, mat-select should be extended to allow disabling resetting the selection while filtering.\n */\n initMultipleHandling() {\n if (!this.matSelect.ngControl) {\n if (this.matSelect.multiple) {\n // note: the access to matSelect.ngControl (instead of matSelect.value / matSelect.valueChanges)\n // is necessary to properly work in multi-selection mode.\n console.error('the mat-select containing ngx-mat-select-search must have a ngModel or formControl directive when multiple=true');\n }\n return;\n }\n // if \n // store previously selected values and restore them when they are deselected\n // because the option is not available while we are currently filtering\n this.previousSelectedValues = this.matSelect.ngControl.value;\n this.matSelect.ngControl.valueChanges.pipe(takeUntil(this._onDestroy)).subscribe(values => {\n let restoreSelectedValues = false;\n if (this.matSelect.multiple) {\n if ((this.alwaysRestoreSelectedOptionsMulti || this._formControl.value && this._formControl.value.length) && this.previousSelectedValues && Array.isArray(this.previousSelectedValues)) {\n if (!values || !Array.isArray(values)) {\n values = [];\n }\n const optionValues = this.matSelect.options.map(option => option.value);\n this.previousSelectedValues.forEach(previousValue => {\n if (!values.some(v => this.matSelect.compareWith(v, previousValue)) && !optionValues.some(v => this.matSelect.compareWith(v, previousValue))) {\n // if a value that was selected before is deselected and not found in the options, it was deselected\n // due to the filtering, so we restore it.\n values.push(previousValue);\n restoreSelectedValues = true;\n }\n });\n }\n }\n this.previousSelectedValues = values;\n if (restoreSelectedValues) {\n this.matSelect._onChange(values);\n }\n });\n }\n /**\n * Set the width of the innerSelectSearch to fit even custom scrollbars\n * And support all Operation Systems\n */\n updateInputWidth() {\n if (!this.innerSelectSearch || !this.innerSelectSearch.nativeElement) {\n return;\n }\n let element = this.innerSelectSearch.nativeElement;\n let panelElement;\n while (element = element.parentElement) {\n if (element.classList.contains('mat-select-panel')) {\n panelElement = element;\n break;\n }\n }\n if (panelElement) {\n this.innerSelectSearch.nativeElement.style.width = panelElement.clientWidth + 'px';\n }\n }\n /**\n * Determine the offset to length that can be caused by the optional matOption used as a search input.\n */\n getOptionsLengthOffset() {\n if (this.matOption) {\n return 1;\n } else {\n return 0;\n }\n }\n unselectActiveDescendant() {\n this.activeDescendant?.removeAttribute('aria-selected');\n this.searchSelectInput.nativeElement.removeAttribute('aria-activedescendant');\n }\n }\n MatSelectSearchComponent.ɵfac = function MatSelectSearchComponent_Factory(t) {\n return new (t || MatSelectSearchComponent)(i0.ɵɵdirectiveInject(MatSelect), i0.ɵɵdirectiveInject(i0.ChangeDetectorRef), i0.ɵɵdirectiveInject(i1.ViewportRuler), i0.ɵɵdirectiveInject(MatOption, 8), i0.ɵɵdirectiveInject(MatFormField, 8), i0.ɵɵdirectiveInject(MAT_SELECTSEARCH_DEFAULT_OPTIONS, 8));\n };\n MatSelectSearchComponent.ɵcmp = /* @__PURE__ */i0.ɵɵdefineComponent({\n type: MatSelectSearchComponent,\n selectors: [[\"ngx-mat-select-search\"]],\n contentQueries: function MatSelectSearchComponent_ContentQueries(rf, ctx, dirIndex) {\n if (rf & 1) {\n i0.ɵɵcontentQuery(dirIndex, MatSelectSearchClearDirective, 5);\n i0.ɵɵcontentQuery(dirIndex, MatSelectNoEntriesFoundDirective, 5);\n }\n if (rf & 2) {\n let _t;\n i0.ɵɵqueryRefresh(_t = i0.ɵɵloadQuery()) && (ctx.clearIcon = _t.first);\n i0.ɵɵqueryRefresh(_t = i0.ɵɵloadQuery()) && (ctx.noEntriesFound = _t.first);\n }\n },\n viewQuery: function MatSelectSearchComponent_Query(rf, ctx) {\n if (rf & 1) {\n i0.ɵɵviewQuery(_c0, 7, ElementRef);\n i0.ɵɵviewQuery(_c1, 7, ElementRef);\n }\n if (rf & 2) {\n let _t;\n i0.ɵɵqueryRefresh(_t = i0.ɵɵloadQuery()) && (ctx.searchSelectInput = _t.first);\n i0.ɵɵqueryRefresh(_t = i0.ɵɵloadQuery()) && (ctx.innerSelectSearch = _t.first);\n }\n },\n inputs: {\n placeholderLabel: \"placeholderLabel\",\n type: \"type\",\n closeIcon: \"closeIcon\",\n closeSvgIcon: \"closeSvgIcon\",\n noEntriesFoundLabel: \"noEntriesFoundLabel\",\n clearSearchInput: \"clearSearchInput\",\n searching: \"searching\",\n disableInitialFocus: \"disableInitialFocus\",\n enableClearOnEscapePressed: \"enableClearOnEscapePressed\",\n preventHomeEndKeyPropagation: \"preventHomeEndKeyPropagation\",\n disableScrollToActiveOnOptionsChanged: \"disableScrollToActiveOnOptionsChanged\",\n ariaLabel: \"ariaLabel\",\n showToggleAllCheckbox: \"showToggleAllCheckbox\",\n toggleAllCheckboxChecked: \"toggleAllCheckboxChecked\",\n toggleAllCheckboxIndeterminate: \"toggleAllCheckboxIndeterminate\",\n toggleAllCheckboxTooltipMessage: \"toggleAllCheckboxTooltipMessage\",\n toggleAllCheckboxTooltipPosition: \"toggleAllCheckboxTooltipPosition\",\n hideClearSearchButton: \"hideClearSearchButton\",\n alwaysRestoreSelectedOptionsMulti: \"alwaysRestoreSelectedOptionsMulti\"\n },\n outputs: {\n toggleAll: \"toggleAll\"\n },\n features: [i0.ɵɵProvidersFeature([{\n provide: NG_VALUE_ACCESSOR,\n useExisting: forwardRef(() => MatSelectSearchComponent),\n multi: true\n }])],\n ngContentSelectors: _c3,\n decls: 13,\n vars: 14,\n consts: [[\"innerSelectSearch\", \"\"], [\"searchSelectInput\", \"\"], [\"defaultIcon\", \"\"], [\"defaultNoEntriesFound\", \"\"], [\"matInput\", \"\", 1, \"mat-select-search-input\", \"mat-select-search-hidden\"], [1, \"mat-select-search-inner\", \"mat-typography\", \"mat-datepicker-content\", \"mat-tab-header\", 3, \"ngClass\"], [1, \"mat-select-search-inner-row\"], [\"class\", \"mat-select-search-toggle-all-checkbox\", \"matTooltipClass\", \"ngx-mat-select-search-toggle-all-tooltip\", 3, \"color\", \"checked\", \"indeterminate\", \"matTooltip\", \"matTooltipPosition\", \"change\", 4, \"ngIf\"], [\"autocomplete\", \"off\", 1, \"mat-select-search-input\", 3, \"keydown\", \"keyup\", \"blur\", \"type\", \"formControl\", \"placeholder\"], [\"class\", \"mat-select-search-spinner\", \"diameter\", \"16\", 4, \"ngIf\"], [\"mat-icon-button\", \"\", \"aria-label\", \"Clear\", \"class\", \"mat-select-search-clear\", 3, \"click\", 4, \"ngIf\"], [\"class\", \"mat-select-search-no-entries-found\", 4, \"ngIf\"], [\"matTooltipClass\", \"ngx-mat-select-search-toggle-all-tooltip\", 1, \"mat-select-search-toggle-all-checkbox\", 3, \"change\", \"color\", \"checked\", \"indeterminate\", \"matTooltip\", \"matTooltipPosition\"], [\"diameter\", \"16\", 1, \"mat-select-search-spinner\"], [\"mat-icon-button\", \"\", \"aria-label\", \"Clear\", 1, \"mat-select-search-clear\", 3, \"click\"], [4, \"ngIf\", \"ngIfElse\"], [3, \"svgIcon\"], [1, \"mat-select-search-no-entries-found\"]],\n template: function MatSelectSearchComponent_Template(rf, ctx) {\n if (rf & 1) {\n const _r1 = i0.ɵɵgetCurrentView();\n i0.ɵɵprojectionDef(_c2);\n i0.ɵɵelement(0, \"input\", 4);\n i0.ɵɵelementStart(1, \"div\", 5, 0)(3, \"div\", 6);\n i0.ɵɵtemplate(4, MatSelectSearchComponent_mat_checkbox_4_Template, 1, 5, \"mat-checkbox\", 7);\n i0.ɵɵelementStart(5, \"input\", 8, 1);\n i0.ɵɵlistener(\"keydown\", function MatSelectSearchComponent_Template_input_keydown_5_listener($event) {\n i0.ɵɵrestoreView(_r1);\n return i0.ɵɵresetView(ctx._handleKeydown($event));\n })(\"keyup\", function MatSelectSearchComponent_Template_input_keyup_5_listener($event) {\n i0.ɵɵrestoreView(_r1);\n return i0.ɵɵresetView(ctx._handleKeyup($event));\n })(\"blur\", function MatSelectSearchComponent_Template_input_blur_5_listener() {\n i0.ɵɵrestoreView(_r1);\n return i0.ɵɵresetView(ctx.onBlur());\n });\n i0.ɵɵelementEnd();\n i0.ɵɵtemplate(7, MatSelectSearchComponent_mat_spinner_7_Template, 1, 0, \"mat-spinner\", 9)(8, MatSelectSearchComponent_button_8_Template, 4, 2, \"button\", 10);\n i0.ɵɵprojection(9);\n i0.ɵɵelementEnd();\n i0.ɵɵelement(10, \"mat-divider\");\n i0.ɵɵelementEnd();\n i0.ɵɵtemplate(11, MatSelectSearchComponent_div_11_Template, 4, 2, \"div\", 11);\n i0.ɵɵpipe(12, \"async\");\n }\n if (rf & 2) {\n i0.ɵɵadvance();\n i0.ɵɵproperty(\"ngClass\", i0.ɵɵpureFunction2(11, _c4, ctx.matSelect.multiple, ctx._isToggleAllCheckboxVisible()));\n i0.ɵɵadvance(3);\n i0.ɵɵproperty(\"ngIf\", ctx._isToggleAllCheckboxVisible());\n i0.ɵɵadvance();\n i0.ɵɵproperty(\"type\", ctx.type)(\"formControl\", ctx._formControl)(\"placeholder\", ctx.placeholderLabel);\n i0.ɵɵattribute(\"aria-label\", ctx.ariaLabel);\n i0.ɵɵadvance(2);\n i0.ɵɵproperty(\"ngIf\", ctx.searching);\n i0.ɵɵadvance();\n i0.ɵɵproperty(\"ngIf\", !ctx.hideClearSearchButton && ctx.value && !ctx.searching);\n i0.ɵɵadvance(3);\n i0.ɵɵproperty(\"ngIf\", i0.ɵɵpipeBind1(12, 9, ctx._showNoEntriesFound$));\n }\n },\n dependencies: [i2.NgClass, i2.NgIf, i3.DefaultValueAccessor, i3.NgControlStatus, i3.FormControlDirective, i4.MatIconButton, i5.MatCheckbox, i6.MatIcon, i7.MatProgressSpinner, i8.MatTooltip, i9.MatDivider, i2.AsyncPipe],\n styles: [\".mat-select-search-hidden[_ngcontent-%COMP%]{visibility:hidden}.mat-select-search-inner[_ngcontent-%COMP%]{position:absolute;top:0;left:0;width:100%;z-index:100;font-size:inherit;box-shadow:none;background-color:var(--mat-select-panel-background-color)}.mat-select-search-inner.mat-select-search-inner-multiple.mat-select-search-inner-toggle-all[_ngcontent-%COMP%] .mat-select-search-inner-row[_ngcontent-%COMP%]{display:flex;align-items:center}.mat-select-search-input[_ngcontent-%COMP%]{box-sizing:border-box;width:100%;border:none;font-family:inherit;font-size:inherit;color:currentColor;outline:none;background-color:var(--mat-select-panel-background-color);padding:0 44px 0 16px;height:calc(3em - 1px);line-height:calc(3em - 1px)}[dir=rtl][_nghost-%COMP%] .mat-select-search-input[_ngcontent-%COMP%], [dir=rtl] [_nghost-%COMP%] .mat-select-search-input[_ngcontent-%COMP%]{padding-right:16px;padding-left:44px}.mat-select-search-inner-toggle-all[_ngcontent-%COMP%] .mat-select-search-input[_ngcontent-%COMP%]{padding-left:5px}.mat-select-search-no-entries-found[_ngcontent-%COMP%]{padding-top:8px}.mat-select-search-clear[_ngcontent-%COMP%]{position:absolute;right:4px;top:0}[dir=rtl][_nghost-%COMP%] .mat-select-search-clear[_ngcontent-%COMP%], [dir=rtl] [_nghost-%COMP%] .mat-select-search-clear[_ngcontent-%COMP%]{right:auto;left:4px}.mat-select-search-spinner[_ngcontent-%COMP%]{position:absolute;right:16px;top:calc(50% - 8px)}[dir=rtl][_nghost-%COMP%] .mat-select-search-spinner[_ngcontent-%COMP%], [dir=rtl] [_nghost-%COMP%] .mat-select-search-spinner[_ngcontent-%COMP%]{right:auto;left:16px} .mat-mdc-option[aria-disabled=true].contains-mat-select-search{position:sticky;top:-8px;z-index:1;opacity:1;margin-top:-8px;pointer-events:all} .mat-mdc-option[aria-disabled=true].contains-mat-select-search .mat-icon{margin-right:0;margin-left:0} .mat-mdc-option[aria-disabled=true].contains-mat-select-search mat-pseudo-checkbox{display:none} .mat-mdc-option[aria-disabled=true].contains-mat-select-search .mdc-list-item__primary-text{opacity:1}.mat-select-search-toggle-all-checkbox[_ngcontent-%COMP%]{padding-left:5px}[dir=rtl][_nghost-%COMP%] .mat-select-search-toggle-all-checkbox[_ngcontent-%COMP%], [dir=rtl] [_nghost-%COMP%] .mat-select-search-toggle-all-checkbox[_ngcontent-%COMP%]{padding-left:0;padding-right:5px}\"],\n changeDetection: 0\n });\n return MatSelectSearchComponent;\n})();\n(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && void 0;\n})();\n\n/**\n * Copyright (c) 2018 Bithost GmbH All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\nconst MatSelectSearchVersion = '7.0.5';\nlet NgxMatSelectSearchModule = /*#__PURE__*/(() => {\n class NgxMatSelectSearchModule {}\n NgxMatSelectSearchModule.ɵfac = function NgxMatSelectSearchModule_Factory(t) {\n return new (t || NgxMatSelectSearchModule)();\n };\n NgxMatSelectSearchModule.ɵmod = /* @__PURE__ */i0.ɵɵdefineNgModule({\n type: NgxMatSelectSearchModule\n });\n NgxMatSelectSearchModule.ɵinj = /* @__PURE__ */i0.ɵɵdefineInjector({\n imports: [CommonModule, ReactiveFormsModule, MatButtonModule, MatCheckboxModule, MatIconModule, MatProgressSpinnerModule, MatTooltipModule, MatDividerModule]\n });\n return NgxMatSelectSearchModule;\n})();\n(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && void 0;\n})();\n\n/**\n * Generated bundle index. Do not edit.\n */\n\nexport { MAT_SELECTSEARCH_DEFAULT_OPTIONS, MatSelectNoEntriesFoundDirective, MatSelectSearchClearDirective, MatSelectSearchComponent, MatSelectSearchVersion, NgxMatSelectSearchModule, configurableDefaultOptions };\n\n","import { AfterViewInit, ChangeDetectorRef, Directive, HostBinding, Input, OnDestroy } from '@angular/core';\nimport { UntypedFormControl } from '@angular/forms';\nimport { FormFieldComponent } from '@vendasta/galaxy/form-field';\nimport { Subject, combineLatest, of } from 'rxjs';\nimport { switchMap, takeUntil, tap } from 'rxjs/operators';\nimport { FieldValidation } from '../../field-validation';\nimport { FieldWarningService } from './field-warning.service';\n\n@Directive({\n selector: '[crmFieldWarning]',\n standalone: true,\n})\nexport class CrmFieldWarningDirective implements AfterViewInit, OnDestroy {\n private destroyed$$ = new Subject();\n private hasWarnings = false;\n\n @Input({ alias: 'crmFieldWarning', required: true }) fieldValidation: FieldValidation;\n @Input({ required: true }) warningControl: UntypedFormControl;\n\n @HostBinding('class.crm-field-warning')\n get hasWarningsClass() {\n return this.hasWarnings;\n }\n\n constructor(\n private formFieldComponent: FormFieldComponent,\n private warningService: FieldWarningService,\n private readonly cd: ChangeDetectorRef,\n ) {}\n\n ngAfterViewInit(): void {\n combineLatest([this.warningControl.valueChanges, this.warningControl.statusChanges])\n .pipe(\n takeUntil(this.destroyed$$),\n switchMap(([, statusChanges]) => {\n if (statusChanges === 'INVALID') {\n return of(null);\n }\n return this.warningService.validateWarning(this.warningControl, this.fieldValidation.getWarningValidators());\n }),\n tap((warnings) => {\n if (warnings !== null && Object.keys(warnings).length > 0) {\n this.hasWarnings = true;\n this.formFieldComponent.prefixIcon = 'warning';\n } else {\n this.hasWarnings = false;\n this.formFieldComponent.prefixIcon = '';\n }\n this.cd.markForCheck();\n }),\n )\n .subscribe();\n }\n\n ngOnDestroy(): void {\n this.destroyed$$.next(null);\n this.destroyed$$.unsubscribe();\n }\n}\n","import { CommonModule } from '@angular/common';\nimport { Component, EventEmitter, Input, Output } from '@angular/core';\nimport { MatIconModule } from '@angular/material/icon';\nimport { TranslateModule } from '@ngx-translate/core';\nimport { GalaxyEmptyStateModule } from '@vendasta/galaxy/empty-state';\nimport { GalaxyLoadingSpinnerModule } from '@vendasta/galaxy/loading-spinner';\nimport { GalaxyButtonLoadingIndicatorModule } from '@vendasta/galaxy/button-loading-indicator';\nimport { MatButtonModule } from '@angular/material/button';\nimport { SavingStatus } from '../../../../tokens-and-interfaces';\n\n@Component({\n selector: 'crm-form-button-group',\n template: `\n
\n \n \n {{ submitButtonText | translate }}\n \n \n \n {{ cancelButtonText | translate }}\n \n
\n `,\n styleUrls: ['./form-button-group.component.scss'],\n standalone: true,\n imports: [\n CommonModule,\n TranslateModule,\n GalaxyEmptyStateModule,\n MatIconModule,\n GalaxyLoadingSpinnerModule,\n GalaxyButtonLoadingIndicatorModule,\n MatButtonModule,\n ],\n})\nexport class CrmFormButtonGroupComponent {\n @Input() submitButtonText = '';\n @Input() cancelButtonText = '';\n @Input() savingStatus!: SavingStatus;\n\n @Output() clickedOnSubmit = new EventEmitter();\n @Output() clickedOnCancel = new EventEmitter();\n\n SavingStatus = SavingStatus;\n}\n","import { CommonModule } from '@angular/common';\nimport { Component, OnInit, Input, Output, EventEmitter, ViewEncapsulation } from '@angular/core';\nimport { ReactiveFormsModule, FormsModule, UntypedFormControl } from '@angular/forms';\nimport { MatInputModule } from '@angular/material/input';\nimport { TranslateModule } from '@ngx-translate/core';\nimport { GalaxyFormFieldModule } from '@vendasta/galaxy/form-field';\nimport { PopoverPositions, GalaxyPopoverModule } from '@vendasta/galaxy/popover';\nimport { MatButtonModule } from '@angular/material/button';\nimport { OverlayModule } from '@angular/cdk/overlay';\nimport { CrmFormButtonGroupComponent } from '../../form/modes/form-button-group.component';\n\n@Component({\n selector: 'crm-model-driven-popover',\n templateUrl: './model-driven-popover.component.html',\n imports: [\n CommonModule,\n MatInputModule,\n ReactiveFormsModule,\n TranslateModule,\n GalaxyFormFieldModule,\n GalaxyPopoverModule,\n MatButtonModule,\n OverlayModule,\n FormsModule,\n CrmFormButtonGroupComponent,\n ],\n providers: [],\n styleUrls: ['./model-driven-popover.component.scss'],\n standalone: true,\n encapsulation: ViewEncapsulation.None,\n})\nexport class CrmModelDrivenPopoverComponent implements OnInit {\n @Input({ required: true }) label: string;\n @Input({ required: true }) displayValue: string;\n @Input({ required: true }) control: UntypedFormControl;\n @Output() save = new EventEmitter();\n\n renderedValue = '';\n openedPopover = false;\n popoverPositions = [PopoverPositions.Right, PopoverPositions.Bottom];\n\n openPopover(): void {\n this.openedPopover = true;\n }\n\n closePopover(): void {\n this.openedPopover = false;\n }\n\n saveModification(): void {\n if (this.control.invalid) {\n return;\n }\n this.renderedValue = this.displayValue ?? '';\n this.save.emit();\n this.closePopover();\n }\n\n ngOnInit(): void {\n this.renderedValue = this.displayValue ?? '';\n }\n}\n","\n {{ label | translate }}\n \n\n\n {{ 'MODEL_DRIVEN_FORM.EDIT_FIELD' | translate }}\n
\n \n \n \n\n","import { Injectable } from '@angular/core';\nimport { BehaviorSubject } from 'rxjs';\nimport { FieldValue } from '@vendasta/crm';\nimport { FieldValueInterface } from '../../../tokens-and-interfaces';\n\n@Injectable({ providedIn: 'root' })\nexport class UpdaterService {\n updatedField: BehaviorSubject;\n\n constructor() {\n this.updatedField = new BehaviorSubject(new FieldValue());\n }\n\n updateStringField(fieldId: string, value: string) {\n this.updatedField.next(new FieldValue({ fieldId: fieldId, stringValue: value }));\n }\n\n updateGeopointField(fieldId: string, lat: number, lon: number) {\n this.updatedField.next(new FieldValue({ fieldId: fieldId, geopointValue: { lat: lat, lon: lon } }));\n }\n}\n","import { TranslateService } from '@ngx-translate/core';\nimport { CountryCode, getCountries, getCountryCallingCode } from 'libphonenumber-js';\nimport { Observable } from 'rxjs';\nimport { map, shareReplay, startWith } from 'rxjs/operators';\n\nexport class CountryOption {\n readonly type = 'CountryOption' as const;\n countryCode: CountryCode;\n callingCode: string;\n flag: string;\n countryName: string;\n displayValue: string;\n}\n\nexport function getCountryOptions(language: string): CountryOption[] {\n const countries = getCountries();\n\n const lang = language || 'en-US';\n const regionNames = new Intl.DisplayNames([lang], { type: 'region' });\n return countries.map((countryCode) => configureCountry(countryCode, regionNames));\n}\n\nfunction configureCountry(countryCode: CountryCode, regionNames: Intl.DisplayNames): CountryOption {\n // Explanation: https://github.com/vendasta/galaxy/pull/10512#discussion_r889339586\n const alphaToFlagAlpha = (a: string) => {\n if (!a?.toUpperCase()?.codePointAt(0)) {\n return '';\n }\n return String.fromCodePoint(0x1f1a5 + a.toUpperCase().codePointAt(0));\n };\n const countryFlag = countryCode.slice(0, 2).split('').map(alphaToFlagAlpha).join('');\n const callingCode = '+' + getCountryCallingCode(countryCode).toString();\n\n return {\n ...new CountryOption(),\n countryCode: countryCode,\n flag: countryFlag,\n callingCode: callingCode,\n countryName: regionNames.of(countryCode) ?? 'United States',\n displayValue: `${callingCode} (${countryFlag} ${regionNames.of(countryCode)})`,\n };\n}\n\nexport const PHONE_COUNTRY_OPTIONS_TOKEN = 'PHONE_COUNTRY_OPTIONS_TOKEN';\nexport const countryOptionsFactoryProvider = {\n provide: PHONE_COUNTRY_OPTIONS_TOKEN,\n useFactory: (translate: TranslateService): Observable =>\n translate.onLangChange.pipe(\n startWith({ lang: translate.currentLang }),\n map((event) => getCountryOptions(event.lang)),\n shareReplay({ refCount: true, bufferSize: 1 }),\n ),\n deps: [TranslateService],\n};\n","import { Inject, Injectable } from '@angular/core';\nimport { CountryCode } from 'libphonenumber-js';\nimport { BehaviorSubject, Observable } from 'rxjs';\nimport { map } from 'rxjs/operators';\nimport { CountryOption, PHONE_COUNTRY_OPTIONS_TOKEN } from './country-options';\n\nconst USED_COUNTRY_CODES = 'usedCountryCodes';\n\n@Injectable({\n providedIn: 'root',\n})\nexport class CountryCodeService {\n private readonly countryOptions$$ = new BehaviorSubject([]);\n readonly countryOptions$: Observable;\n\n constructor(@Inject(PHONE_COUNTRY_OPTIONS_TOKEN) _countryOptions$: Observable) {\n _countryOptions$.subscribe(this.countryOptions$$);\n this.countryOptions$ = this.countryOptions$$.pipe(map((options) => this.sortCountryOptions(options)));\n }\n\n // Returns the country option that matches the given country code.\n getCountryOption(countryCode: CountryCode): CountryOption | null {\n return this.countryOptions$$.getValue().find((option) => option.countryCode === countryCode) ?? null;\n }\n\n private sortCountryOptions(countryOptions: CountryOption[]): CountryOption[] {\n const cc = this.getUsedCountryCodes();\n return countryOptions.sort((a, b) => {\n const aUsed = cc.includes(a.countryCode);\n const bUsed = cc.includes(b.countryCode);\n const bothUsed = aUsed && bUsed;\n const neitherUsed = !(aUsed || bUsed);\n\n if (aUsed && !bUsed) return -1;\n if (!aUsed && bUsed) return 1;\n if (bothUsed && cc.indexOf(a.countryCode) < cc.indexOf(b.countryCode)) return -1;\n if (bothUsed && cc.indexOf(a.countryCode) > cc.indexOf(b.countryCode)) return 1;\n if (neitherUsed && a.countryName < b.countryName) return -1;\n if (neitherUsed && a.countryName > b.countryName) return 1;\n\n return 0;\n });\n }\n\n // The service doesn't know about the input component, so it can't update the used country codes itself.\n countryCodeUsed(countryCode: CountryCode): void {\n const usedCountryCodes = this.getUsedCountryCodes();\n if (!usedCountryCodes.includes(countryCode)) {\n usedCountryCodes.push(countryCode);\n localStorage.setItem(USED_COUNTRY_CODES, JSON.stringify(usedCountryCodes));\n const newOptions = this.sortCountryOptions(this.countryOptions$$.getValue());\n this.countryOptions$$.next(newOptions);\n }\n\n // rearrange the used country codes so that the most recently used is at the start\n const index = usedCountryCodes.indexOf(countryCode);\n if (index > 0) {\n usedCountryCodes.splice(index, 1);\n usedCountryCodes.unshift(countryCode);\n localStorage.setItem(USED_COUNTRY_CODES, JSON.stringify(usedCountryCodes));\n }\n }\n\n private getUsedCountryCodes(): CountryCode[] {\n const usedCountryCodes = localStorage.getItem(USED_COUNTRY_CODES);\n return usedCountryCodes ? JSON.parse(usedCountryCodes) : [];\n }\n}\n","import { CountryCode, format, isValidNumber, NationalNumber, ParsedNumber, parseNumber } from 'libphonenumber-js';\nimport { AbstractControl, FormGroup, ValidationErrors } from '@angular/forms';\n\nexport const parsePhoneNumber = (phoneValue: string): ParsedNumber => {\n const parsedNumber = parseNumber(phoneValue, {\n defaultCountry: 'US',\n }) as ParsedNumber;\n return parsedNumber;\n};\n\nexport const formatAsReadonlyPhone = (parsedNumber: ParsedNumber): string => {\n if (parsedNumber.phone === '') {\n return '';\n }\n const internationalNumber = format(parsedNumber, 'INTERNATIONAL');\n return internationalNumber;\n};\n\nexport const formatAsRFC3966Phone = (parsedNumber: ParsedNumber): string => {\n if (!parsedNumber.phone) {\n return '';\n }\n return format(parsedNumber, 'RFC3966');\n};\n\nconst validatePhone = (phone: NationalNumber, country: CountryCode): ValidationErrors | null => {\n const isInvalid = !isValidNumber(phone, country);\n if (isInvalid) {\n return {\n invalidPhoneNumber: true,\n };\n }\n const cannotParse = !Object.keys(parsePhoneNumber(formatAsRFC3966Phone({ phone, country }))).length;\n if (cannotParse) {\n return {\n invalidPhoneNumber: true,\n };\n }\n return null;\n};\n\nexport const validatePhoneNumber = (control: AbstractControl): ValidationErrors | null => {\n const parsedPhoneNumber = {\n country: control.value.country,\n phone: control.value.phoneNumber,\n ext: control.value.extension,\n } as ParsedNumber;\n if (!parsedPhoneNumber.phone) {\n return null;\n }\n return validatePhone(parsedPhoneNumber.phone, parsedPhoneNumber.country);\n};\n\nexport const validateBasedOnPhoneFormGroup = (phoneGroup: FormGroup) => (): ValidationErrors | null => {\n phoneGroup.updateValueAndValidity();\n if (phoneGroup.invalid) {\n return {\n invalidPhoneNumber: true,\n };\n }\n return null;\n};\n","import { animate, state, style, transition, trigger } from '@angular/animations';\nimport { LayoutModule } from '@angular/cdk/layout';\nimport { CommonModule } from '@angular/common';\nimport { ChangeDetectorRef, Component, OnDestroy, OnInit, ViewEncapsulation, computed, signal } from '@angular/core';\nimport { toObservable } from '@angular/core/rxjs-interop';\nimport { FormControl, FormGroup, ReactiveFormsModule, UntypedFormControl } from '@angular/forms';\nimport { MatInputModule } from '@angular/material/input';\nimport { MAT_SELECT_CONFIG, MatSelectModule } from '@angular/material/select';\nimport { TranslateModule } from '@ngx-translate/core';\nimport { RxState } from '@rx-angular/state';\nimport { DigitOnlyModule } from '@uiowa/digit-only';\nimport { GalaxyFormFieldModule } from '@vendasta/galaxy/form-field';\nimport { CountryCode, ParsedNumber } from 'libphonenumber-js';\nimport { NgxMatSelectSearchModule } from 'ngx-mat-select-search';\nimport { Observable, Subject, combineLatest } from 'rxjs';\nimport { distinctUntilChanged, map, shareReplay, startWith, takeUntil, tap, withLatestFrom } from 'rxjs/operators';\nimport { FieldValidation } from '../../field-validation';\nimport { InlineEditService } from '../../inline-edit.service';\nimport { CrmFieldWarningDirective } from '../model-driven-form-error/field-warning.directive';\nimport { FieldWarningService } from '../model-driven-form-error/field-warning.service';\nimport { CrmModelDrivenFormErrorComponent } from '../model-driven-form-error/model-driven-form-error.component';\nimport { CrmModelDrivenPopoverComponent } from '../model-driven-popover/model-driven-popover.component';\nimport { stopChromeAutofill } from '../stop-chrome-autofill';\nimport { UpdaterService } from '../updater.service';\nimport { CountryCodeService } from './country-code.service';\nimport { CountryOption, countryOptionsFactoryProvider } from './country-options';\nimport {\n formatAsRFC3966Phone,\n formatAsReadonlyPhone,\n parsePhoneNumber,\n validateBasedOnPhoneFormGroup,\n validatePhoneNumber,\n} from './utils';\nimport { ObjectType } from '../../../../tokens-and-interfaces';\n\n@Component({\n templateUrl: './phone.html',\n imports: [\n CommonModule,\n MatInputModule,\n ReactiveFormsModule,\n TranslateModule,\n GalaxyFormFieldModule,\n LayoutModule,\n DigitOnlyModule,\n MatSelectModule,\n NgxMatSelectSearchModule,\n CrmModelDrivenFormErrorComponent,\n CrmFieldWarningDirective,\n CrmModelDrivenPopoverComponent,\n ],\n providers: [\n RxState,\n countryOptionsFactoryProvider,\n CountryCodeService,\n {\n provide: MAT_SELECT_CONFIG,\n useValue: { overlayPanelClass: 'crm-phone-country-selector-overlay-pane' },\n },\n FieldWarningService,\n ],\n styleUrls: ['../renderers.scss', './phone.scss'],\n standalone: true,\n encapsulation: ViewEncapsulation.None,\n animations: [\n trigger('autoFill', [\n state(\n 'highlight',\n style({\n backgroundColor: '#e3f2fd',\n }),\n ),\n state(\n 'default',\n style({\n backgroundColor: '#ffffff',\n }),\n ),\n transition('default => highlight', [animate('1s')]),\n transition('highlight => default', [animate('1s')]),\n ]),\n ],\n})\nexport class PhoneRendererComponent implements OnInit, OnDestroy {\n searchCountryControl = new FormControl('');\n private countryControl = new FormControl('US');\n private phoneNumberControl = new FormControl('');\n private extensionControl = new FormControl('');\n phone: FormGroup = new FormGroup({\n country: this.countryControl,\n phoneNumber: this.phoneNumberControl,\n extension: this.extensionControl,\n });\n initialValue = '';\n objectType!: ObjectType;\n control!: UntypedFormControl;\n label!: string;\n fieldId!: string;\n validation!: FieldValidation;\n readOnly!: boolean;\n isInlineEdit$ = this.inlineEditService.isInlineEdit$;\n\n private parsedPhoneNumber = signal({\n country: 'US',\n phone: '',\n } as ParsedNumber);\n readonlyPhoneNumber = computed(() => formatAsReadonlyPhone(this.parsedPhoneNumber()));\n RFC3966PhoneNumber = computed(() => formatAsRFC3966Phone(this.parsedPhoneNumber()));\n private RFC3966PhoneNumber$ = toObservable(this.RFC3966PhoneNumber);\n private destroyed$$ = new Subject();\n\n disableAutoComplete: string = stopChromeAutofill();\n countryOptions$: Observable = this.countryCodeService.countryOptions$.pipe(\n distinctUntilChanged(),\n shareReplay({ refCount: true, bufferSize: 1 }),\n );\n filteredCountryOptions$: Observable = this.searchCountryControl.valueChanges.pipe(\n startWith(''),\n withLatestFrom(this.countryOptions$),\n map(([filterValue, countryOptions]) => {\n return countryOptions.filter((c) => {\n if (c.callingCode.includes(filterValue)) {\n return true;\n }\n if (c.countryCode.toLowerCase().includes(filterValue.toLowerCase())) {\n return true;\n }\n if (c.countryName.toLowerCase().includes(filterValue.toLowerCase())) {\n return true;\n }\n return false;\n });\n }),\n );\n selectedCountry = computed(() => {\n return this.countryCodeService.getCountryOption(this.parsedPhoneNumber().country as CountryCode);\n });\n selectedCountryCallingCode = computed(() => this.selectedCountry()?.callingCode || '');\n\n autoFillState = 'default';\n\n constructor(\n private readonly countryCodeService: CountryCodeService,\n private changeDetRef: ChangeDetectorRef,\n private updaterService: UpdaterService,\n private readonly inlineEditService: InlineEditService,\n ) {\n this.phone.addValidators(validatePhoneNumber);\n // set precedence for these two country codes at all times on init\n this.countryCodeService.countryCodeUsed('CA');\n this.countryCodeService.countryCodeUsed('US');\n }\n\n ngOnInit(): void {\n this.initialValue = this.control.value;\n this.setupPhoneFormGroup();\n this.setupControlValuesForForm();\n\n this.updaterService.updatedField\n .pipe(\n takeUntil(this.destroyed$$),\n tap((data) => {\n if (data.stringValue && data.stringValue != '' && data.fieldId && data.fieldId === this.fieldId) {\n this.autoFillState = 'highlight';\n setTimeout(() => {\n this.autoFillState = 'default';\n this.changeDetRef.detectChanges();\n }, 1200);\n this.setPhoneValue(data.stringValue);\n this.changeDetRef.detectChanges();\n }\n }),\n )\n .subscribe();\n }\n\n ngOnDestroy(): void {\n this.destroyed$$.next();\n this.destroyed$$.complete();\n }\n\n private setPhoneValue(phoneValue: string): [string, string, string] {\n let startingCountry = 'US';\n let startingPhoneNumber = phoneValue;\n let startingExtension = '';\n if (phoneValue) {\n const parsedPhoneNumber = parsePhoneNumber(phoneValue);\n startingCountry = parsedPhoneNumber.country || 'US';\n startingPhoneNumber = parsedPhoneNumber.phone || phoneValue;\n startingExtension = parsedPhoneNumber.ext || '';\n this.parsedPhoneNumber.set(parsedPhoneNumber);\n }\n this.countryControl.setValue(startingCountry);\n this.countryCodeService.countryCodeUsed(startingCountry as CountryCode);\n this.phoneNumberControl.setValue(startingPhoneNumber);\n this.extensionControl.setValue(startingExtension);\n\n return [startingCountry, startingPhoneNumber, startingExtension];\n }\n\n private setupPhoneFormGroup(): void {\n const [startingCountry, startingPhoneNumber, startingExtension] = this.setPhoneValue(this.control.value);\n\n const countryValue$ = this.countryControl.valueChanges.pipe(startWith(startingCountry));\n const phoneNumberValue$ = this.phoneNumberControl.valueChanges.pipe(startWith(startingPhoneNumber));\n const extensionValue$ = this.extensionControl.valueChanges.pipe(startWith(startingExtension));\n combineLatest([countryValue$, phoneNumberValue$, extensionValue$])\n .pipe(\n takeUntil(this.destroyed$$),\n map(\n ([country, phone, ext]) =>\n ({\n country,\n phone,\n ext,\n } as ParsedNumber),\n ),\n tap((parsedNumber) => this.parsedPhoneNumber.set(parsedNumber)),\n )\n .subscribe();\n }\n\n private setupControlValuesForForm(): void {\n this.control.addValidators(validateBasedOnPhoneFormGroup(this.phone));\n this.RFC3966PhoneNumber$.pipe(\n takeUntil(this.destroyed$$),\n tap((phoneNumber) => {\n this.control.setValue(phoneNumber);\n if (phoneNumber != this.initialValue) {\n this.control.markAsDirty();\n } else {\n this.control.markAsPristine();\n }\n }),\n ).subscribe();\n }\n\n saveField(): void {\n this.inlineEditService.saveInlineEdit(this.objectType, {\n fieldId: this.fieldId,\n stringValue: this.control.value,\n });\n }\n}\n","
\n
{{ label | translate }}
\n
\n \n
\n
\n
\n \n \n \n
\n\n \n\n\n
\n {{ label | translate }}\n \n \n \n \n \n {{ selectedCountry.flag }}\n

\n
\n \n Invalid\n \n \n \n \n {{ option.callingCode }}\n ({{ option.flag }} {{ option.countryName }})\n \n
\n\n \n \n \n \n {{ selectedCountryCallingCode() }}\n \n \n \n \n \n \n \n \n \n
\n \n {{ 'MODEL_DRIVEN_FORM.PHONE.INVALID_PHONE_ERROR' | translate }}\n \n \n
\n
\n\n {{ initialValue }}\n \n \n {{ readonlyPhoneNumber }}\n \n \n\n","import { UntypedFormControl } from '@angular/forms';\nimport { ViewContainerRef } from '@angular/core';\nimport { PhoneRendererComponent } from './phone';\nimport { FieldValidation } from '../../field-validation';\nimport { FieldValueInterface, ObjectType, RenderableFieldInterface } from '../../../../tokens-and-interfaces';\n\nexport class PhoneFieldHandler implements RenderableFieldInterface {\n formControl: UntypedFormControl;\n\n constructor(\n public objectType: ObjectType,\n public fieldId: string,\n public name: string,\n public label: string,\n public value: string,\n public description: string,\n public readOnly = false,\n public validation: FieldValidation = new FieldValidation(),\n ) {\n this.formControl = new UntypedFormControl(this.value);\n }\n\n setValidation(validation: FieldValidation): void {\n this.validation = validation;\n this.formControl.setValidators(validation.getValidators());\n this.formControl.setAsyncValidators(validation.getAsyncValidators());\n }\n\n hasModification(): boolean {\n return this.formControl?.dirty;\n }\n\n fieldValue(): FieldValueInterface {\n return {\n fieldId: this.fieldId,\n stringValue: this.formControl.value,\n };\n }\n\n render(viewContainerRef: ViewContainerRef): void {\n viewContainerRef.clear();\n const component = viewContainerRef.createComponent(PhoneRendererComponent);\n component.instance.objectType = this.objectType;\n component.instance.control = this.formControl;\n component.instance.label = this.label;\n component.instance.fieldId = this.fieldId;\n component.instance.validation = this.validation;\n component.instance.readOnly = this.readOnly;\n }\n}\n","import { COMMA, ENTER } from '@angular/cdk/keycodes';\nimport { CommonModule } from '@angular/common';\nimport { Component, ElementRef, Inject, ViewChild, ViewContainerRef, ViewEncapsulation } from '@angular/core';\nimport { FormControl, ReactiveFormsModule } from '@angular/forms';\nimport {\n MatAutocompleteModule,\n MatAutocompleteActivatedEvent as MatAutocompleteSelectedEvent,\n} from '@angular/material/autocomplete';\nimport { MatChipInputEvent, MatChipsModule } from '@angular/material/chips';\nimport { MatIconModule } from '@angular/material/icon';\nimport { MatInputModule } from '@angular/material/input';\nimport { TranslateModule } from '@ngx-translate/core';\nimport { RxState } from '@rx-angular/state';\nimport { GalaxyBadgeModule } from '@vendasta/galaxy/badge';\nimport { GalaxyFormFieldModule } from '@vendasta/galaxy/form-field';\nimport { GalaxyTooltipModule } from '@vendasta/galaxy/tooltip';\nimport { BehaviorSubject, Observable, combineLatest, skipWhile } from 'rxjs';\nimport { debounceTime, distinctUntilChanged, map, startWith, switchMap } from 'rxjs/operators';\nimport { FieldValidation } from '../field-validation';\nimport { InlineEditService } from '../inline-edit.service';\nimport { FieldWarningService } from './model-driven-form-error/field-warning.service';\nimport { CrmModelDrivenFormErrorComponent } from './model-driven-form-error/model-driven-form-error.component';\nimport {\n FieldOptionsDependencies,\n FieldOptionsInjectionToken,\n FieldValueInterface,\n ObjectType,\n RenderableFieldInterface,\n} from '../../../tokens-and-interfaces';\nimport { SEARCH_DEBOUNCE_MS } from '../../../constants';\n\nexport class TagsFieldHandler implements RenderableFieldInterface {\n formControl: FormControl;\n\n constructor(\n public objectType: ObjectType,\n public fieldId: string,\n public name: string,\n public label: string,\n public value: string[],\n public description: string,\n public readOnly = false,\n public maxTags: number | null = null,\n public maxTagLength: number | null = null,\n public addTagPrompt = '',\n public maximumTagsError = '',\n public validation: FieldValidation = new FieldValidation(),\n ) {\n this.formControl = new FormControl([], { nonNullable: true });\n this.formControl.setValue(value);\n }\n\n setValidation(validation: FieldValidation): void {\n this.validation = validation;\n this.formControl.setValidators(validation.getValidators());\n this.formControl.setAsyncValidators(validation.getAsyncValidators());\n }\n\n hasModification(): boolean {\n return this.formControl?.dirty;\n }\n\n fieldValue(): FieldValueInterface {\n return {\n fieldId: this.fieldId,\n stringValues: { values: this.formControl.value },\n };\n }\n\n render(viewContainerRef: ViewContainerRef): void {\n viewContainerRef.clear();\n const component = viewContainerRef.createComponent(TagsRendererComponent);\n component.instance.objectType = this.objectType;\n component.instance.fieldId = this.fieldId;\n component.instance.control = this.formControl;\n component.instance.label = this.label;\n component.instance.validation = this.validation;\n component.instance.readOnly = this.readOnly;\n component.instance.getTagOptions(this.fieldId);\n component.instance.maxTags = this.maxTags;\n component.instance.maxTagLength = this.maxTagLength;\n component.instance.addTagPrompt = this.addTagPrompt;\n component.instance.maximumTagsError = this.maximumTagsError;\n }\n}\n\n@Component({\n templateUrl: './tags.html',\n imports: [\n CommonModule,\n MatAutocompleteModule,\n MatChipsModule,\n MatIconModule,\n MatInputModule,\n ReactiveFormsModule,\n TranslateModule,\n GalaxyBadgeModule,\n GalaxyFormFieldModule,\n GalaxyTooltipModule,\n CrmModelDrivenFormErrorComponent,\n ],\n providers: [RxState, FieldWarningService],\n styleUrls: ['./renderers.scss'],\n standalone: true,\n encapsulation: ViewEncapsulation.None,\n})\nexport class TagsRendererComponent {\n fieldId!: string;\n objectType!: ObjectType;\n control!: FormControl;\n label!: string;\n validation!: FieldValidation;\n readOnly!: boolean;\n\n newTagControl: FormControl = new FormControl('', { nonNullable: true });\n separatorKeysCodes: number[] = [ENTER, COMMA];\n maxTagLength: number | null = 0;\n availableTags$!: Observable;\n maxTags: number | null = 0;\n isInputActive = false;\n initialized$ = new BehaviorSubject(false);\n addTagPrompt = '';\n maximumTagsError = '';\n\n @ViewChild('tagInput') tagInput!: ElementRef;\n\n constructor(\n @Inject(FieldOptionsInjectionToken) private readonly fieldOptionsDependencies: FieldOptionsDependencies,\n private readonly state: RxState,\n private readonly inlineEditService: InlineEditService,\n ) {\n const zeros: ComponentState = {\n existingTags: [],\n addedTags: [],\n availableTags: [],\n };\n this.state.set(zeros);\n\n this.availableTags$ = this.state.select('availableTags');\n }\n\n getTagOptions(fieldId: string): void {\n const initialized$ = this.initialized$.pipe(distinctUntilChanged());\n const tagControlChanges$ = this.newTagControl.valueChanges.pipe(startWith(this.newTagControl.value));\n\n const existingTags$ = combineLatest([tagControlChanges$, initialized$]).pipe(\n skipWhile(([, initialized]: [string, boolean]) => !initialized),\n map(([search]: [string, boolean]) => (search || '').trim()),\n debounceTime(SEARCH_DEBOUNCE_MS),\n distinctUntilChanged(),\n switchMap((search) => this.fieldOptionsDependencies.getFieldOptions(fieldId, search)),\n map((tags) => tags || []),\n map((tags) => [...tags].sort()),\n );\n this.state.connect('existingTags', existingTags$);\n\n const addedTags$ = this.control.valueChanges.pipe(\n startWith(this.control.value),\n map((tags) => tags || []),\n distinctUntilChanged((a, b) => JSON.stringify(a) === JSON.stringify(b)),\n );\n this.state.connect('addedTags', addedTags$);\n\n const availableTags$ = this.state.select().pipe(\n map((state) => [state.addedTags, state.existingTags]),\n distinctUntilChanged((a, b) => JSON.stringify(a) === JSON.stringify(b)),\n map(([usedTags, existing]) => existing.filter((t) => !usedTags.includes(t))),\n map((tags) => [...tags].sort()),\n );\n\n this.state.connect('availableTags', availableTags$);\n }\n\n private addTag(tag: string) {\n const tags = this.control.value || [];\n if (tags.includes(tag)) {\n return;\n }\n this.control.setValue([...tags, tag]);\n }\n\n private touchControls(): void {\n this.control.markAsDirty();\n this.control.markAsTouched();\n this.control.updateValueAndValidity();\n this.newTagControl.setValue('');\n this.newTagControl.updateValueAndValidity();\n }\n\n addNewTag(event: MatChipInputEvent): void {\n const value = (event.value || '').trim();\n if (value) {\n this.addTag(value);\n }\n event?.chipInput?.clear();\n this.touchControls();\n }\n\n removeTag(tagIndex: number): void {\n if (tagIndex >= 0) {\n const tags = [...this.control.value];\n tags.splice(tagIndex, 1);\n this.control.setValue(tags);\n }\n this.touchControls();\n }\n\n selectExistingTag(event: MatAutocompleteSelectedEvent): void {\n this.tagInput.nativeElement.value = '';\n this.newTagControl.setValue('');\n\n const tag = event?.option?.viewValue;\n if (tag) {\n this.addTag(tag);\n }\n this.touchControls();\n }\n\n initializeField(): void {\n this.initialized$.next(true);\n }\n\n saveField(): void {\n this.inlineEditService.saveInlineEdit(this.objectType, {\n fieldId: this.fieldId,\n stringValues: { values: this.control.value },\n });\n }\n}\n\ninterface ComponentState {\n existingTags: string[];\n addedTags: string[];\n availableTags: string[];\n}\n","
\n
{{ label | translate }}
\n
\n \n {{ tag }}\n \n
\n
\n\n \n {{ label | translate }}\n \n \n \n {{ tag || '-' }}\n cancel\n \n \n {{ tag || '-' }}\n \n \n = maxTags ? '' : (addTagPrompt | translate)\"\n maxlength=\"{{ maxTagLength }}\"\n [formControl]=\"newTagControl\"\n [matAutocomplete]=\"auto\"\n [matChipInputFor]=\"tagChips\"\n [matChipInputAddOnBlur]=\"true\"\n [matChipInputSeparatorKeyCodes]=\"separatorKeysCodes\"\n (matChipInputTokenEnd)=\"addNewTag($event)\"\n (focus)=\"isInputActive = true; initializeField();\"\n (blur)=\"isInputActive = false; saveField();\"\n [readonly]=\"maxTags !== null && control.value?.length >= maxTags\"\n />\n \n {{ 'MODEL_DRIVEN_FORM.STRING_LIMIT_HINT' | translate : {characters: newTagControl.value?.length || 0} }}\n \n \n \n {{ maximumTagsError | translate : {maximumTags: control.value?.length || 0} }}\n \n \n \n {{ tag }}\n \n \n \n \n\n","/**\n * @license Angular v17.3.0\n * (c) 2010-2022 Google LLC. https://angular.io/\n * License: MIT\n */\n\nimport { ɵAnimationGroupPlayer, NoopAnimationPlayer, AUTO_STYLE, ɵPRE_STYLE, sequence, AnimationMetadataType, style } from '@angular/animations';\nimport * as i0 from '@angular/core';\nimport { ɵRuntimeError, Injectable } from '@angular/core';\nconst LINE_START = '\\n - ';\nfunction invalidTimingValue(exp) {\n return new ɵRuntimeError(3000 /* RuntimeErrorCode.INVALID_TIMING_VALUE */, ngDevMode && `The provided timing value \"${exp}\" is invalid.`);\n}\nfunction negativeStepValue() {\n return new ɵRuntimeError(3100 /* RuntimeErrorCode.NEGATIVE_STEP_VALUE */, ngDevMode && 'Duration values below 0 are not allowed for this animation step.');\n}\nfunction negativeDelayValue() {\n return new ɵRuntimeError(3101 /* RuntimeErrorCode.NEGATIVE_DELAY_VALUE */, ngDevMode && 'Delay values below 0 are not allowed for this animation step.');\n}\nfunction invalidStyleParams(varName) {\n return new ɵRuntimeError(3001 /* RuntimeErrorCode.INVALID_STYLE_PARAMS */, ngDevMode && `Unable to resolve the local animation param ${varName} in the given list of values`);\n}\nfunction invalidParamValue(varName) {\n return new ɵRuntimeError(3003 /* RuntimeErrorCode.INVALID_PARAM_VALUE */, ngDevMode && `Please provide a value for the animation param ${varName}`);\n}\nfunction invalidNodeType(nodeType) {\n return new ɵRuntimeError(3004 /* RuntimeErrorCode.INVALID_NODE_TYPE */, ngDevMode && `Unable to resolve animation metadata node #${nodeType}`);\n}\nfunction invalidCssUnitValue(userProvidedProperty, value) {\n return new ɵRuntimeError(3005 /* RuntimeErrorCode.INVALID_CSS_UNIT_VALUE */, ngDevMode && `Please provide a CSS unit value for ${userProvidedProperty}:${value}`);\n}\nfunction invalidTrigger() {\n return new ɵRuntimeError(3006 /* RuntimeErrorCode.INVALID_TRIGGER */, ngDevMode && \"animation triggers cannot be prefixed with an `@` sign (e.g. trigger('@foo', [...]))\");\n}\nfunction invalidDefinition() {\n return new ɵRuntimeError(3007 /* RuntimeErrorCode.INVALID_DEFINITION */, ngDevMode && 'only state() and transition() definitions can sit inside of a trigger()');\n}\nfunction invalidState(metadataName, missingSubs) {\n return new ɵRuntimeError(3008 /* RuntimeErrorCode.INVALID_STATE */, ngDevMode && `state(\"${metadataName}\", ...) must define default values for all the following style substitutions: ${missingSubs.join(', ')}`);\n}\nfunction invalidStyleValue(value) {\n return new ɵRuntimeError(3002 /* RuntimeErrorCode.INVALID_STYLE_VALUE */, ngDevMode && `The provided style string value ${value} is not allowed.`);\n}\nfunction invalidProperty(prop) {\n return new ɵRuntimeError(3009 /* RuntimeErrorCode.INVALID_PROPERTY */, ngDevMode && `The provided animation property \"${prop}\" is not a supported CSS property for animations`);\n}\nfunction invalidParallelAnimation(prop, firstStart, firstEnd, secondStart, secondEnd) {\n return new ɵRuntimeError(3010 /* RuntimeErrorCode.INVALID_PARALLEL_ANIMATION */, ngDevMode && `The CSS property \"${prop}\" that exists between the times of \"${firstStart}ms\" and \"${firstEnd}ms\" is also being animated in a parallel animation between the times of \"${secondStart}ms\" and \"${secondEnd}ms\"`);\n}\nfunction invalidKeyframes() {\n return new ɵRuntimeError(3011 /* RuntimeErrorCode.INVALID_KEYFRAMES */, ngDevMode && `keyframes() must be placed inside of a call to animate()`);\n}\nfunction invalidOffset() {\n return new ɵRuntimeError(3012 /* RuntimeErrorCode.INVALID_OFFSET */, ngDevMode && `Please ensure that all keyframe offsets are between 0 and 1`);\n}\nfunction keyframeOffsetsOutOfOrder() {\n return new ɵRuntimeError(3200 /* RuntimeErrorCode.KEYFRAME_OFFSETS_OUT_OF_ORDER */, ngDevMode && `Please ensure that all keyframe offsets are in order`);\n}\nfunction keyframesMissingOffsets() {\n return new ɵRuntimeError(3202 /* RuntimeErrorCode.KEYFRAMES_MISSING_OFFSETS */, ngDevMode && `Not all style() steps within the declared keyframes() contain offsets`);\n}\nfunction invalidStagger() {\n return new ɵRuntimeError(3013 /* RuntimeErrorCode.INVALID_STAGGER */, ngDevMode && `stagger() can only be used inside of query()`);\n}\nfunction invalidQuery(selector) {\n return new ɵRuntimeError(3014 /* RuntimeErrorCode.INVALID_QUERY */, ngDevMode && `\\`query(\"${selector}\")\\` returned zero elements. (Use \\`query(\"${selector}\", { optional: true })\\` if you wish to allow this.)`);\n}\nfunction invalidExpression(expr) {\n return new ɵRuntimeError(3015 /* RuntimeErrorCode.INVALID_EXPRESSION */, ngDevMode && `The provided transition expression \"${expr}\" is not supported`);\n}\nfunction invalidTransitionAlias(alias) {\n return new ɵRuntimeError(3016 /* RuntimeErrorCode.INVALID_TRANSITION_ALIAS */, ngDevMode && `The transition alias value \"${alias}\" is not supported`);\n}\nfunction validationFailed(errors) {\n return new ɵRuntimeError(3500 /* RuntimeErrorCode.VALIDATION_FAILED */, ngDevMode && `animation validation failed:\\n${errors.map(err => err.message).join('\\n')}`);\n}\nfunction buildingFailed(errors) {\n return new ɵRuntimeError(3501 /* RuntimeErrorCode.BUILDING_FAILED */, ngDevMode && `animation building failed:\\n${errors.map(err => err.message).join('\\n')}`);\n}\nfunction triggerBuildFailed(name, errors) {\n return new ɵRuntimeError(3404 /* RuntimeErrorCode.TRIGGER_BUILD_FAILED */, ngDevMode && `The animation trigger \"${name}\" has failed to build due to the following errors:\\n - ${errors.map(err => err.message).join('\\n - ')}`);\n}\nfunction animationFailed(errors) {\n return new ɵRuntimeError(3502 /* RuntimeErrorCode.ANIMATION_FAILED */, ngDevMode && `Unable to animate due to the following errors:${LINE_START}${errors.map(err => err.message).join(LINE_START)}`);\n}\nfunction registerFailed(errors) {\n return new ɵRuntimeError(3503 /* RuntimeErrorCode.REGISTRATION_FAILED */, ngDevMode && `Unable to build the animation due to the following errors: ${errors.map(err => err.message).join('\\n')}`);\n}\nfunction missingOrDestroyedAnimation() {\n return new ɵRuntimeError(3300 /* RuntimeErrorCode.MISSING_OR_DESTROYED_ANIMATION */, ngDevMode && \"The requested animation doesn't exist or has already been destroyed\");\n}\nfunction createAnimationFailed(errors) {\n return new ɵRuntimeError(3504 /* RuntimeErrorCode.CREATE_ANIMATION_FAILED */, ngDevMode && `Unable to create the animation due to the following errors:${errors.map(err => err.message).join('\\n')}`);\n}\nfunction missingPlayer(id) {\n return new ɵRuntimeError(3301 /* RuntimeErrorCode.MISSING_PLAYER */, ngDevMode && `Unable to find the timeline player referenced by ${id}`);\n}\nfunction missingTrigger(phase, name) {\n return new ɵRuntimeError(3302 /* RuntimeErrorCode.MISSING_TRIGGER */, ngDevMode && `Unable to listen on the animation trigger event \"${phase}\" because the animation trigger \"${name}\" doesn\\'t exist!`);\n}\nfunction missingEvent(name) {\n return new ɵRuntimeError(3303 /* RuntimeErrorCode.MISSING_EVENT */, ngDevMode && `Unable to listen on the animation trigger \"${name}\" because the provided event is undefined!`);\n}\nfunction unsupportedTriggerEvent(phase, name) {\n return new ɵRuntimeError(3400 /* RuntimeErrorCode.UNSUPPORTED_TRIGGER_EVENT */, ngDevMode && `The provided animation trigger event \"${phase}\" for the animation trigger \"${name}\" is not supported!`);\n}\nfunction unregisteredTrigger(name) {\n return new ɵRuntimeError(3401 /* RuntimeErrorCode.UNREGISTERED_TRIGGER */, ngDevMode && `The provided animation trigger \"${name}\" has not been registered!`);\n}\nfunction triggerTransitionsFailed(errors) {\n return new ɵRuntimeError(3402 /* RuntimeErrorCode.TRIGGER_TRANSITIONS_FAILED */, ngDevMode && `Unable to process animations due to the following failed trigger transitions\\n ${errors.map(err => err.message).join('\\n')}`);\n}\nfunction triggerParsingFailed(name, errors) {\n return new ɵRuntimeError(3403 /* RuntimeErrorCode.TRIGGER_PARSING_FAILED */, ngDevMode && `Animation parsing for the ${name} trigger have failed:${LINE_START}${errors.map(err => err.message).join(LINE_START)}`);\n}\nfunction transitionFailed(name, errors) {\n return new ɵRuntimeError(3505 /* RuntimeErrorCode.TRANSITION_FAILED */, ngDevMode && `@${name} has failed due to:\\n ${errors.map(err => err.message).join('\\n- ')}`);\n}\n\n/**\n * Set of all animatable CSS properties\n *\n * @see https://developer.mozilla.org/en-US/docs/Web/CSS/CSS_animated_properties\n */\nconst ANIMATABLE_PROP_SET = /*#__PURE__*/new Set(['-moz-outline-radius', '-moz-outline-radius-bottomleft', '-moz-outline-radius-bottomright', '-moz-outline-radius-topleft', '-moz-outline-radius-topright', '-ms-grid-columns', '-ms-grid-rows', '-webkit-line-clamp', '-webkit-text-fill-color', '-webkit-text-stroke', '-webkit-text-stroke-color', 'accent-color', 'all', 'backdrop-filter', 'background', 'background-color', 'background-position', 'background-size', 'block-size', 'border', 'border-block-end', 'border-block-end-color', 'border-block-end-width', 'border-block-start', 'border-block-start-color', 'border-block-start-width', 'border-bottom', 'border-bottom-color', 'border-bottom-left-radius', 'border-bottom-right-radius', 'border-bottom-width', 'border-color', 'border-end-end-radius', 'border-end-start-radius', 'border-image-outset', 'border-image-slice', 'border-image-width', 'border-inline-end', 'border-inline-end-color', 'border-inline-end-width', 'border-inline-start', 'border-inline-start-color', 'border-inline-start-width', 'border-left', 'border-left-color', 'border-left-width', 'border-radius', 'border-right', 'border-right-color', 'border-right-width', 'border-start-end-radius', 'border-start-start-radius', 'border-top', 'border-top-color', 'border-top-left-radius', 'border-top-right-radius', 'border-top-width', 'border-width', 'bottom', 'box-shadow', 'caret-color', 'clip', 'clip-path', 'color', 'column-count', 'column-gap', 'column-rule', 'column-rule-color', 'column-rule-width', 'column-width', 'columns', 'filter', 'flex', 'flex-basis', 'flex-grow', 'flex-shrink', 'font', 'font-size', 'font-size-adjust', 'font-stretch', 'font-variation-settings', 'font-weight', 'gap', 'grid-column-gap', 'grid-gap', 'grid-row-gap', 'grid-template-columns', 'grid-template-rows', 'height', 'inline-size', 'input-security', 'inset', 'inset-block', 'inset-block-end', 'inset-block-start', 'inset-inline', 'inset-inline-end', 'inset-inline-start', 'left', 'letter-spacing', 'line-clamp', 'line-height', 'margin', 'margin-block-end', 'margin-block-start', 'margin-bottom', 'margin-inline-end', 'margin-inline-start', 'margin-left', 'margin-right', 'margin-top', 'mask', 'mask-border', 'mask-position', 'mask-size', 'max-block-size', 'max-height', 'max-inline-size', 'max-lines', 'max-width', 'min-block-size', 'min-height', 'min-inline-size', 'min-width', 'object-position', 'offset', 'offset-anchor', 'offset-distance', 'offset-path', 'offset-position', 'offset-rotate', 'opacity', 'order', 'outline', 'outline-color', 'outline-offset', 'outline-width', 'padding', 'padding-block-end', 'padding-block-start', 'padding-bottom', 'padding-inline-end', 'padding-inline-start', 'padding-left', 'padding-right', 'padding-top', 'perspective', 'perspective-origin', 'right', 'rotate', 'row-gap', 'scale', 'scroll-margin', 'scroll-margin-block', 'scroll-margin-block-end', 'scroll-margin-block-start', 'scroll-margin-bottom', 'scroll-margin-inline', 'scroll-margin-inline-end', 'scroll-margin-inline-start', 'scroll-margin-left', 'scroll-margin-right', 'scroll-margin-top', 'scroll-padding', 'scroll-padding-block', 'scroll-padding-block-end', 'scroll-padding-block-start', 'scroll-padding-bottom', 'scroll-padding-inline', 'scroll-padding-inline-end', 'scroll-padding-inline-start', 'scroll-padding-left', 'scroll-padding-right', 'scroll-padding-top', 'scroll-snap-coordinate', 'scroll-snap-destination', 'scrollbar-color', 'shape-image-threshold', 'shape-margin', 'shape-outside', 'tab-size', 'text-decoration', 'text-decoration-color', 'text-decoration-thickness', 'text-emphasis', 'text-emphasis-color', 'text-indent', 'text-shadow', 'text-underline-offset', 'top', 'transform', 'transform-origin', 'translate', 'vertical-align', 'visibility', 'width', 'word-spacing', 'z-index', 'zoom']);\nfunction optimizeGroupPlayer(players) {\n switch (players.length) {\n case 0:\n return new NoopAnimationPlayer();\n case 1:\n return players[0];\n default:\n return new ɵAnimationGroupPlayer(players);\n }\n}\nfunction normalizeKeyframes$1(normalizer, keyframes, preStyles = new Map(), postStyles = new Map()) {\n const errors = [];\n const normalizedKeyframes = [];\n let previousOffset = -1;\n let previousKeyframe = null;\n keyframes.forEach(kf => {\n const offset = kf.get('offset');\n const isSameOffset = offset == previousOffset;\n const normalizedKeyframe = isSameOffset && previousKeyframe || new Map();\n kf.forEach((val, prop) => {\n let normalizedProp = prop;\n let normalizedValue = val;\n if (prop !== 'offset') {\n normalizedProp = normalizer.normalizePropertyName(normalizedProp, errors);\n switch (normalizedValue) {\n case ɵPRE_STYLE:\n normalizedValue = preStyles.get(prop);\n break;\n case AUTO_STYLE:\n normalizedValue = postStyles.get(prop);\n break;\n default:\n normalizedValue = normalizer.normalizeStyleValue(prop, normalizedProp, normalizedValue, errors);\n break;\n }\n }\n normalizedKeyframe.set(normalizedProp, normalizedValue);\n });\n if (!isSameOffset) {\n normalizedKeyframes.push(normalizedKeyframe);\n }\n previousKeyframe = normalizedKeyframe;\n previousOffset = offset;\n });\n if (errors.length) {\n throw animationFailed(errors);\n }\n return normalizedKeyframes;\n}\nfunction listenOnPlayer(player, eventName, event, callback) {\n switch (eventName) {\n case 'start':\n player.onStart(() => callback(event && copyAnimationEvent(event, 'start', player)));\n break;\n case 'done':\n player.onDone(() => callback(event && copyAnimationEvent(event, 'done', player)));\n break;\n case 'destroy':\n player.onDestroy(() => callback(event && copyAnimationEvent(event, 'destroy', player)));\n break;\n }\n}\nfunction copyAnimationEvent(e, phaseName, player) {\n const totalTime = player.totalTime;\n const disabled = player.disabled ? true : false;\n const event = makeAnimationEvent(e.element, e.triggerName, e.fromState, e.toState, phaseName || e.phaseName, totalTime == undefined ? e.totalTime : totalTime, disabled);\n const data = e['_data'];\n if (data != null) {\n event['_data'] = data;\n }\n return event;\n}\nfunction makeAnimationEvent(element, triggerName, fromState, toState, phaseName = '', totalTime = 0, disabled) {\n return {\n element,\n triggerName,\n fromState,\n toState,\n phaseName,\n totalTime,\n disabled: !!disabled\n };\n}\nfunction getOrSetDefaultValue(map, key, defaultValue) {\n let value = map.get(key);\n if (!value) {\n map.set(key, value = defaultValue);\n }\n return value;\n}\nfunction parseTimelineCommand(command) {\n const separatorPos = command.indexOf(':');\n const id = command.substring(1, separatorPos);\n const action = command.slice(separatorPos + 1);\n return [id, action];\n}\nconst documentElement = /* @__PURE__ */(() => typeof document === 'undefined' ? null : document.documentElement)();\nfunction getParentElement(element) {\n const parent = element.parentNode || element.host || null; // consider host to support shadow DOM\n if (parent === documentElement) {\n return null;\n }\n return parent;\n}\nfunction containsVendorPrefix(prop) {\n // Webkit is the only real popular vendor prefix nowadays\n // cc: http://shouldiprefix.com/\n return prop.substring(1, 6) == 'ebkit'; // webkit or Webkit\n}\nlet _CACHED_BODY = null;\nlet _IS_WEBKIT = false;\nfunction validateStyleProperty(prop) {\n if (!_CACHED_BODY) {\n _CACHED_BODY = getBodyNode() || {};\n _IS_WEBKIT = _CACHED_BODY.style ? 'WebkitAppearance' in _CACHED_BODY.style : false;\n }\n let result = true;\n if (_CACHED_BODY.style && !containsVendorPrefix(prop)) {\n result = prop in _CACHED_BODY.style;\n if (!result && _IS_WEBKIT) {\n const camelProp = 'Webkit' + prop.charAt(0).toUpperCase() + prop.slice(1);\n result = camelProp in _CACHED_BODY.style;\n }\n }\n return result;\n}\nfunction validateWebAnimatableStyleProperty(prop) {\n return ANIMATABLE_PROP_SET.has(prop);\n}\nfunction getBodyNode() {\n if (typeof document != 'undefined') {\n return document.body;\n }\n return null;\n}\nfunction containsElement(elm1, elm2) {\n while (elm2) {\n if (elm2 === elm1) {\n return true;\n }\n elm2 = getParentElement(elm2);\n }\n return false;\n}\nfunction invokeQuery(element, selector, multi) {\n if (multi) {\n return Array.from(element.querySelectorAll(selector));\n }\n const elem = element.querySelector(selector);\n return elem ? [elem] : [];\n}\nfunction hypenatePropsKeys(original) {\n const newMap = new Map();\n original.forEach((val, prop) => {\n const newProp = prop.replace(/([a-z])([A-Z])/g, '$1-$2');\n newMap.set(newProp, val);\n });\n return newMap;\n}\n\n/**\n * @publicApi\n *\n * `AnimationDriver` implentation for Noop animations\n */\nlet NoopAnimationDriver = /*#__PURE__*/(() => {\n class NoopAnimationDriver {\n /**\n * @returns Whether `prop` is a valid CSS property\n */\n validateStyleProperty(prop) {\n return validateStyleProperty(prop);\n }\n /**\n * @deprecated unused\n */\n matchesElement(_element, _selector) {\n // This method is deprecated and no longer in use so we return false.\n return false;\n }\n /**\n *\n * @returns Whether elm1 contains elm2.\n */\n containsElement(elm1, elm2) {\n return containsElement(elm1, elm2);\n }\n /**\n * @returns Rhe parent of the given element or `null` if the element is the `document`\n */\n getParentElement(element) {\n return getParentElement(element);\n }\n /**\n * @returns The result of the query selector on the element. The array will contain up to 1 item\n * if `multi` is `false`.\n */\n query(element, selector, multi) {\n return invokeQuery(element, selector, multi);\n }\n /**\n * @returns The `defaultValue` or empty string\n */\n computeStyle(element, prop, defaultValue) {\n return defaultValue || '';\n }\n /**\n * @returns An `NoopAnimationPlayer`\n */\n animate(element, keyframes, duration, delay, easing, previousPlayers = [], scrubberAccessRequested) {\n return new NoopAnimationPlayer(duration, delay);\n }\n static {\n this.ɵfac = function NoopAnimationDriver_Factory(t) {\n return new (t || NoopAnimationDriver)();\n };\n }\n static {\n this.ɵprov = /* @__PURE__ */i0.ɵɵdefineInjectable({\n token: NoopAnimationDriver,\n factory: NoopAnimationDriver.ɵfac\n });\n }\n }\n return NoopAnimationDriver;\n})();\n/*#__PURE__*/(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && void 0;\n})();\n/**\n * @publicApi\n */\nclass AnimationDriver {\n /**\n * @deprecated Use the NoopAnimationDriver class.\n */\n static {\n this.NOOP = /*#__PURE__*/new NoopAnimationDriver();\n }\n}\nclass AnimationStyleNormalizer {}\nclass NoopAnimationStyleNormalizer {\n normalizePropertyName(propertyName, errors) {\n return propertyName;\n }\n normalizeStyleValue(userProvidedProperty, normalizedProperty, value, errors) {\n return value;\n }\n}\nconst ONE_SECOND = 1000;\nconst SUBSTITUTION_EXPR_START = '{{';\nconst SUBSTITUTION_EXPR_END = '}}';\nconst ENTER_CLASSNAME = 'ng-enter';\nconst LEAVE_CLASSNAME = 'ng-leave';\nconst NG_TRIGGER_CLASSNAME = 'ng-trigger';\nconst NG_TRIGGER_SELECTOR = '.ng-trigger';\nconst NG_ANIMATING_CLASSNAME = 'ng-animating';\nconst NG_ANIMATING_SELECTOR = '.ng-animating';\nfunction resolveTimingValue(value) {\n if (typeof value == 'number') return value;\n const matches = value.match(/^(-?[\\.\\d]+)(m?s)/);\n if (!matches || matches.length < 2) return 0;\n return _convertTimeValueToMS(parseFloat(matches[1]), matches[2]);\n}\nfunction _convertTimeValueToMS(value, unit) {\n switch (unit) {\n case 's':\n return value * ONE_SECOND;\n default:\n // ms or something else\n return value;\n }\n}\nfunction resolveTiming(timings, errors, allowNegativeValues) {\n return timings.hasOwnProperty('duration') ? timings : parseTimeExpression(timings, errors, allowNegativeValues);\n}\nfunction parseTimeExpression(exp, errors, allowNegativeValues) {\n const regex = /^(-?[\\.\\d]+)(m?s)(?:\\s+(-?[\\.\\d]+)(m?s))?(?:\\s+([-a-z]+(?:\\(.+?\\))?))?$/i;\n let duration;\n let delay = 0;\n let easing = '';\n if (typeof exp === 'string') {\n const matches = exp.match(regex);\n if (matches === null) {\n errors.push(invalidTimingValue(exp));\n return {\n duration: 0,\n delay: 0,\n easing: ''\n };\n }\n duration = _convertTimeValueToMS(parseFloat(matches[1]), matches[2]);\n const delayMatch = matches[3];\n if (delayMatch != null) {\n delay = _convertTimeValueToMS(parseFloat(delayMatch), matches[4]);\n }\n const easingVal = matches[5];\n if (easingVal) {\n easing = easingVal;\n }\n } else {\n duration = exp;\n }\n if (!allowNegativeValues) {\n let containsErrors = false;\n let startIndex = errors.length;\n if (duration < 0) {\n errors.push(negativeStepValue());\n containsErrors = true;\n }\n if (delay < 0) {\n errors.push(negativeDelayValue());\n containsErrors = true;\n }\n if (containsErrors) {\n errors.splice(startIndex, 0, invalidTimingValue(exp));\n }\n }\n return {\n duration,\n delay,\n easing\n };\n}\nfunction normalizeKeyframes(keyframes) {\n if (!keyframes.length) {\n return [];\n }\n if (keyframes[0] instanceof Map) {\n return keyframes;\n }\n return keyframes.map(kf => new Map(Object.entries(kf)));\n}\nfunction normalizeStyles(styles) {\n return Array.isArray(styles) ? new Map(...styles) : new Map(styles);\n}\nfunction setStyles(element, styles, formerStyles) {\n styles.forEach((val, prop) => {\n const camelProp = dashCaseToCamelCase(prop);\n if (formerStyles && !formerStyles.has(prop)) {\n formerStyles.set(prop, element.style[camelProp]);\n }\n element.style[camelProp] = val;\n });\n}\nfunction eraseStyles(element, styles) {\n styles.forEach((_, prop) => {\n const camelProp = dashCaseToCamelCase(prop);\n element.style[camelProp] = '';\n });\n}\nfunction normalizeAnimationEntry(steps) {\n if (Array.isArray(steps)) {\n if (steps.length == 1) return steps[0];\n return sequence(steps);\n }\n return steps;\n}\nfunction validateStyleParams(value, options, errors) {\n const params = options.params || {};\n const matches = extractStyleParams(value);\n if (matches.length) {\n matches.forEach(varName => {\n if (!params.hasOwnProperty(varName)) {\n errors.push(invalidStyleParams(varName));\n }\n });\n }\n}\nconst PARAM_REGEX = /*#__PURE__*/new RegExp(`${SUBSTITUTION_EXPR_START}\\\\s*(.+?)\\\\s*${SUBSTITUTION_EXPR_END}`, 'g');\nfunction extractStyleParams(value) {\n let params = [];\n if (typeof value === 'string') {\n let match;\n while (match = PARAM_REGEX.exec(value)) {\n params.push(match[1]);\n }\n PARAM_REGEX.lastIndex = 0;\n }\n return params;\n}\nfunction interpolateParams(value, params, errors) {\n const original = `${value}`;\n const str = original.replace(PARAM_REGEX, (_, varName) => {\n let localVal = params[varName];\n // this means that the value was never overridden by the data passed in by the user\n if (localVal == null) {\n errors.push(invalidParamValue(varName));\n localVal = '';\n }\n return localVal.toString();\n });\n // we do this to assert that numeric values stay as they are\n return str == original ? value : str;\n}\nconst DASH_CASE_REGEXP = /-+([a-z0-9])/g;\nfunction dashCaseToCamelCase(input) {\n return input.replace(DASH_CASE_REGEXP, (...m) => m[1].toUpperCase());\n}\nfunction camelCaseToDashCase(input) {\n return input.replace(/([a-z])([A-Z])/g, '$1-$2').toLowerCase();\n}\nfunction allowPreviousPlayerStylesMerge(duration, delay) {\n return duration === 0 || delay === 0;\n}\nfunction balancePreviousStylesIntoKeyframes(element, keyframes, previousStyles) {\n if (previousStyles.size && keyframes.length) {\n let startingKeyframe = keyframes[0];\n let missingStyleProps = [];\n previousStyles.forEach((val, prop) => {\n if (!startingKeyframe.has(prop)) {\n missingStyleProps.push(prop);\n }\n startingKeyframe.set(prop, val);\n });\n if (missingStyleProps.length) {\n for (let i = 1; i < keyframes.length; i++) {\n let kf = keyframes[i];\n missingStyleProps.forEach(prop => kf.set(prop, computeStyle(element, prop)));\n }\n }\n }\n return keyframes;\n}\nfunction visitDslNode(visitor, node, context) {\n switch (node.type) {\n case AnimationMetadataType.Trigger:\n return visitor.visitTrigger(node, context);\n case AnimationMetadataType.State:\n return visitor.visitState(node, context);\n case AnimationMetadataType.Transition:\n return visitor.visitTransition(node, context);\n case AnimationMetadataType.Sequence:\n return visitor.visitSequence(node, context);\n case AnimationMetadataType.Group:\n return visitor.visitGroup(node, context);\n case AnimationMetadataType.Animate:\n return visitor.visitAnimate(node, context);\n case AnimationMetadataType.Keyframes:\n return visitor.visitKeyframes(node, context);\n case AnimationMetadataType.Style:\n return visitor.visitStyle(node, context);\n case AnimationMetadataType.Reference:\n return visitor.visitReference(node, context);\n case AnimationMetadataType.AnimateChild:\n return visitor.visitAnimateChild(node, context);\n case AnimationMetadataType.AnimateRef:\n return visitor.visitAnimateRef(node, context);\n case AnimationMetadataType.Query:\n return visitor.visitQuery(node, context);\n case AnimationMetadataType.Stagger:\n return visitor.visitStagger(node, context);\n default:\n throw invalidNodeType(node.type);\n }\n}\nfunction computeStyle(element, prop) {\n return window.getComputedStyle(element)[prop];\n}\nconst DIMENSIONAL_PROP_SET = /*#__PURE__*/new Set(['width', 'height', 'minWidth', 'minHeight', 'maxWidth', 'maxHeight', 'left', 'top', 'bottom', 'right', 'fontSize', 'outlineWidth', 'outlineOffset', 'paddingTop', 'paddingLeft', 'paddingBottom', 'paddingRight', 'marginTop', 'marginLeft', 'marginBottom', 'marginRight', 'borderRadius', 'borderWidth', 'borderTopWidth', 'borderLeftWidth', 'borderRightWidth', 'borderBottomWidth', 'textIndent', 'perspective']);\nclass WebAnimationsStyleNormalizer extends AnimationStyleNormalizer {\n normalizePropertyName(propertyName, errors) {\n return dashCaseToCamelCase(propertyName);\n }\n normalizeStyleValue(userProvidedProperty, normalizedProperty, value, errors) {\n let unit = '';\n const strVal = value.toString().trim();\n if (DIMENSIONAL_PROP_SET.has(normalizedProperty) && value !== 0 && value !== '0') {\n if (typeof value === 'number') {\n unit = 'px';\n } else {\n const valAndSuffixMatch = value.match(/^[+-]?[\\d\\.]+([a-z]*)$/);\n if (valAndSuffixMatch && valAndSuffixMatch[1].length == 0) {\n errors.push(invalidCssUnitValue(userProvidedProperty, value));\n }\n }\n }\n return strVal + unit;\n }\n}\nfunction createListOfWarnings(warnings) {\n const LINE_START = '\\n - ';\n return `${LINE_START}${warnings.filter(Boolean).map(warning => warning).join(LINE_START)}`;\n}\nfunction warnValidation(warnings) {\n (typeof ngDevMode === 'undefined' || ngDevMode) && console.warn(`animation validation warnings:${createListOfWarnings(warnings)}`);\n}\nfunction warnTriggerBuild(name, warnings) {\n (typeof ngDevMode === 'undefined' || ngDevMode) && console.warn(`The animation trigger \"${name}\" has built with the following warnings:${createListOfWarnings(warnings)}`);\n}\nfunction warnRegister(warnings) {\n (typeof ngDevMode === 'undefined' || ngDevMode) && console.warn(`Animation built with the following warnings:${createListOfWarnings(warnings)}`);\n}\nfunction triggerParsingWarnings(name, warnings) {\n (typeof ngDevMode === 'undefined' || ngDevMode) && console.warn(`Animation parsing for the ${name} trigger presents the following warnings:${createListOfWarnings(warnings)}`);\n}\nfunction pushUnrecognizedPropertiesWarning(warnings, props) {\n if (props.length) {\n warnings.push(`The following provided properties are not recognized: ${props.join(', ')}`);\n }\n}\nconst ANY_STATE = '*';\nfunction parseTransitionExpr(transitionValue, errors) {\n const expressions = [];\n if (typeof transitionValue == 'string') {\n transitionValue.split(/\\s*,\\s*/).forEach(str => parseInnerTransitionStr(str, expressions, errors));\n } else {\n expressions.push(transitionValue);\n }\n return expressions;\n}\nfunction parseInnerTransitionStr(eventStr, expressions, errors) {\n if (eventStr[0] == ':') {\n const result = parseAnimationAlias(eventStr, errors);\n if (typeof result == 'function') {\n expressions.push(result);\n return;\n }\n eventStr = result;\n }\n const match = eventStr.match(/^(\\*|[-\\w]+)\\s*()\\s*(\\*|[-\\w]+)$/);\n if (match == null || match.length < 4) {\n errors.push(invalidExpression(eventStr));\n return expressions;\n }\n const fromState = match[1];\n const separator = match[2];\n const toState = match[3];\n expressions.push(makeLambdaFromStates(fromState, toState));\n const isFullAnyStateExpr = fromState == ANY_STATE && toState == ANY_STATE;\n if (separator[0] == '<' && !isFullAnyStateExpr) {\n expressions.push(makeLambdaFromStates(toState, fromState));\n }\n return;\n}\nfunction parseAnimationAlias(alias, errors) {\n switch (alias) {\n case ':enter':\n return 'void => *';\n case ':leave':\n return '* => void';\n case ':increment':\n return (fromState, toState) => parseFloat(toState) > parseFloat(fromState);\n case ':decrement':\n return (fromState, toState) => parseFloat(toState) < parseFloat(fromState);\n default:\n errors.push(invalidTransitionAlias(alias));\n return '* => *';\n }\n}\n// DO NOT REFACTOR ... keep the follow set instantiations\n// with the values intact (closure compiler for some reason\n// removes follow-up lines that add the values outside of\n// the constructor...\nconst TRUE_BOOLEAN_VALUES = /*#__PURE__*/new Set(['true', '1']);\nconst FALSE_BOOLEAN_VALUES = /*#__PURE__*/new Set(['false', '0']);\nfunction makeLambdaFromStates(lhs, rhs) {\n const LHS_MATCH_BOOLEAN = TRUE_BOOLEAN_VALUES.has(lhs) || FALSE_BOOLEAN_VALUES.has(lhs);\n const RHS_MATCH_BOOLEAN = TRUE_BOOLEAN_VALUES.has(rhs) || FALSE_BOOLEAN_VALUES.has(rhs);\n return (fromState, toState) => {\n let lhsMatch = lhs == ANY_STATE || lhs == fromState;\n let rhsMatch = rhs == ANY_STATE || rhs == toState;\n if (!lhsMatch && LHS_MATCH_BOOLEAN && typeof fromState === 'boolean') {\n lhsMatch = fromState ? TRUE_BOOLEAN_VALUES.has(lhs) : FALSE_BOOLEAN_VALUES.has(lhs);\n }\n if (!rhsMatch && RHS_MATCH_BOOLEAN && typeof toState === 'boolean') {\n rhsMatch = toState ? TRUE_BOOLEAN_VALUES.has(rhs) : FALSE_BOOLEAN_VALUES.has(rhs);\n }\n return lhsMatch && rhsMatch;\n };\n}\nconst SELF_TOKEN = ':self';\nconst SELF_TOKEN_REGEX = /*#__PURE__*/new RegExp(`s*${SELF_TOKEN}s*,?`, 'g');\n/*\n * [Validation]\n * The visitor code below will traverse the animation AST generated by the animation verb functions\n * (the output is a tree of objects) and attempt to perform a series of validations on the data. The\n * following corner-cases will be validated:\n *\n * 1. Overlap of animations\n * Given that a CSS property cannot be animated in more than one place at the same time, it's\n * important that this behavior is detected and validated. The way in which this occurs is that\n * each time a style property is examined, a string-map containing the property will be updated with\n * the start and end times for when the property is used within an animation step.\n *\n * If there are two or more parallel animations that are currently running (these are invoked by the\n * group()) on the same element then the validator will throw an error. Since the start/end timing\n * values are collected for each property then if the current animation step is animating the same\n * property and its timing values fall anywhere into the window of time that the property is\n * currently being animated within then this is what causes an error.\n *\n * 2. Timing values\n * The validator will validate to see if a timing value of `duration delay easing` or\n * `durationNumber` is valid or not.\n *\n * (note that upon validation the code below will replace the timing data with an object containing\n * {duration,delay,easing}.\n *\n * 3. Offset Validation\n * Each of the style() calls are allowed to have an offset value when placed inside of keyframes().\n * Offsets within keyframes() are considered valid when:\n *\n * - No offsets are used at all\n * - Each style() entry contains an offset value\n * - Each offset is between 0 and 1\n * - Each offset is greater to or equal than the previous one\n *\n * Otherwise an error will be thrown.\n */\nfunction buildAnimationAst(driver, metadata, errors, warnings) {\n return new AnimationAstBuilderVisitor(driver).build(metadata, errors, warnings);\n}\nconst ROOT_SELECTOR = '';\nclass AnimationAstBuilderVisitor {\n constructor(_driver) {\n this._driver = _driver;\n }\n build(metadata, errors, warnings) {\n const context = new AnimationAstBuilderContext(errors);\n this._resetContextStyleTimingState(context);\n const ast = visitDslNode(this, normalizeAnimationEntry(metadata), context);\n if (typeof ngDevMode === 'undefined' || ngDevMode) {\n if (context.unsupportedCSSPropertiesFound.size) {\n pushUnrecognizedPropertiesWarning(warnings, [...context.unsupportedCSSPropertiesFound.keys()]);\n }\n }\n return ast;\n }\n _resetContextStyleTimingState(context) {\n context.currentQuerySelector = ROOT_SELECTOR;\n context.collectedStyles = new Map();\n context.collectedStyles.set(ROOT_SELECTOR, new Map());\n context.currentTime = 0;\n }\n visitTrigger(metadata, context) {\n let queryCount = context.queryCount = 0;\n let depCount = context.depCount = 0;\n const states = [];\n const transitions = [];\n if (metadata.name.charAt(0) == '@') {\n context.errors.push(invalidTrigger());\n }\n metadata.definitions.forEach(def => {\n this._resetContextStyleTimingState(context);\n if (def.type == AnimationMetadataType.State) {\n const stateDef = def;\n const name = stateDef.name;\n name.toString().split(/\\s*,\\s*/).forEach(n => {\n stateDef.name = n;\n states.push(this.visitState(stateDef, context));\n });\n stateDef.name = name;\n } else if (def.type == AnimationMetadataType.Transition) {\n const transition = this.visitTransition(def, context);\n queryCount += transition.queryCount;\n depCount += transition.depCount;\n transitions.push(transition);\n } else {\n context.errors.push(invalidDefinition());\n }\n });\n return {\n type: AnimationMetadataType.Trigger,\n name: metadata.name,\n states,\n transitions,\n queryCount,\n depCount,\n options: null\n };\n }\n visitState(metadata, context) {\n const styleAst = this.visitStyle(metadata.styles, context);\n const astParams = metadata.options && metadata.options.params || null;\n if (styleAst.containsDynamicStyles) {\n const missingSubs = new Set();\n const params = astParams || {};\n styleAst.styles.forEach(style => {\n if (style instanceof Map) {\n style.forEach(value => {\n extractStyleParams(value).forEach(sub => {\n if (!params.hasOwnProperty(sub)) {\n missingSubs.add(sub);\n }\n });\n });\n }\n });\n if (missingSubs.size) {\n context.errors.push(invalidState(metadata.name, [...missingSubs.values()]));\n }\n }\n return {\n type: AnimationMetadataType.State,\n name: metadata.name,\n style: styleAst,\n options: astParams ? {\n params: astParams\n } : null\n };\n }\n visitTransition(metadata, context) {\n context.queryCount = 0;\n context.depCount = 0;\n const animation = visitDslNode(this, normalizeAnimationEntry(metadata.animation), context);\n const matchers = parseTransitionExpr(metadata.expr, context.errors);\n return {\n type: AnimationMetadataType.Transition,\n matchers,\n animation,\n queryCount: context.queryCount,\n depCount: context.depCount,\n options: normalizeAnimationOptions(metadata.options)\n };\n }\n visitSequence(metadata, context) {\n return {\n type: AnimationMetadataType.Sequence,\n steps: metadata.steps.map(s => visitDslNode(this, s, context)),\n options: normalizeAnimationOptions(metadata.options)\n };\n }\n visitGroup(metadata, context) {\n const currentTime = context.currentTime;\n let furthestTime = 0;\n const steps = metadata.steps.map(step => {\n context.currentTime = currentTime;\n const innerAst = visitDslNode(this, step, context);\n furthestTime = Math.max(furthestTime, context.currentTime);\n return innerAst;\n });\n context.currentTime = furthestTime;\n return {\n type: AnimationMetadataType.Group,\n steps,\n options: normalizeAnimationOptions(metadata.options)\n };\n }\n visitAnimate(metadata, context) {\n const timingAst = constructTimingAst(metadata.timings, context.errors);\n context.currentAnimateTimings = timingAst;\n let styleAst;\n let styleMetadata = metadata.styles ? metadata.styles : style({});\n if (styleMetadata.type == AnimationMetadataType.Keyframes) {\n styleAst = this.visitKeyframes(styleMetadata, context);\n } else {\n let styleMetadata = metadata.styles;\n let isEmpty = false;\n if (!styleMetadata) {\n isEmpty = true;\n const newStyleData = {};\n if (timingAst.easing) {\n newStyleData['easing'] = timingAst.easing;\n }\n styleMetadata = style(newStyleData);\n }\n context.currentTime += timingAst.duration + timingAst.delay;\n const _styleAst = this.visitStyle(styleMetadata, context);\n _styleAst.isEmptyStep = isEmpty;\n styleAst = _styleAst;\n }\n context.currentAnimateTimings = null;\n return {\n type: AnimationMetadataType.Animate,\n timings: timingAst,\n style: styleAst,\n options: null\n };\n }\n visitStyle(metadata, context) {\n const ast = this._makeStyleAst(metadata, context);\n this._validateStyleAst(ast, context);\n return ast;\n }\n _makeStyleAst(metadata, context) {\n const styles = [];\n const metadataStyles = Array.isArray(metadata.styles) ? metadata.styles : [metadata.styles];\n for (let styleTuple of metadataStyles) {\n if (typeof styleTuple === 'string') {\n if (styleTuple === AUTO_STYLE) {\n styles.push(styleTuple);\n } else {\n context.errors.push(invalidStyleValue(styleTuple));\n }\n } else {\n styles.push(new Map(Object.entries(styleTuple)));\n }\n }\n let containsDynamicStyles = false;\n let collectedEasing = null;\n styles.forEach(styleData => {\n if (styleData instanceof Map) {\n if (styleData.has('easing')) {\n collectedEasing = styleData.get('easing');\n styleData.delete('easing');\n }\n if (!containsDynamicStyles) {\n for (let value of styleData.values()) {\n if (value.toString().indexOf(SUBSTITUTION_EXPR_START) >= 0) {\n containsDynamicStyles = true;\n break;\n }\n }\n }\n }\n });\n return {\n type: AnimationMetadataType.Style,\n styles,\n easing: collectedEasing,\n offset: metadata.offset,\n containsDynamicStyles,\n options: null\n };\n }\n _validateStyleAst(ast, context) {\n const timings = context.currentAnimateTimings;\n let endTime = context.currentTime;\n let startTime = context.currentTime;\n if (timings && startTime > 0) {\n startTime -= timings.duration + timings.delay;\n }\n ast.styles.forEach(tuple => {\n if (typeof tuple === 'string') return;\n tuple.forEach((value, prop) => {\n if (typeof ngDevMode === 'undefined' || ngDevMode) {\n if (!this._driver.validateStyleProperty(prop)) {\n tuple.delete(prop);\n context.unsupportedCSSPropertiesFound.add(prop);\n return;\n }\n }\n // This is guaranteed to have a defined Map at this querySelector location making it\n // safe to add the assertion here. It is set as a default empty map in prior methods.\n const collectedStyles = context.collectedStyles.get(context.currentQuerySelector);\n const collectedEntry = collectedStyles.get(prop);\n let updateCollectedStyle = true;\n if (collectedEntry) {\n if (startTime != endTime && startTime >= collectedEntry.startTime && endTime <= collectedEntry.endTime) {\n context.errors.push(invalidParallelAnimation(prop, collectedEntry.startTime, collectedEntry.endTime, startTime, endTime));\n updateCollectedStyle = false;\n }\n // we always choose the smaller start time value since we\n // want to have a record of the entire animation window where\n // the style property is being animated in between\n startTime = collectedEntry.startTime;\n }\n if (updateCollectedStyle) {\n collectedStyles.set(prop, {\n startTime,\n endTime\n });\n }\n if (context.options) {\n validateStyleParams(value, context.options, context.errors);\n }\n });\n });\n }\n visitKeyframes(metadata, context) {\n const ast = {\n type: AnimationMetadataType.Keyframes,\n styles: [],\n options: null\n };\n if (!context.currentAnimateTimings) {\n context.errors.push(invalidKeyframes());\n return ast;\n }\n const MAX_KEYFRAME_OFFSET = 1;\n let totalKeyframesWithOffsets = 0;\n const offsets = [];\n let offsetsOutOfOrder = false;\n let keyframesOutOfRange = false;\n let previousOffset = 0;\n const keyframes = metadata.steps.map(styles => {\n const style = this._makeStyleAst(styles, context);\n let offsetVal = style.offset != null ? style.offset : consumeOffset(style.styles);\n let offset = 0;\n if (offsetVal != null) {\n totalKeyframesWithOffsets++;\n offset = style.offset = offsetVal;\n }\n keyframesOutOfRange = keyframesOutOfRange || offset < 0 || offset > 1;\n offsetsOutOfOrder = offsetsOutOfOrder || offset < previousOffset;\n previousOffset = offset;\n offsets.push(offset);\n return style;\n });\n if (keyframesOutOfRange) {\n context.errors.push(invalidOffset());\n }\n if (offsetsOutOfOrder) {\n context.errors.push(keyframeOffsetsOutOfOrder());\n }\n const length = metadata.steps.length;\n let generatedOffset = 0;\n if (totalKeyframesWithOffsets > 0 && totalKeyframesWithOffsets < length) {\n context.errors.push(keyframesMissingOffsets());\n } else if (totalKeyframesWithOffsets == 0) {\n generatedOffset = MAX_KEYFRAME_OFFSET / (length - 1);\n }\n const limit = length - 1;\n const currentTime = context.currentTime;\n const currentAnimateTimings = context.currentAnimateTimings;\n const animateDuration = currentAnimateTimings.duration;\n keyframes.forEach((kf, i) => {\n const offset = generatedOffset > 0 ? i == limit ? 1 : generatedOffset * i : offsets[i];\n const durationUpToThisFrame = offset * animateDuration;\n context.currentTime = currentTime + currentAnimateTimings.delay + durationUpToThisFrame;\n currentAnimateTimings.duration = durationUpToThisFrame;\n this._validateStyleAst(kf, context);\n kf.offset = offset;\n ast.styles.push(kf);\n });\n return ast;\n }\n visitReference(metadata, context) {\n return {\n type: AnimationMetadataType.Reference,\n animation: visitDslNode(this, normalizeAnimationEntry(metadata.animation), context),\n options: normalizeAnimationOptions(metadata.options)\n };\n }\n visitAnimateChild(metadata, context) {\n context.depCount++;\n return {\n type: AnimationMetadataType.AnimateChild,\n options: normalizeAnimationOptions(metadata.options)\n };\n }\n visitAnimateRef(metadata, context) {\n return {\n type: AnimationMetadataType.AnimateRef,\n animation: this.visitReference(metadata.animation, context),\n options: normalizeAnimationOptions(metadata.options)\n };\n }\n visitQuery(metadata, context) {\n const parentSelector = context.currentQuerySelector;\n const options = metadata.options || {};\n context.queryCount++;\n context.currentQuery = metadata;\n const [selector, includeSelf] = normalizeSelector(metadata.selector);\n context.currentQuerySelector = parentSelector.length ? parentSelector + ' ' + selector : selector;\n getOrSetDefaultValue(context.collectedStyles, context.currentQuerySelector, new Map());\n const animation = visitDslNode(this, normalizeAnimationEntry(metadata.animation), context);\n context.currentQuery = null;\n context.currentQuerySelector = parentSelector;\n return {\n type: AnimationMetadataType.Query,\n selector,\n limit: options.limit || 0,\n optional: !!options.optional,\n includeSelf,\n animation,\n originalSelector: metadata.selector,\n options: normalizeAnimationOptions(metadata.options)\n };\n }\n visitStagger(metadata, context) {\n if (!context.currentQuery) {\n context.errors.push(invalidStagger());\n }\n const timings = metadata.timings === 'full' ? {\n duration: 0,\n delay: 0,\n easing: 'full'\n } : resolveTiming(metadata.timings, context.errors, true);\n return {\n type: AnimationMetadataType.Stagger,\n animation: visitDslNode(this, normalizeAnimationEntry(metadata.animation), context),\n timings,\n options: null\n };\n }\n}\nfunction normalizeSelector(selector) {\n const hasAmpersand = selector.split(/\\s*,\\s*/).find(token => token == SELF_TOKEN) ? true : false;\n if (hasAmpersand) {\n selector = selector.replace(SELF_TOKEN_REGEX, '');\n }\n // Note: the :enter and :leave aren't normalized here since those\n // selectors are filled in at runtime during timeline building\n selector = selector.replace(/@\\*/g, NG_TRIGGER_SELECTOR).replace(/@\\w+/g, match => NG_TRIGGER_SELECTOR + '-' + match.slice(1)).replace(/:animating/g, NG_ANIMATING_SELECTOR);\n return [selector, hasAmpersand];\n}\nfunction normalizeParams(obj) {\n return obj ? {\n ...obj\n } : null;\n}\nclass AnimationAstBuilderContext {\n constructor(errors) {\n this.errors = errors;\n this.queryCount = 0;\n this.depCount = 0;\n this.currentTransition = null;\n this.currentQuery = null;\n this.currentQuerySelector = null;\n this.currentAnimateTimings = null;\n this.currentTime = 0;\n this.collectedStyles = new Map();\n this.options = null;\n this.unsupportedCSSPropertiesFound = new Set();\n }\n}\nfunction consumeOffset(styles) {\n if (typeof styles == 'string') return null;\n let offset = null;\n if (Array.isArray(styles)) {\n styles.forEach(styleTuple => {\n if (styleTuple instanceof Map && styleTuple.has('offset')) {\n const obj = styleTuple;\n offset = parseFloat(obj.get('offset'));\n obj.delete('offset');\n }\n });\n } else if (styles instanceof Map && styles.has('offset')) {\n const obj = styles;\n offset = parseFloat(obj.get('offset'));\n obj.delete('offset');\n }\n return offset;\n}\nfunction constructTimingAst(value, errors) {\n if (value.hasOwnProperty('duration')) {\n return value;\n }\n if (typeof value == 'number') {\n const duration = resolveTiming(value, errors).duration;\n return makeTimingAst(duration, 0, '');\n }\n const strValue = value;\n const isDynamic = strValue.split(/\\s+/).some(v => v.charAt(0) == '{' && v.charAt(1) == '{');\n if (isDynamic) {\n const ast = makeTimingAst(0, 0, '');\n ast.dynamic = true;\n ast.strValue = strValue;\n return ast;\n }\n const timings = resolveTiming(strValue, errors);\n return makeTimingAst(timings.duration, timings.delay, timings.easing);\n}\nfunction normalizeAnimationOptions(options) {\n if (options) {\n options = {\n ...options\n };\n if (options['params']) {\n options['params'] = normalizeParams(options['params']);\n }\n } else {\n options = {};\n }\n return options;\n}\nfunction makeTimingAst(duration, delay, easing) {\n return {\n duration,\n delay,\n easing\n };\n}\nfunction createTimelineInstruction(element, keyframes, preStyleProps, postStyleProps, duration, delay, easing = null, subTimeline = false) {\n return {\n type: 1 /* AnimationTransitionInstructionType.TimelineAnimation */,\n element,\n keyframes,\n preStyleProps,\n postStyleProps,\n duration,\n delay,\n totalTime: duration + delay,\n easing,\n subTimeline\n };\n}\nclass ElementInstructionMap {\n constructor() {\n this._map = new Map();\n }\n get(element) {\n return this._map.get(element) || [];\n }\n append(element, instructions) {\n let existingInstructions = this._map.get(element);\n if (!existingInstructions) {\n this._map.set(element, existingInstructions = []);\n }\n existingInstructions.push(...instructions);\n }\n has(element) {\n return this._map.has(element);\n }\n clear() {\n this._map.clear();\n }\n}\nconst ONE_FRAME_IN_MILLISECONDS = 1;\nconst ENTER_TOKEN = ':enter';\nconst ENTER_TOKEN_REGEX = /*#__PURE__*/new RegExp(ENTER_TOKEN, 'g');\nconst LEAVE_TOKEN = ':leave';\nconst LEAVE_TOKEN_REGEX = /*#__PURE__*/new RegExp(LEAVE_TOKEN, 'g');\n/*\n * The code within this file aims to generate web-animations-compatible keyframes from Angular's\n * animation DSL code.\n *\n * The code below will be converted from:\n *\n * ```\n * sequence([\n * style({ opacity: 0 }),\n * animate(1000, style({ opacity: 0 }))\n * ])\n * ```\n *\n * To:\n * ```\n * keyframes = [{ opacity: 0, offset: 0 }, { opacity: 1, offset: 1 }]\n * duration = 1000\n * delay = 0\n * easing = ''\n * ```\n *\n * For this operation to cover the combination of animation verbs (style, animate, group, etc...) a\n * combination of AST traversal and merge-sort-like algorithms are used.\n *\n * [AST Traversal]\n * Each of the animation verbs, when executed, will return an string-map object representing what\n * type of action it is (style, animate, group, etc...) and the data associated with it. This means\n * that when functional composition mix of these functions is evaluated (like in the example above)\n * then it will end up producing a tree of objects representing the animation itself.\n *\n * When this animation object tree is processed by the visitor code below it will visit each of the\n * verb statements within the visitor. And during each visit it will build the context of the\n * animation keyframes by interacting with the `TimelineBuilder`.\n *\n * [TimelineBuilder]\n * This class is responsible for tracking the styles and building a series of keyframe objects for a\n * timeline between a start and end time. The builder starts off with an initial timeline and each\n * time the AST comes across a `group()`, `keyframes()` or a combination of the two within a\n * `sequence()` then it will generate a sub timeline for each step as well as a new one after\n * they are complete.\n *\n * As the AST is traversed, the timing state on each of the timelines will be incremented. If a sub\n * timeline was created (based on one of the cases above) then the parent timeline will attempt to\n * merge the styles used within the sub timelines into itself (only with group() this will happen).\n * This happens with a merge operation (much like how the merge works in mergeSort) and it will only\n * copy the most recently used styles from the sub timelines into the parent timeline. This ensures\n * that if the styles are used later on in another phase of the animation then they will be the most\n * up-to-date values.\n *\n * [How Missing Styles Are Updated]\n * Each timeline has a `backFill` property which is responsible for filling in new styles into\n * already processed keyframes if a new style shows up later within the animation sequence.\n *\n * ```\n * sequence([\n * style({ width: 0 }),\n * animate(1000, style({ width: 100 })),\n * animate(1000, style({ width: 200 })),\n * animate(1000, style({ width: 300 }))\n * animate(1000, style({ width: 400, height: 400 })) // notice how `height` doesn't exist anywhere\n * else\n * ])\n * ```\n *\n * What is happening here is that the `height` value is added later in the sequence, but is missing\n * from all previous animation steps. Therefore when a keyframe is created it would also be missing\n * from all previous keyframes up until where it is first used. For the timeline keyframe generation\n * to properly fill in the style it will place the previous value (the value from the parent\n * timeline) or a default value of `*` into the backFill map.\n *\n * When a sub-timeline is created it will have its own backFill property. This is done so that\n * styles present within the sub-timeline do not accidentally seep into the previous/future timeline\n * keyframes\n *\n * [Validation]\n * The code in this file is not responsible for validation. That functionality happens with within\n * the `AnimationValidatorVisitor` code.\n */\nfunction buildAnimationTimelines(driver, rootElement, ast, enterClassName, leaveClassName, startingStyles = new Map(), finalStyles = new Map(), options, subInstructions, errors = []) {\n return new AnimationTimelineBuilderVisitor().buildKeyframes(driver, rootElement, ast, enterClassName, leaveClassName, startingStyles, finalStyles, options, subInstructions, errors);\n}\nclass AnimationTimelineBuilderVisitor {\n buildKeyframes(driver, rootElement, ast, enterClassName, leaveClassName, startingStyles, finalStyles, options, subInstructions, errors = []) {\n subInstructions = subInstructions || new ElementInstructionMap();\n const context = new AnimationTimelineContext(driver, rootElement, subInstructions, enterClassName, leaveClassName, errors, []);\n context.options = options;\n const delay = options.delay ? resolveTimingValue(options.delay) : 0;\n context.currentTimeline.delayNextStep(delay);\n context.currentTimeline.setStyles([startingStyles], null, context.errors, options);\n visitDslNode(this, ast, context);\n // this checks to see if an actual animation happened\n const timelines = context.timelines.filter(timeline => timeline.containsAnimation());\n // note: we just want to apply the final styles for the rootElement, so we do not\n // just apply the styles to the last timeline but the last timeline which\n // element is the root one (basically `*`-styles are replaced with the actual\n // state style values only for the root element)\n if (timelines.length && finalStyles.size) {\n let lastRootTimeline;\n for (let i = timelines.length - 1; i >= 0; i--) {\n const timeline = timelines[i];\n if (timeline.element === rootElement) {\n lastRootTimeline = timeline;\n break;\n }\n }\n if (lastRootTimeline && !lastRootTimeline.allowOnlyTimelineStyles()) {\n lastRootTimeline.setStyles([finalStyles], null, context.errors, options);\n }\n }\n return timelines.length ? timelines.map(timeline => timeline.buildKeyframes()) : [createTimelineInstruction(rootElement, [], [], [], 0, delay, '', false)];\n }\n visitTrigger(ast, context) {\n // these values are not visited in this AST\n }\n visitState(ast, context) {\n // these values are not visited in this AST\n }\n visitTransition(ast, context) {\n // these values are not visited in this AST\n }\n visitAnimateChild(ast, context) {\n const elementInstructions = context.subInstructions.get(context.element);\n if (elementInstructions) {\n const innerContext = context.createSubContext(ast.options);\n const startTime = context.currentTimeline.currentTime;\n const endTime = this._visitSubInstructions(elementInstructions, innerContext, innerContext.options);\n if (startTime != endTime) {\n // we do this on the upper context because we created a sub context for\n // the sub child animations\n context.transformIntoNewTimeline(endTime);\n }\n }\n context.previousNode = ast;\n }\n visitAnimateRef(ast, context) {\n const innerContext = context.createSubContext(ast.options);\n innerContext.transformIntoNewTimeline();\n this._applyAnimationRefDelays([ast.options, ast.animation.options], context, innerContext);\n this.visitReference(ast.animation, innerContext);\n context.transformIntoNewTimeline(innerContext.currentTimeline.currentTime);\n context.previousNode = ast;\n }\n _applyAnimationRefDelays(animationsRefsOptions, context, innerContext) {\n for (const animationRefOptions of animationsRefsOptions) {\n const animationDelay = animationRefOptions?.delay;\n if (animationDelay) {\n const animationDelayValue = typeof animationDelay === 'number' ? animationDelay : resolveTimingValue(interpolateParams(animationDelay, animationRefOptions?.params ?? {}, context.errors));\n innerContext.delayNextStep(animationDelayValue);\n }\n }\n }\n _visitSubInstructions(instructions, context, options) {\n const startTime = context.currentTimeline.currentTime;\n let furthestTime = startTime;\n // this is a special-case for when a user wants to skip a sub\n // animation from being fired entirely.\n const duration = options.duration != null ? resolveTimingValue(options.duration) : null;\n const delay = options.delay != null ? resolveTimingValue(options.delay) : null;\n if (duration !== 0) {\n instructions.forEach(instruction => {\n const instructionTimings = context.appendInstructionToTimeline(instruction, duration, delay);\n furthestTime = Math.max(furthestTime, instructionTimings.duration + instructionTimings.delay);\n });\n }\n return furthestTime;\n }\n visitReference(ast, context) {\n context.updateOptions(ast.options, true);\n visitDslNode(this, ast.animation, context);\n context.previousNode = ast;\n }\n visitSequence(ast, context) {\n const subContextCount = context.subContextCount;\n let ctx = context;\n const options = ast.options;\n if (options && (options.params || options.delay)) {\n ctx = context.createSubContext(options);\n ctx.transformIntoNewTimeline();\n if (options.delay != null) {\n if (ctx.previousNode.type == AnimationMetadataType.Style) {\n ctx.currentTimeline.snapshotCurrentStyles();\n ctx.previousNode = DEFAULT_NOOP_PREVIOUS_NODE;\n }\n const delay = resolveTimingValue(options.delay);\n ctx.delayNextStep(delay);\n }\n }\n if (ast.steps.length) {\n ast.steps.forEach(s => visitDslNode(this, s, ctx));\n // this is here just in case the inner steps only contain or end with a style() call\n ctx.currentTimeline.applyStylesToKeyframe();\n // this means that some animation function within the sequence\n // ended up creating a sub timeline (which means the current\n // timeline cannot overlap with the contents of the sequence)\n if (ctx.subContextCount > subContextCount) {\n ctx.transformIntoNewTimeline();\n }\n }\n context.previousNode = ast;\n }\n visitGroup(ast, context) {\n const innerTimelines = [];\n let furthestTime = context.currentTimeline.currentTime;\n const delay = ast.options && ast.options.delay ? resolveTimingValue(ast.options.delay) : 0;\n ast.steps.forEach(s => {\n const innerContext = context.createSubContext(ast.options);\n if (delay) {\n innerContext.delayNextStep(delay);\n }\n visitDslNode(this, s, innerContext);\n furthestTime = Math.max(furthestTime, innerContext.currentTimeline.currentTime);\n innerTimelines.push(innerContext.currentTimeline);\n });\n // this operation is run after the AST loop because otherwise\n // if the parent timeline's collected styles were updated then\n // it would pass in invalid data into the new-to-be forked items\n innerTimelines.forEach(timeline => context.currentTimeline.mergeTimelineCollectedStyles(timeline));\n context.transformIntoNewTimeline(furthestTime);\n context.previousNode = ast;\n }\n _visitTiming(ast, context) {\n if (ast.dynamic) {\n const strValue = ast.strValue;\n const timingValue = context.params ? interpolateParams(strValue, context.params, context.errors) : strValue;\n return resolveTiming(timingValue, context.errors);\n } else {\n return {\n duration: ast.duration,\n delay: ast.delay,\n easing: ast.easing\n };\n }\n }\n visitAnimate(ast, context) {\n const timings = context.currentAnimateTimings = this._visitTiming(ast.timings, context);\n const timeline = context.currentTimeline;\n if (timings.delay) {\n context.incrementTime(timings.delay);\n timeline.snapshotCurrentStyles();\n }\n const style = ast.style;\n if (style.type == AnimationMetadataType.Keyframes) {\n this.visitKeyframes(style, context);\n } else {\n context.incrementTime(timings.duration);\n this.visitStyle(style, context);\n timeline.applyStylesToKeyframe();\n }\n context.currentAnimateTimings = null;\n context.previousNode = ast;\n }\n visitStyle(ast, context) {\n const timeline = context.currentTimeline;\n const timings = context.currentAnimateTimings;\n // this is a special case for when a style() call\n // directly follows an animate() call (but not inside of an animate() call)\n if (!timings && timeline.hasCurrentStyleProperties()) {\n timeline.forwardFrame();\n }\n const easing = timings && timings.easing || ast.easing;\n if (ast.isEmptyStep) {\n timeline.applyEmptyStep(easing);\n } else {\n timeline.setStyles(ast.styles, easing, context.errors, context.options);\n }\n context.previousNode = ast;\n }\n visitKeyframes(ast, context) {\n const currentAnimateTimings = context.currentAnimateTimings;\n const startTime = context.currentTimeline.duration;\n const duration = currentAnimateTimings.duration;\n const innerContext = context.createSubContext();\n const innerTimeline = innerContext.currentTimeline;\n innerTimeline.easing = currentAnimateTimings.easing;\n ast.styles.forEach(step => {\n const offset = step.offset || 0;\n innerTimeline.forwardTime(offset * duration);\n innerTimeline.setStyles(step.styles, step.easing, context.errors, context.options);\n innerTimeline.applyStylesToKeyframe();\n });\n // this will ensure that the parent timeline gets all the styles from\n // the child even if the new timeline below is not used\n context.currentTimeline.mergeTimelineCollectedStyles(innerTimeline);\n // we do this because the window between this timeline and the sub timeline\n // should ensure that the styles within are exactly the same as they were before\n context.transformIntoNewTimeline(startTime + duration);\n context.previousNode = ast;\n }\n visitQuery(ast, context) {\n // in the event that the first step before this is a style step we need\n // to ensure the styles are applied before the children are animated\n const startTime = context.currentTimeline.currentTime;\n const options = ast.options || {};\n const delay = options.delay ? resolveTimingValue(options.delay) : 0;\n if (delay && (context.previousNode.type === AnimationMetadataType.Style || startTime == 0 && context.currentTimeline.hasCurrentStyleProperties())) {\n context.currentTimeline.snapshotCurrentStyles();\n context.previousNode = DEFAULT_NOOP_PREVIOUS_NODE;\n }\n let furthestTime = startTime;\n const elms = context.invokeQuery(ast.selector, ast.originalSelector, ast.limit, ast.includeSelf, options.optional ? true : false, context.errors);\n context.currentQueryTotal = elms.length;\n let sameElementTimeline = null;\n elms.forEach((element, i) => {\n context.currentQueryIndex = i;\n const innerContext = context.createSubContext(ast.options, element);\n if (delay) {\n innerContext.delayNextStep(delay);\n }\n if (element === context.element) {\n sameElementTimeline = innerContext.currentTimeline;\n }\n visitDslNode(this, ast.animation, innerContext);\n // this is here just incase the inner steps only contain or end\n // with a style() call (which is here to signal that this is a preparatory\n // call to style an element before it is animated again)\n innerContext.currentTimeline.applyStylesToKeyframe();\n const endTime = innerContext.currentTimeline.currentTime;\n furthestTime = Math.max(furthestTime, endTime);\n });\n context.currentQueryIndex = 0;\n context.currentQueryTotal = 0;\n context.transformIntoNewTimeline(furthestTime);\n if (sameElementTimeline) {\n context.currentTimeline.mergeTimelineCollectedStyles(sameElementTimeline);\n context.currentTimeline.snapshotCurrentStyles();\n }\n context.previousNode = ast;\n }\n visitStagger(ast, context) {\n const parentContext = context.parentContext;\n const tl = context.currentTimeline;\n const timings = ast.timings;\n const duration = Math.abs(timings.duration);\n const maxTime = duration * (context.currentQueryTotal - 1);\n let delay = duration * context.currentQueryIndex;\n let staggerTransformer = timings.duration < 0 ? 'reverse' : timings.easing;\n switch (staggerTransformer) {\n case 'reverse':\n delay = maxTime - delay;\n break;\n case 'full':\n delay = parentContext.currentStaggerTime;\n break;\n }\n const timeline = context.currentTimeline;\n if (delay) {\n timeline.delayNextStep(delay);\n }\n const startingTime = timeline.currentTime;\n visitDslNode(this, ast.animation, context);\n context.previousNode = ast;\n // time = duration + delay\n // the reason why this computation is so complex is because\n // the inner timeline may either have a delay value or a stretched\n // keyframe depending on if a subtimeline is not used or is used.\n parentContext.currentStaggerTime = tl.currentTime - startingTime + (tl.startTime - parentContext.currentTimeline.startTime);\n }\n}\nconst DEFAULT_NOOP_PREVIOUS_NODE = {};\nclass AnimationTimelineContext {\n constructor(_driver, element, subInstructions, _enterClassName, _leaveClassName, errors, timelines, initialTimeline) {\n this._driver = _driver;\n this.element = element;\n this.subInstructions = subInstructions;\n this._enterClassName = _enterClassName;\n this._leaveClassName = _leaveClassName;\n this.errors = errors;\n this.timelines = timelines;\n this.parentContext = null;\n this.currentAnimateTimings = null;\n this.previousNode = DEFAULT_NOOP_PREVIOUS_NODE;\n this.subContextCount = 0;\n this.options = {};\n this.currentQueryIndex = 0;\n this.currentQueryTotal = 0;\n this.currentStaggerTime = 0;\n this.currentTimeline = initialTimeline || new TimelineBuilder(this._driver, element, 0);\n timelines.push(this.currentTimeline);\n }\n get params() {\n return this.options.params;\n }\n updateOptions(options, skipIfExists) {\n if (!options) return;\n const newOptions = options;\n let optionsToUpdate = this.options;\n // NOTE: this will get patched up when other animation methods support duration overrides\n if (newOptions.duration != null) {\n optionsToUpdate.duration = resolveTimingValue(newOptions.duration);\n }\n if (newOptions.delay != null) {\n optionsToUpdate.delay = resolveTimingValue(newOptions.delay);\n }\n const newParams = newOptions.params;\n if (newParams) {\n let paramsToUpdate = optionsToUpdate.params;\n if (!paramsToUpdate) {\n paramsToUpdate = this.options.params = {};\n }\n Object.keys(newParams).forEach(name => {\n if (!skipIfExists || !paramsToUpdate.hasOwnProperty(name)) {\n paramsToUpdate[name] = interpolateParams(newParams[name], paramsToUpdate, this.errors);\n }\n });\n }\n }\n _copyOptions() {\n const options = {};\n if (this.options) {\n const oldParams = this.options.params;\n if (oldParams) {\n const params = options['params'] = {};\n Object.keys(oldParams).forEach(name => {\n params[name] = oldParams[name];\n });\n }\n }\n return options;\n }\n createSubContext(options = null, element, newTime) {\n const target = element || this.element;\n const context = new AnimationTimelineContext(this._driver, target, this.subInstructions, this._enterClassName, this._leaveClassName, this.errors, this.timelines, this.currentTimeline.fork(target, newTime || 0));\n context.previousNode = this.previousNode;\n context.currentAnimateTimings = this.currentAnimateTimings;\n context.options = this._copyOptions();\n context.updateOptions(options);\n context.currentQueryIndex = this.currentQueryIndex;\n context.currentQueryTotal = this.currentQueryTotal;\n context.parentContext = this;\n this.subContextCount++;\n return context;\n }\n transformIntoNewTimeline(newTime) {\n this.previousNode = DEFAULT_NOOP_PREVIOUS_NODE;\n this.currentTimeline = this.currentTimeline.fork(this.element, newTime);\n this.timelines.push(this.currentTimeline);\n return this.currentTimeline;\n }\n appendInstructionToTimeline(instruction, duration, delay) {\n const updatedTimings = {\n duration: duration != null ? duration : instruction.duration,\n delay: this.currentTimeline.currentTime + (delay != null ? delay : 0) + instruction.delay,\n easing: ''\n };\n const builder = new SubTimelineBuilder(this._driver, instruction.element, instruction.keyframes, instruction.preStyleProps, instruction.postStyleProps, updatedTimings, instruction.stretchStartingKeyframe);\n this.timelines.push(builder);\n return updatedTimings;\n }\n incrementTime(time) {\n this.currentTimeline.forwardTime(this.currentTimeline.duration + time);\n }\n delayNextStep(delay) {\n // negative delays are not yet supported\n if (delay > 0) {\n this.currentTimeline.delayNextStep(delay);\n }\n }\n invokeQuery(selector, originalSelector, limit, includeSelf, optional, errors) {\n let results = [];\n if (includeSelf) {\n results.push(this.element);\n }\n if (selector.length > 0) {\n // only if :self is used then the selector can be empty\n selector = selector.replace(ENTER_TOKEN_REGEX, '.' + this._enterClassName);\n selector = selector.replace(LEAVE_TOKEN_REGEX, '.' + this._leaveClassName);\n const multi = limit != 1;\n let elements = this._driver.query(this.element, selector, multi);\n if (limit !== 0) {\n elements = limit < 0 ? elements.slice(elements.length + limit, elements.length) : elements.slice(0, limit);\n }\n results.push(...elements);\n }\n if (!optional && results.length == 0) {\n errors.push(invalidQuery(originalSelector));\n }\n return results;\n }\n}\nclass TimelineBuilder {\n constructor(_driver, element, startTime, _elementTimelineStylesLookup) {\n this._driver = _driver;\n this.element = element;\n this.startTime = startTime;\n this._elementTimelineStylesLookup = _elementTimelineStylesLookup;\n this.duration = 0;\n this.easing = null;\n this._previousKeyframe = new Map();\n this._currentKeyframe = new Map();\n this._keyframes = new Map();\n this._styleSummary = new Map();\n this._localTimelineStyles = new Map();\n this._pendingStyles = new Map();\n this._backFill = new Map();\n this._currentEmptyStepKeyframe = null;\n if (!this._elementTimelineStylesLookup) {\n this._elementTimelineStylesLookup = new Map();\n }\n this._globalTimelineStyles = this._elementTimelineStylesLookup.get(element);\n if (!this._globalTimelineStyles) {\n this._globalTimelineStyles = this._localTimelineStyles;\n this._elementTimelineStylesLookup.set(element, this._localTimelineStyles);\n }\n this._loadKeyframe();\n }\n containsAnimation() {\n switch (this._keyframes.size) {\n case 0:\n return false;\n case 1:\n return this.hasCurrentStyleProperties();\n default:\n return true;\n }\n }\n hasCurrentStyleProperties() {\n return this._currentKeyframe.size > 0;\n }\n get currentTime() {\n return this.startTime + this.duration;\n }\n delayNextStep(delay) {\n // in the event that a style() step is placed right before a stagger()\n // and that style() step is the very first style() value in the animation\n // then we need to make a copy of the keyframe [0, copy, 1] so that the delay\n // properly applies the style() values to work with the stagger...\n const hasPreStyleStep = this._keyframes.size === 1 && this._pendingStyles.size;\n if (this.duration || hasPreStyleStep) {\n this.forwardTime(this.currentTime + delay);\n if (hasPreStyleStep) {\n this.snapshotCurrentStyles();\n }\n } else {\n this.startTime += delay;\n }\n }\n fork(element, currentTime) {\n this.applyStylesToKeyframe();\n return new TimelineBuilder(this._driver, element, currentTime || this.currentTime, this._elementTimelineStylesLookup);\n }\n _loadKeyframe() {\n if (this._currentKeyframe) {\n this._previousKeyframe = this._currentKeyframe;\n }\n this._currentKeyframe = this._keyframes.get(this.duration);\n if (!this._currentKeyframe) {\n this._currentKeyframe = new Map();\n this._keyframes.set(this.duration, this._currentKeyframe);\n }\n }\n forwardFrame() {\n this.duration += ONE_FRAME_IN_MILLISECONDS;\n this._loadKeyframe();\n }\n forwardTime(time) {\n this.applyStylesToKeyframe();\n this.duration = time;\n this._loadKeyframe();\n }\n _updateStyle(prop, value) {\n this._localTimelineStyles.set(prop, value);\n this._globalTimelineStyles.set(prop, value);\n this._styleSummary.set(prop, {\n time: this.currentTime,\n value\n });\n }\n allowOnlyTimelineStyles() {\n return this._currentEmptyStepKeyframe !== this._currentKeyframe;\n }\n applyEmptyStep(easing) {\n if (easing) {\n this._previousKeyframe.set('easing', easing);\n }\n // special case for animate(duration):\n // all missing styles are filled with a `*` value then\n // if any destination styles are filled in later on the same\n // keyframe then they will override the overridden styles\n // We use `_globalTimelineStyles` here because there may be\n // styles in previous keyframes that are not present in this timeline\n for (let [prop, value] of this._globalTimelineStyles) {\n this._backFill.set(prop, value || AUTO_STYLE);\n this._currentKeyframe.set(prop, AUTO_STYLE);\n }\n this._currentEmptyStepKeyframe = this._currentKeyframe;\n }\n setStyles(input, easing, errors, options) {\n if (easing) {\n this._previousKeyframe.set('easing', easing);\n }\n const params = options && options.params || {};\n const styles = flattenStyles(input, this._globalTimelineStyles);\n for (let [prop, value] of styles) {\n const val = interpolateParams(value, params, errors);\n this._pendingStyles.set(prop, val);\n if (!this._localTimelineStyles.has(prop)) {\n this._backFill.set(prop, this._globalTimelineStyles.get(prop) ?? AUTO_STYLE);\n }\n this._updateStyle(prop, val);\n }\n }\n applyStylesToKeyframe() {\n if (this._pendingStyles.size == 0) return;\n this._pendingStyles.forEach((val, prop) => {\n this._currentKeyframe.set(prop, val);\n });\n this._pendingStyles.clear();\n this._localTimelineStyles.forEach((val, prop) => {\n if (!this._currentKeyframe.has(prop)) {\n this._currentKeyframe.set(prop, val);\n }\n });\n }\n snapshotCurrentStyles() {\n for (let [prop, val] of this._localTimelineStyles) {\n this._pendingStyles.set(prop, val);\n this._updateStyle(prop, val);\n }\n }\n getFinalKeyframe() {\n return this._keyframes.get(this.duration);\n }\n get properties() {\n const properties = [];\n for (let prop in this._currentKeyframe) {\n properties.push(prop);\n }\n return properties;\n }\n mergeTimelineCollectedStyles(timeline) {\n timeline._styleSummary.forEach((details1, prop) => {\n const details0 = this._styleSummary.get(prop);\n if (!details0 || details1.time > details0.time) {\n this._updateStyle(prop, details1.value);\n }\n });\n }\n buildKeyframes() {\n this.applyStylesToKeyframe();\n const preStyleProps = new Set();\n const postStyleProps = new Set();\n const isEmpty = this._keyframes.size === 1 && this.duration === 0;\n let finalKeyframes = [];\n this._keyframes.forEach((keyframe, time) => {\n const finalKeyframe = new Map([...this._backFill, ...keyframe]);\n finalKeyframe.forEach((value, prop) => {\n if (value === ɵPRE_STYLE) {\n preStyleProps.add(prop);\n } else if (value === AUTO_STYLE) {\n postStyleProps.add(prop);\n }\n });\n if (!isEmpty) {\n finalKeyframe.set('offset', time / this.duration);\n }\n finalKeyframes.push(finalKeyframe);\n });\n const preProps = [...preStyleProps.values()];\n const postProps = [...postStyleProps.values()];\n // special case for a 0-second animation (which is designed just to place styles onscreen)\n if (isEmpty) {\n const kf0 = finalKeyframes[0];\n const kf1 = new Map(kf0);\n kf0.set('offset', 0);\n kf1.set('offset', 1);\n finalKeyframes = [kf0, kf1];\n }\n return createTimelineInstruction(this.element, finalKeyframes, preProps, postProps, this.duration, this.startTime, this.easing, false);\n }\n}\nclass SubTimelineBuilder extends TimelineBuilder {\n constructor(driver, element, keyframes, preStyleProps, postStyleProps, timings, _stretchStartingKeyframe = false) {\n super(driver, element, timings.delay);\n this.keyframes = keyframes;\n this.preStyleProps = preStyleProps;\n this.postStyleProps = postStyleProps;\n this._stretchStartingKeyframe = _stretchStartingKeyframe;\n this.timings = {\n duration: timings.duration,\n delay: timings.delay,\n easing: timings.easing\n };\n }\n containsAnimation() {\n return this.keyframes.length > 1;\n }\n buildKeyframes() {\n let keyframes = this.keyframes;\n let {\n delay,\n duration,\n easing\n } = this.timings;\n if (this._stretchStartingKeyframe && delay) {\n const newKeyframes = [];\n const totalTime = duration + delay;\n const startingGap = delay / totalTime;\n // the original starting keyframe now starts once the delay is done\n const newFirstKeyframe = new Map(keyframes[0]);\n newFirstKeyframe.set('offset', 0);\n newKeyframes.push(newFirstKeyframe);\n const oldFirstKeyframe = new Map(keyframes[0]);\n oldFirstKeyframe.set('offset', roundOffset(startingGap));\n newKeyframes.push(oldFirstKeyframe);\n /*\n When the keyframe is stretched then it means that the delay before the animation\n starts is gone. Instead the first keyframe is placed at the start of the animation\n and it is then copied to where it starts when the original delay is over. This basically\n means nothing animates during that delay, but the styles are still rendered. For this\n to work the original offset values that exist in the original keyframes must be \"warped\"\n so that they can take the new keyframe + delay into account.\n delay=1000, duration=1000, keyframes = 0 .5 1\n turns into\n delay=0, duration=2000, keyframes = 0 .33 .66 1\n */\n // offsets between 1 ... n -1 are all warped by the keyframe stretch\n const limit = keyframes.length - 1;\n for (let i = 1; i <= limit; i++) {\n let kf = new Map(keyframes[i]);\n const oldOffset = kf.get('offset');\n const timeAtKeyframe = delay + oldOffset * duration;\n kf.set('offset', roundOffset(timeAtKeyframe / totalTime));\n newKeyframes.push(kf);\n }\n // the new starting keyframe should be added at the start\n duration = totalTime;\n delay = 0;\n easing = '';\n keyframes = newKeyframes;\n }\n return createTimelineInstruction(this.element, keyframes, this.preStyleProps, this.postStyleProps, duration, delay, easing, true);\n }\n}\nfunction roundOffset(offset, decimalPoints = 3) {\n const mult = Math.pow(10, decimalPoints - 1);\n return Math.round(offset * mult) / mult;\n}\nfunction flattenStyles(input, allStyles) {\n const styles = new Map();\n let allProperties;\n input.forEach(token => {\n if (token === '*') {\n allProperties ??= allStyles.keys();\n for (let prop of allProperties) {\n styles.set(prop, AUTO_STYLE);\n }\n } else {\n for (let [prop, val] of token) {\n styles.set(prop, val);\n }\n }\n });\n return styles;\n}\nfunction createTransitionInstruction(element, triggerName, fromState, toState, isRemovalTransition, fromStyles, toStyles, timelines, queriedElements, preStyleProps, postStyleProps, totalTime, errors) {\n return {\n type: 0 /* AnimationTransitionInstructionType.TransitionAnimation */,\n element,\n triggerName,\n isRemovalTransition,\n fromState,\n fromStyles,\n toState,\n toStyles,\n timelines,\n queriedElements,\n preStyleProps,\n postStyleProps,\n totalTime,\n errors\n };\n}\nconst EMPTY_OBJECT = {};\nclass AnimationTransitionFactory {\n constructor(_triggerName, ast, _stateStyles) {\n this._triggerName = _triggerName;\n this.ast = ast;\n this._stateStyles = _stateStyles;\n }\n match(currentState, nextState, element, params) {\n return oneOrMoreTransitionsMatch(this.ast.matchers, currentState, nextState, element, params);\n }\n buildStyles(stateName, params, errors) {\n let styler = this._stateStyles.get('*');\n if (stateName !== undefined) {\n styler = this._stateStyles.get(stateName?.toString()) || styler;\n }\n return styler ? styler.buildStyles(params, errors) : new Map();\n }\n build(driver, element, currentState, nextState, enterClassName, leaveClassName, currentOptions, nextOptions, subInstructions, skipAstBuild) {\n const errors = [];\n const transitionAnimationParams = this.ast.options && this.ast.options.params || EMPTY_OBJECT;\n const currentAnimationParams = currentOptions && currentOptions.params || EMPTY_OBJECT;\n const currentStateStyles = this.buildStyles(currentState, currentAnimationParams, errors);\n const nextAnimationParams = nextOptions && nextOptions.params || EMPTY_OBJECT;\n const nextStateStyles = this.buildStyles(nextState, nextAnimationParams, errors);\n const queriedElements = new Set();\n const preStyleMap = new Map();\n const postStyleMap = new Map();\n const isRemoval = nextState === 'void';\n const animationOptions = {\n params: applyParamDefaults(nextAnimationParams, transitionAnimationParams),\n delay: this.ast.options?.delay\n };\n const timelines = skipAstBuild ? [] : buildAnimationTimelines(driver, element, this.ast.animation, enterClassName, leaveClassName, currentStateStyles, nextStateStyles, animationOptions, subInstructions, errors);\n let totalTime = 0;\n timelines.forEach(tl => {\n totalTime = Math.max(tl.duration + tl.delay, totalTime);\n });\n if (errors.length) {\n return createTransitionInstruction(element, this._triggerName, currentState, nextState, isRemoval, currentStateStyles, nextStateStyles, [], [], preStyleMap, postStyleMap, totalTime, errors);\n }\n timelines.forEach(tl => {\n const elm = tl.element;\n const preProps = getOrSetDefaultValue(preStyleMap, elm, new Set());\n tl.preStyleProps.forEach(prop => preProps.add(prop));\n const postProps = getOrSetDefaultValue(postStyleMap, elm, new Set());\n tl.postStyleProps.forEach(prop => postProps.add(prop));\n if (elm !== element) {\n queriedElements.add(elm);\n }\n });\n if (typeof ngDevMode === 'undefined' || ngDevMode) {\n checkNonAnimatableInTimelines(timelines, this._triggerName, driver);\n }\n return createTransitionInstruction(element, this._triggerName, currentState, nextState, isRemoval, currentStateStyles, nextStateStyles, timelines, [...queriedElements.values()], preStyleMap, postStyleMap, totalTime);\n }\n}\n/**\n * Checks inside a set of timelines if they try to animate a css property which is not considered\n * animatable, in that case it prints a warning on the console.\n * Besides that the function doesn't have any other effect.\n *\n * Note: this check is done here after the timelines are built instead of doing on a lower level so\n * that we can make sure that the warning appears only once per instruction (we can aggregate here\n * all the issues instead of finding them separately).\n *\n * @param timelines The built timelines for the current instruction.\n * @param triggerName The name of the trigger for the current instruction.\n * @param driver Animation driver used to perform the check.\n *\n */\nfunction checkNonAnimatableInTimelines(timelines, triggerName, driver) {\n if (!driver.validateAnimatableStyleProperty) {\n return;\n }\n const allowedNonAnimatableProps = new Set([\n // 'easing' is a utility/synthetic prop we use to represent\n // easing functions, it represents a property of the animation\n // which is not animatable but different values can be used\n // in different steps\n 'easing']);\n const invalidNonAnimatableProps = new Set();\n timelines.forEach(({\n keyframes\n }) => {\n const nonAnimatablePropsInitialValues = new Map();\n keyframes.forEach(keyframe => {\n const entriesToCheck = Array.from(keyframe.entries()).filter(([prop]) => !allowedNonAnimatableProps.has(prop));\n for (const [prop, value] of entriesToCheck) {\n if (!driver.validateAnimatableStyleProperty(prop)) {\n if (nonAnimatablePropsInitialValues.has(prop) && !invalidNonAnimatableProps.has(prop)) {\n const propInitialValue = nonAnimatablePropsInitialValues.get(prop);\n if (propInitialValue !== value) {\n invalidNonAnimatableProps.add(prop);\n }\n } else {\n nonAnimatablePropsInitialValues.set(prop, value);\n }\n }\n }\n });\n });\n if (invalidNonAnimatableProps.size > 0) {\n console.warn(`Warning: The animation trigger \"${triggerName}\" is attempting to animate the following` + ' not animatable properties: ' + Array.from(invalidNonAnimatableProps).join(', ') + '\\n' + '(to check the list of all animatable properties visit https://developer.mozilla.org/en-US/docs/Web/CSS/CSS_animated_properties)');\n }\n}\nfunction oneOrMoreTransitionsMatch(matchFns, currentState, nextState, element, params) {\n return matchFns.some(fn => fn(currentState, nextState, element, params));\n}\nfunction applyParamDefaults(userParams, defaults) {\n const result = {\n ...defaults\n };\n Object.entries(userParams).forEach(([key, value]) => {\n if (value != null) {\n result[key] = value;\n }\n });\n return result;\n}\nclass AnimationStateStyles {\n constructor(styles, defaultParams, normalizer) {\n this.styles = styles;\n this.defaultParams = defaultParams;\n this.normalizer = normalizer;\n }\n buildStyles(params, errors) {\n const finalStyles = new Map();\n const combinedParams = applyParamDefaults(params, this.defaultParams);\n this.styles.styles.forEach(value => {\n if (typeof value !== 'string') {\n value.forEach((val, prop) => {\n if (val) {\n val = interpolateParams(val, combinedParams, errors);\n }\n const normalizedProp = this.normalizer.normalizePropertyName(prop, errors);\n val = this.normalizer.normalizeStyleValue(prop, normalizedProp, val, errors);\n finalStyles.set(prop, val);\n });\n }\n });\n return finalStyles;\n }\n}\nfunction buildTrigger(name, ast, normalizer) {\n return new AnimationTrigger(name, ast, normalizer);\n}\nclass AnimationTrigger {\n constructor(name, ast, _normalizer) {\n this.name = name;\n this.ast = ast;\n this._normalizer = _normalizer;\n this.transitionFactories = [];\n this.states = new Map();\n ast.states.forEach(ast => {\n const defaultParams = ast.options && ast.options.params || {};\n this.states.set(ast.name, new AnimationStateStyles(ast.style, defaultParams, _normalizer));\n });\n balanceProperties(this.states, 'true', '1');\n balanceProperties(this.states, 'false', '0');\n ast.transitions.forEach(ast => {\n this.transitionFactories.push(new AnimationTransitionFactory(name, ast, this.states));\n });\n this.fallbackTransition = createFallbackTransition(name, this.states, this._normalizer);\n }\n get containsQueries() {\n return this.ast.queryCount > 0;\n }\n matchTransition(currentState, nextState, element, params) {\n const entry = this.transitionFactories.find(f => f.match(currentState, nextState, element, params));\n return entry || null;\n }\n matchStyles(currentState, params, errors) {\n return this.fallbackTransition.buildStyles(currentState, params, errors);\n }\n}\nfunction createFallbackTransition(triggerName, states, normalizer) {\n const matchers = [(fromState, toState) => true];\n const animation = {\n type: AnimationMetadataType.Sequence,\n steps: [],\n options: null\n };\n const transition = {\n type: AnimationMetadataType.Transition,\n animation,\n matchers,\n options: null,\n queryCount: 0,\n depCount: 0\n };\n return new AnimationTransitionFactory(triggerName, transition, states);\n}\nfunction balanceProperties(stateMap, key1, key2) {\n if (stateMap.has(key1)) {\n if (!stateMap.has(key2)) {\n stateMap.set(key2, stateMap.get(key1));\n }\n } else if (stateMap.has(key2)) {\n stateMap.set(key1, stateMap.get(key2));\n }\n}\nconst EMPTY_INSTRUCTION_MAP = /*#__PURE__*/new ElementInstructionMap();\nclass TimelineAnimationEngine {\n constructor(bodyNode, _driver, _normalizer) {\n this.bodyNode = bodyNode;\n this._driver = _driver;\n this._normalizer = _normalizer;\n this._animations = new Map();\n this._playersById = new Map();\n this.players = [];\n }\n register(id, metadata) {\n const errors = [];\n const warnings = [];\n const ast = buildAnimationAst(this._driver, metadata, errors, warnings);\n if (errors.length) {\n throw registerFailed(errors);\n } else {\n if (warnings.length) {\n warnRegister(warnings);\n }\n this._animations.set(id, ast);\n }\n }\n _buildPlayer(i, preStyles, postStyles) {\n const element = i.element;\n const keyframes = normalizeKeyframes$1(this._normalizer, i.keyframes, preStyles, postStyles);\n return this._driver.animate(element, keyframes, i.duration, i.delay, i.easing, [], true);\n }\n create(id, element, options = {}) {\n const errors = [];\n const ast = this._animations.get(id);\n let instructions;\n const autoStylesMap = new Map();\n if (ast) {\n instructions = buildAnimationTimelines(this._driver, element, ast, ENTER_CLASSNAME, LEAVE_CLASSNAME, new Map(), new Map(), options, EMPTY_INSTRUCTION_MAP, errors);\n instructions.forEach(inst => {\n const styles = getOrSetDefaultValue(autoStylesMap, inst.element, new Map());\n inst.postStyleProps.forEach(prop => styles.set(prop, null));\n });\n } else {\n errors.push(missingOrDestroyedAnimation());\n instructions = [];\n }\n if (errors.length) {\n throw createAnimationFailed(errors);\n }\n autoStylesMap.forEach((styles, element) => {\n styles.forEach((_, prop) => {\n styles.set(prop, this._driver.computeStyle(element, prop, AUTO_STYLE));\n });\n });\n const players = instructions.map(i => {\n const styles = autoStylesMap.get(i.element);\n return this._buildPlayer(i, new Map(), styles);\n });\n const player = optimizeGroupPlayer(players);\n this._playersById.set(id, player);\n player.onDestroy(() => this.destroy(id));\n this.players.push(player);\n return player;\n }\n destroy(id) {\n const player = this._getPlayer(id);\n player.destroy();\n this._playersById.delete(id);\n const index = this.players.indexOf(player);\n if (index >= 0) {\n this.players.splice(index, 1);\n }\n }\n _getPlayer(id) {\n const player = this._playersById.get(id);\n if (!player) {\n throw missingPlayer(id);\n }\n return player;\n }\n listen(id, element, eventName, callback) {\n // triggerName, fromState, toState are all ignored for timeline animations\n const baseEvent = makeAnimationEvent(element, '', '', '');\n listenOnPlayer(this._getPlayer(id), eventName, baseEvent, callback);\n return () => {};\n }\n command(id, element, command, args) {\n if (command == 'register') {\n this.register(id, args[0]);\n return;\n }\n if (command == 'create') {\n const options = args[0] || {};\n this.create(id, element, options);\n return;\n }\n const player = this._getPlayer(id);\n switch (command) {\n case 'play':\n player.play();\n break;\n case 'pause':\n player.pause();\n break;\n case 'reset':\n player.reset();\n break;\n case 'restart':\n player.restart();\n break;\n case 'finish':\n player.finish();\n break;\n case 'init':\n player.init();\n break;\n case 'setPosition':\n player.setPosition(parseFloat(args[0]));\n break;\n case 'destroy':\n this.destroy(id);\n break;\n }\n }\n}\nconst QUEUED_CLASSNAME = 'ng-animate-queued';\nconst QUEUED_SELECTOR = '.ng-animate-queued';\nconst DISABLED_CLASSNAME = 'ng-animate-disabled';\nconst DISABLED_SELECTOR = '.ng-animate-disabled';\nconst STAR_CLASSNAME = 'ng-star-inserted';\nconst STAR_SELECTOR = '.ng-star-inserted';\nconst EMPTY_PLAYER_ARRAY = [];\nconst NULL_REMOVAL_STATE = {\n namespaceId: '',\n setForRemoval: false,\n setForMove: false,\n hasAnimation: false,\n removedBeforeQueried: false\n};\nconst NULL_REMOVED_QUERIED_STATE = {\n namespaceId: '',\n setForMove: false,\n setForRemoval: false,\n hasAnimation: false,\n removedBeforeQueried: true\n};\nconst REMOVAL_FLAG = '__ng_removed';\nclass StateValue {\n get params() {\n return this.options.params;\n }\n constructor(input, namespaceId = '') {\n this.namespaceId = namespaceId;\n const isObj = input && input.hasOwnProperty('value');\n const value = isObj ? input['value'] : input;\n this.value = normalizeTriggerValue(value);\n if (isObj) {\n // we drop the value property from options.\n const {\n value,\n ...options\n } = input;\n this.options = options;\n } else {\n this.options = {};\n }\n if (!this.options.params) {\n this.options.params = {};\n }\n }\n absorbOptions(options) {\n const newParams = options.params;\n if (newParams) {\n const oldParams = this.options.params;\n Object.keys(newParams).forEach(prop => {\n if (oldParams[prop] == null) {\n oldParams[prop] = newParams[prop];\n }\n });\n }\n }\n}\nconst VOID_VALUE = 'void';\nconst DEFAULT_STATE_VALUE = /*#__PURE__*/new StateValue(VOID_VALUE);\nclass AnimationTransitionNamespace {\n constructor(id, hostElement, _engine) {\n this.id = id;\n this.hostElement = hostElement;\n this._engine = _engine;\n this.players = [];\n this._triggers = new Map();\n this._queue = [];\n this._elementListeners = new Map();\n this._hostClassName = 'ng-tns-' + id;\n addClass(hostElement, this._hostClassName);\n }\n listen(element, name, phase, callback) {\n if (!this._triggers.has(name)) {\n throw missingTrigger(phase, name);\n }\n if (phase == null || phase.length == 0) {\n throw missingEvent(name);\n }\n if (!isTriggerEventValid(phase)) {\n throw unsupportedTriggerEvent(phase, name);\n }\n const listeners = getOrSetDefaultValue(this._elementListeners, element, []);\n const data = {\n name,\n phase,\n callback\n };\n listeners.push(data);\n const triggersWithStates = getOrSetDefaultValue(this._engine.statesByElement, element, new Map());\n if (!triggersWithStates.has(name)) {\n addClass(element, NG_TRIGGER_CLASSNAME);\n addClass(element, NG_TRIGGER_CLASSNAME + '-' + name);\n triggersWithStates.set(name, DEFAULT_STATE_VALUE);\n }\n return () => {\n // the event listener is removed AFTER the flush has occurred such\n // that leave animations callbacks can fire (otherwise if the node\n // is removed in between then the listeners would be deregistered)\n this._engine.afterFlush(() => {\n const index = listeners.indexOf(data);\n if (index >= 0) {\n listeners.splice(index, 1);\n }\n if (!this._triggers.has(name)) {\n triggersWithStates.delete(name);\n }\n });\n };\n }\n register(name, ast) {\n if (this._triggers.has(name)) {\n // throw\n return false;\n } else {\n this._triggers.set(name, ast);\n return true;\n }\n }\n _getTrigger(name) {\n const trigger = this._triggers.get(name);\n if (!trigger) {\n throw unregisteredTrigger(name);\n }\n return trigger;\n }\n trigger(element, triggerName, value, defaultToFallback = true) {\n const trigger = this._getTrigger(triggerName);\n const player = new TransitionAnimationPlayer(this.id, triggerName, element);\n let triggersWithStates = this._engine.statesByElement.get(element);\n if (!triggersWithStates) {\n addClass(element, NG_TRIGGER_CLASSNAME);\n addClass(element, NG_TRIGGER_CLASSNAME + '-' + triggerName);\n this._engine.statesByElement.set(element, triggersWithStates = new Map());\n }\n let fromState = triggersWithStates.get(triggerName);\n const toState = new StateValue(value, this.id);\n const isObj = value && value.hasOwnProperty('value');\n if (!isObj && fromState) {\n toState.absorbOptions(fromState.options);\n }\n triggersWithStates.set(triggerName, toState);\n if (!fromState) {\n fromState = DEFAULT_STATE_VALUE;\n }\n const isRemoval = toState.value === VOID_VALUE;\n // normally this isn't reached by here, however, if an object expression\n // is passed in then it may be a new object each time. Comparing the value\n // is important since that will stay the same despite there being a new object.\n // The removal arc here is special cased because the same element is triggered\n // twice in the event that it contains animations on the outer/inner portions\n // of the host container\n if (!isRemoval && fromState.value === toState.value) {\n // this means that despite the value not changing, some inner params\n // have changed which means that the animation final styles need to be applied\n if (!objEquals(fromState.params, toState.params)) {\n const errors = [];\n const fromStyles = trigger.matchStyles(fromState.value, fromState.params, errors);\n const toStyles = trigger.matchStyles(toState.value, toState.params, errors);\n if (errors.length) {\n this._engine.reportError(errors);\n } else {\n this._engine.afterFlush(() => {\n eraseStyles(element, fromStyles);\n setStyles(element, toStyles);\n });\n }\n }\n return;\n }\n const playersOnElement = getOrSetDefaultValue(this._engine.playersByElement, element, []);\n playersOnElement.forEach(player => {\n // only remove the player if it is queued on the EXACT same trigger/namespace\n // we only also deal with queued players here because if the animation has\n // started then we want to keep the player alive until the flush happens\n // (which is where the previousPlayers are passed into the new player)\n if (player.namespaceId == this.id && player.triggerName == triggerName && player.queued) {\n player.destroy();\n }\n });\n let transition = trigger.matchTransition(fromState.value, toState.value, element, toState.params);\n let isFallbackTransition = false;\n if (!transition) {\n if (!defaultToFallback) return;\n transition = trigger.fallbackTransition;\n isFallbackTransition = true;\n }\n this._engine.totalQueuedPlayers++;\n this._queue.push({\n element,\n triggerName,\n transition,\n fromState,\n toState,\n player,\n isFallbackTransition\n });\n if (!isFallbackTransition) {\n addClass(element, QUEUED_CLASSNAME);\n player.onStart(() => {\n removeClass(element, QUEUED_CLASSNAME);\n });\n }\n player.onDone(() => {\n let index = this.players.indexOf(player);\n if (index >= 0) {\n this.players.splice(index, 1);\n }\n const players = this._engine.playersByElement.get(element);\n if (players) {\n let index = players.indexOf(player);\n if (index >= 0) {\n players.splice(index, 1);\n }\n }\n });\n this.players.push(player);\n playersOnElement.push(player);\n return player;\n }\n deregister(name) {\n this._triggers.delete(name);\n this._engine.statesByElement.forEach(stateMap => stateMap.delete(name));\n this._elementListeners.forEach((listeners, element) => {\n this._elementListeners.set(element, listeners.filter(entry => {\n return entry.name != name;\n }));\n });\n }\n clearElementCache(element) {\n this._engine.statesByElement.delete(element);\n this._elementListeners.delete(element);\n const elementPlayers = this._engine.playersByElement.get(element);\n if (elementPlayers) {\n elementPlayers.forEach(player => player.destroy());\n this._engine.playersByElement.delete(element);\n }\n }\n _signalRemovalForInnerTriggers(rootElement, context) {\n const elements = this._engine.driver.query(rootElement, NG_TRIGGER_SELECTOR, true);\n // emulate a leave animation for all inner nodes within this node.\n // If there are no animations found for any of the nodes then clear the cache\n // for the element.\n elements.forEach(elm => {\n // this means that an inner remove() operation has already kicked off\n // the animation on this element...\n if (elm[REMOVAL_FLAG]) return;\n const namespaces = this._engine.fetchNamespacesByElement(elm);\n if (namespaces.size) {\n namespaces.forEach(ns => ns.triggerLeaveAnimation(elm, context, false, true));\n } else {\n this.clearElementCache(elm);\n }\n });\n // If the child elements were removed along with the parent, their animations might not\n // have completed. Clear all the elements from the cache so we don't end up with a memory leak.\n this._engine.afterFlushAnimationsDone(() => elements.forEach(elm => this.clearElementCache(elm)));\n }\n triggerLeaveAnimation(element, context, destroyAfterComplete, defaultToFallback) {\n const triggerStates = this._engine.statesByElement.get(element);\n const previousTriggersValues = new Map();\n if (triggerStates) {\n const players = [];\n triggerStates.forEach((state, triggerName) => {\n previousTriggersValues.set(triggerName, state.value);\n // this check is here in the event that an element is removed\n // twice (both on the host level and the component level)\n if (this._triggers.has(triggerName)) {\n const player = this.trigger(element, triggerName, VOID_VALUE, defaultToFallback);\n if (player) {\n players.push(player);\n }\n }\n });\n if (players.length) {\n this._engine.markElementAsRemoved(this.id, element, true, context, previousTriggersValues);\n if (destroyAfterComplete) {\n optimizeGroupPlayer(players).onDone(() => this._engine.processLeaveNode(element));\n }\n return true;\n }\n }\n return false;\n }\n prepareLeaveAnimationListeners(element) {\n const listeners = this._elementListeners.get(element);\n const elementStates = this._engine.statesByElement.get(element);\n // if this statement fails then it means that the element was picked up\n // by an earlier flush (or there are no listeners at all to track the leave).\n if (listeners && elementStates) {\n const visitedTriggers = new Set();\n listeners.forEach(listener => {\n const triggerName = listener.name;\n if (visitedTriggers.has(triggerName)) return;\n visitedTriggers.add(triggerName);\n const trigger = this._triggers.get(triggerName);\n const transition = trigger.fallbackTransition;\n const fromState = elementStates.get(triggerName) || DEFAULT_STATE_VALUE;\n const toState = new StateValue(VOID_VALUE);\n const player = new TransitionAnimationPlayer(this.id, triggerName, element);\n this._engine.totalQueuedPlayers++;\n this._queue.push({\n element,\n triggerName,\n transition,\n fromState,\n toState,\n player,\n isFallbackTransition: true\n });\n });\n }\n }\n removeNode(element, context) {\n const engine = this._engine;\n if (element.childElementCount) {\n this._signalRemovalForInnerTriggers(element, context);\n }\n // this means that a * => VOID animation was detected and kicked off\n if (this.triggerLeaveAnimation(element, context, true)) return;\n // find the player that is animating and make sure that the\n // removal is delayed until that player has completed\n let containsPotentialParentTransition = false;\n if (engine.totalAnimations) {\n const currentPlayers = engine.players.length ? engine.playersByQueriedElement.get(element) : [];\n // when this `if statement` does not continue forward it means that\n // a previous animation query has selected the current element and\n // is animating it. In this situation want to continue forwards and\n // allow the element to be queued up for animation later.\n if (currentPlayers && currentPlayers.length) {\n containsPotentialParentTransition = true;\n } else {\n let parent = element;\n while (parent = parent.parentNode) {\n const triggers = engine.statesByElement.get(parent);\n if (triggers) {\n containsPotentialParentTransition = true;\n break;\n }\n }\n }\n }\n // at this stage we know that the element will either get removed\n // during flush or will be picked up by a parent query. Either way\n // we need to fire the listeners for this element when it DOES get\n // removed (once the query parent animation is done or after flush)\n this.prepareLeaveAnimationListeners(element);\n // whether or not a parent has an animation we need to delay the deferral of the leave\n // operation until we have more information (which we do after flush() has been called)\n if (containsPotentialParentTransition) {\n engine.markElementAsRemoved(this.id, element, false, context);\n } else {\n const removalFlag = element[REMOVAL_FLAG];\n if (!removalFlag || removalFlag === NULL_REMOVAL_STATE) {\n // we do this after the flush has occurred such\n // that the callbacks can be fired\n engine.afterFlush(() => this.clearElementCache(element));\n engine.destroyInnerAnimations(element);\n engine._onRemovalComplete(element, context);\n }\n }\n }\n insertNode(element, parent) {\n addClass(element, this._hostClassName);\n }\n drainQueuedTransitions(microtaskId) {\n const instructions = [];\n this._queue.forEach(entry => {\n const player = entry.player;\n if (player.destroyed) return;\n const element = entry.element;\n const listeners = this._elementListeners.get(element);\n if (listeners) {\n listeners.forEach(listener => {\n if (listener.name == entry.triggerName) {\n const baseEvent = makeAnimationEvent(element, entry.triggerName, entry.fromState.value, entry.toState.value);\n baseEvent['_data'] = microtaskId;\n listenOnPlayer(entry.player, listener.phase, baseEvent, listener.callback);\n }\n });\n }\n if (player.markedForDestroy) {\n this._engine.afterFlush(() => {\n // now we can destroy the element properly since the event listeners have\n // been bound to the player\n player.destroy();\n });\n } else {\n instructions.push(entry);\n }\n });\n this._queue = [];\n return instructions.sort((a, b) => {\n // if depCount == 0 them move to front\n // otherwise if a contains b then move back\n const d0 = a.transition.ast.depCount;\n const d1 = b.transition.ast.depCount;\n if (d0 == 0 || d1 == 0) {\n return d0 - d1;\n }\n return this._engine.driver.containsElement(a.element, b.element) ? 1 : -1;\n });\n }\n destroy(context) {\n this.players.forEach(p => p.destroy());\n this._signalRemovalForInnerTriggers(this.hostElement, context);\n }\n}\nclass TransitionAnimationEngine {\n /** @internal */\n _onRemovalComplete(element, context) {\n this.onRemovalComplete(element, context);\n }\n constructor(bodyNode, driver, _normalizer, scheduler) {\n this.bodyNode = bodyNode;\n this.driver = driver;\n this._normalizer = _normalizer;\n this.scheduler = scheduler;\n this.players = [];\n this.newHostElements = new Map();\n this.playersByElement = new Map();\n this.playersByQueriedElement = new Map();\n this.statesByElement = new Map();\n this.disabledNodes = new Set();\n this.totalAnimations = 0;\n this.totalQueuedPlayers = 0;\n this._namespaceLookup = {};\n this._namespaceList = [];\n this._flushFns = [];\n this._whenQuietFns = [];\n this.namespacesByHostElement = new Map();\n this.collectedEnterElements = [];\n this.collectedLeaveElements = [];\n // this method is designed to be overridden by the code that uses this engine\n this.onRemovalComplete = (element, context) => {};\n }\n get queuedPlayers() {\n const players = [];\n this._namespaceList.forEach(ns => {\n ns.players.forEach(player => {\n if (player.queued) {\n players.push(player);\n }\n });\n });\n return players;\n }\n createNamespace(namespaceId, hostElement) {\n const ns = new AnimationTransitionNamespace(namespaceId, hostElement, this);\n if (this.bodyNode && this.driver.containsElement(this.bodyNode, hostElement)) {\n this._balanceNamespaceList(ns, hostElement);\n } else {\n // defer this later until flush during when the host element has\n // been inserted so that we know exactly where to place it in\n // the namespace list\n this.newHostElements.set(hostElement, ns);\n // given that this host element is a part of the animation code, it\n // may or may not be inserted by a parent node that is of an\n // animation renderer type. If this happens then we can still have\n // access to this item when we query for :enter nodes. If the parent\n // is a renderer then the set data-structure will normalize the entry\n this.collectEnterElement(hostElement);\n }\n return this._namespaceLookup[namespaceId] = ns;\n }\n _balanceNamespaceList(ns, hostElement) {\n const namespaceList = this._namespaceList;\n const namespacesByHostElement = this.namespacesByHostElement;\n const limit = namespaceList.length - 1;\n if (limit >= 0) {\n let found = false;\n // Find the closest ancestor with an existing namespace so we can then insert `ns` after it,\n // establishing a top-down ordering of namespaces in `this._namespaceList`.\n let ancestor = this.driver.getParentElement(hostElement);\n while (ancestor) {\n const ancestorNs = namespacesByHostElement.get(ancestor);\n if (ancestorNs) {\n // An animation namespace has been registered for this ancestor, so we insert `ns`\n // right after it to establish top-down ordering of animation namespaces.\n const index = namespaceList.indexOf(ancestorNs);\n namespaceList.splice(index + 1, 0, ns);\n found = true;\n break;\n }\n ancestor = this.driver.getParentElement(ancestor);\n }\n if (!found) {\n // No namespace exists that is an ancestor of `ns`, so `ns` is inserted at the front to\n // ensure that any existing descendants are ordered after `ns`, retaining the desired\n // top-down ordering.\n namespaceList.unshift(ns);\n }\n } else {\n namespaceList.push(ns);\n }\n namespacesByHostElement.set(hostElement, ns);\n return ns;\n }\n register(namespaceId, hostElement) {\n let ns = this._namespaceLookup[namespaceId];\n if (!ns) {\n ns = this.createNamespace(namespaceId, hostElement);\n }\n return ns;\n }\n registerTrigger(namespaceId, name, trigger) {\n let ns = this._namespaceLookup[namespaceId];\n if (ns && ns.register(name, trigger)) {\n this.totalAnimations++;\n }\n }\n destroy(namespaceId, context) {\n if (!namespaceId) return;\n this.afterFlush(() => {});\n this.afterFlushAnimationsDone(() => {\n const ns = this._fetchNamespace(namespaceId);\n this.namespacesByHostElement.delete(ns.hostElement);\n const index = this._namespaceList.indexOf(ns);\n if (index >= 0) {\n this._namespaceList.splice(index, 1);\n }\n ns.destroy(context);\n delete this._namespaceLookup[namespaceId];\n });\n }\n _fetchNamespace(id) {\n return this._namespaceLookup[id];\n }\n fetchNamespacesByElement(element) {\n // normally there should only be one namespace per element, however\n // if @triggers are placed on both the component element and then\n // its host element (within the component code) then there will be\n // two namespaces returned. We use a set here to simply deduplicate\n // the namespaces in case (for the reason described above) there are multiple triggers\n const namespaces = new Set();\n const elementStates = this.statesByElement.get(element);\n if (elementStates) {\n for (let stateValue of elementStates.values()) {\n if (stateValue.namespaceId) {\n const ns = this._fetchNamespace(stateValue.namespaceId);\n if (ns) {\n namespaces.add(ns);\n }\n }\n }\n }\n return namespaces;\n }\n trigger(namespaceId, element, name, value) {\n if (isElementNode(element)) {\n const ns = this._fetchNamespace(namespaceId);\n if (ns) {\n ns.trigger(element, name, value);\n return true;\n }\n }\n return false;\n }\n insertNode(namespaceId, element, parent, insertBefore) {\n if (!isElementNode(element)) return;\n // special case for when an element is removed and reinserted (move operation)\n // when this occurs we do not want to use the element for deletion later\n const details = element[REMOVAL_FLAG];\n if (details && details.setForRemoval) {\n details.setForRemoval = false;\n details.setForMove = true;\n const index = this.collectedLeaveElements.indexOf(element);\n if (index >= 0) {\n this.collectedLeaveElements.splice(index, 1);\n }\n }\n // in the event that the namespaceId is blank then the caller\n // code does not contain any animation code in it, but it is\n // just being called so that the node is marked as being inserted\n if (namespaceId) {\n const ns = this._fetchNamespace(namespaceId);\n // This if-statement is a workaround for router issue #21947.\n // The router sometimes hits a race condition where while a route\n // is being instantiated a new navigation arrives, triggering leave\n // animation of DOM that has not been fully initialized, until this\n // is resolved, we need to handle the scenario when DOM is not in a\n // consistent state during the animation.\n if (ns) {\n ns.insertNode(element, parent);\n }\n }\n // only *directives and host elements are inserted before\n if (insertBefore) {\n this.collectEnterElement(element);\n }\n }\n collectEnterElement(element) {\n this.collectedEnterElements.push(element);\n }\n markElementAsDisabled(element, value) {\n if (value) {\n if (!this.disabledNodes.has(element)) {\n this.disabledNodes.add(element);\n addClass(element, DISABLED_CLASSNAME);\n }\n } else if (this.disabledNodes.has(element)) {\n this.disabledNodes.delete(element);\n removeClass(element, DISABLED_CLASSNAME);\n }\n }\n removeNode(namespaceId, element, context) {\n if (isElementNode(element)) {\n this.scheduler?.notify();\n const ns = namespaceId ? this._fetchNamespace(namespaceId) : null;\n if (ns) {\n ns.removeNode(element, context);\n } else {\n this.markElementAsRemoved(namespaceId, element, false, context);\n }\n const hostNS = this.namespacesByHostElement.get(element);\n if (hostNS && hostNS.id !== namespaceId) {\n hostNS.removeNode(element, context);\n }\n } else {\n this._onRemovalComplete(element, context);\n }\n }\n markElementAsRemoved(namespaceId, element, hasAnimation, context, previousTriggersValues) {\n this.collectedLeaveElements.push(element);\n element[REMOVAL_FLAG] = {\n namespaceId,\n setForRemoval: context,\n hasAnimation,\n removedBeforeQueried: false,\n previousTriggersValues\n };\n }\n listen(namespaceId, element, name, phase, callback) {\n if (isElementNode(element)) {\n return this._fetchNamespace(namespaceId).listen(element, name, phase, callback);\n }\n return () => {};\n }\n _buildInstruction(entry, subTimelines, enterClassName, leaveClassName, skipBuildAst) {\n return entry.transition.build(this.driver, entry.element, entry.fromState.value, entry.toState.value, enterClassName, leaveClassName, entry.fromState.options, entry.toState.options, subTimelines, skipBuildAst);\n }\n destroyInnerAnimations(containerElement) {\n let elements = this.driver.query(containerElement, NG_TRIGGER_SELECTOR, true);\n elements.forEach(element => this.destroyActiveAnimationsForElement(element));\n if (this.playersByQueriedElement.size == 0) return;\n elements = this.driver.query(containerElement, NG_ANIMATING_SELECTOR, true);\n elements.forEach(element => this.finishActiveQueriedAnimationOnElement(element));\n }\n destroyActiveAnimationsForElement(element) {\n const players = this.playersByElement.get(element);\n if (players) {\n players.forEach(player => {\n // special case for when an element is set for destruction, but hasn't started.\n // in this situation we want to delay the destruction until the flush occurs\n // so that any event listeners attached to the player are triggered.\n if (player.queued) {\n player.markedForDestroy = true;\n } else {\n player.destroy();\n }\n });\n }\n }\n finishActiveQueriedAnimationOnElement(element) {\n const players = this.playersByQueriedElement.get(element);\n if (players) {\n players.forEach(player => player.finish());\n }\n }\n whenRenderingDone() {\n return new Promise(resolve => {\n if (this.players.length) {\n return optimizeGroupPlayer(this.players).onDone(() => resolve());\n } else {\n resolve();\n }\n });\n }\n processLeaveNode(element) {\n const details = element[REMOVAL_FLAG];\n if (details && details.setForRemoval) {\n // this will prevent it from removing it twice\n element[REMOVAL_FLAG] = NULL_REMOVAL_STATE;\n if (details.namespaceId) {\n this.destroyInnerAnimations(element);\n const ns = this._fetchNamespace(details.namespaceId);\n if (ns) {\n ns.clearElementCache(element);\n }\n }\n this._onRemovalComplete(element, details.setForRemoval);\n }\n if (element.classList?.contains(DISABLED_CLASSNAME)) {\n this.markElementAsDisabled(element, false);\n }\n this.driver.query(element, DISABLED_SELECTOR, true).forEach(node => {\n this.markElementAsDisabled(node, false);\n });\n }\n flush(microtaskId = -1) {\n let players = [];\n if (this.newHostElements.size) {\n this.newHostElements.forEach((ns, element) => this._balanceNamespaceList(ns, element));\n this.newHostElements.clear();\n }\n if (this.totalAnimations && this.collectedEnterElements.length) {\n for (let i = 0; i < this.collectedEnterElements.length; i++) {\n const elm = this.collectedEnterElements[i];\n addClass(elm, STAR_CLASSNAME);\n }\n }\n if (this._namespaceList.length && (this.totalQueuedPlayers || this.collectedLeaveElements.length)) {\n const cleanupFns = [];\n try {\n players = this._flushAnimations(cleanupFns, microtaskId);\n } finally {\n for (let i = 0; i < cleanupFns.length; i++) {\n cleanupFns[i]();\n }\n }\n } else {\n for (let i = 0; i < this.collectedLeaveElements.length; i++) {\n const element = this.collectedLeaveElements[i];\n this.processLeaveNode(element);\n }\n }\n this.totalQueuedPlayers = 0;\n this.collectedEnterElements.length = 0;\n this.collectedLeaveElements.length = 0;\n this._flushFns.forEach(fn => fn());\n this._flushFns = [];\n if (this._whenQuietFns.length) {\n // we move these over to a variable so that\n // if any new callbacks are registered in another\n // flush they do not populate the existing set\n const quietFns = this._whenQuietFns;\n this._whenQuietFns = [];\n if (players.length) {\n optimizeGroupPlayer(players).onDone(() => {\n quietFns.forEach(fn => fn());\n });\n } else {\n quietFns.forEach(fn => fn());\n }\n }\n }\n reportError(errors) {\n throw triggerTransitionsFailed(errors);\n }\n _flushAnimations(cleanupFns, microtaskId) {\n const subTimelines = new ElementInstructionMap();\n const skippedPlayers = [];\n const skippedPlayersMap = new Map();\n const queuedInstructions = [];\n const queriedElements = new Map();\n const allPreStyleElements = new Map();\n const allPostStyleElements = new Map();\n const disabledElementsSet = new Set();\n this.disabledNodes.forEach(node => {\n disabledElementsSet.add(node);\n const nodesThatAreDisabled = this.driver.query(node, QUEUED_SELECTOR, true);\n for (let i = 0; i < nodesThatAreDisabled.length; i++) {\n disabledElementsSet.add(nodesThatAreDisabled[i]);\n }\n });\n const bodyNode = this.bodyNode;\n const allTriggerElements = Array.from(this.statesByElement.keys());\n const enterNodeMap = buildRootMap(allTriggerElements, this.collectedEnterElements);\n // this must occur before the instructions are built below such that\n // the :enter queries match the elements (since the timeline queries\n // are fired during instruction building).\n const enterNodeMapIds = new Map();\n let i = 0;\n enterNodeMap.forEach((nodes, root) => {\n const className = ENTER_CLASSNAME + i++;\n enterNodeMapIds.set(root, className);\n nodes.forEach(node => addClass(node, className));\n });\n const allLeaveNodes = [];\n const mergedLeaveNodes = new Set();\n const leaveNodesWithoutAnimations = new Set();\n for (let i = 0; i < this.collectedLeaveElements.length; i++) {\n const element = this.collectedLeaveElements[i];\n const details = element[REMOVAL_FLAG];\n if (details && details.setForRemoval) {\n allLeaveNodes.push(element);\n mergedLeaveNodes.add(element);\n if (details.hasAnimation) {\n this.driver.query(element, STAR_SELECTOR, true).forEach(elm => mergedLeaveNodes.add(elm));\n } else {\n leaveNodesWithoutAnimations.add(element);\n }\n }\n }\n const leaveNodeMapIds = new Map();\n const leaveNodeMap = buildRootMap(allTriggerElements, Array.from(mergedLeaveNodes));\n leaveNodeMap.forEach((nodes, root) => {\n const className = LEAVE_CLASSNAME + i++;\n leaveNodeMapIds.set(root, className);\n nodes.forEach(node => addClass(node, className));\n });\n cleanupFns.push(() => {\n enterNodeMap.forEach((nodes, root) => {\n const className = enterNodeMapIds.get(root);\n nodes.forEach(node => removeClass(node, className));\n });\n leaveNodeMap.forEach((nodes, root) => {\n const className = leaveNodeMapIds.get(root);\n nodes.forEach(node => removeClass(node, className));\n });\n allLeaveNodes.forEach(element => {\n this.processLeaveNode(element);\n });\n });\n const allPlayers = [];\n const erroneousTransitions = [];\n for (let i = this._namespaceList.length - 1; i >= 0; i--) {\n const ns = this._namespaceList[i];\n ns.drainQueuedTransitions(microtaskId).forEach(entry => {\n const player = entry.player;\n const element = entry.element;\n allPlayers.push(player);\n if (this.collectedEnterElements.length) {\n const details = element[REMOVAL_FLAG];\n // animations for move operations (elements being removed and reinserted,\n // e.g. when the order of an *ngFor list changes) are currently not supported\n if (details && details.setForMove) {\n if (details.previousTriggersValues && details.previousTriggersValues.has(entry.triggerName)) {\n const previousValue = details.previousTriggersValues.get(entry.triggerName);\n // we need to restore the previous trigger value since the element has\n // only been moved and hasn't actually left the DOM\n const triggersWithStates = this.statesByElement.get(entry.element);\n if (triggersWithStates && triggersWithStates.has(entry.triggerName)) {\n const state = triggersWithStates.get(entry.triggerName);\n state.value = previousValue;\n triggersWithStates.set(entry.triggerName, state);\n }\n }\n player.destroy();\n return;\n }\n }\n const nodeIsOrphaned = !bodyNode || !this.driver.containsElement(bodyNode, element);\n const leaveClassName = leaveNodeMapIds.get(element);\n const enterClassName = enterNodeMapIds.get(element);\n const instruction = this._buildInstruction(entry, subTimelines, enterClassName, leaveClassName, nodeIsOrphaned);\n if (instruction.errors && instruction.errors.length) {\n erroneousTransitions.push(instruction);\n return;\n }\n // even though the element may not be in the DOM, it may still\n // be added at a later point (due to the mechanics of content\n // projection and/or dynamic component insertion) therefore it's\n // important to still style the element.\n if (nodeIsOrphaned) {\n player.onStart(() => eraseStyles(element, instruction.fromStyles));\n player.onDestroy(() => setStyles(element, instruction.toStyles));\n skippedPlayers.push(player);\n return;\n }\n // if an unmatched transition is queued and ready to go\n // then it SHOULD NOT render an animation and cancel the\n // previously running animations.\n if (entry.isFallbackTransition) {\n player.onStart(() => eraseStyles(element, instruction.fromStyles));\n player.onDestroy(() => setStyles(element, instruction.toStyles));\n skippedPlayers.push(player);\n return;\n }\n // this means that if a parent animation uses this animation as a sub-trigger\n // then it will instruct the timeline builder not to add a player delay, but\n // instead stretch the first keyframe gap until the animation starts. This is\n // important in order to prevent extra initialization styles from being\n // required by the user for the animation.\n const timelines = [];\n instruction.timelines.forEach(tl => {\n tl.stretchStartingKeyframe = true;\n if (!this.disabledNodes.has(tl.element)) {\n timelines.push(tl);\n }\n });\n instruction.timelines = timelines;\n subTimelines.append(element, instruction.timelines);\n const tuple = {\n instruction,\n player,\n element\n };\n queuedInstructions.push(tuple);\n instruction.queriedElements.forEach(element => getOrSetDefaultValue(queriedElements, element, []).push(player));\n instruction.preStyleProps.forEach((stringMap, element) => {\n if (stringMap.size) {\n let setVal = allPreStyleElements.get(element);\n if (!setVal) {\n allPreStyleElements.set(element, setVal = new Set());\n }\n stringMap.forEach((_, prop) => setVal.add(prop));\n }\n });\n instruction.postStyleProps.forEach((stringMap, element) => {\n let setVal = allPostStyleElements.get(element);\n if (!setVal) {\n allPostStyleElements.set(element, setVal = new Set());\n }\n stringMap.forEach((_, prop) => setVal.add(prop));\n });\n });\n }\n if (erroneousTransitions.length) {\n const errors = [];\n erroneousTransitions.forEach(instruction => {\n errors.push(transitionFailed(instruction.triggerName, instruction.errors));\n });\n allPlayers.forEach(player => player.destroy());\n this.reportError(errors);\n }\n const allPreviousPlayersMap = new Map();\n // this map tells us which element in the DOM tree is contained by\n // which animation. Further down this map will get populated once\n // the players are built and in doing so we can use it to efficiently\n // figure out if a sub player is skipped due to a parent player having priority.\n const animationElementMap = new Map();\n queuedInstructions.forEach(entry => {\n const element = entry.element;\n if (subTimelines.has(element)) {\n animationElementMap.set(element, element);\n this._beforeAnimationBuild(entry.player.namespaceId, entry.instruction, allPreviousPlayersMap);\n }\n });\n skippedPlayers.forEach(player => {\n const element = player.element;\n const previousPlayers = this._getPreviousPlayers(element, false, player.namespaceId, player.triggerName, null);\n previousPlayers.forEach(prevPlayer => {\n getOrSetDefaultValue(allPreviousPlayersMap, element, []).push(prevPlayer);\n prevPlayer.destroy();\n });\n });\n // this is a special case for nodes that will be removed either by\n // having their own leave animations or by being queried in a container\n // that will be removed once a parent animation is complete. The idea\n // here is that * styles must be identical to ! styles because of\n // backwards compatibility (* is also filled in by default in many places).\n // Otherwise * styles will return an empty value or \"auto\" since the element\n // passed to getComputedStyle will not be visible (since * === destination)\n const replaceNodes = allLeaveNodes.filter(node => {\n return replacePostStylesAsPre(node, allPreStyleElements, allPostStyleElements);\n });\n // POST STAGE: fill the * styles\n const postStylesMap = new Map();\n const allLeaveQueriedNodes = cloakAndComputeStyles(postStylesMap, this.driver, leaveNodesWithoutAnimations, allPostStyleElements, AUTO_STYLE);\n allLeaveQueriedNodes.forEach(node => {\n if (replacePostStylesAsPre(node, allPreStyleElements, allPostStyleElements)) {\n replaceNodes.push(node);\n }\n });\n // PRE STAGE: fill the ! styles\n const preStylesMap = new Map();\n enterNodeMap.forEach((nodes, root) => {\n cloakAndComputeStyles(preStylesMap, this.driver, new Set(nodes), allPreStyleElements, ɵPRE_STYLE);\n });\n replaceNodes.forEach(node => {\n const post = postStylesMap.get(node);\n const pre = preStylesMap.get(node);\n postStylesMap.set(node, new Map([...(post?.entries() ?? []), ...(pre?.entries() ?? [])]));\n });\n const rootPlayers = [];\n const subPlayers = [];\n const NO_PARENT_ANIMATION_ELEMENT_DETECTED = {};\n queuedInstructions.forEach(entry => {\n const {\n element,\n player,\n instruction\n } = entry;\n // this means that it was never consumed by a parent animation which\n // means that it is independent and therefore should be set for animation\n if (subTimelines.has(element)) {\n if (disabledElementsSet.has(element)) {\n player.onDestroy(() => setStyles(element, instruction.toStyles));\n player.disabled = true;\n player.overrideTotalTime(instruction.totalTime);\n skippedPlayers.push(player);\n return;\n }\n // this will flow up the DOM and query the map to figure out\n // if a parent animation has priority over it. In the situation\n // that a parent is detected then it will cancel the loop. If\n // nothing is detected, or it takes a few hops to find a parent,\n // then it will fill in the missing nodes and signal them as having\n // a detected parent (or a NO_PARENT value via a special constant).\n let parentWithAnimation = NO_PARENT_ANIMATION_ELEMENT_DETECTED;\n if (animationElementMap.size > 1) {\n let elm = element;\n const parentsToAdd = [];\n while (elm = elm.parentNode) {\n const detectedParent = animationElementMap.get(elm);\n if (detectedParent) {\n parentWithAnimation = detectedParent;\n break;\n }\n parentsToAdd.push(elm);\n }\n parentsToAdd.forEach(parent => animationElementMap.set(parent, parentWithAnimation));\n }\n const innerPlayer = this._buildAnimation(player.namespaceId, instruction, allPreviousPlayersMap, skippedPlayersMap, preStylesMap, postStylesMap);\n player.setRealPlayer(innerPlayer);\n if (parentWithAnimation === NO_PARENT_ANIMATION_ELEMENT_DETECTED) {\n rootPlayers.push(player);\n } else {\n const parentPlayers = this.playersByElement.get(parentWithAnimation);\n if (parentPlayers && parentPlayers.length) {\n player.parentPlayer = optimizeGroupPlayer(parentPlayers);\n }\n skippedPlayers.push(player);\n }\n } else {\n eraseStyles(element, instruction.fromStyles);\n player.onDestroy(() => setStyles(element, instruction.toStyles));\n // there still might be a ancestor player animating this\n // element therefore we will still add it as a sub player\n // even if its animation may be disabled\n subPlayers.push(player);\n if (disabledElementsSet.has(element)) {\n skippedPlayers.push(player);\n }\n }\n });\n // find all of the sub players' corresponding inner animation players\n subPlayers.forEach(player => {\n // even if no players are found for a sub animation it\n // will still complete itself after the next tick since it's Noop\n const playersForElement = skippedPlayersMap.get(player.element);\n if (playersForElement && playersForElement.length) {\n const innerPlayer = optimizeGroupPlayer(playersForElement);\n player.setRealPlayer(innerPlayer);\n }\n });\n // the reason why we don't actually play the animation is\n // because all that a skipped player is designed to do is to\n // fire the start/done transition callback events\n skippedPlayers.forEach(player => {\n if (player.parentPlayer) {\n player.syncPlayerEvents(player.parentPlayer);\n } else {\n player.destroy();\n }\n });\n // run through all of the queued removals and see if they\n // were picked up by a query. If not then perform the removal\n // operation right away unless a parent animation is ongoing.\n for (let i = 0; i < allLeaveNodes.length; i++) {\n const element = allLeaveNodes[i];\n const details = element[REMOVAL_FLAG];\n removeClass(element, LEAVE_CLASSNAME);\n // this means the element has a removal animation that is being\n // taken care of and therefore the inner elements will hang around\n // until that animation is over (or the parent queried animation)\n if (details && details.hasAnimation) continue;\n let players = [];\n // if this element is queried or if it contains queried children\n // then we want for the element not to be removed from the page\n // until the queried animations have finished\n if (queriedElements.size) {\n let queriedPlayerResults = queriedElements.get(element);\n if (queriedPlayerResults && queriedPlayerResults.length) {\n players.push(...queriedPlayerResults);\n }\n let queriedInnerElements = this.driver.query(element, NG_ANIMATING_SELECTOR, true);\n for (let j = 0; j < queriedInnerElements.length; j++) {\n let queriedPlayers = queriedElements.get(queriedInnerElements[j]);\n if (queriedPlayers && queriedPlayers.length) {\n players.push(...queriedPlayers);\n }\n }\n }\n const activePlayers = players.filter(p => !p.destroyed);\n if (activePlayers.length) {\n removeNodesAfterAnimationDone(this, element, activePlayers);\n } else {\n this.processLeaveNode(element);\n }\n }\n // this is required so the cleanup method doesn't remove them\n allLeaveNodes.length = 0;\n rootPlayers.forEach(player => {\n this.players.push(player);\n player.onDone(() => {\n player.destroy();\n const index = this.players.indexOf(player);\n this.players.splice(index, 1);\n });\n player.play();\n });\n return rootPlayers;\n }\n afterFlush(callback) {\n this._flushFns.push(callback);\n }\n afterFlushAnimationsDone(callback) {\n this._whenQuietFns.push(callback);\n }\n _getPreviousPlayers(element, isQueriedElement, namespaceId, triggerName, toStateValue) {\n let players = [];\n if (isQueriedElement) {\n const queriedElementPlayers = this.playersByQueriedElement.get(element);\n if (queriedElementPlayers) {\n players = queriedElementPlayers;\n }\n } else {\n const elementPlayers = this.playersByElement.get(element);\n if (elementPlayers) {\n const isRemovalAnimation = !toStateValue || toStateValue == VOID_VALUE;\n elementPlayers.forEach(player => {\n if (player.queued) return;\n if (!isRemovalAnimation && player.triggerName != triggerName) return;\n players.push(player);\n });\n }\n }\n if (namespaceId || triggerName) {\n players = players.filter(player => {\n if (namespaceId && namespaceId != player.namespaceId) return false;\n if (triggerName && triggerName != player.triggerName) return false;\n return true;\n });\n }\n return players;\n }\n _beforeAnimationBuild(namespaceId, instruction, allPreviousPlayersMap) {\n const triggerName = instruction.triggerName;\n const rootElement = instruction.element;\n // when a removal animation occurs, ALL previous players are collected\n // and destroyed (even if they are outside of the current namespace)\n const targetNameSpaceId = instruction.isRemovalTransition ? undefined : namespaceId;\n const targetTriggerName = instruction.isRemovalTransition ? undefined : triggerName;\n for (const timelineInstruction of instruction.timelines) {\n const element = timelineInstruction.element;\n const isQueriedElement = element !== rootElement;\n const players = getOrSetDefaultValue(allPreviousPlayersMap, element, []);\n const previousPlayers = this._getPreviousPlayers(element, isQueriedElement, targetNameSpaceId, targetTriggerName, instruction.toState);\n previousPlayers.forEach(player => {\n const realPlayer = player.getRealPlayer();\n if (realPlayer.beforeDestroy) {\n realPlayer.beforeDestroy();\n }\n player.destroy();\n players.push(player);\n });\n }\n // this needs to be done so that the PRE/POST styles can be\n // computed properly without interfering with the previous animation\n eraseStyles(rootElement, instruction.fromStyles);\n }\n _buildAnimation(namespaceId, instruction, allPreviousPlayersMap, skippedPlayersMap, preStylesMap, postStylesMap) {\n const triggerName = instruction.triggerName;\n const rootElement = instruction.element;\n // we first run this so that the previous animation player\n // data can be passed into the successive animation players\n const allQueriedPlayers = [];\n const allConsumedElements = new Set();\n const allSubElements = new Set();\n const allNewPlayers = instruction.timelines.map(timelineInstruction => {\n const element = timelineInstruction.element;\n allConsumedElements.add(element);\n // FIXME (matsko): make sure to-be-removed animations are removed properly\n const details = element[REMOVAL_FLAG];\n if (details && details.removedBeforeQueried) return new NoopAnimationPlayer(timelineInstruction.duration, timelineInstruction.delay);\n const isQueriedElement = element !== rootElement;\n const previousPlayers = flattenGroupPlayers((allPreviousPlayersMap.get(element) || EMPTY_PLAYER_ARRAY).map(p => p.getRealPlayer())).filter(p => {\n // the `element` is not apart of the AnimationPlayer definition, but\n // Mock/WebAnimations\n // use the element within their implementation. This will be added in Angular5 to\n // AnimationPlayer\n const pp = p;\n return pp.element ? pp.element === element : false;\n });\n const preStyles = preStylesMap.get(element);\n const postStyles = postStylesMap.get(element);\n const keyframes = normalizeKeyframes$1(this._normalizer, timelineInstruction.keyframes, preStyles, postStyles);\n const player = this._buildPlayer(timelineInstruction, keyframes, previousPlayers);\n // this means that this particular player belongs to a sub trigger. It is\n // important that we match this player up with the corresponding (@trigger.listener)\n if (timelineInstruction.subTimeline && skippedPlayersMap) {\n allSubElements.add(element);\n }\n if (isQueriedElement) {\n const wrappedPlayer = new TransitionAnimationPlayer(namespaceId, triggerName, element);\n wrappedPlayer.setRealPlayer(player);\n allQueriedPlayers.push(wrappedPlayer);\n }\n return player;\n });\n allQueriedPlayers.forEach(player => {\n getOrSetDefaultValue(this.playersByQueriedElement, player.element, []).push(player);\n player.onDone(() => deleteOrUnsetInMap(this.playersByQueriedElement, player.element, player));\n });\n allConsumedElements.forEach(element => addClass(element, NG_ANIMATING_CLASSNAME));\n const player = optimizeGroupPlayer(allNewPlayers);\n player.onDestroy(() => {\n allConsumedElements.forEach(element => removeClass(element, NG_ANIMATING_CLASSNAME));\n setStyles(rootElement, instruction.toStyles);\n });\n // this basically makes all of the callbacks for sub element animations\n // be dependent on the upper players for when they finish\n allSubElements.forEach(element => {\n getOrSetDefaultValue(skippedPlayersMap, element, []).push(player);\n });\n return player;\n }\n _buildPlayer(instruction, keyframes, previousPlayers) {\n if (keyframes.length > 0) {\n return this.driver.animate(instruction.element, keyframes, instruction.duration, instruction.delay, instruction.easing, previousPlayers);\n }\n // special case for when an empty transition|definition is provided\n // ... there is no point in rendering an empty animation\n return new NoopAnimationPlayer(instruction.duration, instruction.delay);\n }\n}\nclass TransitionAnimationPlayer {\n constructor(namespaceId, triggerName, element) {\n this.namespaceId = namespaceId;\n this.triggerName = triggerName;\n this.element = element;\n this._player = new NoopAnimationPlayer();\n this._containsRealPlayer = false;\n this._queuedCallbacks = new Map();\n this.destroyed = false;\n this.parentPlayer = null;\n this.markedForDestroy = false;\n this.disabled = false;\n this.queued = true;\n this.totalTime = 0;\n }\n setRealPlayer(player) {\n if (this._containsRealPlayer) return;\n this._player = player;\n this._queuedCallbacks.forEach((callbacks, phase) => {\n callbacks.forEach(callback => listenOnPlayer(player, phase, undefined, callback));\n });\n this._queuedCallbacks.clear();\n this._containsRealPlayer = true;\n this.overrideTotalTime(player.totalTime);\n this.queued = false;\n }\n getRealPlayer() {\n return this._player;\n }\n overrideTotalTime(totalTime) {\n this.totalTime = totalTime;\n }\n syncPlayerEvents(player) {\n const p = this._player;\n if (p.triggerCallback) {\n player.onStart(() => p.triggerCallback('start'));\n }\n player.onDone(() => this.finish());\n player.onDestroy(() => this.destroy());\n }\n _queueEvent(name, callback) {\n getOrSetDefaultValue(this._queuedCallbacks, name, []).push(callback);\n }\n onDone(fn) {\n if (this.queued) {\n this._queueEvent('done', fn);\n }\n this._player.onDone(fn);\n }\n onStart(fn) {\n if (this.queued) {\n this._queueEvent('start', fn);\n }\n this._player.onStart(fn);\n }\n onDestroy(fn) {\n if (this.queued) {\n this._queueEvent('destroy', fn);\n }\n this._player.onDestroy(fn);\n }\n init() {\n this._player.init();\n }\n hasStarted() {\n return this.queued ? false : this._player.hasStarted();\n }\n play() {\n !this.queued && this._player.play();\n }\n pause() {\n !this.queued && this._player.pause();\n }\n restart() {\n !this.queued && this._player.restart();\n }\n finish() {\n this._player.finish();\n }\n destroy() {\n this.destroyed = true;\n this._player.destroy();\n }\n reset() {\n !this.queued && this._player.reset();\n }\n setPosition(p) {\n if (!this.queued) {\n this._player.setPosition(p);\n }\n }\n getPosition() {\n return this.queued ? 0 : this._player.getPosition();\n }\n /** @internal */\n triggerCallback(phaseName) {\n const p = this._player;\n if (p.triggerCallback) {\n p.triggerCallback(phaseName);\n }\n }\n}\nfunction deleteOrUnsetInMap(map, key, value) {\n let currentValues = map.get(key);\n if (currentValues) {\n if (currentValues.length) {\n const index = currentValues.indexOf(value);\n currentValues.splice(index, 1);\n }\n if (currentValues.length == 0) {\n map.delete(key);\n }\n }\n return currentValues;\n}\nfunction normalizeTriggerValue(value) {\n // we use `!= null` here because it's the most simple\n // way to test against a \"falsy\" value without mixing\n // in empty strings or a zero value. DO NOT OPTIMIZE.\n return value != null ? value : null;\n}\nfunction isElementNode(node) {\n return node && node['nodeType'] === 1;\n}\nfunction isTriggerEventValid(eventName) {\n return eventName == 'start' || eventName == 'done';\n}\nfunction cloakElement(element, value) {\n const oldValue = element.style.display;\n element.style.display = value != null ? value : 'none';\n return oldValue;\n}\nfunction cloakAndComputeStyles(valuesMap, driver, elements, elementPropsMap, defaultStyle) {\n const cloakVals = [];\n elements.forEach(element => cloakVals.push(cloakElement(element)));\n const failedElements = [];\n elementPropsMap.forEach((props, element) => {\n const styles = new Map();\n props.forEach(prop => {\n const value = driver.computeStyle(element, prop, defaultStyle);\n styles.set(prop, value);\n // there is no easy way to detect this because a sub element could be removed\n // by a parent animation element being detached.\n if (!value || value.length == 0) {\n element[REMOVAL_FLAG] = NULL_REMOVED_QUERIED_STATE;\n failedElements.push(element);\n }\n });\n valuesMap.set(element, styles);\n });\n // we use a index variable here since Set.forEach(a, i) does not return\n // an index value for the closure (but instead just the value)\n let i = 0;\n elements.forEach(element => cloakElement(element, cloakVals[i++]));\n return failedElements;\n}\n/*\nSince the Angular renderer code will return a collection of inserted\nnodes in all areas of a DOM tree, it's up to this algorithm to figure\nout which nodes are roots for each animation @trigger.\n\nBy placing each inserted node into a Set and traversing upwards, it\nis possible to find the @trigger elements and well any direct *star\ninsertion nodes, if a @trigger root is found then the enter element\nis placed into the Map[@trigger] spot.\n */\nfunction buildRootMap(roots, nodes) {\n const rootMap = new Map();\n roots.forEach(root => rootMap.set(root, []));\n if (nodes.length == 0) return rootMap;\n const NULL_NODE = 1;\n const nodeSet = new Set(nodes);\n const localRootMap = new Map();\n function getRoot(node) {\n if (!node) return NULL_NODE;\n let root = localRootMap.get(node);\n if (root) return root;\n const parent = node.parentNode;\n if (rootMap.has(parent)) {\n // ngIf inside @trigger\n root = parent;\n } else if (nodeSet.has(parent)) {\n // ngIf inside ngIf\n root = NULL_NODE;\n } else {\n // recurse upwards\n root = getRoot(parent);\n }\n localRootMap.set(node, root);\n return root;\n }\n nodes.forEach(node => {\n const root = getRoot(node);\n if (root !== NULL_NODE) {\n rootMap.get(root).push(node);\n }\n });\n return rootMap;\n}\nfunction addClass(element, className) {\n element.classList?.add(className);\n}\nfunction removeClass(element, className) {\n element.classList?.remove(className);\n}\nfunction removeNodesAfterAnimationDone(engine, element, players) {\n optimizeGroupPlayer(players).onDone(() => engine.processLeaveNode(element));\n}\nfunction flattenGroupPlayers(players) {\n const finalPlayers = [];\n _flattenGroupPlayersRecur(players, finalPlayers);\n return finalPlayers;\n}\nfunction _flattenGroupPlayersRecur(players, finalPlayers) {\n for (let i = 0; i < players.length; i++) {\n const player = players[i];\n if (player instanceof ɵAnimationGroupPlayer) {\n _flattenGroupPlayersRecur(player.players, finalPlayers);\n } else {\n finalPlayers.push(player);\n }\n }\n}\nfunction objEquals(a, b) {\n const k1 = Object.keys(a);\n const k2 = Object.keys(b);\n if (k1.length != k2.length) return false;\n for (let i = 0; i < k1.length; i++) {\n const prop = k1[i];\n if (!b.hasOwnProperty(prop) || a[prop] !== b[prop]) return false;\n }\n return true;\n}\nfunction replacePostStylesAsPre(element, allPreStyleElements, allPostStyleElements) {\n const postEntry = allPostStyleElements.get(element);\n if (!postEntry) return false;\n let preEntry = allPreStyleElements.get(element);\n if (preEntry) {\n postEntry.forEach(data => preEntry.add(data));\n } else {\n allPreStyleElements.set(element, postEntry);\n }\n allPostStyleElements.delete(element);\n return true;\n}\nclass AnimationEngine {\n constructor(doc, _driver, _normalizer, scheduler) {\n this._driver = _driver;\n this._normalizer = _normalizer;\n this._triggerCache = {};\n // this method is designed to be overridden by the code that uses this engine\n this.onRemovalComplete = (element, context) => {};\n this._transitionEngine = new TransitionAnimationEngine(doc.body, _driver, _normalizer, scheduler);\n this._timelineEngine = new TimelineAnimationEngine(doc.body, _driver, _normalizer);\n this._transitionEngine.onRemovalComplete = (element, context) => this.onRemovalComplete(element, context);\n }\n registerTrigger(componentId, namespaceId, hostElement, name, metadata) {\n const cacheKey = componentId + '-' + name;\n let trigger = this._triggerCache[cacheKey];\n if (!trigger) {\n const errors = [];\n const warnings = [];\n const ast = buildAnimationAst(this._driver, metadata, errors, warnings);\n if (errors.length) {\n throw triggerBuildFailed(name, errors);\n }\n if (warnings.length) {\n warnTriggerBuild(name, warnings);\n }\n trigger = buildTrigger(name, ast, this._normalizer);\n this._triggerCache[cacheKey] = trigger;\n }\n this._transitionEngine.registerTrigger(namespaceId, name, trigger);\n }\n register(namespaceId, hostElement) {\n this._transitionEngine.register(namespaceId, hostElement);\n }\n destroy(namespaceId, context) {\n this._transitionEngine.destroy(namespaceId, context);\n }\n onInsert(namespaceId, element, parent, insertBefore) {\n this._transitionEngine.insertNode(namespaceId, element, parent, insertBefore);\n }\n onRemove(namespaceId, element, context) {\n this._transitionEngine.removeNode(namespaceId, element, context);\n }\n disableAnimations(element, disable) {\n this._transitionEngine.markElementAsDisabled(element, disable);\n }\n process(namespaceId, element, property, value) {\n if (property.charAt(0) == '@') {\n const [id, action] = parseTimelineCommand(property);\n const args = value;\n this._timelineEngine.command(id, element, action, args);\n } else {\n this._transitionEngine.trigger(namespaceId, element, property, value);\n }\n }\n listen(namespaceId, element, eventName, eventPhase, callback) {\n // @@listen\n if (eventName.charAt(0) == '@') {\n const [id, action] = parseTimelineCommand(eventName);\n return this._timelineEngine.listen(id, element, action, callback);\n }\n return this._transitionEngine.listen(namespaceId, element, eventName, eventPhase, callback);\n }\n flush(microtaskId = -1) {\n this._transitionEngine.flush(microtaskId);\n }\n get players() {\n return [...this._transitionEngine.players, ...this._timelineEngine.players];\n }\n whenRenderingDone() {\n return this._transitionEngine.whenRenderingDone();\n }\n afterFlushAnimationsDone(cb) {\n this._transitionEngine.afterFlushAnimationsDone(cb);\n }\n}\n\n/**\n * Returns an instance of `SpecialCasedStyles` if and when any special (non animateable) styles are\n * detected.\n *\n * In CSS there exist properties that cannot be animated within a keyframe animation\n * (whether it be via CSS keyframes or web-animations) and the animation implementation\n * will ignore them. This function is designed to detect those special cased styles and\n * return a container that will be executed at the start and end of the animation.\n *\n * @returns an instance of `SpecialCasedStyles` if any special styles are detected otherwise `null`\n */\nfunction packageNonAnimatableStyles(element, styles) {\n let startStyles = null;\n let endStyles = null;\n if (Array.isArray(styles) && styles.length) {\n startStyles = filterNonAnimatableStyles(styles[0]);\n if (styles.length > 1) {\n endStyles = filterNonAnimatableStyles(styles[styles.length - 1]);\n }\n } else if (styles instanceof Map) {\n startStyles = filterNonAnimatableStyles(styles);\n }\n return startStyles || endStyles ? new SpecialCasedStyles(element, startStyles, endStyles) : null;\n}\n/**\n * Designed to be executed during a keyframe-based animation to apply any special-cased styles.\n *\n * When started (when the `start()` method is run) then the provided `startStyles`\n * will be applied. When finished (when the `finish()` method is called) the\n * `endStyles` will be applied as well any any starting styles. Finally when\n * `destroy()` is called then all styles will be removed.\n */\nclass SpecialCasedStyles {\n static {\n this.initialStylesByElement = /*#__PURE__*/new WeakMap();\n }\n constructor(_element, _startStyles, _endStyles) {\n this._element = _element;\n this._startStyles = _startStyles;\n this._endStyles = _endStyles;\n this._state = 0 /* SpecialCasedStylesState.Pending */;\n let initialStyles = SpecialCasedStyles.initialStylesByElement.get(_element);\n if (!initialStyles) {\n SpecialCasedStyles.initialStylesByElement.set(_element, initialStyles = new Map());\n }\n this._initialStyles = initialStyles;\n }\n start() {\n if (this._state < 1 /* SpecialCasedStylesState.Started */) {\n if (this._startStyles) {\n setStyles(this._element, this._startStyles, this._initialStyles);\n }\n this._state = 1 /* SpecialCasedStylesState.Started */;\n }\n }\n finish() {\n this.start();\n if (this._state < 2 /* SpecialCasedStylesState.Finished */) {\n setStyles(this._element, this._initialStyles);\n if (this._endStyles) {\n setStyles(this._element, this._endStyles);\n this._endStyles = null;\n }\n this._state = 1 /* SpecialCasedStylesState.Started */;\n }\n }\n destroy() {\n this.finish();\n if (this._state < 3 /* SpecialCasedStylesState.Destroyed */) {\n SpecialCasedStyles.initialStylesByElement.delete(this._element);\n if (this._startStyles) {\n eraseStyles(this._element, this._startStyles);\n this._endStyles = null;\n }\n if (this._endStyles) {\n eraseStyles(this._element, this._endStyles);\n this._endStyles = null;\n }\n setStyles(this._element, this._initialStyles);\n this._state = 3 /* SpecialCasedStylesState.Destroyed */;\n }\n }\n}\nfunction filterNonAnimatableStyles(styles) {\n let result = null;\n styles.forEach((val, prop) => {\n if (isNonAnimatableStyle(prop)) {\n result = result || new Map();\n result.set(prop, val);\n }\n });\n return result;\n}\nfunction isNonAnimatableStyle(prop) {\n return prop === 'display' || prop === 'position';\n}\nclass WebAnimationsPlayer {\n constructor(element, keyframes, options, _specialStyles) {\n this.element = element;\n this.keyframes = keyframes;\n this.options = options;\n this._specialStyles = _specialStyles;\n this._onDoneFns = [];\n this._onStartFns = [];\n this._onDestroyFns = [];\n this._initialized = false;\n this._finished = false;\n this._started = false;\n this._destroyed = false;\n // the following original fns are persistent copies of the _onStartFns and _onDoneFns\n // and are used to reset the fns to their original values upon reset()\n // (since the _onStartFns and _onDoneFns get deleted after they are called)\n this._originalOnDoneFns = [];\n this._originalOnStartFns = [];\n this.time = 0;\n this.parentPlayer = null;\n this.currentSnapshot = new Map();\n this._duration = options['duration'];\n this._delay = options['delay'] || 0;\n this.time = this._duration + this._delay;\n }\n _onFinish() {\n if (!this._finished) {\n this._finished = true;\n this._onDoneFns.forEach(fn => fn());\n this._onDoneFns = [];\n }\n }\n init() {\n this._buildPlayer();\n this._preparePlayerBeforeStart();\n }\n _buildPlayer() {\n if (this._initialized) return;\n this._initialized = true;\n const keyframes = this.keyframes;\n // @ts-expect-error overwriting a readonly property\n this.domPlayer = this._triggerWebAnimation(this.element, keyframes, this.options);\n this._finalKeyframe = keyframes.length ? keyframes[keyframes.length - 1] : new Map();\n const onFinish = () => this._onFinish();\n this.domPlayer.addEventListener('finish', onFinish);\n this.onDestroy(() => {\n // We must remove the `finish` event listener once an animation has completed all its\n // iterations. This action is necessary to prevent a memory leak since the listener captures\n // `this`, creating a closure that prevents `this` from being garbage collected.\n this.domPlayer.removeEventListener('finish', onFinish);\n });\n }\n _preparePlayerBeforeStart() {\n // this is required so that the player doesn't start to animate right away\n if (this._delay) {\n this._resetDomPlayerState();\n } else {\n this.domPlayer.pause();\n }\n }\n _convertKeyframesToObject(keyframes) {\n const kfs = [];\n keyframes.forEach(frame => {\n kfs.push(Object.fromEntries(frame));\n });\n return kfs;\n }\n /** @internal */\n _triggerWebAnimation(element, keyframes, options) {\n return element.animate(this._convertKeyframesToObject(keyframes), options);\n }\n onStart(fn) {\n this._originalOnStartFns.push(fn);\n this._onStartFns.push(fn);\n }\n onDone(fn) {\n this._originalOnDoneFns.push(fn);\n this._onDoneFns.push(fn);\n }\n onDestroy(fn) {\n this._onDestroyFns.push(fn);\n }\n play() {\n this._buildPlayer();\n if (!this.hasStarted()) {\n this._onStartFns.forEach(fn => fn());\n this._onStartFns = [];\n this._started = true;\n if (this._specialStyles) {\n this._specialStyles.start();\n }\n }\n this.domPlayer.play();\n }\n pause() {\n this.init();\n this.domPlayer.pause();\n }\n finish() {\n this.init();\n if (this._specialStyles) {\n this._specialStyles.finish();\n }\n this._onFinish();\n this.domPlayer.finish();\n }\n reset() {\n this._resetDomPlayerState();\n this._destroyed = false;\n this._finished = false;\n this._started = false;\n this._onStartFns = this._originalOnStartFns;\n this._onDoneFns = this._originalOnDoneFns;\n }\n _resetDomPlayerState() {\n if (this.domPlayer) {\n this.domPlayer.cancel();\n }\n }\n restart() {\n this.reset();\n this.play();\n }\n hasStarted() {\n return this._started;\n }\n destroy() {\n if (!this._destroyed) {\n this._destroyed = true;\n this._resetDomPlayerState();\n this._onFinish();\n if (this._specialStyles) {\n this._specialStyles.destroy();\n }\n this._onDestroyFns.forEach(fn => fn());\n this._onDestroyFns = [];\n }\n }\n setPosition(p) {\n if (this.domPlayer === undefined) {\n this.init();\n }\n this.domPlayer.currentTime = p * this.time;\n }\n getPosition() {\n // tsc is complaining with TS2362 without the conversion to number\n return +(this.domPlayer.currentTime ?? 0) / this.time;\n }\n get totalTime() {\n return this._delay + this._duration;\n }\n beforeDestroy() {\n const styles = new Map();\n if (this.hasStarted()) {\n // note: this code is invoked only when the `play` function was called prior to this\n // (thus `hasStarted` returns true), this implies that the code that initializes\n // `_finalKeyframe` has also been executed and the non-null assertion can be safely used here\n const finalKeyframe = this._finalKeyframe;\n finalKeyframe.forEach((val, prop) => {\n if (prop !== 'offset') {\n styles.set(prop, this._finished ? val : computeStyle(this.element, prop));\n }\n });\n }\n this.currentSnapshot = styles;\n }\n /** @internal */\n triggerCallback(phaseName) {\n const methods = phaseName === 'start' ? this._onStartFns : this._onDoneFns;\n methods.forEach(fn => fn());\n methods.length = 0;\n }\n}\nclass WebAnimationsDriver {\n validateStyleProperty(prop) {\n // Perform actual validation in dev mode only, in prod mode this check is a noop.\n if (typeof ngDevMode === 'undefined' || ngDevMode) {\n return validateStyleProperty(prop);\n }\n return true;\n }\n validateAnimatableStyleProperty(prop) {\n // Perform actual validation in dev mode only, in prod mode this check is a noop.\n if (typeof ngDevMode === 'undefined' || ngDevMode) {\n const cssProp = camelCaseToDashCase(prop);\n return validateWebAnimatableStyleProperty(cssProp);\n }\n return true;\n }\n matchesElement(_element, _selector) {\n // This method is deprecated and no longer in use so we return false.\n return false;\n }\n containsElement(elm1, elm2) {\n return containsElement(elm1, elm2);\n }\n getParentElement(element) {\n return getParentElement(element);\n }\n query(element, selector, multi) {\n return invokeQuery(element, selector, multi);\n }\n computeStyle(element, prop, defaultValue) {\n return computeStyle(element, prop);\n }\n animate(element, keyframes, duration, delay, easing, previousPlayers = []) {\n const fill = delay == 0 ? 'both' : 'forwards';\n const playerOptions = {\n duration,\n delay,\n fill\n };\n // we check for this to avoid having a null|undefined value be present\n // for the easing (which results in an error for certain browsers #9752)\n if (easing) {\n playerOptions['easing'] = easing;\n }\n const previousStyles = new Map();\n const previousWebAnimationPlayers = previousPlayers.filter(player => player instanceof WebAnimationsPlayer);\n if (allowPreviousPlayerStylesMerge(duration, delay)) {\n previousWebAnimationPlayers.forEach(player => {\n player.currentSnapshot.forEach((val, prop) => previousStyles.set(prop, val));\n });\n }\n let _keyframes = normalizeKeyframes(keyframes).map(styles => new Map(styles));\n _keyframes = balancePreviousStylesIntoKeyframes(element, _keyframes, previousStyles);\n const specialStyles = packageNonAnimatableStyles(element, _keyframes);\n return new WebAnimationsPlayer(element, _keyframes, playerOptions, specialStyles);\n }\n}\nfunction createEngine(type, doc, scheduler) {\n // TODO: find a way to make this tree shakable.\n if (type === 'noop') {\n return new AnimationEngine(doc, new NoopAnimationDriver(), new NoopAnimationStyleNormalizer(), scheduler);\n }\n return new AnimationEngine(doc, new WebAnimationsDriver(), new WebAnimationsStyleNormalizer(), scheduler);\n}\nclass Animation {\n constructor(_driver, input) {\n this._driver = _driver;\n const errors = [];\n const warnings = [];\n const ast = buildAnimationAst(_driver, input, errors, warnings);\n if (errors.length) {\n throw validationFailed(errors);\n }\n if (warnings.length) {\n warnValidation(warnings);\n }\n this._animationAst = ast;\n }\n buildTimelines(element, startingStyles, destinationStyles, options, subInstructions) {\n const start = Array.isArray(startingStyles) ? normalizeStyles(startingStyles) : startingStyles;\n const dest = Array.isArray(destinationStyles) ? normalizeStyles(destinationStyles) : destinationStyles;\n const errors = [];\n subInstructions = subInstructions || new ElementInstructionMap();\n const result = buildAnimationTimelines(this._driver, element, this._animationAst, ENTER_CLASSNAME, LEAVE_CLASSNAME, start, dest, options, subInstructions, errors);\n if (errors.length) {\n throw buildingFailed(errors);\n }\n return result;\n }\n}\nconst ANIMATION_PREFIX = '@';\nconst DISABLE_ANIMATIONS_FLAG = '@.disabled';\nclass BaseAnimationRenderer {\n constructor(namespaceId, delegate, engine, _onDestroy) {\n this.namespaceId = namespaceId;\n this.delegate = delegate;\n this.engine = engine;\n this._onDestroy = _onDestroy;\n // We need to explicitly type this property because of an api-extractor bug\n // See https://github.com/microsoft/rushstack/issues/4390\n this.ɵtype = 0 /* AnimationRendererType.Regular */;\n }\n get data() {\n return this.delegate.data;\n }\n destroyNode(node) {\n this.delegate.destroyNode?.(node);\n }\n destroy() {\n this.engine.destroy(this.namespaceId, this.delegate);\n this.engine.afterFlushAnimationsDone(() => {\n // Call the renderer destroy method after the animations has finished as otherwise\n // styles will be removed too early which will cause an unstyled animation.\n queueMicrotask(() => {\n this.delegate.destroy();\n });\n });\n this._onDestroy?.();\n }\n createElement(name, namespace) {\n return this.delegate.createElement(name, namespace);\n }\n createComment(value) {\n return this.delegate.createComment(value);\n }\n createText(value) {\n return this.delegate.createText(value);\n }\n appendChild(parent, newChild) {\n this.delegate.appendChild(parent, newChild);\n this.engine.onInsert(this.namespaceId, newChild, parent, false);\n }\n insertBefore(parent, newChild, refChild, isMove = true) {\n this.delegate.insertBefore(parent, newChild, refChild);\n // If `isMove` true than we should animate this insert.\n this.engine.onInsert(this.namespaceId, newChild, parent, isMove);\n }\n removeChild(parent, oldChild, isHostElement) {\n this.engine.onRemove(this.namespaceId, oldChild, this.delegate);\n }\n selectRootElement(selectorOrNode, preserveContent) {\n return this.delegate.selectRootElement(selectorOrNode, preserveContent);\n }\n parentNode(node) {\n return this.delegate.parentNode(node);\n }\n nextSibling(node) {\n return this.delegate.nextSibling(node);\n }\n setAttribute(el, name, value, namespace) {\n this.delegate.setAttribute(el, name, value, namespace);\n }\n removeAttribute(el, name, namespace) {\n this.delegate.removeAttribute(el, name, namespace);\n }\n addClass(el, name) {\n this.delegate.addClass(el, name);\n }\n removeClass(el, name) {\n this.delegate.removeClass(el, name);\n }\n setStyle(el, style, value, flags) {\n this.delegate.setStyle(el, style, value, flags);\n }\n removeStyle(el, style, flags) {\n this.delegate.removeStyle(el, style, flags);\n }\n setProperty(el, name, value) {\n if (name.charAt(0) == ANIMATION_PREFIX && name == DISABLE_ANIMATIONS_FLAG) {\n this.disableAnimations(el, !!value);\n } else {\n this.delegate.setProperty(el, name, value);\n }\n }\n setValue(node, value) {\n this.delegate.setValue(node, value);\n }\n listen(target, eventName, callback) {\n return this.delegate.listen(target, eventName, callback);\n }\n disableAnimations(element, value) {\n this.engine.disableAnimations(element, value);\n }\n}\nclass AnimationRenderer extends BaseAnimationRenderer {\n constructor(factory, namespaceId, delegate, engine, onDestroy) {\n super(namespaceId, delegate, engine, onDestroy);\n this.factory = factory;\n this.namespaceId = namespaceId;\n }\n setProperty(el, name, value) {\n if (name.charAt(0) == ANIMATION_PREFIX) {\n if (name.charAt(1) == '.' && name == DISABLE_ANIMATIONS_FLAG) {\n value = value === undefined ? true : !!value;\n this.disableAnimations(el, value);\n } else {\n this.engine.process(this.namespaceId, el, name.slice(1), value);\n }\n } else {\n this.delegate.setProperty(el, name, value);\n }\n }\n listen(target, eventName, callback) {\n if (eventName.charAt(0) == ANIMATION_PREFIX) {\n const element = resolveElementFromTarget(target);\n let name = eventName.slice(1);\n let phase = '';\n // @listener.phase is for trigger animation callbacks\n // @@listener is for animation builder callbacks\n if (name.charAt(0) != ANIMATION_PREFIX) {\n [name, phase] = parseTriggerCallbackName(name);\n }\n return this.engine.listen(this.namespaceId, element, name, phase, event => {\n const countId = event['_data'] || -1;\n this.factory.scheduleListenerCallback(countId, callback, event);\n });\n }\n return this.delegate.listen(target, eventName, callback);\n }\n}\nfunction resolveElementFromTarget(target) {\n switch (target) {\n case 'body':\n return document.body;\n case 'document':\n return document;\n case 'window':\n return window;\n default:\n return target;\n }\n}\nfunction parseTriggerCallbackName(triggerName) {\n const dotIndex = triggerName.indexOf('.');\n const trigger = triggerName.substring(0, dotIndex);\n const phase = triggerName.slice(dotIndex + 1);\n return [trigger, phase];\n}\nclass AnimationRendererFactory {\n constructor(delegate, engine, _zone) {\n this.delegate = delegate;\n this.engine = engine;\n this._zone = _zone;\n this._currentId = 0;\n this._microtaskId = 1;\n this._animationCallbacksBuffer = [];\n this._rendererCache = new Map();\n this._cdRecurDepth = 0;\n engine.onRemovalComplete = (element, delegate) => {\n // Note: if a component element has a leave animation, and a host leave animation,\n // the view engine will call `removeChild` for the parent\n // component renderer as well as for the child component renderer.\n // Therefore, we need to check if we already removed the element.\n const parentNode = delegate?.parentNode(element);\n if (parentNode) {\n delegate.removeChild(parentNode, element);\n }\n };\n }\n createRenderer(hostElement, type) {\n const EMPTY_NAMESPACE_ID = '';\n // cache the delegates to find out which cached delegate can\n // be used by which cached renderer\n const delegate = this.delegate.createRenderer(hostElement, type);\n if (!hostElement || !type?.data?.['animation']) {\n const cache = this._rendererCache;\n let renderer = cache.get(delegate);\n if (!renderer) {\n // Ensure that the renderer is removed from the cache on destroy\n // since it may contain references to detached DOM nodes.\n const onRendererDestroy = () => cache.delete(delegate);\n renderer = new BaseAnimationRenderer(EMPTY_NAMESPACE_ID, delegate, this.engine, onRendererDestroy);\n // only cache this result when the base renderer is used\n cache.set(delegate, renderer);\n }\n return renderer;\n }\n const componentId = type.id;\n const namespaceId = type.id + '-' + this._currentId;\n this._currentId++;\n this.engine.register(namespaceId, hostElement);\n const registerTrigger = trigger => {\n if (Array.isArray(trigger)) {\n trigger.forEach(registerTrigger);\n } else {\n this.engine.registerTrigger(componentId, namespaceId, hostElement, trigger.name, trigger);\n }\n };\n const animationTriggers = type.data['animation'];\n animationTriggers.forEach(registerTrigger);\n return new AnimationRenderer(this, namespaceId, delegate, this.engine);\n }\n begin() {\n this._cdRecurDepth++;\n if (this.delegate.begin) {\n this.delegate.begin();\n }\n }\n _scheduleCountTask() {\n queueMicrotask(() => {\n this._microtaskId++;\n });\n }\n /** @internal */\n scheduleListenerCallback(count, fn, data) {\n if (count >= 0 && count < this._microtaskId) {\n this._zone.run(() => fn(data));\n return;\n }\n const animationCallbacksBuffer = this._animationCallbacksBuffer;\n if (animationCallbacksBuffer.length == 0) {\n queueMicrotask(() => {\n this._zone.run(() => {\n animationCallbacksBuffer.forEach(tuple => {\n const [fn, data] = tuple;\n fn(data);\n });\n this._animationCallbacksBuffer = [];\n });\n });\n }\n animationCallbacksBuffer.push([fn, data]);\n }\n end() {\n this._cdRecurDepth--;\n // this is to prevent animations from running twice when an inner\n // component does CD when a parent component instead has inserted it\n if (this._cdRecurDepth == 0) {\n this._zone.runOutsideAngular(() => {\n this._scheduleCountTask();\n this.engine.flush(this._microtaskId);\n });\n }\n if (this.delegate.end) {\n this.delegate.end();\n }\n }\n whenRenderingDone() {\n return this.engine.whenRenderingDone();\n }\n}\n\n/**\n * @module\n * @description\n * Entry point for all animation APIs of the animation browser package.\n */\n\n/**\n * @module\n * @description\n * Entry point for all public APIs of this package.\n */\n\n// This file is not used to build this module. It is only used during editing\n\n/**\n * Generated bundle index. Do not edit.\n */\n\nexport { AnimationDriver, NoopAnimationDriver, Animation as ɵAnimation, AnimationEngine as ɵAnimationEngine, AnimationRenderer as ɵAnimationRenderer, AnimationRendererFactory as ɵAnimationRendererFactory, AnimationStyleNormalizer as ɵAnimationStyleNormalizer, BaseAnimationRenderer as ɵBaseAnimationRenderer, NoopAnimationStyleNormalizer as ɵNoopAnimationStyleNormalizer, WebAnimationsDriver as ɵWebAnimationsDriver, WebAnimationsPlayer as ɵWebAnimationsPlayer, WebAnimationsStyleNormalizer as ɵWebAnimationsStyleNormalizer, allowPreviousPlayerStylesMerge as ɵallowPreviousPlayerStylesMerge, camelCaseToDashCase as ɵcamelCaseToDashCase, containsElement as ɵcontainsElement, createEngine as ɵcreateEngine, getParentElement as ɵgetParentElement, invokeQuery as ɵinvokeQuery, normalizeKeyframes as ɵnormalizeKeyframes, validateStyleProperty as ɵvalidateStyleProperty, validateWebAnimatableStyleProperty as ɵvalidateWebAnimatableStyleProperty };\n","/**\n * @license Angular v17.3.0\n * (c) 2010-2022 Google LLC. https://angular.io/\n * License: MIT\n */\n\nimport * as i0 from '@angular/core';\nimport { inject, ɵChangeDetectionScheduler, Injectable, Inject, RendererFactory2, NgZone, ANIMATION_MODULE_TYPE, NgModule, ɵperformanceMarkFeature } from '@angular/core';\nexport { ANIMATION_MODULE_TYPE } from '@angular/core';\nimport { ɵDomRendererFactory2, BrowserModule } from '@angular/platform-browser';\nimport * as i1 from '@angular/animations/browser';\nimport { ɵAnimationEngine, ɵWebAnimationsStyleNormalizer, ɵAnimationRendererFactory, ɵAnimationStyleNormalizer, AnimationDriver, ɵWebAnimationsDriver, NoopAnimationDriver } from '@angular/animations/browser';\nimport { DOCUMENT } from '@angular/common';\nlet InjectableAnimationEngine = /*#__PURE__*/(() => {\n class InjectableAnimationEngine extends ɵAnimationEngine {\n // The `ApplicationRef` is injected here explicitly to force the dependency ordering.\n // Since the `ApplicationRef` should be created earlier before the `AnimationEngine`, they\n // both have `ngOnDestroy` hooks and `flush()` must be called after all views are destroyed.\n constructor(doc, driver, normalizer) {\n super(doc, driver, normalizer, inject(ɵChangeDetectionScheduler, {\n optional: true\n }));\n }\n ngOnDestroy() {\n this.flush();\n }\n static {\n this.ɵfac = function InjectableAnimationEngine_Factory(t) {\n return new (t || InjectableAnimationEngine)(i0.ɵɵinject(DOCUMENT), i0.ɵɵinject(i1.AnimationDriver), i0.ɵɵinject(i1.ɵAnimationStyleNormalizer));\n };\n }\n static {\n this.ɵprov = /* @__PURE__ */i0.ɵɵdefineInjectable({\n token: InjectableAnimationEngine,\n factory: InjectableAnimationEngine.ɵfac\n });\n }\n }\n return InjectableAnimationEngine;\n})();\n/*#__PURE__*/(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && void 0;\n})();\nfunction instantiateDefaultStyleNormalizer() {\n return new ɵWebAnimationsStyleNormalizer();\n}\nfunction instantiateRendererFactory(renderer, engine, zone) {\n return new ɵAnimationRendererFactory(renderer, engine, zone);\n}\nconst SHARED_ANIMATION_PROVIDERS = [{\n provide: ɵAnimationStyleNormalizer,\n useFactory: instantiateDefaultStyleNormalizer\n}, {\n provide: ɵAnimationEngine,\n useClass: InjectableAnimationEngine\n}, {\n provide: RendererFactory2,\n useFactory: instantiateRendererFactory,\n deps: [ɵDomRendererFactory2, ɵAnimationEngine, NgZone]\n}];\n/**\n * Separate providers from the actual module so that we can do a local modification in Google3 to\n * include them in the BrowserModule.\n */\nconst BROWSER_ANIMATIONS_PROVIDERS = [{\n provide: AnimationDriver,\n useFactory: () => new ɵWebAnimationsDriver()\n}, {\n provide: ANIMATION_MODULE_TYPE,\n useValue: 'BrowserAnimations'\n}, ...SHARED_ANIMATION_PROVIDERS];\n/**\n * Separate providers from the actual module so that we can do a local modification in Google3 to\n * include them in the BrowserTestingModule.\n */\nconst BROWSER_NOOP_ANIMATIONS_PROVIDERS = [{\n provide: AnimationDriver,\n useClass: NoopAnimationDriver\n}, {\n provide: ANIMATION_MODULE_TYPE,\n useValue: 'NoopAnimations'\n}, ...SHARED_ANIMATION_PROVIDERS];\n\n/**\n * Exports `BrowserModule` with additional [dependency-injection providers](guide/glossary#provider)\n * for use with animations. See [Animations](guide/animations).\n * @publicApi\n */\nlet BrowserAnimationsModule = /*#__PURE__*/(() => {\n class BrowserAnimationsModule {\n /**\n * Configures the module based on the specified object.\n *\n * @param config Object used to configure the behavior of the `BrowserAnimationsModule`.\n * @see {@link BrowserAnimationsModuleConfig}\n *\n * @usageNotes\n * When registering the `BrowserAnimationsModule`, you can use the `withConfig`\n * function as follows:\n * ```\n * @NgModule({\n * imports: [BrowserAnimationsModule.withConfig(config)]\n * })\n * class MyNgModule {}\n * ```\n */\n static withConfig(config) {\n return {\n ngModule: BrowserAnimationsModule,\n providers: config.disableAnimations ? BROWSER_NOOP_ANIMATIONS_PROVIDERS : BROWSER_ANIMATIONS_PROVIDERS\n };\n }\n static {\n this.ɵfac = function BrowserAnimationsModule_Factory(t) {\n return new (t || BrowserAnimationsModule)();\n };\n }\n static {\n this.ɵmod = /* @__PURE__ */i0.ɵɵdefineNgModule({\n type: BrowserAnimationsModule\n });\n }\n static {\n this.ɵinj = /* @__PURE__ */i0.ɵɵdefineInjector({\n providers: BROWSER_ANIMATIONS_PROVIDERS,\n imports: [BrowserModule]\n });\n }\n }\n return BrowserAnimationsModule;\n})();\n/*#__PURE__*/(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && void 0;\n})();\n/**\n * Returns the set of [dependency-injection providers](guide/glossary#provider)\n * to enable animations in an application. See [animations guide](guide/animations)\n * to learn more about animations in Angular.\n *\n * @usageNotes\n *\n * The function is useful when you want to enable animations in an application\n * bootstrapped using the `bootstrapApplication` function. In this scenario there\n * is no need to import the `BrowserAnimationsModule` NgModule at all, just add\n * providers returned by this function to the `providers` list as show below.\n *\n * ```typescript\n * bootstrapApplication(RootComponent, {\n * providers: [\n * provideAnimations()\n * ]\n * });\n * ```\n *\n * @publicApi\n */\nfunction provideAnimations() {\n ɵperformanceMarkFeature('NgEagerAnimations');\n // Return a copy to prevent changes to the original array in case any in-place\n // alterations are performed to the `provideAnimations` call results in app code.\n return [...BROWSER_ANIMATIONS_PROVIDERS];\n}\n/**\n * A null player that must be imported to allow disabling of animations.\n * @publicApi\n */\nlet NoopAnimationsModule = /*#__PURE__*/(() => {\n class NoopAnimationsModule {\n static {\n this.ɵfac = function NoopAnimationsModule_Factory(t) {\n return new (t || NoopAnimationsModule)();\n };\n }\n static {\n this.ɵmod = /* @__PURE__ */i0.ɵɵdefineNgModule({\n type: NoopAnimationsModule\n });\n }\n static {\n this.ɵinj = /* @__PURE__ */i0.ɵɵdefineInjector({\n providers: BROWSER_NOOP_ANIMATIONS_PROVIDERS,\n imports: [BrowserModule]\n });\n }\n }\n return NoopAnimationsModule;\n})();\n/*#__PURE__*/(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && void 0;\n})();\n/**\n * Returns the set of [dependency-injection providers](guide/glossary#provider)\n * to disable animations in an application. See [animations guide](guide/animations)\n * to learn more about animations in Angular.\n *\n * @usageNotes\n *\n * The function is useful when you want to bootstrap an application using\n * the `bootstrapApplication` function, but you need to disable animations\n * (for example, when running tests).\n *\n * ```typescript\n * bootstrapApplication(RootComponent, {\n * providers: [\n * provideNoopAnimations()\n * ]\n * });\n * ```\n *\n * @publicApi\n */\nfunction provideNoopAnimations() {\n // Return a copy to prevent changes to the original array in case any in-place\n // alterations are performed to the `provideNoopAnimations` call results in app code.\n return [...BROWSER_NOOP_ANIMATIONS_PROVIDERS];\n}\n\n/**\n * @module\n * @description\n * Entry point for all animation APIs of the animation browser package.\n */\n\n/**\n * @module\n * @description\n * Entry point for all public APIs of this package.\n */\n\n// This file is not used to build this module. It is only used during editing\n\n/**\n * Generated bundle index. Do not edit.\n */\n\nexport { BrowserAnimationsModule, NoopAnimationsModule, provideAnimations, provideNoopAnimations, InjectableAnimationEngine as ɵInjectableAnimationEngine };\n","import { animate, state, style, transition, trigger } from '@angular/animations';\nimport { CommonModule } from '@angular/common';\nimport { ChangeDetectorRef, Component, DestroyRef, Inject, ViewContainerRef, ViewEncapsulation } from '@angular/core';\nimport { takeUntilDestroyed } from '@angular/core/rxjs-interop';\nimport { ReactiveFormsModule, UntypedFormControl } from '@angular/forms';\nimport { MatAutocompleteModule } from '@angular/material/autocomplete';\nimport { MatInputModule } from '@angular/material/input';\nimport { provideAnimations } from '@angular/platform-browser/animations';\nimport { TranslateModule } from '@ngx-translate/core';\nimport { GalaxyFormFieldModule } from '@vendasta/galaxy/form-field';\nimport {\n BehaviorSubject,\n Observable,\n combineLatest,\n debounceTime,\n distinctUntilChanged,\n of,\n skipWhile,\n startWith,\n switchMap,\n tap,\n} from 'rxjs';\nimport {\n ObjectType,\n RenderableFieldInterface,\n FieldOptionsInjectionToken,\n FieldOptionsDependencies,\n} from '../../../tokens-and-interfaces';\nimport { SEARCH_DEBOUNCE_MS } from '../../../constants';\nimport { FieldValidation } from '../field-validation';\nimport { InlineEditService } from '../inline-edit.service';\nimport { CrmFieldWarningDirective } from './model-driven-form-error/field-warning.directive';\nimport { FieldWarningService } from './model-driven-form-error/field-warning.service';\nimport { CrmModelDrivenFormErrorComponent } from './model-driven-form-error/model-driven-form-error.component';\nimport { stopChromeAutofill } from './stop-chrome-autofill';\nimport { UpdaterService } from './updater.service';\nimport { FieldValueInterface } from '../../../tokens-and-interfaces';\nimport { CrmFieldService, StandardExternalIds } from '../../../shared-services/crm-services/field.service';\n\nexport class TextFieldHandler implements RenderableFieldInterface {\n formControl: UntypedFormControl;\n\n constructor(\n public objectType: ObjectType,\n public fieldId: string,\n public name: string,\n public label: string,\n public value: string,\n public description: string,\n public readOnly = false,\n public validation: FieldValidation = new FieldValidation(),\n ) {\n this.formControl = new UntypedFormControl(this.value);\n }\n\n setValidation(validation: FieldValidation): void {\n this.validation = validation;\n this.formControl.setValidators(validation.getValidators());\n this.formControl.setAsyncValidators(validation.getAsyncValidators());\n }\n\n hasModification(): boolean {\n return this.formControl?.dirty;\n }\n\n fieldValue(): FieldValueInterface {\n return {\n fieldId: this.fieldId,\n stringValue: this.formControl.value,\n };\n }\n\n render(viewContainerRef: ViewContainerRef): void {\n viewContainerRef.clear();\n const component = viewContainerRef.createComponent(TextRendererComponent);\n component.instance.objectType = this.objectType;\n component.instance.fieldId = this.fieldId;\n component.instance.control = this.formControl;\n component.instance.label = this.label;\n component.instance.validation = this.validation;\n component.instance.readOnly = this.readOnly;\n }\n}\n\nconst EXCLUDED_FROM_AUTOCOMPLETE = [StandardExternalIds.FirstName, StandardExternalIds.LastName];\n\n@Component({\n template: `\n
\n
\n {{ label | translate }}\n
\n
\n \n \n {{ control.value }}\n \n
\n
\n \n \n {{ label | translate }}\n \n \n \n {{ option }}\n
\n \n \n {{ 'MODEL_DRIVEN_FORM.STRING_LIMIT_HINT' | translate : { characters: control.value?.length || 0 } }}\n \n \n \n \n `,\n imports: [\n CommonModule,\n MatInputModule,\n ReactiveFormsModule,\n TranslateModule,\n GalaxyFormFieldModule,\n CrmModelDrivenFormErrorComponent,\n CrmFieldWarningDirective,\n MatAutocompleteModule,\n ],\n providers: [FieldWarningService, provideAnimations()],\n styleUrls: ['./renderers.scss'],\n standalone: true,\n encapsulation: ViewEncapsulation.None,\n animations: [\n trigger('autoFill', [\n state(\n 'highlight',\n style({\n backgroundColor: '#e3f2fd',\n }),\n ),\n state(\n 'default',\n style({\n backgroundColor: '#ffffff',\n }),\n ),\n transition('default => highlight', [animate('1s')]),\n transition('highlight => default', [animate('1s')]),\n ]),\n ],\n})\nexport class TextRendererComponent {\n fieldId!: string;\n objectType!: ObjectType;\n label!: string;\n readOnly!: boolean;\n validation!: FieldValidation;\n\n filteredOptions$: Observable = of([]);\n initialized$ = new BehaviorSubject(false);\n #control!: UntypedFormControl;\n set control(formControl: UntypedFormControl) {\n this.#control = formControl;\n const controlChanges$ = this.#control.valueChanges.pipe(\n startWith(this.#control.value),\n debounceTime(SEARCH_DEBOUNCE_MS),\n );\n const initialized$ = this.initialized$.pipe(distinctUntilChanged());\n this.filteredOptions$ = combineLatest([controlChanges$, initialized$]).pipe(\n skipWhile(([, initialized]: [string, boolean]) => !initialized),\n switchMap(([value]: [string, boolean]) => {\n // turn off for first name, last name, hardcoded for the time being\n for (const id of EXCLUDED_FROM_AUTOCOMPLETE) {\n if (this.fieldId === this.fieldService.getFieldId(id)) {\n return of([]);\n }\n }\n return this.fieldOptionsDependencies.getFieldOptions(this.fieldId, value);\n }),\n );\n }\n get control(): UntypedFormControl {\n return this.#control;\n }\n\n disableAutoComplete: string = stopChromeAutofill();\n autoFillState = 'default';\n\n constructor(\n @Inject(FieldOptionsInjectionToken) private readonly fieldOptionsDependencies: FieldOptionsDependencies,\n readonly destroyRef: DestroyRef,\n private changeDetRef: ChangeDetectorRef,\n private updaterService: UpdaterService,\n private readonly inlineEditService: InlineEditService,\n private readonly fieldService: CrmFieldService,\n ) {\n this.updaterService.updatedField\n .pipe(\n takeUntilDestroyed(this.destroyRef),\n tap((data) => {\n if (data.stringValue && data.stringValue != '' && data.fieldId && data.fieldId === this.fieldId) {\n this.autoFillState = 'highlight';\n setTimeout(() => {\n this.autoFillState = 'default';\n this.changeDetRef.detectChanges();\n }, 1200);\n this.control.setValue(data.stringValue);\n this.control.markAsDirty();\n this.changeDetRef.detectChanges();\n }\n }),\n )\n .subscribe();\n }\n\n initializeField(): void {\n this.initialized$.next(true);\n }\n\n saveField(): void {\n this.inlineEditService.saveInlineEdit(this.objectType, {\n fieldId: this.fieldId,\n stringValue: this.control.value,\n });\n }\n}\n","import { Component, OnInit, ViewEncapsulation } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { MatInputModule } from '@angular/material/input';\nimport { FormControl, ReactiveFormsModule } from '@angular/forms';\nimport { DigitOnlyModule } from '@uiowa/digit-only';\nimport { TranslateModule } from '@ngx-translate/core';\nimport { GalaxyFormFieldModule } from '@vendasta/galaxy/form-field';\nimport { CrmModelDrivenFormErrorComponent } from '../model-driven-form-error/model-driven-form-error.component';\nimport { FieldWarningService } from '../model-driven-form-error/field-warning.service';\nimport { ScoreService } from '../../../../shared-services';\n\n@Component({\n templateUrl: './score.html',\n imports: [\n CommonModule,\n MatInputModule,\n ReactiveFormsModule,\n DigitOnlyModule,\n TranslateModule,\n GalaxyFormFieldModule,\n CrmModelDrivenFormErrorComponent,\n ],\n providers: [FieldWarningService],\n styleUrls: ['../renderers.scss'],\n standalone: true,\n encapsulation: ViewEncapsulation.None,\n})\nexport class ScoreRendererComponent implements OnInit {\n fieldId!: string;\n control!: FormControl;\n label!: string;\n readOnly!: boolean;\n\n constructor(private readonly scoreService: ScoreService) {}\n\n ngOnInit(): void {\n this.scoreService.getScoreForProfile$(this.fieldId).subscribe((score) => {\n if (score !== null) {\n this.control.setValue(score);\n }\n });\n }\n}\n","@if (readOnly) {\n
{{ label | translate }}
\n
\n @if (control.value) {\n {{ control.value }} \n }\n
\n}\n","import { ViewContainerRef } from '@angular/core';\nimport { FormControl } from '@angular/forms';\nimport { FieldValidation } from '../../field-validation';\nimport { FieldValueInterface, ObjectType, RenderableFieldInterface } from '../../../../tokens-and-interfaces';\nimport { ScoreRendererComponent } from './score';\n\nexport class ScoreFieldHandler implements RenderableFieldInterface {\n formControl: FormControl;\n\n constructor(\n public objectType: ObjectType,\n public fieldId: string,\n public name: string,\n public label: string,\n public value: number,\n public description: string,\n public readOnly = false,\n public validation: FieldValidation = new FieldValidation(),\n ) {\n this.formControl = new FormControl(this.value);\n }\n\n setValidation(validation: FieldValidation): void {\n this.validation = validation;\n this.formControl.setValidators(validation.getValidators());\n this.formControl.setAsyncValidators(validation.getAsyncValidators());\n }\n\n render(viewContainerRef: ViewContainerRef): void {\n viewContainerRef.clear();\n const component = viewContainerRef.createComponent(ScoreRendererComponent);\n component.instance.fieldId = this.fieldId;\n component.instance.control = this.formControl;\n component.instance.label = this.label;\n component.instance.readOnly = this.readOnly;\n }\n\n hasModification(): boolean {\n return false;\n }\n\n fieldValue(): FieldValueInterface {\n return {\n fieldId: this.fieldId,\n floatValue: this.value,\n };\n }\n}\n","import { UntypedFormControl } from '@angular/forms';\nimport { ComponentRef, ViewContainerRef } from '@angular/core';\nimport { FieldValidation } from '../field-validation';\nimport {\n FieldValueInterface,\n FormCustomInput,\n FormInputComponent,\n ObjectType,\n RenderableFieldInterface,\n} from '../../../tokens-and-interfaces';\n\nexport class CustomFieldHandler implements RenderableFieldInterface {\n formControl: UntypedFormControl;\n component: ComponentRef;\n\n constructor(\n public customFormInput: FormCustomInput,\n public objectType: ObjectType,\n public fieldId: string,\n public label: string,\n public value: unknown,\n public readOnly = false,\n ) {\n this.formControl = new UntypedFormControl(value);\n }\n\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n setValidation(validation: FieldValidation): void {\n return;\n }\n\n fieldValue(): FieldValueInterface {\n if (!this.component?.instance) {\n return {\n fieldId: this.fieldId,\n };\n }\n return this.component.instance.value;\n }\n\n hasModification(): boolean {\n if (!this.component?.instance) {\n return false;\n }\n return this.component.instance.hasModification;\n }\n\n render(viewContainerRef: ViewContainerRef): void {\n if (!this.customFormInput || !this.customFormInput.component) {\n return;\n }\n\n viewContainerRef.clear();\n this.component = viewContainerRef.createComponent(this.customFormInput.component);\n this.component.instance.fieldId = this.fieldId;\n this.component.instance.control = this.formControl;\n this.component.instance.label = this.label;\n this.component.instance.readOnly = this.readOnly;\n this.component.instance.objectType = this.objectType;\n }\n\n // unused for custom inputs\n description: string;\n name: string;\n validation: FieldValidation;\n}\n","export interface LifecycleStage {\n id: string;\n translationKey: string;\n}\n\nexport const lifecycleStages: LifecycleStage[] = [\n { id: 'Visitor', translationKey: 'LIFECYCLE_STAGE.VISITOR' },\n { id: 'Lead', translationKey: 'LIFECYCLE_STAGE.LEAD' },\n { id: 'Marketing qualified lead', translationKey: 'LIFECYCLE_STAGE.MARKETING_QUALIFIED_LEAD' },\n { id: 'Sales accepted lead', translationKey: 'LIFECYCLE_STAGE.SALES_ACCEPTED_LEAD' },\n { id: 'Sales qualified lead', translationKey: 'LIFECYCLE_STAGE.SALES_QUALIFIED_LEAD' },\n { id: 'Prospect', translationKey: 'LIFECYCLE_STAGE.PROSPECT' },\n { id: 'Customer', translationKey: 'LIFECYCLE_STAGE.CUSTOMER' },\n { id: 'Former customer', translationKey: 'LIFECYCLE_STAGE.FORMER_CUSTOMER' },\n];\n","import { Pipe, PipeTransform } from '@angular/core';\nimport { lifecycleStages } from './lifecycle-stage';\nimport { TranslateService } from '@ngx-translate/core';\nimport { Observable } from 'rxjs';\n\n@Pipe({ name: 'stageName' })\nexport class LifecycleStageNamePipe implements PipeTransform {\n constructor(private readonly translate: TranslateService) {}\n transform(id: string): Observable {\n const key = lifecycleStages.find((val) => val.id === id)?.translationKey || lifecycleStages[0].translationKey;\n return this.translate.stream(key);\n }\n}\n","import { NgModule } from '@angular/core';\nimport { LifecycleStageNamePipe } from './lifecycle-stage.pipe';\nimport { TranslateModule } from '@ngx-translate/core';\n\n@NgModule({\n imports: [TranslateModule],\n declarations: [LifecycleStageNamePipe],\n exports: [LifecycleStageNamePipe],\n})\nexport class LifecycleStagePipeModule {}\n","import { Component } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { FormControl, ReactiveFormsModule } from '@angular/forms';\nimport { MatSelectModule } from '@angular/material/select';\nimport { GalaxyFormFieldModule } from '@vendasta/galaxy/form-field';\nimport { TranslateModule, TranslateService } from '@ngx-translate/core';\nimport { FieldValidation } from '../../field-validation';\nimport { lifecycleStages } from './lifecycle-stage';\nimport { LifecycleStagePipeModule } from './lifecycle-stage-pipe.module';\nimport { InlineEditService } from '../../inline-edit.service';\nimport { ObjectType } from '../../../../tokens-and-interfaces';\n\n@Component({\n template: `\n \n \n
\n {{ label }}\n
\n
\n {{ control.value | stageName | async }}\n
\n
\n \n \n \n {{ label }}\n \n \n {{ translateKey(stage.translationKey) }}\n \n \n \n \n `,\n standalone: true,\n imports: [\n CommonModule,\n ReactiveFormsModule,\n MatSelectModule,\n GalaxyFormFieldModule,\n TranslateModule,\n LifecycleStagePipeModule,\n ],\n})\nexport class LifecycleStageSelectorComponent {\n objectType!: ObjectType;\n control!: FormControl;\n label!: string;\n fieldId!: string;\n validation!: FieldValidation;\n readOnly!: boolean;\n\n lifecycleStages = lifecycleStages;\n\n constructor(private readonly translate: TranslateService, private readonly inlineEditService: InlineEditService) {}\n\n translateKey(key: string): string {\n return this.translate.instant(key);\n }\n\n saveField(): void {\n this.inlineEditService.saveInlineEdit(this.objectType, {\n fieldId: this.fieldId,\n stringValue: this.control.value,\n });\n }\n}\n","import { FormControl } from '@angular/forms';\nimport { ViewContainerRef } from '@angular/core';\nimport { FieldValidation } from '../../field-validation';\nimport { LifecycleStageSelectorComponent } from './lifecycle-stage-selector.component';\nimport { FieldValueInterface, ObjectType, RenderableFieldInterface } from '../../../../tokens-and-interfaces';\n\nexport class LifecycleStageSelectorHandler implements RenderableFieldInterface {\n formControl: FormControl;\n\n constructor(\n public objectType: ObjectType,\n public fieldId: string,\n public name: string,\n public label: string,\n public value: string,\n public description: string,\n public readOnly = false,\n public validation: FieldValidation = new FieldValidation(),\n ) {\n this.formControl = new FormControl(this.value, { nonNullable: true });\n }\n\n render(viewContainerRef: ViewContainerRef): void {\n viewContainerRef.clear();\n const component = viewContainerRef.createComponent(\n LifecycleStageSelectorComponent,\n );\n component.instance.objectType = this.objectType;\n component.instance.control = this.formControl;\n component.instance.label = this.label;\n component.instance.fieldId = this.fieldId;\n component.instance.validation = this.validation;\n component.instance.readOnly = this.readOnly;\n }\n\n setValidation(validation: FieldValidation): void {\n this.validation = validation;\n this.formControl.setValidators(validation.getValidators());\n this.formControl.setAsyncValidators(validation.getAsyncValidators());\n }\n\n fieldValue(): FieldValueInterface {\n return {\n fieldId: this.fieldId,\n stringValue: this.formControl.value,\n };\n }\n hasModification(): boolean {\n return this.formControl?.dirty;\n }\n}\n","import { CommonModule } from '@angular/common';\nimport { Component, ViewContainerRef, ViewEncapsulation } from '@angular/core';\nimport { ReactiveFormsModule, UntypedFormControl } from '@angular/forms';\nimport { MatInputModule } from '@angular/material/input';\nimport { TranslateModule } from '@ngx-translate/core';\nimport { GalaxyFormFieldModule } from '@vendasta/galaxy/form-field';\nimport { FieldValidation } from '../field-validation';\nimport { InlineEditService } from '../inline-edit.service';\nimport { CrmFieldWarningDirective } from './model-driven-form-error/field-warning.directive';\nimport { FieldWarningService } from './model-driven-form-error/field-warning.service';\nimport { CrmModelDrivenFormErrorComponent } from './model-driven-form-error/model-driven-form-error.component';\nimport { CrmModelDrivenPopoverComponent } from './model-driven-popover/model-driven-popover.component';\nimport { stopChromeAutofill } from './stop-chrome-autofill';\nimport { FieldValueInterface, ObjectType, RenderableFieldInterface } from '../../../tokens-and-interfaces';\n\nexport class EmailFieldHandler implements RenderableFieldInterface {\n formControl: UntypedFormControl;\n\n constructor(\n public objectType: ObjectType,\n public fieldId: string,\n public name: string,\n public label: string,\n public value: string,\n public description: string,\n public readOnly = false,\n public validation: FieldValidation = new FieldValidation(),\n ) {\n this.formControl = new UntypedFormControl(this.value);\n }\n\n setValidation(validation: FieldValidation): void {\n this.validation = validation;\n this.formControl.setValidators(validation.getValidators());\n this.formControl.setAsyncValidators(validation.getAsyncValidators());\n }\n\n hasModification(): boolean {\n return this.formControl?.dirty;\n }\n\n fieldValue(): FieldValueInterface {\n return {\n fieldId: this.fieldId,\n stringValue: this.formControl.value,\n };\n }\n\n render(viewContainerRef: ViewContainerRef): void {\n viewContainerRef.clear();\n const component = viewContainerRef.createComponent(EmailRendererComponent);\n component.instance.objectType = this.objectType;\n component.instance.fieldId = this.fieldId;\n component.instance.control = this.formControl;\n component.instance.label = this.label;\n component.instance.validation = this.validation;\n component.instance.readOnly = this.readOnly;\n }\n}\n\n@Component({\n template: `\n
\n
\n {{ label | translate }}\n
\n
\n \n \n {{ control.value }}\n \n
\n
\n
\n \n \n \n
\n \n \n \n \n \n {{ label | translate }}\n \n \n {{ 'MODEL_DRIVEN_FORM.STRING_LIMIT_HINT' | translate : { characters: control.value?.length || 0 } }}\n \n \n \n \n `,\n imports: [\n CommonModule,\n MatInputModule,\n ReactiveFormsModule,\n TranslateModule,\n GalaxyFormFieldModule,\n CrmModelDrivenFormErrorComponent,\n CrmFieldWarningDirective,\n CrmModelDrivenPopoverComponent,\n ],\n providers: [FieldWarningService],\n styleUrls: ['./renderers.scss'],\n standalone: true,\n encapsulation: ViewEncapsulation.None,\n})\nexport class EmailRendererComponent {\n fieldId!: string;\n objectType!: ObjectType;\n control!: UntypedFormControl;\n label!: string;\n readOnly!: boolean;\n validation!: FieldValidation;\n isInlineEdit$ = this.inlineEditService.isInlineEdit$;\n\n disableAutoComplete: string = stopChromeAutofill();\n\n constructor(private readonly inlineEditService: InlineEditService) {}\n\n saveField(): void {\n this.inlineEditService.saveInlineEdit(this.objectType, {\n fieldId: this.fieldId,\n stringValue: this.control.value,\n });\n }\n}\n","import { FormControl } from '@angular/forms';\nimport { ChangeDetectorRef, Component, DestroyRef, ViewContainerRef, ViewEncapsulation } from '@angular/core';\nimport { FieldValidation } from '../field-validation';\nimport { GeopointInterface } from '@vendasta/crm';\nimport { takeUntilDestroyed } from '@angular/core/rxjs-interop';\nimport { tap } from 'rxjs';\nimport { UpdaterService } from './updater.service';\nimport { FieldValueInterface, ObjectType, RenderableFieldInterface } from '../../../tokens-and-interfaces';\n\nexport class GeopointFieldHandler implements RenderableFieldInterface {\n formControl: FormControl;\n\n constructor(\n public objectType: ObjectType,\n public fieldId: string,\n public name: string,\n public label: string,\n public value: GeopointInterface,\n public description: string,\n public readOnly = false,\n public validation: FieldValidation = new FieldValidation(),\n ) {\n this.formControl = new FormControl(value);\n }\n\n fieldValue(): FieldValueInterface {\n return {\n fieldId: this.fieldId,\n geopointValue: this.formControl.value,\n };\n }\n\n hasModification(): boolean {\n return this.formControl?.dirty;\n }\n\n setValidation(validation: FieldValidation): void {\n this.validation = validation;\n this.formControl.setValidators(validation.getValidators());\n this.formControl.setAsyncValidators(validation.getAsyncValidators());\n }\n\n render(viewContainerRef: ViewContainerRef): void {\n viewContainerRef.clear();\n const component = viewContainerRef.createComponent(GeopointRendererComponent);\n component.instance.fieldId = this.fieldId;\n component.instance.objectType = this.objectType;\n component.instance.control = this.formControl;\n }\n}\n\n@Component({\n template: '', //TODO: Add template for geopoint form field\n standalone: true,\n encapsulation: ViewEncapsulation.None,\n styleUrls: ['./renderers.scss'],\n})\nclass GeopointRendererComponent {\n public fieldId!: string;\n public objectType!: ObjectType;\n public control!: FormControl;\n\n constructor(\n private updaterService: UpdaterService,\n private changeDetRef: ChangeDetectorRef,\n private destroyRef: DestroyRef,\n ) {\n this.updaterService.updatedField\n .pipe(\n takeUntilDestroyed(this.destroyRef),\n tap((data) => {\n if (\n data.geopointValue &&\n data.geopointValue.lat !== undefined &&\n data.geopointValue.lon !== undefined &&\n data.fieldId &&\n data.fieldId === this.fieldId\n ) {\n this.control.setValue(data.geopointValue);\n this.control.markAsDirty();\n this.changeDetRef.detectChanges();\n }\n }),\n )\n .subscribe();\n }\n}\n","import { HttpClient } from '@angular/common/http';\nimport { Injectable } from '@angular/core';\nimport { Observable } from 'rxjs';\nimport { map, take, tap } from 'rxjs/operators';\n\nexport interface DropdownItem {\n description: string;\n mainText: string;\n placeId: string;\n secondaryText: string;\n}\n\ninterface Location {\n lat: number;\n lng: number;\n}\n\nexport interface TimeZone {\n timeZoneId: string;\n timeZoneName: string;\n}\n\nexport interface AutoCompleteCallback {\n setBusinessSelectedDetailsCallback(place_id: string, place: google.maps.places.PlaceResult, timeZone: TimeZone): void;\n\n clearSelectedBusiness(): void;\n}\n\nconst NONE_FOUND_SINGLE_TEXT = 'Use this name';\nconst NONE_FOUND_MULTIPLE_TEXT = 'Use this name or select your business above';\n\n@Injectable({ providedIn: 'root' })\nexport class AutocompleteService {\n private static NO_BUSINESS_FOUND = '___pcc_no_business_found';\n static noBusinessChoice: DropdownItem = {\n mainText: '',\n description: '',\n secondaryText: NONE_FOUND_MULTIPLE_TEXT,\n placeId: AutocompleteService.NO_BUSINESS_FOUND,\n };\n map: google.maps.Map;\n delegate: AutoCompleteCallback;\n private autocompleteSessionToken: google.maps.places.AutocompleteSessionToken;\n private currentPosition: Location;\n\n constructor(public http: HttpClient) {}\n\n private static parseAutoCompleteResponse(\n responses: google.maps.places.AutocompletePrediction[],\n term: string,\n ): DropdownItem[] {\n const choices = [];\n if (responses) {\n for (let i = 0; i <= responses.length; i++) {\n if (responses[i]) {\n const drop_down: DropdownItem = AutocompleteService.convertToDropDown(responses[i]);\n choices.push(drop_down);\n }\n }\n }\n AutocompleteService.createNoChoiceOption(term);\n AutocompleteService.noBusinessChoice.secondaryText = !responses ? NONE_FOUND_SINGLE_TEXT : NONE_FOUND_MULTIPLE_TEXT;\n choices.push(AutocompleteService.noBusinessChoice);\n return choices;\n }\n\n private static createNoChoiceOption(search_term: string): void {\n const no_business_choice = AutocompleteService.noBusinessChoice;\n no_business_choice.mainText = search_term;\n no_business_choice.description = search_term;\n }\n\n private static convertToDropDown(response: google.maps.places.AutocompletePrediction): DropdownItem {\n return {\n mainText: response.structured_formatting.main_text,\n description: response.description,\n secondaryText: response.structured_formatting.secondary_text,\n placeId: response.place_id,\n };\n }\n\n public init(googleMap: google.maps.Map, delegate: AutoCompleteCallback): void {\n this.map = googleMap;\n this.delegate = delegate;\n\n this.http\n .post('https://www.googleapis.com/geolocation/v1/geolocate?key=AIzaSyDxrR1bk6d2TRa4orIDF05H3UlhvIXRRC0', {})\n .pipe(\n tap((response: { location: Location }) => {\n if (response?.location) {\n this.currentPosition = response.location;\n }\n }),\n take(1),\n )\n .subscribe();\n\n this.autocompleteSessionToken = new google.maps.places.AutocompleteSessionToken();\n }\n\n onSelect(placeId: string): void {\n if (placeId && placeId !== AutocompleteService.NO_BUSINESS_FOUND) {\n const placeService = new google.maps.places.PlacesService(this.map);\n const callback = (place: google.maps.places.PlaceResult): void => {\n this.getTimeZone(place).subscribe((timeZone) => {\n this.delegate.setBusinessSelectedDetailsCallback(placeId, place, timeZone);\n });\n };\n placeService.getDetails(\n {\n placeId: placeId,\n fields: ['formatted_phone_number', 'name', 'address_component', 'website', 'types', 'geometry'],\n sessionToken: this.autocompleteSessionToken,\n },\n callback,\n );\n } else {\n this.delegate.clearSelectedBusiness();\n }\n }\n\n getChoices(search_term: string, suggest: (i: DropdownItem[]) => void): any {\n AutocompleteService.createNoChoiceOption(search_term);\n const service = new google.maps.places.AutocompleteService();\n const callback = (result: google.maps.places.AutocompletePrediction[]): void => {\n suggest(AutocompleteService.parseAutoCompleteResponse(result, search_term));\n };\n try {\n let termStr = search_term;\n if (typeof search_term != 'string') {\n termStr = (search_term as { mainText: string }).mainText;\n }\n const request = {\n input: termStr?.toLowerCase(),\n types: ['establishment'],\n sessionToken: this.autocompleteSessionToken,\n } as google.maps.places.AutocompletionRequest;\n if (this.currentPosition) {\n request.locationBias = {\n north: this.currentPosition.lat + 0.5,\n east: this.currentPosition.lng + 0.5,\n south: this.currentPosition.lat - 0.5,\n west: this.currentPosition.lng - 0.5,\n } as google.maps.LatLngBoundsLiteral;\n }\n service.getPlacePredictions(request, callback);\n } catch (e) {\n console.error(e);\n }\n }\n\n getTimeZone(place: google.maps.places.PlaceResult): Observable {\n const timeZoneApiUrl = 'https://maps.googleapis.com/maps/api/timezone/json';\n const paramKey = 'AIzaSyDxrR1bk6d2TRa4orIDF05H3UlhvIXRRC0';\n const paramLat = place?.geometry?.location?.lat();\n const paramLng = place?.geometry?.location?.lng();\n\n const params = {\n location: `${paramLat},${paramLng}`,\n timestamp: Math.floor(Date.now() / 1000).toString(),\n key: paramKey,\n };\n\n return this.http.get(timeZoneApiUrl, { params }).pipe(map((response) => response as TimeZone));\n }\n}\n","import { CommonModule } from '@angular/common';\nimport { Component, DestroyRef, NgZone, OnInit, ViewEncapsulation, signal } from '@angular/core';\nimport { takeUntilDestroyed } from '@angular/core/rxjs-interop';\nimport { FormControl, ReactiveFormsModule, UntypedFormControl } from '@angular/forms';\nimport { GoogleMapsModule } from '@angular/google-maps';\nimport { MatAutocompleteModule } from '@angular/material/autocomplete';\nimport { MatInputModule } from '@angular/material/input';\nimport { MatProgressSpinnerModule } from '@angular/material/progress-spinner';\nimport { TranslateModule } from '@ngx-translate/core';\nimport { GalaxyFormFieldModule } from '@vendasta/galaxy/form-field';\nimport { Subject } from 'rxjs';\nimport { debounceTime, distinctUntilChanged } from 'rxjs/operators';\nimport { StandardIds } from '../../../../shared-services/crm-services/field.service';\nimport { FieldValueInterface, FormInputComponent, ObjectType } from '../../../../tokens-and-interfaces';\nimport { FieldValidation } from '../../field-validation';\nimport { AutoCompleteCallback, AutocompleteService, DropdownItem, TimeZone } from '../autocomplete.service';\nimport { UpdaterService } from '../updater.service';\n\nconst NO_VALUE_FOR_NAME = '';\n\ninterface CompanyAddressInfo {\n address: string;\n city: string;\n zip: string;\n country: string;\n country_short: string;\n region: string;\n region_short: string;\n name: string;\n place_id: string;\n}\n\n@Component({\n templateUrl: './google-place-selector.component.html',\n providers: [AutocompleteService],\n imports: [\n CommonModule,\n ReactiveFormsModule,\n TranslateModule,\n GalaxyFormFieldModule,\n MatInputModule,\n MatAutocompleteModule,\n MatProgressSpinnerModule,\n GoogleMapsModule,\n ],\n styleUrls: ['../renderers.scss'],\n standalone: true,\n encapsulation: ViewEncapsulation.None,\n})\nexport class GooglePlaceSelectorComponent extends FormInputComponent implements AutoCompleteCallback, OnInit {\n NO_VALUE_FOR_NAME = NO_VALUE_FOR_NAME;\n\n readOnly = false;\n isNew = false;\n _control: FormControl;\n locations: DropdownItem[];\n companyAddressDetails: CompanyAddressInfo = {} as CompanyAddressInfo;\n txtQueryChanged: Subject = new Subject();\n\n objectType: ObjectType;\n label: string;\n validation: FieldValidation;\n googleMap: google.maps.Map;\n\n set control(control: FormControl) {\n this._control = control;\n this._control.markAsPristine();\n this.isNew = this._control.value == null || this._control.value === '';\n }\n get control(): UntypedFormControl {\n return this._control;\n }\n\n _fieldId = signal('');\n set fieldId(fieldId: string) {\n this._fieldId.set(fieldId);\n }\n\n get hasModification(): boolean {\n return this._control.dirty;\n }\n\n get value(): FieldValueInterface {\n let companyName = this._control.value;\n if (companyName) {\n if (typeof companyName != 'string') {\n companyName = (companyName as { mainText: string }).mainText;\n }\n }\n return {\n fieldId: this._fieldId(),\n stringValue: companyName,\n };\n }\n\n constructor(\n private autocompleteService: AutocompleteService,\n private updaterService: UpdaterService,\n private zone: NgZone,\n readonly destroyRef: DestroyRef,\n ) {\n super();\n }\n\n ngOnInit(): void {\n this.txtQueryChanged\n .pipe(takeUntilDestroyed(this.destroyRef), debounceTime(200), distinctUntilChanged())\n .subscribe((model) => {\n this.autocompleteService.getChoices(model, (choices: DropdownItem[]): void => {\n if (choices) {\n this.zone.run(() => {\n this.locations = choices;\n });\n }\n });\n });\n }\n\n /* AutoComplete */\n onMapReady(googleMap: google.maps.Map): void {\n this.googleMap = googleMap;\n this.autocompleteService.init(googleMap, this);\n }\n\n /* Callback function from Autocomplete Service when a business is selected. */\n setBusinessSelectedDetailsCallback(\n place_id: string,\n place: google.maps.places.PlaceResult,\n timeZone: TimeZone,\n ): void {\n const street_number = this.extractFromAddress(place?.address_components, 'street_number');\n const address = this.extractFromAddress(place?.address_components, 'route');\n const country = this.extractFromAddress(place?.address_components, 'country');\n const countryCode = this.extractFromAddress(place?.address_components, 'country', 'short_name');\n this.companyAddressDetails.place_id = place_id;\n this.companyAddressDetails.name = place?.name;\n // note: the following is the standard Canada/US address format, it may vary depending on country\n // ISO-19160-4:2023 could be a source for formatting, but googleMaps API doesn't deal with that yet\n this.companyAddressDetails.address =\n (street_number != null ? street_number : '') + ' ' + (address != null ? address : '');\n this.companyAddressDetails.city = this.extractFromAddress(place?.address_components, 'locality');\n this.companyAddressDetails.zip = this.extractFromAddress(place?.address_components, 'postal_code');\n this.companyAddressDetails.country = country;\n this.companyAddressDetails.country_short = countryCode;\n this.companyAddressDetails.region = this.extractFromAddress(\n place?.address_components,\n 'administrative_area_level_1',\n );\n this.companyAddressDetails.region_short = this.extractFromAddress(\n place?.address_components,\n 'administrative_area_level_1',\n 'short_name',\n );\n\n if (this.isNew) {\n this.updaterService.updateStringField(StandardIds.CompanyPrimaryAddressLine1, this.companyAddressDetails.address);\n this.updaterService.updateStringField(\n StandardIds.CompanyPrimaryAddressLine2,\n this.extractFromAddress(place?.address_components, 'floor'),\n );\n this.updaterService.updateStringField(StandardIds.CompanyPrimaryAddressCity, this.companyAddressDetails.city);\n this.updaterService.updateStringField(StandardIds.CompanyPrimaryAddressState, this.companyAddressDetails.region);\n this.updaterService.updateStringField(\n StandardIds.CompanyPrimaryAddressPostalCode,\n this.companyAddressDetails.zip,\n );\n this.updaterService.updateStringField(\n StandardIds.CompanyPrimaryAddressCountry,\n this.companyAddressDetails.country,\n );\n this.updaterService.updateStringField(\n StandardIds.CompanyPrimaryAddressGooglePlaceID,\n this.companyAddressDetails.place_id,\n );\n this.updaterService.updateStringField(StandardIds.CompanyWebsite, place?.website);\n this.updaterService.updateStringField(StandardIds.CompanyPhoneNumber, place?.formatted_phone_number);\n this.updaterService.updateStringField(StandardIds.CompanyTimezone, timeZone.timeZoneId);\n\n const lat = place?.geometry?.location.lat();\n const lng = place?.geometry?.location.lng();\n if (lat !== undefined && lng !== undefined) {\n this.updaterService.updateGeopointField(StandardIds.CompanyPrimaryAddressLatitudeLongitude, lat, lng);\n }\n }\n }\n\n extractFromAddress(\n components: google.maps.GeocoderAddressComponent[],\n type: string,\n name_type = 'long_name',\n ): string {\n return (\n components\n .filter((component) => component.types.indexOf(type) === 0)\n .map((item) => item[name_type])\n .pop() || null\n );\n }\n\n clearSelectedBusiness(): void {\n this.companyAddressDetails = {} as CompanyAddressInfo;\n }\n\n companyOnFieldChange(event: KeyboardEvent): void {\n if (event.code === 'ArrowDown' || event.code === 'ArrowUp' || event.code === 'Enter') {\n return;\n }\n let companyName = this._control.value;\n if (companyName) {\n if (typeof companyName != 'string') {\n companyName = (companyName as { mainText: string }).mainText;\n }\n this.txtQueryChanged.next(companyName as string);\n } else {\n this.zone.run(() => {\n this.locations = [];\n });\n this.clearSelectedBusiness();\n }\n }\n\n companyOnSelected(location: DropdownItem | string): void {\n if (location) {\n if (typeof location != 'string') {\n this.autocompleteService.onSelect(location.placeId);\n } else {\n this.autocompleteService.onSelect(location);\n }\n }\n }\n\n companyDisplayValue(location: DropdownItem | string): string {\n if (location) {\n if (typeof location != 'string') {\n return location.mainText;\n }\n return location;\n }\n return '';\n }\n}\n","
\n
{{ label }}
\n
\n \n \n \n {{ Name }}\n \n \n \n
\n
\n
\n
\n\n \n \n {{ label }}\n \n \n {{ 'STANDARD_FIELD_RULES.COMPANY.COMPANY_NAME_REQUIRED' | translate }}\n \n \n \n {{ location.mainText }}\n
\n {{ location.secondaryText }}\n \n \n
\n
\n","import { BooleanFieldHandler } from './renderers/boolean';\nimport { DateFieldHandler } from './renderers/date';\nimport { emailValidatorCodeMapping } from './renderers/email_validator';\nimport { IntegerFieldHandler } from './renderers/integer';\nimport { FloatFieldHandler } from './renderers/float/float-field-handler';\nimport { PhoneFieldHandler } from './renderers/phone/phone-field-handler';\nimport { TagsFieldHandler } from './renderers/tags';\nimport { TextFieldHandler } from './renderers/text';\nimport { FieldValidation } from './field-validation';\nimport { ScoreFieldHandler } from './renderers/score/score-field-handler';\nimport { Inject, Injectable } from '@angular/core';\nimport { ValidatorFactoryService } from './validator-factory.service';\nimport { CustomFieldHandler } from './renderers/custom';\nimport { LifecycleStageSelectorHandler } from './renderers/lifecycle-stage-selector/lifecycle-stage-handler';\nimport { EmailFieldHandler } from './renderers/email';\nimport { GeopointFieldHandler } from './renderers/geopoint';\nimport { GooglePlaceSelectorComponent } from './renderers/google-place-selector/google-place-selector.component';\nimport {\n CrmDependencies,\n FormCustomInput,\n CrmInjectionToken,\n FieldSchemaInterface,\n ObjectType,\n RenderableFieldInterface,\n FieldType,\n} from '../../tokens-and-interfaces';\nimport { StandardIds } from '../../shared-services/crm-services/field.service';\n\n@Injectable()\nexport class RendererSelectorService {\n constructor(\n @Inject(CrmInjectionToken) private readonly config: CrmDependencies,\n private readonly validatorFactory: ValidatorFactoryService,\n ) {}\n\n defaultCustomInputs: FormCustomInput[] = [\n {\n fieldId: StandardIds.CompanyName,\n component: GooglePlaceSelectorComponent,\n },\n ];\n\n chooseHandler(\n objectType: ObjectType,\n fieldId: string,\n fieldSchema: FieldSchemaInterface,\n fieldData: any,\n showLabel: boolean,\n readOnly = false,\n ): RenderableFieldInterface | null {\n const label = showLabel ? fieldSchema.fieldName : '';\n const customForms: FormCustomInput[] = [];\n if (this.config[objectType.toLowerCase()]?.formCustomInputs) {\n customForms.push(...this.config[objectType.toLowerCase()].formCustomInputs);\n }\n customForms.push(...this.defaultCustomInputs);\n\n const customForm = customForms?.find((f) => f.fieldId === fieldId);\n if (customForm) {\n return new CustomFieldHandler(customForm, objectType, fieldId, label, fieldData, readOnly);\n }\n\n if (fieldId === StandardIds.CompanyLifecycleStage || fieldId === StandardIds.ContactLifecycleStage) {\n return new LifecycleStageSelectorHandler(\n objectType,\n fieldId,\n fieldSchema.fieldName,\n label,\n fieldData,\n fieldSchema.fieldDescription,\n readOnly,\n );\n }\n\n if (fieldId === StandardIds.CompanyPrimaryAddressLatitudeLongitude) {\n return new GeopointFieldHandler(\n objectType,\n fieldId,\n fieldSchema.fieldName,\n label,\n fieldData,\n fieldSchema.fieldDescription,\n true,\n );\n }\n\n if (fieldId === StandardIds.CompanyLeadScore) {\n return new ScoreFieldHandler(\n objectType,\n fieldId,\n fieldSchema.fieldName,\n label,\n fieldData,\n fieldSchema.fieldDescription,\n readOnly,\n );\n }\n\n switch (fieldSchema.fieldType) {\n case FieldType.FIELD_TYPE_PHONE:\n return new PhoneFieldHandler(\n objectType,\n fieldId,\n fieldSchema.fieldName,\n label,\n fieldData,\n fieldSchema.fieldDescription,\n readOnly,\n );\n case FieldType.FIELD_TYPE_STRING:\n return new TextFieldHandler(\n objectType,\n fieldId,\n fieldSchema.fieldName,\n label,\n fieldData,\n fieldSchema.fieldDescription,\n readOnly,\n );\n case FieldType.FIELD_TYPE_INTEGER:\n return new IntegerFieldHandler(\n objectType,\n fieldId,\n fieldSchema.fieldName,\n label,\n fieldData as number,\n fieldSchema.fieldDescription,\n readOnly,\n );\n case FieldType.FIELD_TYPE_FLOAT:\n return new FloatFieldHandler(\n objectType,\n fieldId,\n fieldSchema.fieldName,\n label,\n fieldData as number,\n fieldSchema.fieldDescription,\n readOnly,\n );\n case FieldType.FIELD_TYPE_DATE:\n return new DateFieldHandler(\n objectType,\n fieldId,\n fieldSchema.fieldName,\n label,\n fieldData,\n fieldSchema.fieldDescription,\n readOnly,\n );\n case FieldType.FIELD_TYPE_BOOLEAN:\n return new BooleanFieldHandler(\n objectType,\n fieldId,\n fieldSchema.fieldName,\n label,\n fieldData,\n fieldSchema.fieldDescription,\n readOnly,\n );\n case FieldType.FIELD_TYPE_EMAIL:\n return new EmailFieldHandler(\n objectType,\n fieldId,\n fieldSchema.fieldName,\n label,\n fieldData,\n fieldSchema.fieldDescription,\n readOnly,\n );\n case FieldType.FIELD_TYPE_TAG:\n return new TagsFieldHandler(\n objectType,\n fieldId,\n fieldSchema.fieldName,\n label,\n fieldData,\n fieldSchema.fieldDescription,\n readOnly,\n 25,\n 200,\n 'MODEL_DRIVEN_FORM.ADD_TAG_PROMPT',\n 'MODEL_DRIVEN_FORM.TAG_LIMIT_ERROR',\n );\n case FieldType.FIELD_TYPE_STRING_LIST:\n return new TagsFieldHandler(\n objectType,\n fieldId,\n fieldSchema.fieldName,\n label,\n fieldData,\n fieldSchema.fieldDescription,\n readOnly,\n 25, // use same limit as tags\n 200, // use same limit as tags\n 'MODEL_DRIVEN_FORM.ADD_STRINGLIST_ITEM_PROMPT',\n '',\n );\n default:\n console.warn(`Could not choose renderer/handler for field with type ${fieldSchema.fieldType}`);\n return null;\n }\n }\n\n setupFieldValidators(\n field: RenderableFieldInterface,\n forExistingObjectId: string,\n fieldSchemaMap: Map,\n ): void {\n const schema = fieldSchemaMap.get(field.fieldId);\n const validation = new FieldValidation();\n switch (schema.fieldType) {\n case FieldType.FIELD_TYPE_EMAIL:\n validation.addValidationError(emailValidatorCodeMapping);\n validation.addValidationError(this.validatorFactory.buildUniquenessValidatorCodeMappings(field.fieldId));\n field.setValidation(validation);\n return;\n case FieldType.FIELD_TYPE_PHONE:\n validation.addValidationError(this.validatorFactory.buildUniquenessValidatorCodeMappings(field.fieldId));\n field.setValidation(validation);\n return;\n default:\n return;\n }\n }\n}\n","import { Component, HostBinding, Input, ViewEncapsulation } from '@angular/core';\n\n@Component({\n selector: 'glxy-sticky-footer',\n templateUrl: './sticky-footer.component.html',\n styleUrls: ['./sticky-footer.component.scss'],\n encapsulation: ViewEncapsulation.None,\n})\nexport class StickyFooterComponent {\n @HostBinding('class') class = 'glxy-sticky-footer';\n\n @HostBinding('class.right-aligned')\n @Input()\n rightAligned = false;\n}\n","\n","import { NgModule } from '@angular/core';\nimport { StickyFooterComponent } from './sticky-footer.component';\nimport { StickyFooterSecondaryDirective } from './directives/sticky-footer-secondary.directive';\nimport { CommonModule } from '@angular/common';\nexport { StickyFooterSecondaryDirective } from './directives/sticky-footer-secondary.directive';\nexport { StickyFooterComponent } from './sticky-footer.component';\n\nexport const MODULE_EXPORTS = [StickyFooterComponent, StickyFooterSecondaryDirective];\n\nexport const MODULE_DECLARATIONS = [StickyFooterComponent, StickyFooterSecondaryDirective];\n\nexport const MODULE_IMPORTS = [CommonModule];\n@NgModule({\n declarations: MODULE_DECLARATIONS,\n imports: MODULE_IMPORTS,\n exports: MODULE_EXPORTS,\n})\nexport class GalaxyStickyFooterModule {}\n","export * from './src/sticky-footer.module';\n","// Export things like public API, and interfaces from here.\nexport * from './public_api';\n","import { Component, EventEmitter, Inject, Input, OnChanges, Output, SimpleChanges } from '@angular/core';\nimport { UntypedFormGroup } from '@angular/forms';\nimport { SnackbarService } from '@vendasta/galaxy/snackbar-service';\nimport { RendererSelectorService } from '../../renderer-selector.service';\nimport { ValidatorFactoryService } from '../../validator-factory.service';\nimport { InlineEditService } from '../../inline-edit.service';\nimport { ScoreService } from '../../../../shared-services';\nimport { CrmFieldService } from '../../../../shared-services/crm-services/field.service';\nimport {\n CrmInjectionToken,\n CrmDependencies,\n FieldConfigInterface,\n FieldGroupInterface,\n FieldInterface,\n FieldSchemaInterface,\n LoadingStatus,\n ObjectType,\n RenderableFieldGroupInterface,\n RenderableFieldInterface,\n SavingStatus,\n} from '../../../../tokens-and-interfaces';\n\nconst SNACKBAR_DURATION = 10000;\n\n@Component({\n template: `\n \n \n `,\n})\nexport class BaseCrmModelDrivenFormComponent implements OnChanges {\n @Input({ required: true }) objectType!: ObjectType;\n @Input() existingObjectId = '';\n\n @Input() fieldConfig: FieldConfigInterface = {};\n\n @Input() submitButtonText = '';\n @Input() cancelButtonText = '';\n\n @Input() loadingStatus!: LoadingStatus;\n @Input() savingStatus!: SavingStatus;\n @Input() readOnly = false;\n @Input() inlineEdit = false;\n\n @Output() formSubmit = new EventEmitter();\n @Output() formCancel = new EventEmitter();\n\n formGroup = new UntypedFormGroup({});\n\n readOnlyFields: RenderableFieldInterface[] = [];\n renderableFields: RenderableFieldInterface[] = [];\n renderableFieldGroups: RenderableFieldGroupInterface[] = [];\n readonlyRenderableFieldGroups: RenderableFieldGroupInterface[] = [];\n\n constructor(\n @Inject(CrmInjectionToken) protected readonly config: CrmDependencies,\n protected snackService: SnackbarService,\n protected rendererSelector: RendererSelectorService,\n protected readonly validatorFactory: ValidatorFactoryService,\n protected readonly inlineEditService: InlineEditService,\n protected readonly crmFieldService: CrmFieldService,\n protected readonly scoreService: ScoreService,\n ) {}\n\n ngOnChanges(changes: SimpleChanges): void {\n if (changes['fieldConfig'] || changes['readOnly']) {\n this.initialize(this.fieldConfig?.fieldSchemas ?? [], this.fieldConfig?.fieldGroups ?? []);\n }\n if (changes['existingObjectId']) {\n this.inlineEditService.setObjectId(this.existingObjectId);\n this.scoreService.setObjectId(this.existingObjectId);\n }\n if (changes['inlineEdit']) {\n this.inlineEditService.setInlineEdit(this.inlineEdit);\n }\n }\n\n private setupValidation(fieldSchemas: FieldSchemaInterface[]): void {\n this.validatorFactory.initialize(\n this.objectType,\n this.existingObjectId,\n this.renderableFields,\n this.formGroup.valueChanges,\n );\n const fieldSchemaMap = new Map();\n for (const schema of fieldSchemas) {\n fieldSchemaMap.set(schema.fieldId, schema);\n }\n for (const field of this.renderableFields) {\n this.rendererSelector.setupFieldValidators(field, this.existingObjectId, fieldSchemaMap);\n }\n }\n\n private initialize(fieldSchemas: FieldSchemaInterface[], fieldGroups: FieldGroupInterface[]): void {\n if (fieldSchemas.length === 0 || fieldGroups.length === 0) {\n return;\n }\n\n // values are re-instantiated to avoid duplicating field value references internally\n this.renderableFieldGroups = [];\n this.renderableFields = [];\n this.readOnlyFields = [];\n fieldGroups.forEach((group) => {\n const renderableFieldGroup: RenderableFieldGroupInterface = {\n description: group.description,\n fields: [],\n };\n\n const readOnlyRenderableFieldGroup: RenderableFieldGroupInterface = {\n description: group.description,\n fields: [],\n };\n\n group.fieldIds.forEach((fieldId) => {\n const fieldSchema = fieldSchemas.find((fieldSchema) => fieldSchema.fieldId === fieldId);\n if (fieldSchema === undefined) {\n console.warn(`Couldn't find field with fieldId ${fieldId} in group with description ${group.description}`);\n return;\n }\n const renderableField = this.rendererSelector.chooseHandler(\n this.objectType,\n fieldSchema.fieldId,\n fieldSchema,\n fieldSchema.value,\n true,\n this.readOnly || fieldSchema.readOnly,\n );\n if (renderableField !== null && fieldSchema.readOnly) {\n this.formGroup.setControl(renderableField.fieldId, renderableField.formControl);\n if (fieldSchema.hasDefaultValue) {\n renderableField.formControl.markAsDirty();\n }\n this.readOnlyFields.push(renderableField);\n if (\n this.crmFieldService.shouldRenderReadonlyField(renderableField.fieldId) &&\n renderableField.value !== null\n ) {\n readOnlyRenderableFieldGroup.fields.push(renderableField);\n }\n return;\n }\n if (renderableField !== null) {\n this.formGroup.setControl(renderableField.fieldId, renderableField.formControl);\n if (fieldSchema.hasDefaultValue) {\n renderableField.formControl.markAsDirty();\n }\n this.renderableFields.push(renderableField);\n renderableFieldGroup.fields.push(renderableField);\n }\n });\n\n if (renderableFieldGroup.fields.length === 0) {\n console.warn(`Couldn't find any fields for group with description ${group.description}`);\n return;\n }\n if (readOnlyRenderableFieldGroup.fields.length > 0) {\n this.readonlyRenderableFieldGroups.push(readOnlyRenderableFieldGroup);\n }\n this.renderableFieldGroups.push(renderableFieldGroup);\n });\n\n this.setupValidation(fieldSchemas);\n }\n\n onSubmit(): void {\n if (this.formGroup.pristine) {\n this.snackService.openErrorSnack('MODEL_DRIVEN_FORM.SUBMITTED_PRISTINE', {\n duration: SNACKBAR_DURATION,\n });\n return;\n }\n if (this.formGroup.invalid) {\n this.snackService.openErrorSnack('MODEL_DRIVEN_FORM.SUBMITTED_WITH_ERROR', {\n duration: SNACKBAR_DURATION,\n });\n return;\n }\n this.formSubmit.emit([...this.renderableFields, ...this.readOnlyFields]);\n }\n\n onCancel(): void {\n this.formCancel.emit();\n }\n}\n","import { CommonModule } from '@angular/common';\nimport { Component, Input } from '@angular/core';\nimport { MatIconModule } from '@angular/material/icon';\nimport { TranslateModule } from '@ngx-translate/core';\nimport { GalaxyEmptyStateModule } from '@vendasta/galaxy/empty-state';\nimport { GalaxyLoadingSpinnerModule } from '@vendasta/galaxy/loading-spinner';\nimport { LoadingStatus } from '../../../../tokens-and-interfaces';\n\n@Component({\n selector: 'crm-form-loading-indicator',\n template: `\n \n \n \n \n \n \n \n\n \n \n report_problem\n \n \n {{ 'MODEL_DRIVEN_FORM.LOADING_STATUS_ERROR.TITLE' | translate }}\n \n

{{ 'MODEL_DRIVEN_FORM.LOADING_STATUS_ERROR.TEXT' | translate }}

\n \n
\n
\n `,\n styleUrls: [],\n standalone: true,\n imports: [CommonModule, TranslateModule, GalaxyEmptyStateModule, MatIconModule, GalaxyLoadingSpinnerModule],\n})\nexport class CrmFormLoadingIndicatorComponent {\n @Input() loadingStatus!: LoadingStatus;\n LoadingStatus = LoadingStatus;\n}\n","\"use strict\";\n\n/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.levenshtein = exports.capitalize = exports.underscore = exports.classify = exports.camelize = exports.dasherize = exports.decamelize = void 0;\nconst STRING_DASHERIZE_REGEXP = /[ _]/g;\nconst STRING_DECAMELIZE_REGEXP = /([a-z\\d])([A-Z])/g;\nconst STRING_CAMELIZE_REGEXP = /(-|_|\\.|\\s)+(.)?/g;\nconst STRING_UNDERSCORE_REGEXP_1 = /([a-z\\d])([A-Z]+)/g;\nconst STRING_UNDERSCORE_REGEXP_2 = /-|\\s+/g;\n/**\n * Converts a camelized string into all lower case separated by underscores.\n *\n ```javascript\n decamelize('innerHTML'); // 'inner_html'\n decamelize('action_name'); // 'action_name'\n decamelize('css-class-name'); // 'css-class-name'\n decamelize('my favorite items'); // 'my favorite items'\n ```\n\n @method decamelize\n @param {String} str The string to decamelize.\n @return {String} the decamelized string.\n */\nfunction decamelize(str) {\n return str.replace(STRING_DECAMELIZE_REGEXP, '$1_$2').toLowerCase();\n}\nexports.decamelize = decamelize;\n/**\n Replaces underscores, spaces, or camelCase with dashes.\n\n ```javascript\n dasherize('innerHTML'); // 'inner-html'\n dasherize('action_name'); // 'action-name'\n dasherize('css-class-name'); // 'css-class-name'\n dasherize('my favorite items'); // 'my-favorite-items'\n ```\n\n @method dasherize\n @param {String} str The string to dasherize.\n @return {String} the dasherized string.\n */\nfunction dasherize(str) {\n return decamelize(str).replace(STRING_DASHERIZE_REGEXP, '-');\n}\nexports.dasherize = dasherize;\n/**\n Returns the lowerCamelCase form of a string.\n\n ```javascript\n camelize('innerHTML'); // 'innerHTML'\n camelize('action_name'); // 'actionName'\n camelize('css-class-name'); // 'cssClassName'\n camelize('my favorite items'); // 'myFavoriteItems'\n camelize('My Favorite Items'); // 'myFavoriteItems'\n ```\n\n @method camelize\n @param {String} str The string to camelize.\n @return {String} the camelized string.\n */\nfunction camelize(str) {\n return str.replace(STRING_CAMELIZE_REGEXP, (_match, _separator, chr) => {\n return chr ? chr.toUpperCase() : '';\n }).replace(/^([A-Z])/, match => match.toLowerCase());\n}\nexports.camelize = camelize;\n/**\n Returns the UpperCamelCase form of a string.\n\n @example\n ```javascript\n 'innerHTML'.classify(); // 'InnerHTML'\n 'action_name'.classify(); // 'ActionName'\n 'css-class-name'.classify(); // 'CssClassName'\n 'my favorite items'.classify(); // 'MyFavoriteItems'\n 'app.component'.classify(); // 'AppComponent'\n ```\n @method classify\n @param {String} str the string to classify\n @return {String} the classified string\n */\nfunction classify(str) {\n return str.split('.').map(part => capitalize(camelize(part))).join('');\n}\nexports.classify = classify;\n/**\n More general than decamelize. Returns the lower_case_and_underscored\n form of a string.\n\n ```javascript\n 'innerHTML'.underscore(); // 'inner_html'\n 'action_name'.underscore(); // 'action_name'\n 'css-class-name'.underscore(); // 'css_class_name'\n 'my favorite items'.underscore(); // 'my_favorite_items'\n ```\n\n @method underscore\n @param {String} str The string to underscore.\n @return {String} the underscored string.\n */\nfunction underscore(str) {\n return str.replace(STRING_UNDERSCORE_REGEXP_1, '$1_$2').replace(STRING_UNDERSCORE_REGEXP_2, '_').toLowerCase();\n}\nexports.underscore = underscore;\n/**\n Returns the Capitalized form of a string\n\n ```javascript\n 'innerHTML'.capitalize() // 'InnerHTML'\n 'action_name'.capitalize() // 'Action_name'\n 'css-class-name'.capitalize() // 'Css-class-name'\n 'my favorite items'.capitalize() // 'My favorite items'\n ```\n\n @method capitalize\n @param {String} str The string to capitalize.\n @return {String} The capitalized string.\n */\nfunction capitalize(str) {\n return str.charAt(0).toUpperCase() + str.slice(1);\n}\nexports.capitalize = capitalize;\n/**\n * Calculate the levenshtein distance of two strings.\n * See https://en.wikipedia.org/wiki/Levenshtein_distance.\n * Based off https://gist.github.com/andrei-m/982927 (for using the faster dynamic programming\n * version).\n *\n * @param a String a.\n * @param b String b.\n * @returns A number that represents the distance between the two strings. The greater the number\n * the more distant the strings are from each others.\n */\nfunction levenshtein(a, b) {\n if (a.length == 0) {\n return b.length;\n }\n if (b.length == 0) {\n return a.length;\n }\n const matrix = [];\n // increment along the first column of each row\n for (let i = 0; i <= b.length; i++) {\n matrix[i] = [i];\n }\n // increment each column in the first row\n for (let j = 0; j <= a.length; j++) {\n matrix[0][j] = j;\n }\n // Fill in the rest of the matrix\n for (let i = 1; i <= b.length; i++) {\n for (let j = 1; j <= a.length; j++) {\n if (b.charAt(i - 1) == a.charAt(j - 1)) {\n matrix[i][j] = matrix[i - 1][j - 1];\n } else {\n matrix[i][j] = Math.min(matrix[i - 1][j - 1] + 1,\n // substitution\n matrix[i][j - 1] + 1,\n // insertion\n matrix[i - 1][j] + 1);\n }\n }\n }\n return matrix[b.length][a.length];\n}\nexports.levenshtein = levenshtein;","import { dasherize } from '@angular-devkit/core/src/utils/strings';\nimport { Component, HostBinding, Input, OnInit } from '@angular/core';\nimport { CommonModule } from '@angular/common';\n\n@Component({\n selector: 'crm-vertical-nav-card',\n template: `\n \n
\n \n
\n
\n `,\n standalone: true,\n imports: [CommonModule],\n})\nexport class VerticalNavCardComponent implements OnInit {\n @Input() label = '';\n @Input() active = false;\n @HostBinding('class') class = 'vertical-nav-card';\n\n public id = '';\n\n ngOnInit(): void {\n this.id = dasherize(this.label);\n }\n}\n","import { Location } from '@angular/common';\nimport { HttpParams } from '@angular/common/http';\nimport {\n AfterContentInit,\n OnInit,\n Component,\n ContentChildren,\n HostBinding,\n Input,\n QueryList,\n inject,\n} from '@angular/core';\nimport { ActivatedRoute } from '@angular/router';\nimport { CommonModule } from '@angular/common';\nimport { MatSelectModule } from '@angular/material/select';\nimport { ObserversModule } from '@angular/cdk/observers';\nimport { Breakpoints, BreakpointObserver } from '@angular/cdk/layout';\n\nimport { VerticalNavCardComponent } from './vertical-nav-card.component';\nimport { GalaxyFormFieldModule } from '@vendasta/galaxy/form-field';\n\n@Component({\n selector: 'crm-vertical-nav-tab',\n templateUrl: './vertical-nav-tab.component.html',\n styleUrls: ['./vertical-nav-tab.component.scss'],\n standalone: true,\n imports: [CommonModule, ObserversModule, MatSelectModule, GalaxyFormFieldModule],\n})\nexport class VerticalNavTabComponent implements OnInit, AfterContentInit {\n @HostBinding('class') class = 'vertical-nav-tab';\n\n @Input() useQueryParams = true;\n\n @ContentChildren(VerticalNavCardComponent) tabs?: QueryList;\n\n private readonly location = inject(Location);\n private activatedRoute = inject(ActivatedRoute);\n private tabActivated = false;\n isMobile = false;\n mobileSelectValue = '';\n\n constructor(private responsive: BreakpointObserver) {}\n\n ngOnInit() {\n this.responsive.observe([Breakpoints.Handset]).subscribe((result) => {\n this.isMobile = result.matches;\n });\n }\n\n ngAfterContentInit(): void {\n this.setActiveTab();\n }\n\n setActiveTab(): void {\n if (!this.tabActivated) {\n let queryParamHasMappedToATab = false;\n const activeTabParam = this.activatedRoute.snapshot.queryParams['tab'];\n if (!this.tabs) return;\n let activeTabs = this.tabs.filter((tab) => tab.active);\n\n if (activeTabParam && this.useQueryParams) {\n // check if tab id in query param, and set as first activeTabs if so\n this.tabs?.some((tab) => {\n if (tab.id === activeTabParam) {\n activeTabs = [];\n activeTabs.push(tab);\n queryParamHasMappedToATab = true;\n return true;\n }\n return false;\n });\n }\n\n if ((activeTabs && activeTabs.length === 0) || !activeTabs[0]) {\n // if no tabs marked active, either through manually setting\n // as active or via query param, make first tab active\n activeTabs = [];\n activeTabs.push(this.tabs.first);\n }\n\n if (!queryParamHasMappedToATab) {\n // If there is no active tab query param that is an id of an actual tab,\n // then set the url to include the correct tab in the query param\n if (activeTabs && activeTabs[0] && activeTabs[0].id) {\n this.addQueryString(activeTabs[0].id);\n }\n }\n\n // Select the active tab\n if (activeTabs && activeTabs[0]) {\n this.selectTab(activeTabs[0]);\n this.tabActivated = true;\n this.mobileSelectValue = activeTabs[0]?.id || '';\n }\n }\n }\n\n addQueryString(tabTitle: string): void {\n if (this.useQueryParams) {\n const params = new HttpParams().set('tab', tabTitle);\n this.location.replaceState(this.location.path().split('?')[0], params.toString(), false);\n }\n }\n\n selectTab(tab: VerticalNavCardComponent, scrolltarget?: HTMLElement): void {\n // deactivate all tabs\n this.tabs?.forEach((thisTab) => {\n thisTab.active = false;\n });\n\n // only scroll back to the top of the tab content if top of the content is not visible\n if (scrolltarget && scrolltarget?.getClientRects()[0]?.top < 0) {\n window.setTimeout(() => {\n scrolltarget.scrollIntoView({ behavior: 'instant' });\n }, 0);\n }\n\n // activate the tab the user has clicked on.\n tab.active = true;\n this.mobileSelectValue = tab?.id || '';\n }\n}\n","
\n\n
    \n \n \n {{ tab.label }}\n \n \n
\n\n \n @for (tab of tabs; track tab) {\n \n {{ tab.label }}\n \n }\n \n\n
\n \n
\n","export { VerticalNavTabComponent } from './vertical-nav-tab.component';\nexport { VerticalNavCardComponent } from './vertical-nav-card.component';\n","import { CommonModule } from '@angular/common';\nimport { Component, ViewEncapsulation } from '@angular/core';\nimport { FormsModule, ReactiveFormsModule } from '@angular/forms';\nimport { MatCardModule } from '@angular/material/card';\nimport { MatIconModule } from '@angular/material/icon';\nimport { TranslateModule } from '@ngx-translate/core';\nimport { GalaxyEmptyStateModule } from '@vendasta/galaxy/empty-state';\nimport { GalaxyStickyFooterModule } from '@vendasta/galaxy/sticky-footer';\nimport { BaseCrmModelDrivenFormComponent } from './base-model-driven-form.component';\nimport { CrmFormButtonGroupComponent } from './form-button-group.component';\nimport { CrmFormLoadingIndicatorComponent } from './form-loading-indicator.component';\nimport { RendererSelectorComponent } from '../../renderer-selector.component';\nimport { VerticalNavTabComponent } from '../../../vertical-nav-tab';\nimport { VerticalNavCardComponent } from '../../../vertical-nav-tab';\n\n@Component({\n selector: 'crm-card-group-driven-form',\n templateUrl: './card-group-driven-form.component.html',\n styleUrls: ['./base-model-driven-form.component.scss'],\n standalone: true,\n imports: [\n CommonModule,\n FormsModule,\n MatCardModule,\n MatIconModule,\n ReactiveFormsModule,\n TranslateModule,\n GalaxyEmptyStateModule,\n GalaxyStickyFooterModule,\n CrmFormButtonGroupComponent,\n CrmFormLoadingIndicatorComponent,\n RendererSelectorComponent,\n VerticalNavTabComponent,\n VerticalNavCardComponent,\n ],\n encapsulation: ViewEncapsulation.None,\n})\nexport class CrmCardGroupDrivenFormComponent extends BaseCrmModelDrivenFormComponent {}\n","\n
\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n
\n
\n\n \n\n","import { CommonModule } from '@angular/common';\nimport { Component, ViewEncapsulation } from '@angular/core';\nimport { FormsModule, ReactiveFormsModule } from '@angular/forms';\nimport { TranslateModule } from '@ngx-translate/core';\nimport { RendererSelectorComponent } from '../../renderer-selector.component';\nimport { BaseCrmModelDrivenFormComponent } from './base-model-driven-form.component';\nimport { CrmFormButtonGroupComponent } from './form-button-group.component';\nimport { CrmFormLoadingIndicatorComponent } from './form-loading-indicator.component';\nimport { MatDividerModule } from '@angular/material/divider';\n\n@Component({\n selector: 'crm-panel-driven-form',\n templateUrl: './panel-driven-form.component.html',\n styleUrls: ['./base-model-driven-form.component.scss', './panel-driven-form.component.scss'],\n standalone: true,\n imports: [\n CommonModule,\n FormsModule,\n ReactiveFormsModule,\n TranslateModule,\n RendererSelectorComponent,\n CrmFormLoadingIndicatorComponent,\n CrmFormButtonGroupComponent,\n MatDividerModule,\n ],\n encapsulation: ViewEncapsulation.None,\n})\nexport class CrmPanelDrivenFormComponent extends BaseCrmModelDrivenFormComponent {}\n","\n
\n \n \n \n \n \n \n 0\">\n \n \n \n \n \n
\n \n
\n
\n
\n","import { CommonModule } from '@angular/common';\nimport { Component, Inject, ViewEncapsulation } from '@angular/core';\nimport { FormsModule, ReactiveFormsModule } from '@angular/forms';\nimport { MatIconModule } from '@angular/material/icon';\nimport { MatCardModule } from '@angular/material/card';\nimport { TranslateModule } from '@ngx-translate/core';\nimport { GalaxyEmptyStateModule } from '@vendasta/galaxy/empty-state';\nimport { RendererSelectorComponent } from '../../renderer-selector.component';\nimport { BaseCrmModelDrivenFormComponent } from './base-model-driven-form.component';\nimport { CrmFormLoadingIndicatorComponent } from './form-loading-indicator.component';\nimport { CrmFormButtonGroupComponent } from './form-button-group.component';\nimport { MatButtonModule } from '@angular/material/button';\nimport { MatDialogModule } from '@angular/material/dialog';\nimport { ObjectType } from '../../../../tokens-and-interfaces';\nimport { SnackbarService } from '@vendasta/galaxy/snackbar-service';\nimport { RendererSelectorService } from '../../renderer-selector.service';\nimport { ValidatorFactoryService } from '../../validator-factory.service';\nimport { InlineEditService } from '../../inline-edit.service';\nimport { ScoreService } from '../../../../shared-services';\nimport { CrmInjectionToken, CrmDependencies } from '../../../../tokens-and-interfaces';\nimport { TranslateByObjectTypePipe } from '../../../../i18n/translate-by-object-type/translate-by-object-type.pipe';\nimport {\n CrmFieldService,\n StandardIds,\n StandardExternalIds,\n} from '../../../../shared-services/crm-services/field.service';\n\n@Component({\n selector: 'crm-basic-field-group-form',\n templateUrl: './basic-field-group-form.component.html',\n styleUrls: ['./base-model-driven-form.component.scss'],\n standalone: true,\n imports: [\n CommonModule,\n FormsModule,\n ReactiveFormsModule,\n TranslateModule,\n TranslateByObjectTypePipe,\n GalaxyEmptyStateModule,\n MatIconModule,\n RendererSelectorComponent,\n MatCardModule,\n CrmFormLoadingIndicatorComponent,\n CrmFormButtonGroupComponent,\n MatButtonModule,\n MatDialogModule,\n ],\n encapsulation: ViewEncapsulation.None,\n})\nexport class CrmBasicFieldGroupFormComponent extends BaseCrmModelDrivenFormComponent {\n basicGroupFieldsMap = new Map([]);\n\n constructor(\n @Inject(CrmInjectionToken) protected override readonly config: CrmDependencies,\n protected override snackService: SnackbarService,\n protected override rendererSelector: RendererSelectorService,\n protected override readonly validatorFactory: ValidatorFactoryService,\n protected override readonly inlineEditService: InlineEditService,\n protected readonly fieldService: CrmFieldService,\n protected override readonly scoreService: ScoreService,\n ) {\n super(config, snackService, rendererSelector, validatorFactory, inlineEditService, fieldService, scoreService);\n\n this.basicGroupFieldsMap.set('Contact', [\n fieldService.getFieldId(StandardExternalIds.FirstName),\n fieldService.getFieldId(StandardExternalIds.LastName),\n fieldService.getFieldId(StandardExternalIds.PhoneNumber),\n fieldService.getFieldId(StandardExternalIds.Email),\n fieldService.getFieldId(StandardExternalIds.Tags),\n StandardIds.ContactLinkedInURL,\n StandardIds.ContactJobTitle,\n ]);\n this.basicGroupFieldsMap.set('Company', [\n StandardIds.CompanyName,\n StandardIds.CompanyWebsite,\n StandardIds.CompanyPrimaryAddressLine1,\n StandardIds.CompanyPrimaryAddressLine2,\n StandardIds.CompanyPrimaryAddressCity,\n StandardIds.CompanyPrimaryAddressState,\n StandardIds.CompanyPrimaryAddressPostalCode,\n StandardIds.CompanyPrimaryAddressCountry,\n StandardIds.CompanyPhoneNumber,\n StandardIds.CompanyTags,\n ]);\n }\n}\n","\n
\n

{{ 'CREATE_PAGE.TITLE' | translateByObjectType : objectType }}

\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n
\n
\n\n \n \n \n \n\n","import { Component, EventEmitter, Input, Output } from '@angular/core';\nimport { CrmCardGroupDrivenFormComponent } from './modes/card-group-driven-form.component';\nimport { CrmPanelDrivenFormComponent } from './modes/panel-driven-form.component';\nimport { CommonModule } from '@angular/common';\nimport { TranslateModule } from '@ngx-translate/core';\nimport { CrmBasicFieldGroupFormComponent } from './modes/basic-field-group-form.component';\nimport { ScoreService } from '../../../shared-services';\nimport { InlineEditService } from '../inline-edit.service';\nimport {\n FieldConfigInterface,\n FieldInterface,\n LoadingStatus,\n ObjectType,\n SavingStatus,\n} from '../../../tokens-and-interfaces';\n\ntype FormMode = 'panel' | 'card-group' | 'basic-field-group';\n\n@Component({\n selector: 'crm-model-driven-form',\n templateUrl: './model-driven-form.component.html',\n styleUrls: ['./modes/base-model-driven-form.component.scss'],\n standalone: true,\n imports: [\n CommonModule,\n TranslateModule,\n CrmCardGroupDrivenFormComponent,\n CrmPanelDrivenFormComponent,\n CrmBasicFieldGroupFormComponent,\n ],\n providers: [InlineEditService, ScoreService],\n})\nexport class CrmModelDrivenFormComponent {\n @Input({ required: true }) objectType!: ObjectType;\n @Input() existingObjectId = '';\n @Input() fieldConfig: FieldConfigInterface = {};\n\n // these are translation keys\n @Input() submitButtonText = 'ACTIONS.SAVE';\n @Input() cancelButtonText = 'ACTIONS.CANCEL';\n\n @Input() loadingStatus!: LoadingStatus;\n @Input() savingStatus!: SavingStatus;\n @Input() readOnly = false;\n @Input() mode: FormMode = 'card-group';\n\n @Output() formSubmit = new EventEmitter();\n @Output() formCancel = new EventEmitter();\n\n onSubmit(fields: FieldInterface[]): void {\n this.formSubmit.emit(fields);\n }\n\n onCancel(): void {\n this.formCancel.emit();\n }\n}\n","\n \n \n \n \n \n \n \n \n \n\n","export * from './field-validation';\nexport * from './inline-edit.service';\nexport * from './renderer-selector.component';\nexport * from './renderer-selector.service';\nexport * from './validator-factory.service';\nexport * from './form/model-driven-form.component';\nexport * from './renderers/autocomplete.service';\nexport * from './renderers/updater.service';\nexport * from './renderers/phone/utils';\n","import { CommonModule } from '@angular/common';\nimport { Component, Inject, Input, OnInit } from '@angular/core';\nimport { MatButtonModule } from '@angular/material/button';\nimport { MatDialogModule, MatDialogRef } from '@angular/material/dialog';\nimport { MatIconModule } from '@angular/material/icon';\nimport { ActivatedRoute, Params, RouterModule } from '@angular/router';\nimport { GalaxyPageModule } from '@vendasta/galaxy/page';\nimport { SnackbarService } from '@vendasta/galaxy/snackbar-service';\nimport { BehaviorSubject, Observable, forkJoin, of } from 'rxjs';\nimport { catchError, map, shareReplay, switchMap, take, tap } from 'rxjs/operators';\nimport { CrmModelDrivenFormComponent } from '../model-driven-form/form/model-driven-form.component';\nimport {\n CrmInjectionToken,\n CrmDependencies,\n FieldInterface,\n ObjectType,\n FieldConfigInterface,\n SavingStatus,\n LoadingStatus,\n} from '../../tokens-and-interfaces';\nimport { CRMTrackingService } from '../../shared-services/page-analytics.service';\nimport { PAGE_ROUTES, SNACKBAR_DURATION } from '../../constants';\nimport { TranslationModule } from '../../i18n/translation-module';\nimport { PreviewObjectService } from '../../shared-services/preview-object.service';\nimport { TranslateByObjectTypePipe } from '../../i18n/translate-by-object-type/translate-by-object-type.pipe';\nimport { TranslateByObjectTypeService } from '../../i18n/translate-by-object-type/translate-by-object-type.service';\nimport { CrmFormService } from '../../shared-services/crm-services/crm-form.service';\n\n@Component({\n selector: 'crm-contact-modal',\n templateUrl: './create-modal.component.html',\n\n imports: [\n CommonModule,\n GalaxyPageModule,\n MatButtonModule,\n MatIconModule,\n RouterModule,\n TranslationModule,\n TranslateByObjectTypePipe,\n CrmModelDrivenFormComponent,\n MatDialogModule,\n ],\n standalone: true,\n})\nexport class CreateContactModalComponent implements OnInit {\n @Input({ required: true }) objectType!: ObjectType;\n LoadingStatus = LoadingStatus;\n SavingStatus = SavingStatus;\n loadingStatus$$ = new BehaviorSubject(LoadingStatus.LOADING);\n savingStatus$$ = new BehaviorSubject(SavingStatus.NOT_SAVING);\n routePrefix$ = this.config.routePrefix$;\n fieldConfig$: Observable = of({});\n PAGE_ROUTES = PAGE_ROUTES;\n\n crmObjectId$ = this.route.params.pipe(\n map((params: Params) => params['crmObjectId']),\n shareReplay(1),\n );\n\n constructor(\n private dialogRef: MatDialogRef,\n @Inject(CrmInjectionToken) private readonly config: CrmDependencies,\n private readonly crmFormService: CrmFormService,\n private readonly snackService: SnackbarService,\n private readonly route: ActivatedRoute,\n private readonly previewObjectService: PreviewObjectService,\n private readonly trackingService: CRMTrackingService,\n private readonly translateByObjectTypeService: TranslateByObjectTypeService,\n ) {}\n\n ngOnInit(): void {\n const fieldSchemas$ = this.crmFormService.listAllFormFields$(this.objectType);\n const fieldGroups$ = this.crmFormService.listAllObjectFormFieldGroups$(this.objectType);\n\n this.fieldConfig$ = of(null).pipe(\n tap(() => this.loadingStatus$$.next(LoadingStatus.LOADING)),\n switchMap(() => forkJoin([fieldSchemas$, fieldGroups$])),\n tap(([fieldSchemas, fieldGroups]) => {\n const empty = fieldSchemas.length === 0 || fieldGroups.length === 0;\n this.loadingStatus$$.next(empty ? LoadingStatus.EMPTY : LoadingStatus.OK);\n }),\n map(([fieldSchemas, fieldGroups]) => {\n return {\n fieldSchemas: fieldSchemas,\n fieldGroups: fieldGroups,\n };\n }),\n catchError((error) => {\n this.loadingStatus$$.next(LoadingStatus.ERROR);\n this.errorSnackbar(error, 'ERRORS.GENERIC_MESSAGE');\n return of({} as FieldConfigInterface);\n }),\n shareReplay(1),\n );\n }\n\n onSave(fields: FieldInterface[]): void {\n of(null)\n .pipe(\n take(1),\n tap(() => this.savingStatus$$.next(SavingStatus.SAVING)),\n switchMap(() => this.crmFormService.validateAndCreateCrmObject$(this.objectType, fields)),\n catchError((err) => {\n this.savingStatus$$.next(SavingStatus.ERROR);\n throw err;\n }),\n tap(() => this.savingStatus$$.next(SavingStatus.OK)),\n tap((previewCrmObject) => {\n this.previewObjectService.setPreviewCrmObject(previewCrmObject, this.objectType);\n }),\n\n tap((previewCrmObject) => this.dialogRef.close(previewCrmObject)),\n\n switchMap(() => this.config.routePrefix$),\n )\n .subscribe({\n next: () => {\n this.trackingService.trackEvent(this.objectType, 'added-crm-object');\n },\n error: (error) => {\n this.trackingService.trackEvent(this.objectType, 'failed-add-crm-object');\n this.errorSnackbar(error, 'ERRORS.GENERIC_MESSAGE');\n },\n });\n }\n\n private errorSnackbar(error: any | null, defaultMessage: string) {\n let message: string | null = null;\n if (error && error.message) {\n message = error.message;\n }\n const translatedDefaultMessage = this.translateByObjectTypeService.getTranslationByObjectType(\n this.objectType,\n defaultMessage,\n );\n this.snackService.openErrorSnack(message ?? translatedDefaultMessage, {\n duration: SNACKBAR_DURATION,\n });\n }\n\n onCancel(): void {\n this.trackingService.trackEvent(this.objectType, 'cancelled-crm-add');\n this.dialogRef.close();\n }\n}\n","\n","import { Component } from '@angular/core';\nimport { CreateContactModalComponent } from './create-modal.component';\nimport {\n FieldOptionsInjectionToken as ModelDrivenFormFieldOptionsInjectionToken,\n modelDrivenFormFieldOptionsInjectionTokenGenerator,\n ObjectType,\n PageAnalyticsInjectionToken,\n pageAnalyticsInjectionTokenGenerator,\n} from '../../tokens-and-interfaces';\n\n@Component({\n // requires selector to prevent ID collision\n selector: 'crm-create-modal',\n template: ` `,\n imports: [CreateContactModalComponent],\n standalone: true,\n providers: [\n {\n provide: ModelDrivenFormFieldOptionsInjectionToken,\n useFactory: modelDrivenFormFieldOptionsInjectionTokenGenerator('Contact'),\n },\n {\n provide: PageAnalyticsInjectionToken,\n useFactory: pageAnalyticsInjectionTokenGenerator('Contact'),\n },\n ],\n})\nexport class CrmCreateModalContactComponent {\n objectType: ObjectType = 'Contact';\n}\n","export * from './create-crm-contact-modal.component';\nexport * from './create-modal.component';\n","import { CommonModule } from '@angular/common';\nimport { Component, Inject, inject, Injector, OnInit } from '@angular/core';\nimport { MatButtonModule } from '@angular/material/button';\nimport { MatCardModule } from '@angular/material/card';\nimport { MatDialog, MatDialogModule } from '@angular/material/dialog';\nimport { MatExpansionModule } from '@angular/material/expansion';\nimport { MatIconModule } from '@angular/material/icon';\nimport { MatMenuModule } from '@angular/material/menu';\nimport { MatTooltipModule } from '@angular/material/tooltip';\nimport { RouterLink } from '@angular/router';\nimport { TranslateService } from '@ngx-translate/core';\nimport { GalaxyAlertModule } from '@vendasta/galaxy/alert';\nimport { ContactInfoCardComponent, GalaxyContactInfoCardModule } from '@vendasta/galaxy/contact-info-card';\nimport { GalaxyFilterChipInjectionToken } from '@vendasta/galaxy/filter/chips';\nimport { SnackbarService } from '@vendasta/galaxy/snackbar-service';\nimport { Row } from '@vendasta/galaxy/table';\nimport { BehaviorSubject, combineLatest, Observable, of, ReplaySubject } from 'rxjs';\nimport { filter, map, mergeMap, switchMap, take, tap } from 'rxjs/operators';\nimport { formatAsReadonlyPhone, parsePhoneNumber } from '../../model-driven-form';\nimport {\n CrmInjectionToken,\n CrmDependencies,\n CardData,\n COMPANY_PROFILE_CARD_DATA_TOKEN,\n PageAnalyticsInjectionToken,\n pageAnalyticsInjectionTokenGenerator,\n tableFiltersInjectionTokenGenerator,\n} from '../../../tokens-and-interfaces';\nimport { PAGE_ROUTES, SNACKBAR_DURATION } from '../../../constants';\nimport { TranslationModule } from '../../../i18n';\nimport { CrmCreateModalContactComponent } from '../../create-crm-object-modal';\nimport { CrmAssociationService, Association } from '../../../shared-services';\nimport {\n CrmFieldService,\n CrmObjectService,\n ContactTableCustomizationService,\n CompanyTableCustomizationService,\n DefaultAssociationActionsService,\n StandardIds,\n combineAssociationsWithChanges,\n StandardExternalIds,\n} from '../../../shared-services';\nimport { AssociationCardComponent, CardAction, TagsComponent } from '../association-card';\nimport { AssociationsDialogData } from '../select-associations-modal/select-associations-modal.component';\nimport {\n SelectObjectTypeModalComponent,\n ListObjectTypeDialogData,\n} from '../../select-object-type-modal/select-object-type-modal.component';\nimport { CommonAssociationCardContentComponent } from '../association-card';\nimport {\n RemoveAssociationDialogComponent,\n RemoveAssociationData,\n} from '../remove-association-dialog/remove-association-dialog.component';\nimport { AddCampaignDialogComponent } from '../contact-campaign-association-card/add-campaign-dialog/add-campaign-dialog.component';\n\ninterface CompanyToContactAssociationsCardData extends CardData {\n associationId: string;\n companyName: string;\n}\n\n@Component({\n selector: 'crm-company-to-contact-associations-card',\n standalone: true,\n imports: [\n CommonModule,\n TranslationModule,\n MatExpansionModule,\n ContactInfoCardComponent,\n AssociationCardComponent,\n CommonAssociationCardContentComponent,\n TagsComponent,\n GalaxyAlertModule,\n MatIconModule,\n MatButtonModule,\n MatTooltipModule,\n RouterLink,\n MatMenuModule,\n GalaxyContactInfoCardModule,\n MatDialogModule,\n MatCardModule,\n ],\n providers: [\n {\n provide: PageAnalyticsInjectionToken,\n useFactory: pageAnalyticsInjectionTokenGenerator('Company'),\n },\n ],\n templateUrl: './company-to-contact-associations-card.component.html',\n styleUrls: [\n './company-to-contact-associations-card.component.scss',\n '../../../shared-styles/association-panel-shared.scss',\n ],\n})\nexport class CompanyToContactAssociationsCardComponent implements OnInit {\n protected readonly pageSize = 5;\n data = inject(COMPANY_PROFILE_CARD_DATA_TOKEN);\n loadAssociations$$ = new BehaviorSubject([]);\n preSelectedRows$$ = new BehaviorSubject([]);\n fullName$: Observable;\n modalData$: Observable;\n canOpenModal = false;\n contacts$: Observable;\n removedAssociationIds$$ = new BehaviorSubject([]);\n openCreateContactModal$$ = new ReplaySubject(1);\n openCreateContactModal$ = this.openCreateContactModal$$.asObservable();\n existingAssociations$: Observable;\n newContact$$ = new BehaviorSubject('');\n changedAssociations$$ = new BehaviorSubject([]);\n readonly visibleContactsCount$$ = new BehaviorSubject(this.pageSize);\n readonly hasMore$: Observable;\n\n private readonly injector = inject(Injector);\n\n constructor(\n @Inject(CrmInjectionToken) private readonly config: CrmDependencies,\n private readonly objectService: CrmObjectService,\n private readonly fieldService: CrmFieldService,\n private readonly associationService: CrmAssociationService,\n private readonly dialog: MatDialog,\n private translateService: TranslateService,\n private readonly contactCustomizationService: ContactTableCustomizationService,\n private readonly companyCustomizationService: CompanyTableCustomizationService,\n private crmAssociationService: CrmAssociationService,\n private readonly snackService: SnackbarService,\n private readonly defaultAssociationActionsService: DefaultAssociationActionsService,\n ) {\n this.associationService.setCrmObjectIdToAssociate(this.data?.company_id || '');\n this.fullName$ = objectService.getMultiObject('Company', [this.data.company_id || '']).pipe(\n map((resp) => {\n const object = resp?.crmObjects?.[0];\n if (resp?.crmObjects?.length === 0 || !object) {\n return '';\n }\n return this.companyCustomizationService.getRowFullName(object || {});\n }),\n );\n\n this.existingAssociations$ = this.associationService.getCachedContactAssociationsForCompany$(\n this.data.company_id || '',\n );\n\n this.hasMore$ = combineLatest([this.existingAssociations$, this.visibleContactsCount$$]).pipe(\n map(([existing, visibleContactsCount]) => existing.length > visibleContactsCount),\n );\n\n const latestContacts$ = combineLatest([\n this.config.routePrefix$,\n this.loadAssociations$$,\n this.existingAssociations$,\n this.changedAssociations$$,\n this.visibleContactsCount$$,\n ]).pipe(\n map(([routePrefix, copyCrmObject, existing, changed, visibleContactsCount]) => {\n const associations = existing.slice(0, visibleContactsCount);\n const associatedObjects = copyCrmObject.map((association) => {\n return {\n associationId: association.associationId,\n associationType: 'Contact-Company',\n tags: [],\n associatedObject: association,\n } as Association;\n });\n\n const combinedData = [...associations, ...associatedObjects];\n const existingAssociationsCombined = [...existing, ...associatedObjects];\n this.preSelectedRows$$.next(existingAssociationsCombined);\n const dataWithChanges = combineAssociationsWithChanges(combinedData, changed);\n\n return dataWithChanges\n .filter((association, index, array) => {\n return (\n !!association.associatedObject &&\n array.findIndex((a) => a.associationId === association.associationId) === index\n );\n })\n .map((association) => {\n if (!association.associatedObject) {\n return {} as CompanyToContactAssociationsCardData;\n }\n const fullName = this.contactCustomizationService.getRowFullName(association.associatedObject || {});\n\n const phoneParsed = parsePhoneNumber(\n this.fieldService.getFieldValueFromCrmObject(\n association.associatedObject,\n StandardExternalIds.PhoneNumber,\n )?.stringValue || '',\n );\n\n const data = {\n associationId: association.associationId,\n companyName: this.data.name || this.translateService.instant('COMPANY.DEFAULT_NAME'),\n type: 'user',\n userName: fullName,\n tags: (association.tags || []).filter((tag) => tag !== 'Primary'),\n phone: formatAsReadonlyPhone(phoneParsed),\n email: this.fieldService.getFieldValueFromCrmObject(\n association.associatedObject,\n StandardExternalIds.Email,\n )?.stringValue,\n jobTitle: this.fieldService.getFieldValueFromCrmObject(\n association.associatedObject,\n StandardIds.ContactJobTitle,\n )?.stringValue,\n linkedInUrl: this.fieldService.getFieldValueFromCrmObject(\n association.associatedObject,\n StandardIds.ContactLinkedInURL,\n )?.stringValue,\n id: association.associatedObject.crmObjectId || '',\n profileButtonUrl:\n `${routePrefix}/${PAGE_ROUTES.CONTACT.ROOT}/${PAGE_ROUTES.CONTACT.SUBROUTES.PROFILE}`.replace(\n ':crmObjectId',\n association.associatedObject.crmObjectId || '',\n ),\n } as CompanyToContactAssociationsCardData;\n return data;\n });\n }),\n );\n\n this.contacts$ = combineLatest([latestContacts$, this.removedAssociationIds$$.asObservable()]).pipe(\n map(([contacts, removed]) => {\n return contacts.filter((contact) => {\n return !removed.includes(contact.associationId);\n });\n }),\n );\n\n this.modalData$ = combineLatest([this.fullName$, this.preSelectedRows$$, this.newContact$$]).pipe(\n map(([objectIdAndName, associations, newContact]) => ({\n modalTitle: objectIdAndName,\n primarySelect: '',\n description: '',\n selectedRows: [],\n selectedCompanyNames: [],\n fromId: '',\n copyCrmObjects: [],\n associationType: '',\n associations: associations,\n newSelection: newContact,\n })),\n );\n }\n\n ngOnInit() {\n this.openCreateContactModal$\n .pipe(\n switchMap((shouldOpen) => {\n if (shouldOpen) {\n return this.dialog\n .open(CrmCreateModalContactComponent, {\n width: '500px',\n })\n .afterClosed();\n }\n return of(null);\n }),\n )\n .subscribe((contact) => {\n if (contact) {\n this.newContact$$.next(contact.crmObjectId);\n }\n this.openModal();\n });\n }\n\n openModal(): void {\n if (this.canOpenModal) {\n return;\n }\n this.canOpenModal = true;\n this.modalData$\n .pipe(\n take(1),\n tap(() => {\n this.canOpenModal = false;\n }),\n switchMap((data) => {\n const dialogRef = this.dialog.open(SelectObjectTypeModalComponent, {\n data: {\n baseColumnIds: [],\n objectType: 'Contact',\n modalTitle: this.translateService.instant('ASSOCIATIONS.MODAL.TITLE_COMPANY_MODAL', {\n companyName: data.modalTitle,\n }),\n associations: data.associations,\n associationType: 'Contact-Company',\n newSelection: data.newSelection,\n hideCreateButton: true,\n } as ListObjectTypeDialogData,\n injector: Injector.create({\n providers: [\n {\n provide: PageAnalyticsInjectionToken,\n useFactory: pageAnalyticsInjectionTokenGenerator('Contact'),\n },\n {\n provide: GalaxyFilterChipInjectionToken,\n useFactory: tableFiltersInjectionTokenGenerator('Contact'),\n },\n ],\n parent: this.injector,\n }),\n });\n return dialogRef.afterClosed();\n }),\n tap((modalResponse) => {\n if (modalResponse?.clickedCreate === true) {\n this.openCreateContactModal$$.next(true);\n }\n }),\n map((modalResponse) => {\n let selectedRows = modalResponse?.selectedRows || [];\n if (modalResponse?.clickedCreate === true) {\n selectedRows = new Array();\n }\n return selectedRows;\n }),\n filter((selectedRows) => !!selectedRows),\n switchMap((selectedRows: Row[]) => {\n const selectedContactsIDs = selectedRows.map((row) => {\n return row.id;\n });\n return this.objectService.getMultiObject('Contact', selectedContactsIDs).pipe(\n map((resp) => {\n const copyCrmObjects = resp.crmObjects?.map((object) => object);\n return {\n copyCrmObjects,\n objects: resp.crmObjects?.map((object) => {\n return {\n id: object?.crmObjectId,\n name: this.contactCustomizationService.getRowFullName(object || {}),\n };\n }),\n };\n }),\n );\n }),\n tap((selectedObjects) => {\n const updatedObjects = {\n crmObjects: selectedObjects.copyCrmObjects || [],\n objects: selectedObjects.objects || [],\n };\n this.associationService.setCopyCrmObjects(updatedObjects);\n }),\n mergeMap((): Observable => {\n return this.crmAssociationService.createAssociation$('Contact-Company', ['Primary'], true);\n }),\n )\n\n .subscribe((copyCrmObjects) => {\n if (copyCrmObjects.respCount.error) {\n this.snackService.openSuccessSnack('ASSOCIATIONS.SUCCESS.PARTIAL_SUCCESS', {\n duration: SNACKBAR_DURATION,\n interpolateTranslateParams: {\n createdCount: copyCrmObjects.respCount.createdCount,\n totalCount: copyCrmObjects.respCount.totalCount,\n },\n });\n } else {\n this.snackService.openSuccessSnack('ASSOCIATIONS.SUCCESS.GENERIC', {\n duration: SNACKBAR_DURATION,\n });\n }\n this.loadAssociations$$.next(copyCrmObjects.copyCrmObjectsUpdated);\n });\n }\n\n removeAssociation(cardData: CompanyToContactAssociationsCardData) {\n return this.dialog\n .open(RemoveAssociationDialogComponent, {\n width: '660px',\n data: {\n associationID: cardData.associationId,\n fromName: cardData.companyName,\n removeName: cardData.userName,\n } as RemoveAssociationData,\n })\n .afterClosed()\n .pipe(\n take(1),\n tap((success) => {\n if (success) {\n this.associationService.removeAssociation(cardData.associationId);\n this.removedAssociationIds$$.next([...this.removedAssociationIds$$.value, cardData.associationId]);\n this.preSelectedRows$$.next(\n this.preSelectedRows$$.getValue().filter((row) => row.associationId !== cardData.associationId),\n );\n }\n }),\n )\n .subscribe();\n }\n\n editTags(cardData: CompanyToContactAssociationsCardData) {\n return this.defaultAssociationActionsService\n .editTagsAction(cardData)\n .pipe(\n take(1),\n tap((edited) => {\n if (edited === null) {\n return;\n }\n this.changedAssociations$$.next([edited]);\n }),\n )\n .subscribe();\n }\n\n campaignAction = [\n {\n label: this.translateService.instant('ASSOCIATIONS.CAMPAIGNS.ADD_TO_CAMPAIGN'),\n callback: (data: CardData) => {\n this.openCampaignDialog(data.id || '');\n },\n } as CardAction,\n ];\n\n openCampaignDialog(id: string): void {\n this.dialog.open(AddCampaignDialogComponent, {\n width: '500px',\n data: {\n id: id,\n },\n });\n }\n\n showMore(): void {\n this.visibleContactsCount$$.next(this.visibleContactsCount$$.value + this.pageSize);\n }\n}\n","\n \n {{ 'ASSOCIATIONS.CONTACT.TITLE' | translate }}\n \n \n \n \n \n \n \n {{ contact.jobTitle }}\n \n \n \n \n \n \n \n {{ contact.phone }}\n \n \n \n \n \n \n \n \n {{ contact.linkedInUrl }}\n \n \n \n \n 0\">\n \n \n \n \n \n \n \n\n","import { CommonModule } from '@angular/common';\nimport { Component, Inject, inject, Injector } from '@angular/core';\nimport { MatButtonModule } from '@angular/material/button';\nimport { MatDialog, MatDialogModule } from '@angular/material/dialog';\nimport { MatExpansionModule } from '@angular/material/expansion';\nimport { MatIconModule } from '@angular/material/icon';\nimport { TranslateService } from '@ngx-translate/core';\nimport { ContactInfoCardComponent } from '@vendasta/galaxy/contact-info-card';\nimport { Row } from '@vendasta/galaxy/table';\nimport { BehaviorSubject, combineLatest, Observable } from 'rxjs';\nimport { filter, map, mergeMap, switchMap, take, tap } from 'rxjs/operators';\n\nimport { MatMenuModule } from '@angular/material/menu';\nimport { MatTooltipModule } from '@angular/material/tooltip';\nimport { GalaxyFilterChipInjectionToken } from '@vendasta/galaxy/filter/chips';\nimport { SnackbarService } from '@vendasta/galaxy/snackbar-service';\nimport {\n CrmInjectionToken,\n CrmDependencies,\n CardData,\n PageAnalyticsInjectionToken,\n pageAnalyticsInjectionTokenGenerator,\n tableFiltersInjectionTokenGenerator,\n CONTACT_PROFILE_CARD_DATA_TOKEN,\n} from '../../../tokens-and-interfaces';\nimport { PAGE_ROUTES, SNACKBAR_DURATION } from '../../../constants';\nimport { TranslationModule } from '../../../i18n/translation-module';\nimport {\n CrmAssociationService,\n Association,\n} from '../../../shared-services/crm-services/crm-object-service/crm-association.service';\nimport { AssociationCardComponent, TagsComponent } from '../association-card';\nimport {\n CrmFieldService,\n CrmObjectService,\n ContactTableCustomizationService,\n CompanyTableCustomizationService,\n DefaultAssociationActionsService,\n StandardIds,\n combineAssociationsWithChanges,\n SystemFieldIds,\n} from '../../../shared-services';\nimport { AssociationsDialogData } from '../select-associations-modal/select-associations-modal.component';\nimport {\n SelectObjectTypeModalComponent,\n ListObjectTypeDialogData,\n} from '../../select-object-type-modal/select-object-type-modal.component';\nimport { CommonAssociationCardContentComponent } from '../association-card/common-associaon-card-content/common-association-card-content.component';\nimport {\n RemoveAssociationDialogComponent,\n RemoveAssociationData,\n} from '../remove-association-dialog/remove-association-dialog.component';\nimport { SelectAssociationsModalComponent } from '../select-associations-modal/select-associations-modal.component';\n\ninterface ContactToCompanyAssociationsCardData extends CardData {\n associationId: string;\n contactName: string;\n}\n\n@Component({\n selector: 'crm-contact-to-company-associations-card',\n standalone: true,\n imports: [\n CommonModule,\n TranslationModule,\n MatExpansionModule,\n AssociationCardComponent,\n ContactInfoCardComponent,\n CommonAssociationCardContentComponent,\n TagsComponent,\n MatButtonModule,\n MatIconModule,\n MatIconModule,\n MatTooltipModule,\n MatButtonModule,\n MatMenuModule,\n MatDialogModule,\n ],\n providers: [\n {\n provide: PageAnalyticsInjectionToken,\n useFactory: pageAnalyticsInjectionTokenGenerator('Contact'),\n },\n ],\n templateUrl: './contact-to-company-associations-card.component.html',\n styleUrls: [\n './contact-to-company-associations-card.component.scss',\n '../../../shared-styles/association-panel-shared.scss',\n ],\n})\nexport class ContactToCompanyAssociationsCardComponent {\n data = inject(CONTACT_PROFILE_CARD_DATA_TOKEN);\n getAssociations$: Observable;\n loadAssociations$$ = new BehaviorSubject([]);\n preSelectedRows$$ = new BehaviorSubject([]);\n fullName$: Observable;\n modalData$: Observable;\n canOpenModal = false;\n companies$: Observable;\n removedAssociationIds$$ = new BehaviorSubject([]);\n hasAssociation = false;\n existingAssociations$: Observable;\n changedAssociations$$ = new BehaviorSubject([]);\n\n private readonly injector = inject(Injector);\n\n constructor(\n @Inject(CrmInjectionToken) private readonly config: CrmDependencies,\n private readonly objectService: CrmObjectService,\n private readonly fieldService: CrmFieldService,\n private readonly associationService: CrmAssociationService,\n private readonly dialog: MatDialog,\n private translateService: TranslateService,\n private readonly contactCustomizationService: ContactTableCustomizationService,\n private readonly companyCustomizationService: CompanyTableCustomizationService,\n private readonly crmAssociationService: CrmAssociationService,\n private readonly snackService: SnackbarService,\n private readonly defaultAssociationActionsService: DefaultAssociationActionsService,\n ) {\n this.associationService.setCrmObjectIdToAssociate(this.data?.id || '');\n this.fullName$ = objectService.getMultiObject('Contact', [this.data.id || '']).pipe(\n map((resp) => {\n const object = resp?.crmObjects?.[0];\n if (resp?.crmObjects?.length === 0 || !object) {\n return '';\n }\n return this.contactCustomizationService.getRowFullName(object || {});\n }),\n );\n\n this.getAssociations$ = this.associationService.getCompanyAssociationsForContact$(this.data.id || '');\n this.existingAssociations$ = this.associationService.getRemainingCompanyAssociationsForContacts$(\n this.data.id || '',\n );\n\n const latestCompanies$ = this.loadAssociations$$.pipe(\n switchMap(() =>\n combineLatest([\n this.getAssociations$,\n this.config.routePrefix$,\n this.loadAssociations$$,\n this.existingAssociations$,\n this.changedAssociations$$,\n ]),\n ),\n tap(() => {\n this.removedAssociationIds$$.next([]);\n }),\n map(([associations, routePrefix, copyCrmObject, existing, changed]) => {\n const associatedObjects = copyCrmObject.map((association) => {\n return {\n associationId: association.associationId,\n associationType: 'Contact-Company',\n tags: association.tags || [],\n associatedObject: association,\n } as Association;\n });\n\n const combinedData = [...associations, ...associatedObjects];\n const existingAssociationsCombined = [...existing, ...associatedObjects];\n this.preSelectedRows$$.next(existingAssociationsCombined);\n const dataWithChanges = combineAssociationsWithChanges(combinedData, changed);\n\n return dataWithChanges\n .filter((association, index, array) => {\n return (\n !!association.associatedObject &&\n array.findIndex((a) => a.associationId === association.associationId) === index\n );\n })\n .map((association) => {\n if (!association.associatedObject) {\n return {} as ContactToCompanyAssociationsCardData;\n }\n const data = {\n associationId: association.associationId,\n contactName: this.data.name || '',\n type: 'business',\n tags: association.tags || [],\n id:\n this.fieldService.getFieldValueFromCrmObject(association.associatedObject, SystemFieldIds.CompanyID)\n ?.stringValue || '',\n businessName:\n this.fieldService.getFieldValueFromCrmObject(association.associatedObject, StandardIds.CompanyName)\n ?.stringValue || '',\n businessAddress: {\n address1: this.fieldService.getFieldValueFromCrmObject(\n association.associatedObject,\n StandardIds.CompanyPrimaryAddressLine1,\n )?.stringValue,\n address2: this.fieldService.getFieldValueFromCrmObject(\n association.associatedObject,\n StandardIds.CompanyPrimaryAddressLine2,\n )?.stringValue,\n city: this.fieldService.getFieldValueFromCrmObject(\n association.associatedObject,\n StandardIds.CompanyPrimaryAddressCity,\n )?.stringValue,\n state: this.fieldService.getFieldValueFromCrmObject(\n association.associatedObject,\n StandardIds.CompanyPrimaryAddressState,\n )?.stringValue,\n country: this.fieldService.getFieldValueFromCrmObject(\n association.associatedObject,\n StandardIds.CompanyPrimaryAddressCountry,\n )?.stringValue,\n zip: this.fieldService.getFieldValueFromCrmObject(\n association.associatedObject,\n StandardIds.CompanyPrimaryAddressPostalCode,\n )?.stringValue,\n },\n businessWebsite: this.fieldService.getFieldValueFromCrmObject(\n association.associatedObject,\n StandardIds.CompanyWebsite,\n )?.stringValue,\n phone: this.fieldService.getFieldValueFromCrmObject(\n association.associatedObject,\n StandardIds.CompanyPhoneNumber,\n )?.stringValue,\n profileButtonUrl:\n `${routePrefix}/${PAGE_ROUTES.COMPANY.ROOT}/${PAGE_ROUTES.COMPANY.SUBROUTES.PROFILE}`.replace(\n ':crmObjectId',\n association.associatedObject.crmObjectId || '',\n ),\n } as ContactToCompanyAssociationsCardData;\n return data;\n });\n }),\n );\n\n this.companies$ = combineLatest([latestCompanies$, this.removedAssociationIds$$.asObservable()]).pipe(\n map(([companies, removed]) => {\n this.hasAssociation = companies.length === removed.length ? false : true;\n return companies.filter((company) => {\n return !removed.includes(company.associationId);\n });\n }),\n );\n\n this.modalData$ = combineLatest([this.fullName$, this.preSelectedRows$$]).pipe(\n map(([fullName, preSelectedRows]) => {\n return {\n modalTitle: fullName,\n primarySelect: '',\n description: '',\n selectedRows: [],\n associationType: '',\n associations: preSelectedRows,\n newSelection: '',\n };\n }),\n );\n }\n\n openModal(): void {\n if (this.canOpenModal) {\n return;\n }\n this.canOpenModal = true;\n this.modalData$\n .pipe(\n take(1),\n tap(() => {\n this.canOpenModal = false;\n }),\n switchMap((data) => {\n const dialogRef = this.dialog.open(SelectObjectTypeModalComponent, {\n data: {\n baseColumnIds: [],\n objectType: 'Company',\n modalTitle: this.translateService.instant('ASSOCIATIONS.MODAL.TITLE_CONTACT_MODAL', {\n contactFullName: data.modalTitle,\n }),\n associations: data.associations,\n associationType: 'Contact-Company',\n hideCreateButton: true,\n newSelection: data.newSelection,\n } as ListObjectTypeDialogData,\n injector: Injector.create({\n providers: [\n {\n provide: PageAnalyticsInjectionToken,\n useFactory: pageAnalyticsInjectionTokenGenerator('Company'),\n },\n {\n provide: GalaxyFilterChipInjectionToken,\n useFactory: tableFiltersInjectionTokenGenerator('Company'),\n },\n ],\n parent: this.injector,\n }),\n });\n return dialogRef.afterClosed();\n }),\n map((result) => {\n return result?.selectedRows || new Array();\n }),\n filter((selectedRows) => !!selectedRows),\n switchMap((selectedRows: Row[]) => {\n const selectedCompaniesIDs = selectedRows.map((row) => {\n return row.id;\n });\n return this.objectService.getMultiObject('Company', selectedCompaniesIDs).pipe(\n map((resp) => {\n const copyCrmObjects = resp.crmObjects?.map((object) => object);\n return {\n copyCrmObjects,\n objects: resp.crmObjects?.map((object) => {\n return {\n id: object?.crmObjectId,\n name: this.companyCustomizationService.getRowFullName(object || {}),\n };\n }),\n };\n }),\n );\n }),\n tap((selectedObjects) => {\n const updatedObjects = {\n crmObjects: selectedObjects.copyCrmObjects || [],\n objects: selectedObjects.objects || [],\n };\n this.associationService.setCopyCrmObjects(updatedObjects);\n }),\n mergeMap((selectedObjects) => {\n if (this.hasAssociation) {\n return this.crmAssociationService.createContactCompanyAssociation$('Contact-Company');\n } else {\n const dialogRef = this.dialog.open(SelectAssociationsModalComponent, {\n data: {\n selectedRows: selectedObjects.objects,\n modalTitle: this.translateService.instant('ASSOCIATIONS.MODAL.TITLE_ASSOCIATION'),\n primarySelect: this.translateService.instant('ASSOCIATIONS.COMPANY_MODAL.PRIMARY_COMPANY'),\n description: this.translateService.instant('ASSOCIATIONS.COMPANY_MODAL.PRIMARY_DESCRIPTION'),\n associationType: 'Contact-Company',\n associations: [{}],\n } as AssociationsDialogData,\n injector: Injector.create({\n providers: [\n {\n provide: PageAnalyticsInjectionToken,\n useFactory: pageAnalyticsInjectionTokenGenerator('Company'),\n },\n {\n provide: GalaxyFilterChipInjectionToken,\n useFactory: tableFiltersInjectionTokenGenerator('Company'),\n },\n ],\n parent: this.injector,\n }),\n });\n return dialogRef.afterClosed();\n }\n }),\n )\n .subscribe((copyCrmObjects) => {\n if (copyCrmObjects.respCount.error) {\n this.snackService.openSuccessSnack('ASSOCIATIONS.SUCCESS.PARTIAL_SUCCESS', {\n duration: SNACKBAR_DURATION,\n interpolateTranslateParams: {\n createdCount: copyCrmObjects.respCount.createdCount,\n totalCount: copyCrmObjects.respCount.totalCount,\n },\n });\n } else {\n this.snackService.openSuccessSnack('ASSOCIATIONS.SUCCESS.GENERIC', {\n duration: SNACKBAR_DURATION,\n });\n }\n this.loadAssociations$$.next(copyCrmObjects.copyCrmObjectsUpdated);\n });\n }\n\n removeAssociation(cardData: ContactToCompanyAssociationsCardData) {\n return this.dialog\n .open(RemoveAssociationDialogComponent, {\n width: '660px',\n data: {\n associationID: cardData.associationId,\n fromName: cardData.contactName,\n removeName: cardData.businessName,\n } as RemoveAssociationData,\n })\n .afterClosed()\n .pipe(\n take(1),\n tap((success) => {\n if (success) {\n this.associationService.removeAssociation(cardData.associationId);\n this.removedAssociationIds$$.next([...this.removedAssociationIds$$.value, cardData.associationId]);\n this.preSelectedRows$$.next(\n this.preSelectedRows$$.getValue().filter((row) => row.associationId !== cardData.associationId),\n );\n }\n }),\n )\n .subscribe();\n }\n\n editTags(cardData: ContactToCompanyAssociationsCardData) {\n return this.defaultAssociationActionsService\n .editTagsAction(cardData)\n .pipe(\n take(1),\n tap((edited) => {\n if (edited === null) {\n return;\n }\n this.changedAssociations$$.next([edited]);\n }),\n )\n .subscribe();\n }\n}\n","\n \n {{ 'ASSOCIATIONS.COMPANY.TITLE' | translate }}\n \n \n \n \n 0\">\n \n \n \n \n \n \n\n","export * from './association-card';\nexport { CompanyCampaignsCardComponent } from './company-campaigns-associations-card/company-campaigns-card.component';\nexport { ContactCampaignsCardComponent } from './contact-campaign-association-card/contact-campaigns-card.component';\nexport { AddCampaignDialogComponent } from './contact-campaign-association-card/add-campaign-dialog/add-campaign-dialog.component';\nexport { EditAssociationDialogComponent } from './edit-association-dialog/edit-association-dialog.component';\nexport { EditAssociationTagsComponent } from './edit-association-tags/edit-association-tags.component';\nexport { ParentChildCompanyAssociationsCardComponent } from './parent-child-company-associations-card/parent-child-company-associations-card.component';\nexport * from './remove-association-dialog/remove-association-dialog.component';\nexport * from './select-associations-modal/select-associations-modal.component';\nexport * from './company-to-contact-associations-card/company-to-contact-associations-card.component';\nexport * from './contact-to-company-associations-card/contact-to-company-associations-card.component';\n","import { Component, signal, computed, WritableSignal } from '@angular/core';\nimport { switchMap } from 'rxjs/operators';\nimport { of } from 'rxjs';\nimport { CommonModule } from '@angular/common';\nimport { BlankValueComponent, CustomCellComponent } from '@vendasta/galaxy/table';\nimport { FieldValueInterface } from '@vendasta/crm';\nimport { takeUntilDestroyed, toObservable } from '@angular/core/rxjs-interop';\nimport { SystemFieldIds } from '../../../shared-services';\nimport { UserWithDisplayName } from '../../../tokens-and-interfaces';\nimport { ActivityAssigneeService } from '../../../shared-services';\n\nconst NO_VALUE_FOR_USER = '';\n\n@Component({\n template: `\n \n
\n {{ userName() }}\n
\n
\n \n
\n
\n \n \n \n `,\n standalone: true,\n imports: [CommonModule, BlankValueComponent],\n})\nexport class UserCellComponent extends CustomCellComponent {\n NO_VALUE_FOR_USER = NO_VALUE_FOR_USER;\n private fieldValues = signal([]);\n\n set value(newValues: FieldValueInterface[]) {\n this.fieldValues.set(newValues);\n }\n\n user: WritableSignal' | null> = signal(null);\n userName = computed(() => {\n const user = this.user();\n if (user === NO_VALUE_FOR_USER) {\n return '';\n }\n return user?.displayName ?? '';\n });\n\n constructor(private readonly userService: ActivityAssigneeService) {\n super();\n toObservable(this.fieldValues)\n .pipe(\n switchMap((fieldValues) => {\n const userId =\n fieldValues.find((fieldValue) => fieldValue?.fieldId === SystemFieldIds.ActivityOwnerID) ?? null;\n if (!userId || !userId?.stringValue) {\n return of(NO_VALUE_FOR_USER);\n }\n return this.userService.getMultiUsers([userId.stringValue]);\n }),\n takeUntilDestroyed(),\n )\n .subscribe((result) => {\n if (result === NO_VALUE_FOR_USER || !result.length) {\n this.user.set(NO_VALUE_FOR_USER);\n return;\n }\n const user = result[0] as UserWithDisplayName;\n if (!user?.userId) {\n this.user.set(NO_VALUE_FOR_USER);\n return;\n }\n this.user.set(user);\n });\n }\n}\n","import { CommonModule } from '@angular/common';\nimport { Component } from '@angular/core';\nimport { TranslateModule } from '@ngx-translate/core';\nimport { FieldValueInterface } from '@vendasta/crm';\nimport { GalaxyPipesModule } from '@vendasta/galaxy/pipes';\nimport { BlankValueComponent, CustomCellComponent } from '@vendasta/galaxy/table';\nimport { DateFormat } from '@vendasta/galaxy/utility/date-utils';\nimport { StandardIds } from '../../../shared-services';\nimport { ActivityTaskStatus } from '../../../tokens-and-interfaces';\n\n@Component({\n template: `\n \n
\n {{ date | glxyDate: dateFormat }}\n 0; else showInHours\">\n ({{ 'TASK.LIST_OBJECTS_TABLE.CUSTOM_COLUMNS.DAYS_OVERDUE' | translate: { amount: daysOverdue } }})\n \n ({{\n 'TASK.LIST_OBJECTS_TABLE.CUSTOM_COLUMNS.HOURS_OVERDUE' | translate: { amount: hoursOverdue }\n }})\n
\n \n {{ date | glxyDate: dateFormat }}\n \n
\n\n \n \n \n `,\n standalone: true,\n imports: [CommonModule, BlankValueComponent, GalaxyPipesModule, TranslateModule],\n styleUrls: ['./due-date.component.scss'],\n})\nexport class DueDateCellComponent extends CustomCellComponent {\n protected date: Date | undefined;\n protected isOverdue = false;\n protected daysOverdue = 0;\n protected hoursOverdue = 0;\n protected dateFormat = DateFormat.medium;\n private readonly milisecToHours = 3600000;\n\n set value(newValues: FieldValueInterface[]) {\n const dueDateField = newValues.filter(Boolean).find((field) => field?.fieldId === StandardIds.ActivityTaskDueDate);\n this.date = dueDateField?.dateValue || undefined;\n\n const statusField = newValues.filter(Boolean).find((field) => field?.fieldId === StandardIds.ActivityTaskStatus);\n const timeOverdue = this.getTimeOverdue(this.date);\n this.isOverdue = timeOverdue.isOverdue && statusField?.stringValue === ActivityTaskStatus.Open;\n this.daysOverdue = timeOverdue.days;\n this.hoursOverdue = timeOverdue.hours;\n }\n\n /*\n Check if a dueDate has passed and calculate the days and hours it is overdue by\n Something is overdue if the current time is at least an hour past the due date\n */\n private getTimeOverdue(dueDate?: Date): { days: number; hours: number; isOverdue: boolean } {\n if (!dueDate) {\n return { days: 0, hours: 0, isOverdue: false };\n }\n const todayHours = Date.now() / this.milisecToHours || 0;\n const dueDateHours = dueDate?.getTime() / this.milisecToHours || 0;\n if (todayHours === 0 || dueDateHours === 0) {\n return { days: 0, hours: 0, isOverdue: false };\n }\n const hoursOverdue = todayHours - dueDateHours;\n return {\n days: Math.floor(hoursOverdue / 24),\n hours: Math.floor(hoursOverdue),\n isOverdue: Math.floor(hoursOverdue) > 0,\n };\n }\n\n constructor() {\n super();\n }\n}\n","export { TaskStatusCellComponent } from './task-status/task-status.component';\nexport { PrimaryCompanyNameComponent } from './primary-company-name.component';\nexport { ParentCompanyNameComponent } from './parent-company-name.component';\nexport { UserCellComponent } from './user/user.component';\nexport { DueDateCellComponent } from './due-date/due-date.component';\n","export * from './list-objects-page.component';\nexport * from './list-objects-table.service';\nexport * from './list-objects-table.component';\nexport * from './directives/content.directive';\nexport * from './directives/page-actions.directive';\nexport * from './delete-modal/delete-modal.component';\n","import { Directive, ElementRef, EventEmitter, HostListener, Output } from '@angular/core';\n\n/*\n For an wrapper, you'll also want to use CdkObserveContent.\n But directive composition only supports standalone directives, so we can't combine CdkObserveContent here\n\n See: https://material.angular.io/cdk/observers/api\n*/\n\n@Directive({\n selector: '[crmOnResize]',\n standalone: true,\n})\nexport class OnResizeDirective {\n @HostListener('window:resize')\n onWindowResize() {\n this.resizeDetected.emit();\n }\n\n @Output() resizeDetected = new EventEmitter();\n resizeObserver!: ResizeObserver;\n\n constructor(private element: ElementRef) {\n if (window.ResizeObserver) {\n this.resizeObserver = new ResizeObserver(() => {\n this.resizeDetected.emit();\n });\n this.resizeObserver.observe(this.element.nativeElement);\n }\n }\n}\n","import { CommonModule } from '@angular/common';\nimport { Component, ElementRef, Input, ViewChild, signal } from '@angular/core';\nimport { TranslateModule } from '@ngx-translate/core';\nimport { TranslationModule } from '../../i18n/translation-module';\nimport { OnResizeDirective } from './on-resize.directive';\nimport { ObserversModule } from '@angular/cdk/observers';\n\n@Component({\n selector: 'crm-collapsible-section',\n template: `\n
\n \n \n
\n \n \n \n {{ (collapsed() ? 'COLLAPSIBLE_SECTION.VIEW_MORE' : 'COLLAPSIBLE_SECTION.VIEW_LESS') | translate }}\n

\n `,\n styleUrls: ['./collapsible-section.component.scss'],\n imports: [CommonModule, TranslateModule, TranslationModule, ObserversModule, OnResizeDirective],\n standalone: true,\n})\nexport class CollapsibleSectionComponent {\n @ViewChild('collapsibleContentContainer') collapsibleContentContainer!: ElementRef;\n\n @Input() maxHeightPx = 300;\n @Input() showBorderWhenCollapsed = false;\n\n // collapsed must be set initially for overflow to be detected otherwise the max-height won't be set\n collapsed = signal(true);\n collapsible = signal(false);\n\n toggleCollapsed() {\n this.collapsed.update((value) => !value);\n }\n\n checkForOverflow() {\n // collapsible if\n // - scrollable content is higher than the visible content\n // - content is larger than the maximum height\n const element = this.collapsibleContentContainer.nativeElement;\n const isOverflow = element.scrollHeight > element.offsetHeight || element.offsetHeight > this.maxHeightPx;\n this.collapsible.set(isOverflow);\n }\n}\n","import { CommonModule } from '@angular/common';\nimport { Component, Input } from '@angular/core';\nimport { GalaxyAvatarModule } from '@vendasta/galaxy/avatar';\nimport { AVATAR_WIDTH } from '../../constants';\n\n// We should switch to using the GalaxyAvatarModule in the future if it gets an option for this.\n\n@Component({\n selector: 'crm-unknown-user-avatar',\n template: `\n \n \n `,\n providers: [],\n imports: [CommonModule, GalaxyAvatarModule],\n standalone: true,\n})\nexport class CrmUnknownUserAvatarComponent {\n @Input() width: number = AVATAR_WIDTH;\n}\n","export function getActivityUrl(activityUrl: string | undefined): string | null {\n if (!activityUrl) {\n return null;\n }\n\n let urlToCheck = activityUrl;\n if (activityUrl.startsWith('www.')) {\n urlToCheck = 'https://' + activityUrl;\n }\n\n try {\n const url = new URL(urlToCheck);\n if (url.host) {\n return url.toString();\n }\n } catch (e) {\n // ignore\n }\n\n const angularAuxiliaryPathPattern = /\\([a-zA-Z0-9]+:[a-zA-Z0-9/-]+\\)/;\n if (angularAuxiliaryPathPattern.test(activityUrl)) {\n const currentUrl = window.location.protocol + '//' + window.location.host + window.location.pathname;\n return currentUrl + activityUrl;\n }\n\n const host = window.location.protocol + '//' + window.location.host;\n return host + activityUrl;\n}\n","import { TranslateModule } from '@ngx-translate/core';\nimport { AVATAR_WIDTH } from '../../../constants';\nimport { TranslationModule } from '../../../i18n/translation-module';\nimport { CollapsibleSectionComponent } from '../../collapsible-section/collapsible-section.component';\nimport { ActivityInterface } from '@vendasta/crm';\nimport { CommonModule } from '@angular/common';\nimport { Component, Input } from '@angular/core';\nimport { CrmFieldService, StandardIds, SystemFieldIds } from '../../../shared-services/crm-services/field.service';\nimport { MatCardModule } from '@angular/material/card';\nimport { DateFormat } from '@vendasta/galaxy/utility/date-utils';\nimport { GalaxyAvatarModule } from '@vendasta/galaxy/avatar';\nimport { CrmUnknownUserAvatarComponent } from '../../unknown-user-avatar/unknown-user-avatar.component';\nimport { getActivityUrl } from './activity-url-builder';\n\n@Component({\n selector: 'crm-activity-communication',\n templateUrl: './activity-communication.component.html',\n styleUrls: ['./activity-communication.component.scss'],\n imports: [\n CommonModule,\n TranslateModule,\n TranslationModule,\n CollapsibleSectionComponent,\n MatCardModule,\n GalaxyAvatarModule,\n CrmUnknownUserAvatarComponent,\n ],\n standalone: true,\n})\nexport class CrmActivityCommunicationComponent {\n @Input() set activity(activity: ActivityInterface) {\n this.setActivityData(activity);\n }\n\n @Input() showAvatar = true;\n\n readonly AVATAR_WIDTH = AVATAR_WIDTH;\n readonly dateFormat = DateFormat.medium;\n\n sourceName = '';\n body = '';\n effectiveDate?: Date;\n activityUrl: string | null = null;\n activityUrlName = '';\n\n constructor(private readonly fieldService: CrmFieldService) {}\n\n private setActivityData(activity: ActivityInterface): void {\n this.body = this.getStringFieldData(activity, StandardIds.ActivityCommunicationBody);\n this.effectiveDate = this.fieldService.getFieldValueFromCrmObject(\n activity,\n SystemFieldIds.ActivityEffectiveDate,\n )?.dateValue;\n this.sourceName = this.getStringFieldData(activity, StandardIds.ActivitySourceName);\n this.activityUrl = getActivityUrl(this.getStringFieldData(activity, StandardIds.ActivityUrl));\n this.activityUrlName = this.getStringFieldData(activity, StandardIds.ActivityUrlName) ?? '';\n }\n\n private getStringFieldData(activity: ActivityInterface, fieldId: string): string {\n return this.fieldService.getFieldValueFromCrmObject(activity, fieldId)?.stringValue ?? '';\n }\n}\n","\n \n
\n \n
\n \n {{ 'ACTIVITY.COMMUNICATION.CONVERSATION_CREATED' | translate }} {{ sourceName }}\n \n \n

\n {{ effectiveDate | date : dateFormat }}\n

\n
\n
\n \n
\n \n

{{ body }}

\n
\n
\n \n
\n
\n","import { BadgeColor } from '@vendasta/galaxy/badge';\n\nexport const DefaultChipStyling = {\n selectedChipColor: 'blue' as BadgeColor,\n unselectedChipColor: 'grey' as BadgeColor,\n};\n","import { ChangeDetectionStrategy, Component, Input, computed, signal } from '@angular/core';\nimport { MatIconModule } from '@angular/material/icon';\nimport { GalaxyBadgeModule } from '@vendasta/galaxy/badge';\nimport { coerceBooleanProperty } from '@angular/cdk/coercion';\nimport { DefaultChipStyling } from './interfaces';\nimport { MatRippleModule } from '@angular/material/core';\nimport { CommonModule } from '@angular/common';\nimport { TranslateModule } from '@ngx-translate/core';\n\ntype ComponentSize = 'default' | 'large';\nconst SelectedChipIcon = 'done';\n\n@Component({\n selector: 'crm-chip',\n templateUrl: './chip.component.html',\n styleUrls: ['./chip.component.scss'],\n standalone: true,\n imports: [CommonModule, GalaxyBadgeModule, MatIconModule, MatRippleModule, TranslateModule],\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class ChipComponent {\n private readonly _icon = signal(undefined);\n private readonly _selected = signal(false);\n private readonly _hideLabelWhenSelected = signal(false);\n\n @Input({ transform: coerceBooleanProperty })\n set hideLabelWhenSelected(value: boolean) {\n this._hideLabelWhenSelected.set(value);\n }\n @Input()\n set icon(value: string | undefined) {\n this._icon.set(value);\n }\n get icon(): string | undefined {\n return this._icon();\n }\n @Input({ required: true }) label = '';\n @Input({ transform: coerceBooleanProperty })\n set selected(value: boolean) {\n this._selected.set(value);\n }\n get selected(): boolean {\n return this._selected();\n }\n @Input() size: ComponentSize = 'default';\n\n protected readonly color = computed(() => {\n return this._selected() ? DefaultChipStyling.selectedChipColor! : DefaultChipStyling.unselectedChipColor!;\n });\n protected readonly chipIcon = computed(() => {\n if (this._selected() && !this._hideLabelWhenSelected()) {\n return SelectedChipIcon;\n }\n return this._icon();\n });\n\n protected readonly hideLabel = computed(() => {\n if (!this._icon()) {\n return false;\n }\n if (this._selected()) {\n return false;\n }\n return this._hideLabelWhenSelected() || false;\n });\n}\n","\n \n \n {{ chipIcon }}\n \n \n {{ label | translate }}\n \n\n","import { ChangeDetectionStrategy, Component, EventEmitter, HostListener, Input, Output } from '@angular/core';\nimport { ChipComponent } from '../chip/chip.component';\nimport { CommonModule } from '@angular/common';\nimport { ChipListItem } from './interfaces';\nimport { coerceBooleanProperty } from '@angular/cdk/coercion';\n\ntype ComponentSize = 'default' | 'large';\n\n@Component({\n selector: 'crm-chip-list',\n templateUrl: './chip-list.component.html',\n styleUrls: ['./chip-list.component.scss'],\n standalone: true,\n imports: [ChipComponent, CommonModule],\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class ChipListComponent {\n @Input({ transform: coerceBooleanProperty }) hideLabelWhenSelected = false;\n\n @Input({ required: true }) items: ChipListItem[] = [];\n\n @Input() selected?: T;\n @Output() selectedChange = new EventEmitter();\n\n @Input() size: ComponentSize = 'default';\n\n @HostListener('focusin') onFocusIn(): void {\n this.captureFocus = true;\n this.focusedIndex = this.items?.findIndex((item) => item.value === this.selected) ?? -1;\n }\n @HostListener('focusout') onFocusOut(): void {\n this.captureFocus = false;\n this.focusedIndex = -1;\n }\n\n protected focusedIndex = -1;\n protected captureFocus = false;\n\n protected handleChipClick(value: T): void {\n this.setSelected(value);\n }\n\n protected handleKeyDown(event: KeyboardEvent): void {\n switch (event.code) {\n case 'ArrowLeft':\n if (--this.focusedIndex < 0) {\n this.focusedIndex = this.items.length - 1;\n }\n break;\n case 'ArrowRight':\n if (++this.focusedIndex >= this.items.length) {\n this.focusedIndex = 0;\n }\n break;\n case 'Enter':\n case 'Space':\n this.setSelected(this.items?.[this.focusedIndex]?.value);\n if (event.target instanceof HTMLElement) {\n if (event.target?.nextElementSibling instanceof HTMLElement) {\n event.target.nextElementSibling.focus();\n }\n }\n break;\n default:\n return;\n }\n event.preventDefault();\n }\n\n protected setSelected(value: T): void {\n if (this.selected === value) {\n return;\n }\n this.selected = value;\n this.selectedChange.emit(value);\n }\n}\n","\n
\n
\n \n
\n \n\n","export { ChipListComponent } from './chip-list.component';\nexport { ChipListItem } from './interfaces';\n","import { Inject, Injectable } from '@angular/core';\nimport { ActivityAssociationInterface, ActivityInterface, FieldValueInterface } from '@vendasta/crm';\nimport { IAMService, UserIdentifier } from '@vendasta/iamv2';\nimport { Observable, of } from 'rxjs';\nimport { distinctUntilChanged, map, shareReplay, switchMap } from 'rxjs/operators';\nimport { UserWithFullName } from './logger/interfaces';\nimport { CrmInjectionToken, ActivityType, CrmDependencies } from '../../../tokens-and-interfaces';\nimport { ActivityService } from '../../../shared-services';\n\n@Injectable()\nexport class ActivityLoggerService {\n user$ = new Observable();\n\n constructor(\n @Inject(CrmInjectionToken) private readonly config: CrmDependencies,\n private activityService: ActivityService,\n private readonly iamService: IAMService,\n ) {\n this.user$ = this.config.currentUserId$.pipe(\n distinctUntilChanged(),\n switchMap((currentUserId) => {\n return this.iamService.getUser(new UserIdentifier({ userId: currentUserId }));\n }),\n map((user) => ({\n ...user,\n fullName: `${user.firstName} ${user.lastName}`.trim(),\n })),\n shareReplay(1),\n );\n }\n\n addActivity(\n activityType: ActivityType,\n fields: FieldValueInterface[],\n associations: ActivityAssociationInterface[],\n ownerId?: string,\n ): Observable {\n const cleanAssociations = associations.map((association) => ({\n crmObjectId: association.crmObjectId,\n crmObjectType: association.crmObjectType,\n }));\n const activity = {\n crmObjectSubtype: activityType,\n fields: fields,\n associations: cleanAssociations,\n ownerId: ownerId,\n } as ActivityInterface;\n\n return this.activityService.createActivity(activity);\n }\n\n getActivity(activityId: string): Observable {\n return this.activityService.getMultiActivities([activityId]).pipe(map((activities) => activities[0]));\n }\n\n updateActivity(\n activityId: string,\n activityType: ActivityType,\n fields: FieldValueInterface[],\n associations: ActivityAssociationInterface[],\n ownerId?: string,\n fieldMask?: string[],\n ): Observable {\n const cleanAssociations = [] as ActivityAssociationInterface[];\n associations.forEach((association) => {\n cleanAssociations.push({\n crmObjectId: association.crmObjectId,\n crmObjectType: association.crmObjectType,\n });\n });\n const activity = {\n crmObjectId: activityId,\n crmObjectSubtype: activityType,\n fields: fields,\n associations: cleanAssociations,\n // ownerId: ownerId,\n } as ActivityInterface;\n\n if (fieldMask?.length) {\n // Omit fields that are currently not supported by update endpoint\n if (fieldMask.includes('ownerId')) {\n fieldMask = fieldMask?.filter((path) => path !== 'ownerId');\n }\n }\n\n if (!fieldMask?.length) {\n return of(activityId);\n }\n\n return this.activityService.updateActivity(activity, { paths: fieldMask }).pipe(map(() => activityId));\n }\n}\n","export {};\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6W10sInNvdXJjZXMiOlsiaW50ZXJmYWNlcy50cyJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBGb3JtR3JvdXAsIEZvcm1Hcm91cERpcmVjdGl2ZSB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcbmltcG9ydCB7IEZpZWxkVmFsdWVJbnRlcmZhY2UgfSBmcm9tICdAdmVuZGFzdGEvY3JtJztcbmltcG9ydCB7IFVzZXIgfSBmcm9tICdAdmVuZGFzdGEvaWFtdjInO1xuaW1wb3J0IHsgT2JqZWN0VHlwZSwgT2JqZWN0QXNzb2NpYXRpb25UeXBlIH0gZnJvbSAnLi4vLi4vLi4vLi4vdG9rZW5zLWFuZC1pbnRlcmZhY2VzJztcblxuZXhwb3J0IGludGVyZmFjZSBMb2dnZXJDb21wb25lbnRJbnRlcmZhY2Uge1xuICByZWFkb25seSBmb3JtR3JvdXBEaXJlY3RpdmU6IEZvcm1Hcm91cERpcmVjdGl2ZTtcbiAgcmVhZG9ubHkgZm9ybUdyb3VwOiBGb3JtR3JvdXA7XG4gIHJlYWRvbmx5IG93bmVySWQ/OiBzdHJpbmc7XG4gIGdldFZhbHVlcygpOiBGaWVsZFZhbHVlSW50ZXJmYWNlW107XG4gIHZhbGlkYXRlKCk6IHZvaWQ7XG4gIHJlc2V0Rm9ybSgpOiB2b2lkO1xuICB1cGRhdGVWYWx1ZUFuZFZhbGlkaXR5KCk6IHZvaWQ7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgVXNlcldpdGhGdWxsTmFtZSBleHRlbmRzIFVzZXIge1xuICBmdWxsTmFtZTogc3RyaW5nO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIExvZ2dlckFzc29jaWF0aW9uIHtcbiAgbmFtZT86IHN0cmluZztcbiAgYXNzb2NpYXRpb25JbmZvPzogc3RyaW5nO1xuICBjcm1PYmplY3RUeXBlPzogT2JqZWN0VHlwZSB8IE9iamVjdEFzc29jaWF0aW9uVHlwZTtcbiAgY3JtT2JqZWN0SWQ/OiBzdHJpbmc7XG59XG4iXSwibWFwcGluZ3MiOiIiLCJpZ25vcmVMaXN0IjpbXX0=","import { Directive, Input } from '@angular/core';\n\ntype Placement = 'after-description' | 'fields';\n\n@Directive({\n selector: '[crmLoggerContent]',\n standalone: true,\n})\nexport class CrmLoggerContentDirective {\n @Input() set crmLoggerContent(value: Placement) {\n this.placement = value;\n }\n placement?: Placement;\n}\n","import { TextFieldModule } from '@angular/cdk/text-field';\nimport { CommonModule } from '@angular/common';\nimport { AfterViewInit, Component, ElementRef, Input, ViewChild, Output, EventEmitter } from '@angular/core';\nimport { FormBuilder, FormGroupDirective, ReactiveFormsModule } from '@angular/forms';\nimport { MatDatepickerModule } from '@angular/material/datepicker';\nimport { MatInputModule } from '@angular/material/input';\nimport { MatSelectModule } from '@angular/material/select';\nimport { TranslateModule } from '@ngx-translate/core';\nimport { ActivityInterface, FieldValueInterface } from '@vendasta/crm';\nimport { GalaxyFormFieldModule } from '@vendasta/galaxy/form-field';\nimport { format as formatDate } from 'date-fns-tz';\nimport { CrmFieldService, StandardIds } from '../../../../shared-services/crm-services/field.service';\nimport { TranslationModule } from '../../../../i18n/translation-module';\nimport { ActivityDirection, ActivityOutcome, CallStatus } from '../activity.interface';\nimport { CrmLoggerContentDirective } from './logger-content.directive';\nimport { LoggerComponentInterface } from './interfaces';\nimport { requiredFormGroupFieldsIf } from './validators';\nimport { coerceBooleanProperty } from '@angular/cdk/coercion';\nimport { takeUntilDestroyed } from '@angular/core/rxjs-interop';\nimport { distinctUntilChanged } from 'rxjs';\n\n@Component({\n selector: 'crm-activity-logger-call',\n templateUrl: './call.component.html',\n styleUrls: ['./shared.scss'],\n imports: [\n CommonModule,\n TranslateModule,\n TranslationModule,\n GalaxyFormFieldModule,\n MatSelectModule,\n MatDatepickerModule,\n MatInputModule,\n ReactiveFormsModule,\n TextFieldModule,\n CrmLoggerContentDirective,\n ],\n standalone: true,\n})\nexport class CrmActivityLoggerCallComponent implements LoggerComponentInterface, AfterViewInit {\n @Input() set activity(value: ActivityInterface | null) {\n this.setValues(value);\n }\n @Input({ transform: coerceBooleanProperty }) mobile: boolean | null = null;\n @Input()\n set description(value: string | null) {\n this.formGroup.patchValue({ loggedCallNote: value || '' }, { emitEvent: false });\n }\n @Output() descriptionChange = new EventEmitter();\n\n @ViewChild('form') formGroupDirective!: FormGroupDirective;\n @ViewChild('defaultInput') defaultInput?: ElementRef;\n\n protected showErrors = false;\n protected readonly ActivityDirection = ActivityDirection;\n protected readonly CallStatus = CallStatus;\n protected readonly ActivityOutcome = ActivityOutcome;\n protected readonly textRows = 6;\n\n formGroup = new FormBuilder().nonNullable.group(\n {\n loggedCallNote: '',\n loggedCallDirection: '',\n loggedCallDate: formatDate(new Date(), \"yyyy-MM-dd'T'HH:mm\"),\n loggedCallStatus: '',\n loggedCallOutcome: '',\n },\n {\n validators: requiredFormGroupFieldsIf(\n () => this.showErrors,\n ['loggedCallNote', 'loggedCallDirection', 'loggedCallDate'],\n ),\n },\n );\n\n constructor(private readonly fieldsService: CrmFieldService) {\n this.formGroup.controls.loggedCallNote.valueChanges\n .pipe(takeUntilDestroyed(), distinctUntilChanged())\n .subscribe((value) => this.descriptionChange.emit(value));\n }\n\n ngAfterViewInit(): void {\n this.defaultInput?.nativeElement?.focus();\n }\n\n validate(): void {\n this.showErrors = true;\n this.formGroup.markAllAsTouched();\n this.updateValueAndValidity();\n }\n\n updateValueAndValidity(): void {\n this.formGroup.updateValueAndValidity();\n }\n\n private setValues(activity: ActivityInterface | null): void {\n if (activity) {\n const callDate = this.fieldsService.getFieldValueFromCrmObject(activity, StandardIds.ActivityCallDate);\n const callBody = this.fieldsService.getFieldValueFromCrmObject(activity, StandardIds.ActivityCallBody);\n const callDirection = this.fieldsService.getFieldValueFromCrmObject(activity, StandardIds.ActivityCallDirection);\n const callStatus = this.fieldsService.getFieldValueFromCrmObject(activity, StandardIds.ActivityCallStatus);\n const callOutcome = this.fieldsService.getFieldValueFromCrmObject(activity, StandardIds.ActivityCallOutcome);\n\n this.formGroup.setValue({\n loggedCallNote: callBody?.stringValue || '',\n loggedCallDirection: callDirection?.stringValue || '',\n loggedCallDate: callDate?.dateValue ? formatDate(callDate.dateValue, \"yyyy-MM-dd'T'HH:mm\") : '',\n loggedCallStatus: callStatus?.stringValue || '',\n loggedCallOutcome: callOutcome?.stringValue || '',\n });\n } else if (this.formGroup.dirty) {\n this.resetForm();\n }\n }\n\n getValues(): FieldValueInterface[] {\n const formValues = this.formGroup.getRawValue();\n return [\n {\n fieldId: StandardIds.ActivityCallDate,\n dateValue: formValues.loggedCallDate ? new Date(formValues.loggedCallDate) : undefined,\n },\n {\n fieldId: StandardIds.ActivityCallBody,\n stringValue: formValues.loggedCallNote,\n },\n {\n fieldId: StandardIds.ActivityCallDirection,\n stringValue: formValues.loggedCallDirection,\n },\n {\n fieldId: StandardIds.ActivityCallStatus,\n stringValue: formValues.loggedCallStatus,\n },\n {\n fieldId: StandardIds.ActivityCallOutcome,\n stringValue: formValues.loggedCallOutcome,\n },\n ] as FieldValueInterface[];\n }\n\n resetForm(): void {\n this.showErrors = false;\n this.formGroup.reset({\n loggedCallNote: this.description || '',\n loggedCallDate: formatDate(new Date(), \"yyyy-MM-dd'T'HH:mm\"),\n });\n this.updateValueAndValidity();\n }\n}\n","
\n
\n \n \n \n \n \n {{ 'ACTIVITY_LOGGER.ERROR_REQUIRE_DESCRIPTION' | translate }}\n \n \n \n \n
\n \n
\n \n \n \n \n \n \n {{ 'ACTIVITY_LOGGER.ERROR_REQUIRE_CALL_DATE' | translate }}\n \n \n \n \n \n {{ 'ACTIVITY.OUTBOUND' | translate }}\n {{ 'ACTIVITY.INBOUND' | translate }}\n \n \n \n {{ 'ACTIVITY_LOGGER.ERROR_REQUIRE_CALL_DIRECTION' | translate }}\n \n \n \n \n \n \n \n {{ 'ACTIVITY.CALL.CONNECTED' | translate }}\n {{ 'ACTIVITY.CALL.BUSY' | translate }}\n {{ 'ACTIVITY.CALL.REJECTED' | translate }}\n \n {{ 'ACTIVITY.CALL.LEFT_VOICEMAIL' | translate }}\n \n {{ 'ACTIVITY.CALL.NO_ANSWER' | translate }}\n \n {{ 'ACTIVITY.CALL.NOT_IN_SERVICE' | translate }}\n \n \n {{ 'ACTIVITY.CALL.WRONG_NUMBER' | translate }}\n \n \n \n \n \n \n {{ 'ACTIVITY.OUTCOME_OPTIONS.NO_INTEREST' | translate }}\n \n \n {{ 'ACTIVITY.OUTCOME_OPTIONS.INTERESTED' | translate }}\n \n \n {{ 'ACTIVITY.OUTCOME_OPTIONS.QUALITY_CONNECT' | translate }}\n \n \n {{ 'ACTIVITY.OUTCOME_OPTIONS.DEMO_SCHEDULED' | translate }}\n \n \n {{ 'ACTIVITY.OUTCOME_OPTIONS.TIMELINE_6_12_MONTHS' | translate }}\n \n \n {{ 'ACTIVITY.OUTCOME_OPTIONS.RESCHEDULING' | translate }}\n \n \n {{ 'ACTIVITY.OUTCOME_OPTIONS.REFERRED_TO_ANOTHER_CONTACT' | translate }}\n \n \n \n \n \n
\n
\n","import { TextFieldModule } from '@angular/cdk/text-field';\nimport { CommonModule } from '@angular/common';\nimport { AfterViewInit, Component, ElementRef, EventEmitter, Input, Output, ViewChild } from '@angular/core';\nimport { FormBuilder, FormGroupDirective, ReactiveFormsModule } from '@angular/forms';\nimport { MatDatepickerModule } from '@angular/material/datepicker';\nimport { MatIconModule } from '@angular/material/icon';\nimport { MatInputModule } from '@angular/material/input';\nimport { MatSelectModule } from '@angular/material/select';\nimport { TranslateModule } from '@ngx-translate/core';\nimport { ActivityInterface, FieldValueInterface } from '@vendasta/crm';\nimport { GalaxyFormFieldModule } from '@vendasta/galaxy/form-field';\nimport { format as formatDate } from 'date-fns-tz';\nimport { CrmFieldService, StandardIds } from '../../../../shared-services';\nimport { TranslationModule } from '../../../../i18n/translation-module';\nimport { ActivityDirection } from '../activity.interface';\nimport { CrmLoggerContentDirective } from './logger-content.directive';\nimport { LoggerComponentInterface } from './interfaces';\nimport { requiredFormGroupFieldsIf } from './validators';\nimport { coerceBooleanProperty } from '@angular/cdk/coercion';\nimport { takeUntilDestroyed } from '@angular/core/rxjs-interop';\nimport { distinctUntilChanged } from 'rxjs';\n\n@Component({\n selector: 'crm-activity-logger-email',\n templateUrl: './email.component.html',\n styleUrls: ['./shared.scss'],\n imports: [\n CommonModule,\n TranslateModule,\n TranslationModule,\n MatIconModule,\n GalaxyFormFieldModule,\n MatSelectModule,\n MatDatepickerModule,\n MatInputModule,\n ReactiveFormsModule,\n TextFieldModule,\n CrmLoggerContentDirective,\n ],\n standalone: true,\n})\nexport class CrmActivityLoggerEmailComponent implements LoggerComponentInterface, AfterViewInit {\n @Input() set activity(value: ActivityInterface | null) {\n this.setValues(value);\n }\n @Input({ transform: coerceBooleanProperty }) mobile: boolean | null = null;\n @Input()\n set description(value: string | null) {\n this.formGroup.patchValue({ loggedEmailDescription: value || '' }, { emitEvent: false });\n }\n @Output() descriptionChange = new EventEmitter();\n\n @ViewChild('form') formGroupDirective!: FormGroupDirective;\n @ViewChild('defaultInput') defaultInput?: ElementRef;\n\n protected showErrors = false;\n protected readonly ActivityDirection = ActivityDirection;\n protected readonly textRows = 6;\n\n formGroup = new FormBuilder().nonNullable.group(\n {\n loggedEmailDescription: '',\n loggedEmailDirection: '',\n loggedEmailDate: formatDate(new Date(), \"yyyy-MM-dd'T'HH:mm\"),\n },\n {\n validators: requiredFormGroupFieldsIf(\n () => this.showErrors,\n ['loggedEmailDescription', 'loggedEmailDirection', 'loggedEmailDate'],\n ),\n },\n );\n\n constructor(private readonly fieldsService: CrmFieldService) {\n this.formGroup.controls.loggedEmailDescription.valueChanges\n .pipe(takeUntilDestroyed(), distinctUntilChanged())\n .subscribe((value) => this.descriptionChange.emit(value));\n }\n\n ngAfterViewInit(): void {\n this.defaultInput?.nativeElement?.focus();\n }\n\n validate(): void {\n this.showErrors = true;\n this.formGroup.markAllAsTouched();\n this.updateValueAndValidity();\n }\n\n updateValueAndValidity(): void {\n this.formGroup.updateValueAndValidity();\n }\n\n private setValues(activity: ActivityInterface | null): void {\n if (activity) {\n const emailDate = this.fieldsService.getFieldValueFromCrmObject(activity, StandardIds.ActivityEmailDate);\n const emailBody = this.fieldsService.getFieldValueFromCrmObject(activity, StandardIds.ActivityEmailBody);\n const emailDirection = this.fieldsService.getFieldValueFromCrmObject(\n activity,\n StandardIds.ActivityEmailDirection,\n );\n\n this.formGroup.setValue({\n loggedEmailDescription: emailBody?.stringValue || '',\n loggedEmailDirection: emailDirection?.stringValue || '',\n loggedEmailDate: emailDate?.dateValue ? formatDate(emailDate.dateValue, \"yyyy-MM-dd'T'HH:mm\") : '',\n });\n } else if (this.formGroup.dirty) {\n this.resetForm();\n }\n }\n\n getValues(): FieldValueInterface[] {\n const formValues = this.formGroup.getRawValue();\n return [\n {\n fieldId: StandardIds.ActivityEmailDate,\n dateValue: formValues.loggedEmailDate ? new Date(formValues.loggedEmailDate) : undefined,\n },\n {\n fieldId: StandardIds.ActivityEmailBody,\n stringValue: formValues.loggedEmailDescription,\n },\n {\n fieldId: StandardIds.ActivityEmailDirection,\n stringValue: formValues.loggedEmailDirection,\n },\n ] as FieldValueInterface[];\n }\n\n resetForm(): void {\n this.showErrors = false;\n this.formGroup.reset({\n loggedEmailDescription: this.description || '',\n loggedEmailDate: formatDate(new Date(), \"yyyy-MM-dd'T'HH:mm\"),\n });\n this.updateValueAndValidity();\n }\n}\n","
\n
\n \n \n \n \n \n {{ 'ACTIVITY_LOGGER.ERROR_REQUIRE_DESCRIPTION' | translate }}\n \n \n \n \n
\n \n
\n \n \n \n \n \n \n {{ 'ACTIVITY_LOGGER.ERROR_REQUIRE_EMAIL_DATE' | translate }}\n \n \n \n \n \n {{ 'ACTIVITY.OUTBOUND' | translate }}\n {{ 'ACTIVITY.INBOUND' | translate }}\n \n {{ 'ACTIVITY.FORWARDED' | translate }}\n \n \n \n \n {{ 'ACTIVITY_LOGGER.ERROR_REQUIRE_EMAIL_DIRECTION' | translate }}\n \n \n \n \n \n
\n
\n","import { TextFieldModule } from '@angular/cdk/text-field';\nimport { CommonModule } from '@angular/common';\nimport { AfterViewInit, Component, ElementRef, Input, ViewChild, Output, EventEmitter } from '@angular/core';\nimport { FormBuilder, FormGroupDirective, ReactiveFormsModule } from '@angular/forms';\nimport { MatInputModule } from '@angular/material/input';\nimport { TranslateModule } from '@ngx-translate/core';\nimport { ActivityInterface, FieldValueInterface } from '@vendasta/crm';\nimport { GalaxyFormFieldModule } from '@vendasta/galaxy/form-field';\nimport { CrmFieldService, StandardIds } from '../../../../shared-services/crm-services/field.service';\nimport { TranslationModule } from '../../../../i18n/translation-module';\nimport { format as formatDate } from 'date-fns-tz';\nimport { MatDatepickerModule } from '@angular/material/datepicker';\nimport { MatSelectModule } from '@angular/material/select';\nimport { ActivityOutcome, MeetingDuration, MeetingStatus } from '../activity.interface';\nimport { LoggerComponentInterface } from './interfaces';\nimport { requiredFormGroupFieldsIf } from './validators';\nimport { coerceBooleanProperty } from '@angular/cdk/coercion';\nimport { takeUntilDestroyed } from '@angular/core/rxjs-interop';\nimport { distinctUntilChanged } from 'rxjs';\n\n@Component({\n selector: 'crm-activity-logger-meeting',\n templateUrl: './meeting.component.html',\n styleUrls: ['./shared.scss'],\n imports: [\n CommonModule,\n TranslateModule,\n TranslationModule,\n GalaxyFormFieldModule,\n MatInputModule,\n ReactiveFormsModule,\n TextFieldModule,\n MatDatepickerModule,\n MatSelectModule,\n ],\n standalone: true,\n})\nexport class CrmActivityLoggerMeetingComponent implements LoggerComponentInterface, AfterViewInit {\n @Input() set activity(value: ActivityInterface | null) {\n this.setValues(value);\n }\n @Input({ transform: coerceBooleanProperty }) mobile: boolean | null = null;\n @Input()\n set description(value: string | null) {\n this.formGroup.patchValue({ loggedMeetingNote: value || '' }, { emitEvent: false });\n }\n @Output() descriptionChange = new EventEmitter();\n\n @ViewChild('form') formGroupDirective!: FormGroupDirective;\n @ViewChild('defaultInput') defaultInput?: ElementRef;\n\n protected showErrors = false;\n protected readonly ActivityOutcome = ActivityOutcome;\n protected readonly MeetingDuration = MeetingDuration;\n protected readonly MeetingStatus = MeetingStatus;\n protected readonly textRows = 6;\n\n formGroup = new FormBuilder().nonNullable.group(\n {\n loggedMeetingNote: '',\n loggedMeetingStatus: '',\n loggedMeetingOutcome: '',\n loggedMeetingDuration: 0,\n loggedMeetingDate: formatDate(new Date(), \"yyyy-MM-dd'T'HH:mm\"),\n },\n {\n validators: requiredFormGroupFieldsIf(() => this.showErrors, ['loggedMeetingNote', 'loggedMeetingDate']),\n },\n );\n\n constructor(private readonly fieldsService: CrmFieldService) {\n this.formGroup.controls.loggedMeetingNote.valueChanges\n .pipe(takeUntilDestroyed(), distinctUntilChanged())\n .subscribe((value) => this.descriptionChange.emit(value));\n }\n\n ngAfterViewInit(): void {\n this.defaultInput?.nativeElement?.focus();\n }\n\n resetForm(): void {\n this.showErrors = false;\n this.formGroup.reset({\n loggedMeetingNote: this.description || '',\n loggedMeetingDate: formatDate(new Date(), \"yyyy-MM-dd'T'HH:mm\"),\n });\n this.updateValueAndValidity();\n }\n\n getValues(): FieldValueInterface[] {\n const formValues = this.formGroup.getRawValue();\n return [\n {\n fieldId: StandardIds.ActivityMeetingStartTime,\n dateValue: formValues.loggedMeetingDate ? new Date(formValues.loggedMeetingDate) : undefined,\n },\n {\n fieldId: StandardIds.ActivityMeetingBody,\n stringValue: formValues.loggedMeetingNote,\n },\n {\n fieldId: StandardIds.ActivityMeetingStatus,\n stringValue: formValues.loggedMeetingStatus,\n },\n {\n fieldId: StandardIds.ActivityMeetingOutcome,\n stringValue: formValues.loggedMeetingOutcome,\n },\n {\n fieldId: StandardIds.ActivityMeetingDuration,\n integerValue: formValues.loggedMeetingDuration,\n },\n ] as FieldValueInterface[];\n }\n\n private setValues(activity: ActivityInterface | null): void {\n if (activity) {\n const meetingDate = this.fieldsService.getFieldValueFromCrmObject(activity, StandardIds.ActivityMeetingStartTime);\n const meetingBody = this.fieldsService.getFieldValueFromCrmObject(activity, StandardIds.ActivityMeetingBody);\n const meetingStatus = this.fieldsService.getFieldValueFromCrmObject(activity, StandardIds.ActivityMeetingStatus);\n const meetingOutcome = this.fieldsService.getFieldValueFromCrmObject(\n activity,\n StandardIds.ActivityMeetingOutcome,\n );\n const meetingDuration = this.fieldsService.getFieldValueFromCrmObject(\n activity,\n StandardIds.ActivityMeetingDuration,\n );\n\n this.formGroup.setValue({\n loggedMeetingDate: meetingDate?.dateValue ? formatDate(meetingDate.dateValue, \"yyyy-MM-dd'T'HH:mm\") : '',\n loggedMeetingNote: meetingBody?.stringValue || '',\n loggedMeetingStatus: meetingStatus?.stringValue || '',\n loggedMeetingOutcome: meetingOutcome?.stringValue || '',\n loggedMeetingDuration: meetingDuration?.integerValue || 0,\n });\n } else if (this.formGroup.dirty) {\n this.resetForm();\n }\n }\n\n validate(): void {\n this.showErrors = true;\n this.formGroup.markAllAsTouched();\n this.updateValueAndValidity();\n }\n\n updateValueAndValidity(): void {\n this.formGroup.updateValueAndValidity();\n }\n}\n","
\n
\n \n \n \n \n \n {{ 'ACTIVITY_LOGGER.ERROR_REQUIRE_DESCRIPTION' | translate }}\n \n \n \n \n
\n \n
\n \n \n \n \n \n \n {{ 'ACTIVITY_LOGGER.ERROR_REQUIRE_MEETING_DATE' | translate }}\n \n \n \n \n \n \n {{ 'ACTIVITY.MEETING.5_MIN' | translate }}\n \n \n {{ 'ACTIVITY.MEETING.15_MIN' | translate }}\n \n \n {{ 'ACTIVITY.MEETING.30_MIN' | translate }}\n \n \n {{ 'ACTIVITY.MEETING.1_HOUR' | translate }}\n \n \n {{ 'ACTIVITY.MEETING.1_HOUR_30_MIN' | translate }}\n \n \n {{ 'ACTIVITY.MEETING.2_HOURS_OR_MORE' | translate }}\n \n \n \n \n \n \n \n \n {{ 'ACTIVITY.MEETING.SCHEDULED' | translate }}\n \n \n {{ 'ACTIVITY.MEETING.RESCHEDULED' | translate }}\n \n \n {{ 'ACTIVITY.MEETING.COMPLETED' | translate }}\n \n \n {{ 'ACTIVITY.MEETING.CANCELLED' | translate }}\n \n {{ 'ACTIVITY.MEETING.NO_SHOW' | translate }}\n \n \n \n {{ 'ACTIVITY_LOGGER.ERROR_REQUIRE_MEETING_STATUS' | translate }}\n \n \n \n \n \n \n {{ 'ACTIVITY.OUTCOME_OPTIONS.NO_INTEREST' | translate }}\n \n \n {{ 'ACTIVITY.OUTCOME_OPTIONS.INTERESTED' | translate }}\n \n \n {{ 'ACTIVITY.OUTCOME_OPTIONS.QUALITY_CONNECT' | translate }}\n \n \n {{ 'ACTIVITY.OUTCOME_OPTIONS.DEMO_SCHEDULED' | translate }}\n \n \n {{ 'ACTIVITY.OUTCOME_OPTIONS.TIMELINE_6_12_MONTHS' | translate }}\n \n \n {{ 'ACTIVITY.OUTCOME_OPTIONS.RESCHEDULING' | translate }}\n \n \n {{ 'ACTIVITY.OUTCOME_OPTIONS.REFERRED_TO_ANOTHER_CONTACT' | translate }}\n \n \n \n \n \n
\n
\n","import { COMMA, ENTER } from '@angular/cdk/keycodes';\nimport { TextFieldModule } from '@angular/cdk/text-field';\nimport { CommonModule } from '@angular/common';\nimport { AfterViewInit, Component, ElementRef, Inject, Input, ViewChild, Output, EventEmitter } from '@angular/core';\nimport { FormBuilder, FormGroupDirective, ReactiveFormsModule } from '@angular/forms';\nimport { MatAutocompleteModule } from '@angular/material/autocomplete';\nimport { MatChipsModule } from '@angular/material/chips';\nimport { MatIconModule } from '@angular/material/icon';\nimport { MatInputModule } from '@angular/material/input';\nimport { MatTooltipModule } from '@angular/material/tooltip';\nimport { TranslateModule } from '@ngx-translate/core';\nimport { ActivityInterface, FieldValueInterface } from '@vendasta/crm';\nimport { GalaxyFormFieldModule } from '@vendasta/galaxy/form-field';\nimport { CrmFieldService, StandardIds } from '../../../../shared-services/crm-services/field.service';\nimport { TranslationModule } from '../../../../i18n/translation-module';\nimport { LoggerComponentInterface } from './interfaces';\nimport { requiredFormGroupFieldsIf } from './validators';\nimport { coerceBooleanProperty } from '@angular/cdk/coercion';\nimport { takeUntilDestroyed } from '@angular/core/rxjs-interop';\nimport { distinctUntilChanged } from 'rxjs';\nimport { CrmInjectionToken, CrmDependencies } from '../../../../tokens-and-interfaces';\n\n@Component({\n selector: 'crm-activity-logger-note',\n templateUrl: './note.component.html',\n styleUrls: ['./shared.scss'],\n imports: [\n CommonModule,\n TranslateModule,\n TranslationModule,\n MatIconModule,\n MatChipsModule,\n GalaxyFormFieldModule,\n MatInputModule,\n ReactiveFormsModule,\n TextFieldModule,\n MatAutocompleteModule,\n MatTooltipModule,\n ],\n standalone: true,\n})\nexport class CrmActivityLoggerNoteComponent implements LoggerComponentInterface, AfterViewInit {\n @Input() set activity(value: ActivityInterface | null) {\n this.setValues(value);\n }\n @Input({ transform: coerceBooleanProperty }) mobile: boolean | null = null;\n @Input()\n set description(value: string | null) {\n this.formGroup.patchValue({ noteBody: value || '' }, { emitEvent: false });\n }\n @Output() descriptionChange = new EventEmitter();\n\n @ViewChild('form') formGroupDirective!: FormGroupDirective;\n @ViewChild('defaultInput') defaultInput?: ElementRef;\n\n protected showErrors = false;\n protected readonly textRows = 6;\n\n formGroup = new FormBuilder().nonNullable.group(\n {\n noteBody: '',\n },\n {\n validators: requiredFormGroupFieldsIf(() => this.showErrors, ['noteBody']),\n },\n );\n\n separatorKeyCodes: number[] = [ENTER, COMMA];\n\n constructor(\n @Inject(CrmInjectionToken) private readonly config: CrmDependencies,\n private readonly fieldsService: CrmFieldService,\n ) {\n this.formGroup.controls.noteBody.valueChanges\n .pipe(takeUntilDestroyed(), distinctUntilChanged())\n .subscribe((value) => this.descriptionChange.emit(value));\n }\n\n ngAfterViewInit(): void {\n this.defaultInput?.nativeElement?.focus();\n }\n\n resetForm(): void {\n this.showErrors = false;\n this.formGroup.reset({ noteBody: this.description || '' });\n this.updateValueAndValidity();\n }\n\n getValues(): FieldValueInterface[] {\n const formValues = this.formGroup.getRawValue();\n\n const loggedNoteField = {\n fieldId: StandardIds.ActivityNoteBody,\n stringValue: formValues.noteBody,\n } as FieldValueInterface;\n\n return [loggedNoteField];\n }\n\n private setValues(activity: ActivityInterface | null): void {\n if (activity) {\n const noteBody = this.fieldsService.getFieldValueFromCrmObject(activity, StandardIds.ActivityNoteBody);\n\n this.formGroup.setValue({\n noteBody: noteBody?.stringValue || '',\n });\n } else if (this.formGroup.dirty) {\n this.resetForm();\n }\n }\n\n validate(): void {\n this.showErrors = true;\n this.formGroup.markAllAsTouched();\n this.updateValueAndValidity();\n }\n\n updateValueAndValidity(): void {\n this.formGroup.updateValueAndValidity();\n }\n}\n","
\n
\n \n \n \n \n \n {{ 'ACTIVITY_LOGGER.ERROR_REQUIRE_DESCRIPTION' | translate }}\n \n \n \n \n
\n \n
\n \n
\n
\n","import { CommonModule } from '@angular/common';\nimport { Component, EventEmitter, Input, Output, computed, inject } from '@angular/core';\nimport { LoggerAssociation } from './interfaces';\nimport { CrmActivityLoggerAssociationComponent } from './association.component';\nimport { coerceBooleanProperty } from '@angular/cdk/coercion';\nimport { CrmActivityLoggerAssociationField } from './association-field.component';\nimport { Observable, debounceTime, distinctUntilChanged, firstValueFrom, map, of, switchMap } from 'rxjs';\nimport { ObjectAssociationType } from '../../../../tokens-and-interfaces';\nimport { SimplifiedUser } from '../../../../tokens-and-interfaces';\nimport { CompanyTableCustomizationService } from '../../../../shared-services';\n\n@Component({\n selector: 'crm-activity-logger-team-association',\n templateUrl: './team-association.component.html',\n imports: [CommonModule, CrmActivityLoggerAssociationComponent],\n standalone: true,\n})\nexport class CrmActivityLoggerTeamAssociationComponent extends CrmActivityLoggerAssociationField {\n @Input({ required: true }) set associations(value: LoggerAssociation[]) {\n this.setAssociations(value);\n }\n @Input() fixedId: string | null = null;\n @Input({ transform: coerceBooleanProperty }) mobile: boolean | null = null;\n @Input() placeholder = '';\n\n @Output() associationsChange = new EventEmitter();\n\n protected readonly customizationService = inject(CompanyTableCustomizationService);\n protected readonly crmObjectType = 'User';\n protected readonly userService = this.config.services?.userService;\n protected readonly filteredAssociationsList = computed(() => {\n const associations = this.associationsList();\n return associations.filter((association) => association.crmObjectId !== this.fixedId);\n });\n\n protected override async fetchObjects(objectIds: string[]): Promise {\n const users = this.userService ? await firstValueFrom(this.userService.getMultiUsers(objectIds)) : [];\n return this.mapAssociations(users);\n }\n\n protected override setupSearchTerm(): Observable {\n return this.searchTerm$$.asObservable().pipe(\n debounceTime(500),\n distinctUntilChanged(),\n switchMap((search) => this.userService?.searchUsers?.(search) ?? of([])),\n map((filteredOptions) => this.mapAssociations(filteredOptions)),\n map((filteredOptions) => filteredOptions.filter((o) => o.crmObjectId !== this.fixedId)),\n );\n }\n\n private mapAssociations(users: SimplifiedUser[]): LoggerAssociation[] {\n return (\n users?.map(\n (option) =>\n ({\n name: option.displayName,\n crmObjectId: option.userId,\n crmObjectType: this.crmObjectType,\n } as LoggerAssociation),\n ) || []\n );\n }\n\n handleAdd(association: LoggerAssociation): void {\n const associations = this.associationsList();\n if (!associations.find((a) => a.crmObjectId === association.crmObjectId)) {\n const newAssociations = [...associations, association];\n this.associationsList.set(newAssociations);\n this.associationsChange.emit(newAssociations);\n }\n }\n\n handleRemove(association: LoggerAssociation): void {\n const associations = this.associationsList().filter((a) => a.crmObjectId !== association.crmObjectId);\n this.associationsList.set(associations);\n this.associationsChange.emit(associations);\n }\n\n handleSearchTermChange(searchTerm?: unknown): void {\n this.updateSearchTerm(searchTerm);\n }\n}\n","\n","import { CommonModule } from '@angular/common';\nimport { Component, EventEmitter, Input, Output, inject } from '@angular/core';\nimport { LoggerAssociation } from './interfaces';\nimport { CrmActivityLoggerAssociationComponent } from './association.component';\nimport { coerceBooleanProperty } from '@angular/cdk/coercion';\nimport { CrmActivityLoggerAssociationField } from './association-field.component';\nimport { Observable, debounceTime, distinctUntilChanged, firstValueFrom, map, of, switchMap } from 'rxjs';\nimport { ObjectAssociationType } from '../../../../tokens-and-interfaces';\nimport { SimplifiedOpportunity } from '../../../../tokens-and-interfaces';\nimport { CompanyTableCustomizationService } from '../../../../shared-services';\n\n@Component({\n selector: 'crm-activity-logger-opportunity-association',\n templateUrl: './opportunity-association.component.html',\n imports: [CommonModule, CrmActivityLoggerAssociationComponent],\n standalone: true,\n})\nexport class CrmActivityLoggerOpportunityAssociationComponent extends CrmActivityLoggerAssociationField {\n @Input({ required: true }) set accountGroupId(value: string | null) {\n this.opportunityService?.setAccountGroupId(value ?? '');\n }\n @Input({ required: true }) set associations(value: LoggerAssociation[]) {\n this.setAssociations(value);\n }\n @Input({ transform: coerceBooleanProperty }) mobile: boolean | null = null;\n @Input() placeholder = '';\n\n @Output() associationsChange = new EventEmitter();\n\n protected readonly customizationService = inject(CompanyTableCustomizationService);\n protected readonly crmObjectType = 'Opportunity';\n protected readonly opportunityService = this.config.services?.opportunityService;\n\n protected override async fetchObjects(objectIds: string[]): Promise {\n const opportunities = this.opportunityService\n ? await firstValueFrom(this.opportunityService.getMultiOpportunity(objectIds))\n : [];\n return this.mapAssociations(opportunities);\n }\n\n protected override setupSearchTerm(): Observable {\n return this.searchTerm$$.asObservable().pipe(\n debounceTime(500),\n distinctUntilChanged(),\n switchMap((search) => (this.opportunityService ? this.opportunityService.searchOpportunities(search) : of([]))),\n map((filteredOptions) => this.mapAssociations(filteredOptions)),\n );\n }\n\n private mapAssociations(opportunities: SimplifiedOpportunity[]): LoggerAssociation[] {\n return (\n opportunities?.map(\n (option) =>\n ({\n name: option.name,\n crmObjectId: option.opportunityId,\n crmObjectType: this.crmObjectType,\n } as LoggerAssociation),\n ) || []\n );\n }\n\n handleAdd(association: LoggerAssociation): void {\n const associations = this.associationsList();\n if (!associations.find((a) => a.crmObjectId === association.crmObjectId)) {\n const newAssociations = [...associations, association];\n this.associationsList.set(newAssociations);\n this.associationsChange.emit(newAssociations);\n }\n }\n\n handleRemove(association: LoggerAssociation): void {\n const associations = this.associationsList().filter((a) => a.crmObjectId !== association.crmObjectId);\n this.associationsList.set(associations);\n this.associationsChange.emit(associations);\n }\n\n handleSearchTermChange(searchTerm?: unknown): void {\n this.updateSearchTerm(searchTerm);\n }\n}\n","\n","import { coerceBooleanProperty } from '@angular/cdk/coercion';\nimport { COMMA, ENTER } from '@angular/cdk/keycodes';\nimport { CommonModule } from '@angular/common';\nimport { Component, EventEmitter, Inject, Input, Output, signal } from '@angular/core';\nimport { FormControl, FormGroup, ReactiveFormsModule } from '@angular/forms';\nimport { MatAutocompleteModule, MatAutocompleteSelectedEvent } from '@angular/material/autocomplete';\nimport { MatChipEvent, MatChipInputEvent, MatChipsModule } from '@angular/material/chips';\nimport { MatIconModule } from '@angular/material/icon';\nimport { MatTooltipModule } from '@angular/material/tooltip';\nimport { GalaxyFormFieldModule } from '@vendasta/galaxy/form-field';\nimport { Observable, combineLatest, debounceTime, map } from 'rxjs';\nimport { startWith, switchMap } from 'rxjs/operators';\nimport { CrmInjectionToken, CrmDependencies } from '../../../../tokens-and-interfaces';\nimport { TranslationModule } from '../../../../i18n/translation-module';\nimport { CrmObjectService, StandardIds } from '../../../../shared-services';\n\n@Component({\n selector: 'crm-activity-logger-tags',\n templateUrl: './tags.component.html',\n imports: [\n CommonModule,\n GalaxyFormFieldModule,\n ReactiveFormsModule,\n MatChipsModule,\n MatIconModule,\n TranslationModule,\n MatAutocompleteModule,\n MatTooltipModule,\n ],\n standalone: true,\n})\nexport class CrmActivityLoggerTagsComponent {\n @Input({ transform: coerceBooleanProperty }) mobile: boolean | null = null;\n\n @Input({ required: true }) set tags(value: string[]) {\n this.activityTags.set(value);\n }\n @Output() tagsChanged = new EventEmitter();\n\n protected showErrors = false;\n\n noteTagsCtrl = new FormControl([]);\n formGroup = new FormGroup({\n loggedNoteTags: this.noteTagsCtrl,\n });\n\n filteredTags$: Observable;\n separatorKeyCodes: number[] = [ENTER, COMMA];\n tagsCtrl = new FormControl('');\n protected readonly activityTags = signal([]);\n\n constructor(\n @Inject(CrmInjectionToken) private readonly config: CrmDependencies,\n private readonly crmObjectService: CrmObjectService,\n ) {\n const tagTextSearch$ = this.tagsCtrl.valueChanges.pipe(startWith(''));\n this.filteredTags$ = combineLatest([tagTextSearch$, this.config.namespace$]).pipe(\n debounceTime(500),\n switchMap(([searchTerm, namespace]) => {\n return this.crmObjectService.listFieldOptions('Activity', {\n namespace: namespace,\n fieldId: StandardIds.ActivityTags,\n pageSize: 50,\n searchTerm: searchTerm ?? '',\n });\n }),\n map((resp) => resp.options ?? []),\n );\n }\n\n addNewTag(event: MatChipInputEvent): void {\n this.addTag(event.value);\n this.tagsCtrl.setValue(null);\n }\n\n selectedTag(tag: MatAutocompleteSelectedEvent): void {\n if (!tag?.option?.value) {\n return;\n }\n this.addTag(tag.option.value);\n this.tagsCtrl.setValue(null);\n }\n\n private addTag(tag: string): void {\n const tags = this.activityTags();\n if (!tags.includes(tag)) {\n tags.push(tag);\n this.activityTags.set(tags);\n this.noteTagsCtrl.setValue(tags);\n this.noteTagsCtrl.markAsDirty();\n this.tagsChanged.emit(tags);\n }\n }\n\n removeTag(event: MatChipEvent): void {\n const tag = event.chip.value;\n const tags = this.activityTags().filter((t) => t !== tag);\n this.activityTags.set(tags);\n this.noteTagsCtrl.setValue(tags);\n this.noteTagsCtrl.markAsDirty();\n this.tagsChanged.emit(tags);\n }\n}\n","\n \n \n {{ tag }}\n \n \n \n \n\n\n \n \n {{ tag }}\n \n \n\n","import { Component, EventEmitter, Input, OnDestroy, Output, ViewChild } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { BehaviorSubject, tap } from 'rxjs';\nimport { GalaxyFormFieldModule } from '@vendasta/galaxy/form-field';\nimport { MatDatepickerModule } from '@angular/material/datepicker';\nimport { coerceBooleanProperty } from '@angular/cdk/coercion';\nimport { FormBuilder, FormGroupDirective, ReactiveFormsModule } from '@angular/forms';\nimport { format as formatDate } from 'date-fns-tz';\nimport { ActivityTaskType, ActivityTaskTypeTranslationKeys } from '../activity.interface';\nimport { MatInputModule } from '@angular/material/input';\nimport { TranslateModule, TranslateService } from '@ngx-translate/core';\nimport { TextFieldModule } from '@angular/cdk/text-field';\nimport { MatSelectModule } from '@angular/material/select';\nimport { MatButtonModule } from '@angular/material/button';\nimport { MatIconModule } from '@angular/material/icon';\nimport { FieldValueInterface } from '@vendasta/crm';\nimport { CrmFieldService, StandardIds } from '../../../../shared-services';\nimport { DEFAULT_TASK_STATUS, STANDARD_DATE_FORMAT } from './constants';\nimport { TranslationModule } from '../../../../i18n';\n\n@Component({\n selector: 'crm-activity-logger-follow-up-task',\n standalone: true,\n imports: [\n CommonModule,\n TranslateModule,\n TranslationModule,\n GalaxyFormFieldModule,\n MatInputModule,\n ReactiveFormsModule,\n TextFieldModule,\n MatDatepickerModule,\n MatSelectModule,\n MatButtonModule,\n MatIconModule,\n ],\n templateUrl: './follow-up-task.component.html',\n styleUrls: ['./follow-up-task.component.scss'],\n})\nexport class CrmActivityLoggerFollowUpTaskComponent implements OnDestroy {\n @Input({ transform: coerceBooleanProperty }) mobile: boolean | null = null;\n @ViewChild('form') formGroupDirective!: FormGroupDirective;\n\n @Output() expandedChanged = new EventEmitter();\n private isExpanded$$ = new BehaviorSubject(false);\n isExpanded$ = this.isExpanded$$.asObservable().pipe(tap((isExpanded) => this.expandedChanged.emit(isExpanded)));\n\n private today = new Date();\n formGroup = new FormBuilder().nonNullable.group({\n taskDueDate: formatDate(this.today.setDate(this.today.getDate() + 3), STANDARD_DATE_FORMAT),\n taskType: ActivityTaskType.ToDo,\n });\n\n protected readonly taskTypes = ActivityTaskTypeTranslationKeys;\n\n constructor(private readonly fieldsService: CrmFieldService, private readonly translateService: TranslateService) {}\n\n toggleExpanded(isExpanded: boolean) {\n this.isExpanded$$.next(isExpanded);\n }\n\n getValues(crmObjectName: string): FieldValueInterface[] {\n const formValues = this.formGroup.getRawValue();\n const followUpWith = this.translateService.instant('ACTIVITY_LOGGER.LOGGED_FOLLOW_UP_TASK.FOLLOW_UP_WITH');\n return [\n {\n fieldId: this.fieldsService.getFieldId(StandardIds.ActivityName),\n stringValue: `${followUpWith} ${crmObjectName}`,\n },\n {\n fieldId: this.fieldsService.getFieldId(StandardIds.ActivityTaskDueDate),\n dateValue: formValues.taskDueDate ? new Date(formValues.taskDueDate) : undefined,\n },\n {\n fieldId: this.fieldsService.getFieldId(StandardIds.ActivityTaskType),\n stringValue: formValues.taskType,\n },\n {\n fieldId: this.fieldsService.getFieldId(StandardIds.ActivityTaskStatus),\n stringValue: DEFAULT_TASK_STATUS,\n },\n ] as FieldValueInterface[];\n }\n\n ngOnDestroy(): void {\n this.expandedChanged.emit(false);\n }\n}\n","\n + {{ 'ACTIVITY_LOGGER.LOGGED_FOLLOW_UP_TASK.CREATE' | translate }}\n\n\n {{ 'ACTIVITY_LOGGER.LOGGED_FOLLOW_UP_TASK.TITLE' | translate }}\n
\n \n \n \n \n \n \n \n \n {{ type.nameKey | translate }}\n \n \n \n \n \n
\n \n
\n","export * from './interfaces';\nexport * from './logger-content.directive';\nexport * from './call.component';\nexport * from './email.component';\nexport * from './meeting.component';\nexport * from './note.component';\nexport * from './task.component';\nexport * from './contact-association.component';\nexport * from './company-association.component';\nexport * from './team-association.component';\nexport * from './opportunity-association.component';\nexport * from './tags.component';\nexport * from './follow-up-task.component';\n","import { AfterViewInit, Component, ElementRef, EventEmitter, Input, Output, ViewChild } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { TranslateModule } from '@ngx-translate/core';\nimport { CommunicationSubType } from '../../../../tokens-and-interfaces';\nimport { TranslationModule } from '../../../../i18n/translation-module';\nimport { MatIconModule } from '@angular/material/icon';\nimport { GalaxyFormFieldModule } from '@vendasta/galaxy/form-field';\nimport { MatSelectModule } from '@angular/material/select';\nimport { MatDatepickerModule } from '@angular/material/datepicker';\nimport { MatInputModule } from '@angular/material/input';\nimport { FormBuilder, FormGroupDirective, ReactiveFormsModule } from '@angular/forms';\nimport { TextFieldModule } from '@angular/cdk/text-field';\nimport { CrmLoggerContentDirective } from './logger-content.directive';\nimport { LoggerComponentInterface } from './interfaces';\nimport { ActivityInterface, FieldValueInterface } from '@vendasta/crm';\nimport { coerceBooleanProperty } from '@angular/cdk/coercion';\nimport { requiredFormGroupFieldsIf } from './validators';\nimport { ActivityOutcome } from '../activity.interface';\nimport { format as formatDate } from 'date-fns-tz';\nimport { CrmFieldService, StandardIds } from '../../../../shared-services/crm-services/field.service';\nimport { takeUntilDestroyed } from '@angular/core/rxjs-interop';\nimport { distinctUntilChanged } from 'rxjs';\n\n@Component({\n selector: 'crm-activity-logger-communication',\n templateUrl: './communication.component.html',\n styleUrls: ['./shared.scss'],\n imports: [\n CommonModule,\n TranslateModule,\n TranslationModule,\n MatIconModule,\n GalaxyFormFieldModule,\n MatSelectModule,\n MatDatepickerModule,\n MatInputModule,\n ReactiveFormsModule,\n TextFieldModule,\n CrmLoggerContentDirective,\n ],\n standalone: true,\n})\nexport class CrmActivityLoggerCommunicationComponent implements LoggerComponentInterface, AfterViewInit {\n @Input() set communicationType(value: CommunicationSubType) {\n this.formGroup.patchValue({ loggedCommunicationChannel: value });\n }\n @Input() set activity(value: ActivityInterface | null) {\n this.setValues(value);\n }\n @Input({ transform: coerceBooleanProperty }) mobile: boolean | null = null;\n\n @Input()\n set description(value: string | null) {\n this.formGroup.patchValue({ loggedCommunicationBody: value || '' }, { emitEvent: false });\n }\n @Output() descriptionChange = new EventEmitter();\n\n @ViewChild('form') formGroupDirective!: FormGroupDirective;\n @ViewChild('defaultInput') defaultInput?: ElementRef;\n\n protected showErrors = false;\n protected readonly textRows = 6;\n protected readonly ActivityOutcome = ActivityOutcome;\n\n formGroup = new FormBuilder().nonNullable.group(\n {\n loggedCommunicationChannel: '',\n loggedCommunicationOutcome: '',\n loggedCommunicationFromId: '',\n loggedCommunicationToId: '',\n loggedCommunicationBody: '',\n loggedCommunicationDate: formatDate(new Date(), \"yyyy-MM-dd'T'HH:mm\"),\n },\n {\n validators: requiredFormGroupFieldsIf(\n () => this.showErrors,\n ['loggedCommunicationBody', 'loggedCommunicationDate'],\n ),\n },\n );\n\n constructor(private readonly fieldsService: CrmFieldService) {\n this.formGroup.controls.loggedCommunicationBody.valueChanges\n .pipe(takeUntilDestroyed(), distinctUntilChanged())\n .subscribe((value) => this.descriptionChange.emit(value));\n }\n\n ngAfterViewInit(): void {\n this.defaultInput?.nativeElement?.focus();\n }\n\n validate(): void {\n this.showErrors = true;\n this.formGroup.markAllAsTouched();\n this.updateValueAndValidity();\n }\n\n updateValueAndValidity(): void {\n this.formGroup.updateValueAndValidity();\n }\n\n private setValues(activity: ActivityInterface | null): void {\n if (activity) {\n const communicationChannel = this.fieldsService.getFieldValueFromCrmObject(\n activity,\n StandardIds.ActivityCommunicationChannel,\n );\n const communicationOutcome = this.fieldsService.getFieldValueFromCrmObject(\n activity,\n StandardIds.ActivityCommunicationOutcome,\n );\n const communicationFromId = this.fieldsService.getFieldValueFromCrmObject(\n activity,\n StandardIds.ActivityCommunicationFromId,\n );\n const communicationToId = this.fieldsService.getFieldValueFromCrmObject(\n activity,\n StandardIds.ActivityCommunicationToId,\n );\n const communicationBody = this.fieldsService.getFieldValueFromCrmObject(\n activity,\n StandardIds.ActivityCommunicationBody,\n );\n const communicationDate = this.fieldsService.getFieldValueFromCrmObject(\n activity,\n StandardIds.ActivityCommunicationDate,\n );\n\n this.formGroup.setValue({\n loggedCommunicationChannel: communicationChannel?.stringValue || '',\n loggedCommunicationOutcome: communicationOutcome?.stringValue || '',\n loggedCommunicationFromId: communicationFromId?.stringValue || '',\n loggedCommunicationToId: communicationToId?.stringValue || '',\n loggedCommunicationBody: communicationBody?.stringValue || '',\n loggedCommunicationDate: communicationDate?.dateValue\n ? formatDate(communicationDate.dateValue, \"yyyy-MM-dd'T'HH:mm\")\n : '',\n });\n } else if (this.formGroup.dirty) {\n this.resetForm();\n }\n }\n\n getValues(): FieldValueInterface[] {\n const formValues = this.formGroup.getRawValue();\n return [\n {\n fieldId: StandardIds.ActivityCommunicationChannel,\n stringValue: formValues.loggedCommunicationChannel,\n },\n {\n fieldId: StandardIds.ActivityCommunicationBody,\n stringValue: formValues.loggedCommunicationBody,\n },\n {\n fieldId: StandardIds.ActivityCommunicationOutcome,\n stringValue: formValues.loggedCommunicationOutcome,\n },\n {\n fieldId: StandardIds.ActivityCommunicationToId,\n stringValue: formValues.loggedCommunicationToId,\n },\n {\n fieldId: StandardIds.ActivityCommunicationFromId,\n stringValue: formValues.loggedCommunicationFromId,\n },\n {\n fieldId: StandardIds.ActivityCommunicationDate,\n dateValue: formValues.loggedCommunicationDate ? new Date(formValues.loggedCommunicationDate) : undefined,\n },\n ] as FieldValueInterface[];\n }\n\n resetForm(): void {\n this.showErrors = false;\n this.formGroup.reset({\n loggedCommunicationBody: this.description || '',\n loggedCommunicationDate: formatDate(new Date(), \"yyyy-MM-dd'T'HH:mm\"),\n });\n this.updateValueAndValidity();\n }\n}\n","
\n
\n \n \n \n \n \n {{ 'ACTIVITY_LOGGER.ERROR_REQUIRE_DESCRIPTION' | translate }}\n \n \n \n \n
\n \n
\n \n \n \n \n \n \n {{ 'ACTIVITY_LOGGER.ERROR_REQUIRE_COMMUNICATION_DATE' | translate }}\n \n \n \n \n \n \n {{ 'ACTIVITY.OUTCOME_OPTIONS.NO_INTEREST' | translate }}\n \n \n {{ 'ACTIVITY.OUTCOME_OPTIONS.INTERESTED' | translate }}\n \n \n {{ 'ACTIVITY.OUTCOME_OPTIONS.QUALITY_CONNECT' | translate }}\n \n \n {{ 'ACTIVITY.OUTCOME_OPTIONS.DEMO_SCHEDULED' | translate }}\n \n \n {{ 'ACTIVITY.OUTCOME_OPTIONS.TIMELINE_6_12_MONTHS' | translate }}\n \n \n {{ 'ACTIVITY.OUTCOME_OPTIONS.REFERRED_TO_ANOTHER_CONTACT' | translate }}\n \n \n \n \n {{ 'ACTIVITY_LOGGER.ERROR_REQUIRE_COMMUNICATION_OUTCOME' | translate }}\n \n \n \n \n \n
\n
\n","import { BreakpointObserver } from '@angular/cdk/layout';\nimport { CommonModule } from '@angular/common';\nimport { Component, EventEmitter, Inject, Input, Output, ViewChild, signal } from '@angular/core';\nimport { takeUntilDestroyed, toObservable } from '@angular/core/rxjs-interop';\nimport { ReactiveFormsModule } from '@angular/forms';\nimport { MatAutocompleteModule } from '@angular/material/autocomplete';\nimport { MatButtonModule } from '@angular/material/button';\nimport { MatCardModule } from '@angular/material/card';\nimport { MatChipsModule } from '@angular/material/chips';\nimport { MatIconModule } from '@angular/material/icon';\nimport { MatInputModule } from '@angular/material/input';\nimport { MatMenuModule } from '@angular/material/menu';\nimport { MatTooltipModule } from '@angular/material/tooltip';\nimport { TranslateModule } from '@ngx-translate/core';\nimport {\n ActivityAssociationInterface,\n ActivityInterface,\n CrmObjectInterface,\n FieldValueInterface,\n StringListInterface,\n} from '@vendasta/crm';\nimport { GalaxyAvatarModule } from '@vendasta/galaxy/avatar';\nimport { GalaxyButtonLoadingIndicatorModule } from '@vendasta/galaxy/button-loading-indicator';\nimport { GalaxyFormFieldModule } from '@vendasta/galaxy/form-field';\nimport { SnackbarService } from '@vendasta/galaxy/snackbar-service';\nimport { User } from '@vendasta/iamv2';\nimport { switchWhenFalsy } from '@vendasta/rx-utils';\nimport { ObservableWorkState } from '@vendasta/rx-utils/work-state';\nimport {\n BehaviorSubject,\n Observable,\n ReplaySubject,\n combineLatest,\n firstValueFrom,\n map,\n of,\n tap,\n from,\n shareReplay,\n} from 'rxjs';\nimport { distinctUntilChanged, filter, mergeMap, switchMap, withLatestFrom } from 'rxjs/operators';\nimport { ChipListComponent, ChipListItem } from '../../chip-list';\nimport { DropDownOptionsButton } from '../../chip-list/interfaces';\nimport { CrmUnknownUserAvatarComponent } from '../../unknown-user-avatar/unknown-user-avatar.component';\nimport {\n CrmInjectionToken,\n CrmDependencies,\n ActivityType,\n CommunicationSubType,\n ObjectType,\n} from '../../../tokens-and-interfaces';\nimport { AVATAR_WIDTH, SNACKBAR_DURATION } from '../../../constants';\nimport { ObjectAssociationType } from '../../../tokens-and-interfaces';\nimport { CrmTruncatePipe } from '../../../shared-pipes/truncate.pipe';\nimport { TranslationModule } from '../../../i18n/translation-module';\nimport { ActivityLoggerService } from './activity-logger.service';\nimport {\n LoggerAssociation,\n CrmActivityLoggerCallComponent,\n CrmActivityLoggerCompanyAssociationComponent,\n CrmActivityLoggerContactAssociationComponent,\n CrmActivityLoggerEmailComponent,\n CrmActivityLoggerMeetingComponent,\n CrmActivityLoggerNoteComponent,\n CrmActivityLoggerOpportunityAssociationComponent,\n CrmActivityLoggerTagsComponent,\n CrmActivityLoggerTaskComponent,\n CrmActivityLoggerTeamAssociationComponent,\n CrmLoggerContentDirective,\n LoggerComponentInterface,\n CrmActivityLoggerFollowUpTaskComponent,\n} from './logger';\nimport { CrmActivityLoggerCommunicationComponent } from './logger/communication.component';\nimport {\n CrmObjectService,\n CrmFieldService,\n CrmAssociationService,\n StandardIds,\n PlatformExtensionFieldIds,\n StandardExternalIds,\n} from '../../../shared-services';\n\nconst DEFAULT_SELECTED_ACTIVITY_TYPE: ActivityType = 'Note';\n// matches the `sm` column size\nconst DEFAULT_MOBILE_BREAKPOINT = '600px';\n\ntype SelectableActivityType = ChipListItem;\n\nconst SELECTABLE_ACTIVITY_TYPES: SelectableActivityType[] = [\n {\n value: 'Note',\n label: 'ACTIVITY_TYPES.NOTE',\n icon: 'notes',\n },\n {\n value: 'Email',\n label: 'ACTIVITY_TYPES.EMAIL',\n icon: 'email',\n },\n {\n value: 'Call',\n label: 'ACTIVITY_TYPES.CALL',\n icon: 'phone',\n },\n {\n value: 'Meeting',\n label: 'ACTIVITY_TYPES.MEETING',\n icon: 'calendar_today',\n },\n {\n value: 'Task',\n label: 'ACTIVITY_TYPES.TASK',\n icon: 'assignment_turned_in',\n },\n];\n\ntype SelectableCommunicationType = DropDownOptionsButton;\n\nconst SELECTABLE_COMMUNICATION_TYPES: SelectableCommunicationType[] = [\n {\n value: 'SMS',\n label: 'ACTIVITY_TYPES.COMMUNICATION_SUBTYPES.SMS',\n },\n {\n value: 'Inbox',\n label: 'ACTIVITY_TYPES.COMMUNICATION_SUBTYPES.INBOX',\n },\n {\n value: 'LinkedIn',\n label: 'ACTIVITY_TYPES.COMMUNICATION_SUBTYPES.LINKEDIN',\n },\n];\n\ntype Layout = 'auto' | 'mobile';\n\nconst manuallyLoggedFieldValue: FieldValueInterface = {\n fieldId: StandardIds.ActivityManuallyLogged,\n booleanValue: true,\n};\n\n@Component({\n selector: 'crm-activity-logger',\n templateUrl: './activity-logger.component.html',\n styleUrls: ['./activity-logger.component.scss', './logger/shared.scss'],\n imports: [\n CommonModule,\n TranslateModule,\n TranslationModule,\n MatCardModule,\n MatIconModule,\n MatAutocompleteModule,\n MatChipsModule,\n MatButtonModule,\n GalaxyAvatarModule,\n GalaxyFormFieldModule,\n MatInputModule,\n ReactiveFormsModule,\n CrmUnknownUserAvatarComponent,\n MatTooltipModule,\n GalaxyButtonLoadingIndicatorModule,\n ChipListComponent,\n CrmLoggerContentDirective,\n CrmActivityLoggerNoteComponent,\n CrmActivityLoggerEmailComponent,\n CrmActivityLoggerCallComponent,\n CrmActivityLoggerMeetingComponent,\n CrmActivityLoggerTaskComponent,\n CrmTruncatePipe,\n CrmActivityLoggerContactAssociationComponent,\n CrmActivityLoggerCompanyAssociationComponent,\n CrmActivityLoggerTeamAssociationComponent,\n CrmActivityLoggerOpportunityAssociationComponent,\n CrmActivityLoggerCommunicationComponent,\n MatMenuModule,\n CrmActivityLoggerTagsComponent,\n CrmActivityLoggerFollowUpTaskComponent,\n ],\n providers: [ActivityLoggerService],\n standalone: true,\n})\nexport class CrmActivityLoggerComponent {\n @ViewChild(CrmActivityLoggerNoteComponent) loggerNoteComponent?: CrmActivityLoggerNoteComponent;\n @ViewChild(CrmActivityLoggerEmailComponent) loggerEmailComponent?: CrmActivityLoggerEmailComponent;\n @ViewChild(CrmActivityLoggerCallComponent) loggerCallComponent?: CrmActivityLoggerCallComponent;\n @ViewChild(CrmActivityLoggerMeetingComponent) loggerMeetingComponent?: CrmActivityLoggerMeetingComponent;\n @ViewChild(CrmActivityLoggerTaskComponent) loggerTaskComponent?: CrmActivityLoggerTaskComponent;\n @ViewChild(CrmActivityLoggerCommunicationComponent)\n loggerCommunicationComponent?: CrmActivityLoggerCommunicationComponent;\n @ViewChild(CrmActivityLoggerFollowUpTaskComponent)\n loggerFollowUpTaskComponent?: CrmActivityLoggerFollowUpTaskComponent;\n\n AVATAR_WIDTH = AVATAR_WIDTH;\n SELECTABLE_ACTIVITY_TYPES = SELECTABLE_ACTIVITY_TYPES;\n SELECTABLE_COMMUNICATION_TYPES = SELECTABLE_COMMUNICATION_TYPES;\n activityTypeSelected?: ActivityType;\n communicationSubTypeSelected?: CommunicationSubType;\n collapsed = signal(true);\n sharedDescription: string | null = '';\n\n private readonly layout$$: BehaviorSubject = new BehaviorSubject('auto');\n readonly mobileLayout$: Observable;\n\n private readonly objectType$$ = new ReplaySubject(1);\n protected objectType$ = this.objectType$$.asObservable();\n protected isCompany$: Observable = this.objectType$.pipe(map((objectType) => objectType === 'Company'));\n @Input({ required: true }) set objectType(value: ObjectType) {\n this.objectType$$.next(value);\n }\n\n private readonly crmObjectId$$ = new ReplaySubject(1);\n protected crmObjectId$ = this.crmObjectId$$.asObservable();\n @Input({ required: true }) set crmObjectId(value: string) {\n this.crmObjectId$$.next(value);\n }\n\n public user$ = this.activityLoggerService.user$;\n protected activityOwnerId$: Observable;\n @Input() activityOwner?: User;\n\n /**\n * Associations to be added to the activity. These are not visible to the user.\n */\n @Input() extraAssociations?: ActivityAssociationInterface[];\n /**\n * Hide Company and Contact association fields.\n */\n @Input() hideAssociations = false;\n\n /**\n * Expand and select the activity type when provided.\n */\n @Input() set expandAndSelectType(value: string | undefined) {\n const activityType = value ? (value as ActivityType) : DEFAULT_SELECTED_ACTIVITY_TYPE;\n this.onActivityTypeChanged(activityType);\n }\n\n /**\n * Layout of the activity logger.\n * Use `mobile` to display the activity logger in a mobile layout disregarding the screen size.\n */\n @Input() set layout(value: Layout) {\n this.layout$$.next(value);\n }\n /**\n * When an Activity ID is passed in assume we are editing.\n */\n private readonly crmActivityId$$ = new BehaviorSubject('');\n protected crmActivityId$ = this.crmActivityId$$.asObservable();\n protected isEditing$: Observable;\n @Input() set crmActivityId(value: string) {\n this.crmActivityId$$.next(value);\n }\n\n @Output() activityCreated: EventEmitter = new EventEmitter();\n @Output() activityUpdated: EventEmitter = new EventEmitter();\n @Output() cancel: EventEmitter = new EventEmitter();\n\n activity$$ = new BehaviorSubject(null);\n activity$ = this.activity$$.asObservable();\n\n associations = signal([]);\n contactAssociations: LoggerAssociation[] = [];\n companyAssociations: LoggerAssociation[] = [];\n teamAssociations: LoggerAssociation[] = [];\n opportunityAssociations: LoggerAssociation[] = [];\n\n tags$$ = new BehaviorSubject([]);\n tags$ = this.tags$$.asObservable();\n\n private readonly upsertActivityWorkState$ = new ObservableWorkState();\n protected readonly upsertActivityButtonLoading$ = this.upsertActivityWorkState$.isLoading$;\n\n protected showTeamMemberInput = false;\n protected showOpportunityInput = false;\n protected readonly primaryAccountGroupId$: Observable;\n private readonly crmObjectName$: Observable;\n private readonly crmObject$: Observable;\n private readonly followUpExpanded$$ = new BehaviorSubject(false);\n\n constructor(\n @Inject(CrmInjectionToken) private readonly config: CrmDependencies,\n private activityLoggerService: ActivityLoggerService,\n private crmObjectService: CrmObjectService,\n private readonly snackService: SnackbarService,\n private readonly fieldsService: CrmFieldService,\n private readonly associationService: CrmAssociationService,\n private readonly breakpointObserver: BreakpointObserver,\n ) {\n this.crmActivityId$\n .pipe(\n takeUntilDestroyed(),\n switchMap((crmActivityId) =>\n crmActivityId ? this.activityLoggerService.getActivity(crmActivityId) : of(null),\n ),\n tap((activity) => {\n this.activity$$.next(activity);\n if (activity) {\n const tags = this.fieldsService.getFieldValueFromCrmObject(activity, StandardIds.ActivityTags);\n this.tags$$.next(tags?.stringValues?.values || []);\n } else {\n this.tags$$.next([]);\n }\n }),\n )\n .subscribe();\n this.activityOwnerId$ = combineLatest([this.activity$, this.user$]).pipe(\n takeUntilDestroyed(),\n map(([activity, user]): string => activity?.ownerId || user?.userId || ''),\n distinctUntilChanged(),\n );\n\n this.isEditing$ = this.crmActivityId$.pipe(map((crmActivityId) => Boolean(crmActivityId)));\n this.showTeamMemberInput = Boolean(this.config?.services?.userService?.searchUsers);\n this.showOpportunityInput = Boolean(this.config?.services?.opportunityService);\n this.crmObject$ = combineLatest([this.crmObjectId$, this.objectType$]).pipe(\n switchMap(([crmObjectId, crmObjectType]) => this.crmObjectService.getMultiObject(crmObjectType, [crmObjectId])),\n map((response) => response?.crmObjects?.[0]),\n filter(Boolean),\n shareReplay(1),\n );\n\n this.crmObjectName$ = this.crmObject$.pipe(map((crmObject) => this.getObjectName(crmObject)));\n this.primaryAccountGroupId$ = this.crmObject$.pipe(map((crmObject) => this.getPrimaryAccountGroupId(crmObject)));\n\n this.mobileLayout$ = this.setupMobileMatcher();\n\n this.upsertActivityWorkState$.workResults$\n .pipe(\n takeUntilDestroyed(),\n switchMap((crmIds) => from(crmIds)),\n mergeMap((crmId) => this.activityLoggerService.getActivity(crmId)),\n tap((activity) => {\n const wasCreated = activity?.created?.getTime() === activity?.updated?.getTime();\n if (wasCreated) {\n this.activityCreated.emit(activity);\n } else {\n this.activityUpdated.emit(activity);\n }\n }),\n )\n .subscribe();\n\n this.upsertActivityWorkState$.successEvents$.pipe(takeUntilDestroyed()).subscribe(async (success) => {\n const isEditing = await firstValueFrom(this.isEditing$);\n const successMsg = isEditing ? 'ACTIVITY_LOGGER.EDIT_SUCCESS_MESSAGE' : 'ACTIVITY_LOGGER.SUCCESS_MESSAGE';\n const errorMsg = isEditing ? 'ACTIVITY_LOGGER.EDIT_ERROR_MESSAGE' : 'ACTIVITY_LOGGER.ERROR_MESSAGE';\n if (!success) {\n this.snackService.openErrorSnack(errorMsg, {\n duration: SNACKBAR_DURATION,\n });\n } else {\n this.snackService.openSuccessSnack(successMsg, {\n duration: SNACKBAR_DURATION,\n });\n if (!isEditing) this.collapse();\n }\n });\n\n this.intializeDefaultActivity();\n }\n\n private intializeDefaultActivity() {\n toObservable(this.collapsed)\n .pipe(\n takeUntilDestroyed(),\n filter((isCollapsed) => !isCollapsed),\n withLatestFrom(this.isEditing$),\n switchMap(([, isEditing]) => {\n if (isEditing) {\n // use existing activity data\n return this.crmActivityId$.pipe(\n switchMap((crmActivityId) => this.activityLoggerService.getActivity(crmActivityId)),\n );\n } else {\n // set default values for new activity\n return combineLatest([this.objectType$, this.crmObjectId$, this.user$]).pipe(\n switchMap(([objectType, crmObjectId, user]) => {\n const currentUserId = user?.userId || '';\n const defaultActivity = {\n ownerId: currentUserId,\n associations: [\n {\n crmObjectId: crmObjectId,\n crmObjectType: objectType,\n },\n {\n crmObjectId: currentUserId,\n crmObjectType: 'User',\n },\n ],\n } as ActivityInterface;\n\n // When objectType is Contact, add the associated Companies as well\n if (objectType === 'Contact') {\n return this.associationService.getCompanyAssociationObjectIdsForContact$(crmObjectId).pipe(\n map((companyObjectIds) => {\n const formattedAsc = companyObjectIds.map((companyId) => {\n return {\n crmObjectId: companyId,\n crmObjectType: 'Company',\n } as LoggerAssociation;\n });\n defaultActivity.associations = [...(defaultActivity?.associations || []), ...formattedAsc];\n return defaultActivity;\n }),\n );\n }\n\n return of(defaultActivity);\n }),\n );\n }\n }),\n )\n .subscribe((activity?: ActivityInterface) => {\n // set the default values for the logger\n const activityType = activity?.crmObjectSubtype as ActivityType;\n if (activityType) {\n this.onActivityTypeChanged(activityType);\n }\n if (activity) {\n this.updateValueAndValidity();\n if (activity.associations) {\n this.setAssociationValues(activity.associations);\n }\n }\n });\n }\n\n onActivityTypeChanged(value: ActivityType | null) {\n this.expand();\n this.activityTypeSelected = value || undefined;\n this.communicationSubTypeSelected = undefined;\n }\n\n onCommunicationTypeChanged(activityType: ActivityType, communicationSubType: CommunicationSubType) {\n this.expand();\n this.activityTypeSelected = activityType;\n this.communicationSubTypeSelected = communicationSubType;\n }\n\n getTranslatedCommunicationType(): string {\n return this.communicationSubTypeSelected\n ? `ACTIVITY_TYPES.COMMUNICATION_SUBTYPES.${this.communicationSubTypeSelected.toUpperCase()}`\n : 'ACTIVITY_TYPES.MORE';\n }\n\n upsertActivity() {\n if (!this.validateForm()) {\n this.snackService.openErrorSnack('ACTIVITY_LOGGER.ERROR_SET_REQUIRED_FIELDS', {\n duration: SNACKBAR_DURATION,\n });\n return;\n }\n\n const fieldValues = this.getSelectedComponent()?.getValues() || [];\n const ownerId = this.getSelectedComponent()?.ownerId;\n const work$ = combineLatest([this.isEditing$, this.tags$, this.crmObjectName$, this.followUpExpanded$$]).pipe(\n switchMap(([isEditing, tags, crmObjectName, isFollowUpExpanded]) => {\n const tagsField: FieldValueInterface = {\n fieldId: StandardIds.ActivityTags,\n stringValues: { values: tags },\n };\n let apiCalls: Observable[];\n if (isEditing) {\n apiCalls = [\n this.crmActivityId$.pipe(\n switchMap((activityId) => {\n const fieldMask = [\n 'associations',\n ...this.fieldsService.getFieldMaskFromFormGroup(this.getSelectedComponent()?.formGroup),\n StandardIds.ActivityTags,\n ];\n return this.activityLoggerService.updateActivity(\n activityId,\n this.activityTypeSelected!,\n [...fieldValues, tagsField],\n this.mergeAssociations(),\n ownerId,\n fieldMask,\n );\n }),\n ),\n ];\n } else {\n apiCalls = [\n this.activityLoggerService.addActivity(\n this.activityTypeSelected!,\n [...fieldValues, manuallyLoggedFieldValue, tagsField],\n this.mergeAssociations(),\n ownerId,\n ),\n ];\n if (isFollowUpExpanded) {\n const followUpFieldValues = this.loggerFollowUpTaskComponent?.getValues(crmObjectName) || [];\n apiCalls.push(\n this.activityLoggerService.addActivity(\n 'Task',\n [...followUpFieldValues, manuallyLoggedFieldValue],\n this.mergeAssociations(),\n ownerId,\n ),\n );\n }\n }\n return combineLatest(apiCalls);\n }),\n );\n\n this.upsertActivityWorkState$.startWork(work$);\n }\n\n private getSelectedComponent(): LoggerComponentInterface | undefined {\n switch (this.activityTypeSelected) {\n case 'Note':\n return this.loggerNoteComponent;\n case 'Email':\n return this.loggerEmailComponent;\n case 'Call':\n return this.loggerCallComponent;\n case 'Meeting':\n return this.loggerMeetingComponent;\n case 'Task':\n return this.loggerTaskComponent;\n case 'Communication':\n return this.loggerCommunicationComponent;\n default:\n return;\n }\n }\n\n isFormValid(): boolean {\n return Boolean(this.getSelectedComponent()?.formGroup?.valid);\n }\n\n validateForm(): boolean {\n this.updateValueAndValidity();\n return this.isFormValid();\n }\n\n async setAssociationValues(associations: ActivityAssociationInterface[]): Promise {\n const all = associations\n .filter((a) => !!a.crmObjectId)\n .map((a) => ({\n crmObjectId: a.crmObjectId,\n crmObjectType: a.crmObjectType as ObjectType | ObjectAssociationType,\n }));\n this.associations.set(all);\n this.contactAssociations = all.filter((item) => item.crmObjectType === 'Contact');\n this.companyAssociations = all.filter((item) => item.crmObjectType === 'Company');\n this.teamAssociations = all.filter((item) => item.crmObjectType === 'User');\n this.opportunityAssociations = all.filter((item) => item.crmObjectType === 'Opportunity');\n }\n\n updateValueAndValidity(): void {\n this.getSelectedComponent()?.validate();\n }\n\n expand(): void {\n this.collapsed.set(false);\n }\n\n collapse(): void {\n this.activityTypeSelected = undefined;\n this.collapsed.set(true);\n this.clearFields();\n this.activityTypeSelected = undefined;\n this.communicationSubTypeSelected = undefined;\n }\n\n followUpExpandedChanged(isExpanded: boolean): void {\n this.followUpExpanded$$.next(isExpanded);\n }\n\n handleCancelClicked(): void {\n this.collapse();\n this.cancel.emit();\n }\n\n handleDefaultStateFocus(): void {\n this.onActivityTypeChanged(DEFAULT_SELECTED_ACTIVITY_TYPE);\n }\n\n clearFields(): void {\n this.loggerNoteComponent?.resetForm();\n this.loggerEmailComponent?.resetForm();\n this.loggerCallComponent?.resetForm();\n this.loggerMeetingComponent?.resetForm();\n this.loggerTaskComponent?.resetForm();\n this.loggerCommunicationComponent?.resetForm();\n this.contactAssociations = [];\n this.companyAssociations = [];\n this.teamAssociations = [];\n this.opportunityAssociations = [];\n this.tags$$.next([]);\n this.sharedDescription = '';\n }\n\n private mergeAssociations(): ActivityAssociationInterface[] {\n const extraAssociations = this.extraAssociations || [];\n return [\n ...this.contactAssociations,\n ...this.companyAssociations,\n ...this.teamAssociations,\n ...this.opportunityAssociations,\n ...extraAssociations,\n ];\n }\n\n private getPrimaryAccountGroupId(crmObject: CrmObjectInterface): string | null {\n const fieldValue = this.fieldsService.getFieldValueFromCrmObject(\n crmObject,\n PlatformExtensionFieldIds.AccountGroupID,\n );\n return fieldValue?.stringValue ?? null;\n }\n\n private getObjectName(crmObject: CrmObjectInterface): string {\n const companyName = this.fieldsService.getFieldValueFromCrmObject(crmObject, StandardIds.CompanyName);\n if (companyName?.stringValue) {\n return companyName.stringValue;\n }\n\n const firstName = this.fieldsService.getFieldValueFromCrmObject(crmObject, StandardExternalIds.FirstName);\n const lastName = this.fieldsService.getFieldValueFromCrmObject(crmObject, StandardExternalIds.LastName);\n if (firstName?.stringValue || lastName?.stringValue) {\n return `${firstName?.stringValue ?? ''} ${lastName?.stringValue ?? ''}`.trim();\n }\n\n return crmObject.crmObjectId ?? '';\n }\n\n /**\n * Create a mobile layout observable.\n * If layout is set to `mobile`, it will always be `true`.\n * Otherwise, it will match the screen size (<= `768px`).\n * @returns `Observable`: `true` if the layout is mobile, `false` otherwise.\n */\n private setupMobileMatcher(): Observable {\n const mobileMedia$ = this.breakpointObserver.observe(`(max-width: ${DEFAULT_MOBILE_BREAKPOINT})`).pipe(\n distinctUntilChanged(),\n map((result) => result.matches),\n );\n return this.layout$$.pipe(\n map((layout) => layout === 'mobile'),\n switchWhenFalsy(mobileMedia$),\n );\n }\n\n updateTags(tagEvent: string[]): void {\n this.tags$$?.next(tagEvent);\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 \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 \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 \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 \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 \n
\n \n \n \n
\n \n
\n
\n \n \n \n \n \n {{ communicationType.label | translate }}\n \n \n
\n
\n
\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n {{ 'ACTIVITY_LOGGER.SAVE' | translate }}\n \n \n \n {{ 'ACTIVITY_LOGGER.CREATE_TASK' | translate }}\n \n \n {{ 'ACTIVITY_LOGGER.LOG_ACTIVITY' | 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 \n \n
\n","import { Directive } from '@angular/core';\n\n@Directive({\n selector: '[crmActivityTemplateOptions]',\n standalone: true,\n})\nexport class CrmActivityTemplateOptionsDirective {}\n","import { CommonModule } from '@angular/common';\nimport { Component, Input, TemplateRef } from '@angular/core';\nimport { TranslateModule, TranslateService } from '@ngx-translate/core';\nimport { AVATAR_WIDTH } from '../../../constants';\nimport { TranslationModule } from '../../../i18n/translation-module';\nimport { MatCardModule } from '@angular/material/card';\nimport { MatIconModule } from '@angular/material/icon';\nimport { ActivityInterface } from '@vendasta/crm';\nimport { RxState } from '@rx-angular/state';\nimport { GalaxyAvatarModule } from '@vendasta/galaxy/avatar';\nimport { combineLatest, filter, map, tap } from 'rxjs';\nimport { CrmFieldService, SystemFieldIds } from '../../../shared-services/crm-services/field.service';\nimport { User } from '@vendasta/iamv2';\nimport { DateFormat } from '@vendasta/galaxy/utility/date-utils';\nimport { CrmUnknownUserAvatarComponent } from '../../unknown-user-avatar/unknown-user-avatar.component';\nimport { CrmActivityLoggerComponent } from './activity-logger.component';\nimport { CrmActivityTemplateOptionsDirective } from './activity-template-options.directive';\n\n@Component({\n selector: 'crm-activity-template',\n templateUrl: './activity-template.component.html',\n styleUrls: ['./activity-template.component.scss'],\n providers: [RxState],\n imports: [\n CommonModule,\n TranslateModule,\n TranslationModule,\n MatCardModule,\n MatIconModule,\n GalaxyAvatarModule,\n CrmUnknownUserAvatarComponent,\n CrmActivityLoggerComponent,\n CrmActivityTemplateOptionsDirective,\n ],\n standalone: true,\n})\nexport class CrmActivityTemplateComponent {\n AVATAR_WIDTH = AVATAR_WIDTH;\n dateFormat = DateFormat.medium;\n\n @Input() set activity(activity: ActivityInterface) {\n this.state.set({ activity: activity });\n }\n get activity() {\n return this.state.get().activity;\n }\n\n @Input() set ownerUser(ownerUser: User | undefined) {\n this.state.set({ ownerUser: ownerUser });\n }\n get ownerUser() {\n return this.state.get().ownerUser;\n }\n\n @Input() set isOwnedByServiceAccount(isOwnedByServiceAccount: boolean) {\n this.state.set({ isOwnedByServiceAccount: isOwnedByServiceAccount });\n }\n get isOwnedByServiceAccount() {\n return this.state.get().isOwnedByServiceAccount;\n }\n\n @Input() set headerText(text: string) {\n this.state.set({ headerText: text });\n }\n get headerText() {\n return this.state.get().headerText;\n }\n\n private _showAvatar = true;\n @Input() set showAvatar(showAvatar: boolean) {\n this._showAvatar = showAvatar;\n }\n get showAvatar() {\n return this._showAvatar;\n }\n\n // if this is set, the fullName will be displayed before the headerText\n // e.g. \"John Doe sent an email\"\n @Input() showFullName = true;\n\n // custom template to render in the subtitle section, replacing the formatted date\n @Input() subtitleTemplate?: TemplateRef;\n\n unknownNamePlaceholder = this.translateService.instant('CONTACT.ACTIVITIES.UNKNOWN_NAME');\n fullName$ = this.state.select('fullName');\n readonly headerText$ = this.state\n .select('activity')\n .pipe(map((activity) => this.headerTextFromActivityType(activity?.crmObjectSubtype)));\n effectiveDate$ = this.state.select('effectiveDate');\n\n showUnknownAvatar$ = combineLatest([\n this.state.select('isUnknownUser'),\n this.state.select('isOwnedByServiceAccount'),\n ]).pipe(map(([isUnknownUser, isOwnedByServiceAccount]) => isUnknownUser || isOwnedByServiceAccount));\n\n profileImageUrl$ = this.state.select('ownerUser').pipe(map((user) => user?.profileImageUrl ?? ''));\n\n constructor(\n private readonly state: RxState,\n private readonly fieldService: CrmFieldService,\n private readonly translateService: TranslateService,\n ) {\n this.state.set({\n isOwnedByServiceAccount: false,\n ownerUser: undefined,\n activity: undefined,\n fullName: this.unknownNamePlaceholder,\n isUnknownUser: false,\n effectiveDate: null,\n });\n\n this.state.connect(\n 'fullName',\n this.state.select('ownerUser').pipe(\n filter((user): user is User => user !== null),\n map((user) => `${user.firstName} ${user.lastName}`.trim()),\n tap((fullName) => this.state.set({ isUnknownUser: fullName === '' })),\n map((fullName) => fullName || this.unknownNamePlaceholder),\n ),\n );\n\n this.state.connect(\n 'effectiveDate',\n this.state\n .select('activity')\n .pipe(\n map(\n (activity) =>\n this.fieldService.getFieldValueFromCrmObject(activity, SystemFieldIds.ActivityEffectiveDate)?.dateValue ??\n null,\n ),\n ),\n );\n }\n\n private headerTextFromActivityType(activityType?: string): string {\n switch (activityType) {\n case 'Note':\n return 'CONTACT.ACTIVITIES.HEADER_ADDITIONAL_TEXT.NOTE';\n case 'Email':\n return 'CONTACT.ACTIVITIES.HEADER_ADDITIONAL_TEXT.LOGGED_EMAIL';\n case 'Call':\n return 'CONTACT.ACTIVITIES.HEADER_ADDITIONAL_TEXT.LOGGED_CALL';\n case 'Meeting':\n return 'CONTACT.ACTIVITIES.HEADER_ADDITIONAL_TEXT.LOGGED_MEETING';\n case 'Task':\n return 'CONTACT.ACTIVITIES.HEADER_ADDITIONAL_TEXT.TASK';\n case 'Communication':\n return 'CONTACT.ACTIVITIES.HEADER_ADDITIONAL_TEXT.LOGGED_COMMUNICATION';\n default:\n return '';\n }\n }\n}\n\ninterface ComponentState {\n isOwnedByServiceAccount: boolean;\n ownerUser?: User;\n\n activity: ActivityInterface;\n\n fullName: string;\n headerText: string;\n isUnknownUser: boolean;\n effectiveDate: Date | null;\n}\n","\n \n \n
\n \n
\n \n \n {{ fullName }}\n {{ headerText | translate }}\n \n \n \n \n \n\n \n \n \n \n \n \n
\n\n\n \n\n\n\n

\n {{ effectiveDate | date : dateFormat }}\n

\n
\n\n\n
\n \n
\n
\n","import { CommonModule } from '@angular/common';\nimport { Component, Inject, Input, SecurityContext, Signal, WritableSignal, computed, signal } from '@angular/core';\nimport { toObservable, toSignal } from '@angular/core/rxjs-interop';\nimport { MatCardModule } from '@angular/material/card';\nimport { MatIconModule } from '@angular/material/icon';\nimport { DomSanitizer } from '@angular/platform-browser';\nimport { TranslateModule, TranslateService } from '@ngx-translate/core';\nimport { RxState } from '@rx-angular/state';\nimport {\n CampaignService,\n GetterCampaignData,\n RecipientCampaignService,\n RecipientCampaignStruct,\n} from '@vendasta/campaigns';\nimport { ActivityInterface, GetMultiCrmObjectResponseInterface } from '@vendasta/crm';\nimport { GalaxyAvatarModule } from '@vendasta/galaxy/avatar';\nimport { GalaxyPipesModule } from '@vendasta/galaxy/pipes';\nimport { DateFormat } from '@vendasta/galaxy/utility/date-utils';\nimport { Observable, of } from 'rxjs';\nimport { map, switchMap } from 'rxjs/operators';\nimport { AVATAR_WIDTH } from '../../../constants';\nimport { TranslationModule } from '../../../i18n';\nimport {\n CrmFieldService,\n CrmObjectService,\n StandardExternalIds,\n StandardIds,\n SystemFieldIds,\n} from '../../../shared-services';\nimport { CrmDependencies, CrmInjectionToken, ObjectType } from '../../../tokens-and-interfaces';\nimport { CollapsibleSectionComponent } from '../../collapsible-section/collapsible-section.component';\nimport { CrmUnknownUserAvatarComponent } from '../../unknown-user-avatar/unknown-user-avatar.component';\nimport { ActivityExtended } from '../timeline/timeline.service';\n\n@Component({\n selector: 'crm-activity-email',\n templateUrl: './email.component.html',\n styleUrls: ['./email.component.scss'],\n providers: [RxState],\n imports: [\n CommonModule,\n TranslateModule,\n TranslationModule,\n CollapsibleSectionComponent,\n MatCardModule,\n GalaxyAvatarModule,\n CrmUnknownUserAvatarComponent,\n MatIconModule,\n GalaxyPipesModule,\n ],\n standalone: true,\n})\nexport class CrmActivityEmailComponent {\n unknownNamePlaceholder = this.translateService.instant('CONTACT.ACTIVITIES.UNKNOWN_NAME');\n private _activity: WritableSignal = signal({});\n private _associatedObjectId: WritableSignal = signal('');\n private _objectType: WritableSignal = signal('Contact');\n @Input({ required: true }) set activity(activity: ActivityExtended) {\n this._activity.set(activity);\n }\n get activity() {\n return this._activity();\n }\n @Input() set objectType(objectType: ObjectType) {\n this._objectType.set(objectType);\n }\n get objectType() {\n return this._objectType();\n }\n\n @Input() set associatedObjectId(crmObjectId: string) {\n this._associatedObjectId.set(crmObjectId);\n }\n\n get associatedObjectId() {\n return this._associatedObjectId();\n }\n\n private _showAvatar = true;\n @Input() set showAvatar(showAvatar: boolean) {\n this._showAvatar = showAvatar;\n }\n\n get showAvatar() {\n return this._showAvatar;\n }\n dateFormat = DateFormat.medium;\n\n associatedCrmObjectName$ = toObservable(this._activity).pipe(switchMap(() => this.getAssociatedObjectName()));\n associatedCrmObjectName = toSignal(this.associatedCrmObjectName$);\n\n contactEmails$ = toObservable(this._activity).pipe(switchMap((activity) => this.getContactEmails(activity)));\n contactEmails = toSignal(this.contactEmails$);\n\n campaignId$ = toObservable(this._activity).pipe(switchMap((activity) => this.getCampaignId(activity)));\n campaignId = toSignal(this.campaignId$);\n\n campaignName$ = toObservable(this._activity).pipe(switchMap((activity) => this.getCampaign(activity)));\n campaignName = toSignal(this.campaignName$);\n\n accountGroupId$ = toObservable(this._activity).pipe(switchMap((activity) => this.getAccountGroupId(activity)));\n accountGroupId = toSignal(this.accountGroupId$);\n\n cardInfo: Signal = computed(() => {\n return {\n emailBody:\n this.sanitizer.sanitize(\n SecurityContext.HTML,\n this.getStringFieldData(this.activity, StandardIds.ActivityEmailBody),\n ) || '',\n\n emailSubject: this.getStringFieldData(this.activity, StandardIds.ActivityEmailSubject),\n emailStatus: this.getStringFieldData(this.activity, StandardIds.ActivityEmailStatus),\n emailDirection: this.getStringFieldData(this.activity, StandardIds.ActivityEmailDirection)?.toLowerCase(),\n\n emailType: this.getStringFieldData(this.activity, StandardIds.ActivityEmailType),\n emailHeaders: this.getStringFieldData(this.activity, StandardIds.ActivityEmailHeaders) || '',\n sourceName: this.getStringFieldData(this.activity, StandardIds.ActivitySourceName),\n effectiveDate: this.getDateFieldData(this.activity, SystemFieldIds.ActivityEffectiveDate),\n };\n });\n\n ownerName = computed(() => {\n const owner = this.activity?.ownerUser;\n if (owner) {\n return `${owner?.firstName || ''} ${owner?.lastName || ''}`.trim();\n }\n return this.unknownNamePlaceholder;\n });\n\n isCampaign = computed(() => {\n const { emailType } = this.cardInfo();\n return emailType === 'marketing_campaign_email';\n });\n\n headerText = computed(() => {\n const { emailType, emailDirection } = this.cardInfo();\n let baseText = '';\n let nameText = '';\n if (emailType === 'marketing_campaign_email') {\n baseText = this.translateService.instant('ACTIVITY_TYPES.CAMPAIGN') + ' ';\n nameText = this.associatedCrmObjectName() || '';\n } else {\n baseText = this.translateService.instant('ACTIVITY_TYPES.EMAIL') + ' ';\n nameText = this.ownerName();\n }\n\n let directionText = '';\n if (emailDirection === 'outbound') {\n directionText = this.translateService.instant('ACTIVITY.EMAIL_TITLE.OUTBOUND') + ' ';\n } else if (emailDirection === 'forwarded') {\n directionText = this.translateService.instant('ACTIVITY.EMAIL_TITLE.FORWARDED') + ' ';\n } else {\n directionText = this.translateService.instant('ACTIVITY.EMAIL_TITLE.INBOUND') + ' ';\n }\n return `${baseText}${directionText}${nameText}`.trim();\n });\n\n campaignLink = computed(() => {\n if (this.useBusinessCenterCampaignLink()) {\n return `/account/location/${this.accountGroupId()}/campaigns/${this.campaignId()}/details`;\n } else {\n return `/marketing/campaign/details/${this.campaignId()}`;\n }\n });\n\n useBusinessCenterCampaignLink: Signal;\n\n constructor(\n @Inject(CrmInjectionToken) private readonly config: CrmDependencies,\n private readonly fieldService: CrmFieldService,\n private readonly campaignService: CampaignService,\n private readonly recipientCampaignService: RecipientCampaignService,\n private readonly crmObjectService: CrmObjectService,\n private readonly translateService: TranslateService,\n private readonly sanitizer: DomSanitizer,\n ) {\n this.useBusinessCenterCampaignLink = toSignal(\n config.parentNamespace$.pipe(\n map((parentNamespace) => {\n return parentNamespace !== '';\n }),\n ),\n );\n }\n\n protected readonly AVATAR_WIDTH = AVATAR_WIDTH;\n\n private getStringFieldData(activity: ActivityInterface, fieldId: string): string {\n return this.fieldService.getFieldValueFromCrmObject(activity, fieldId)?.stringValue ?? '';\n }\n private getCampaignName(id: string): Observable {\n if (id !== '') {\n return this.campaignService.get(id).pipe(\n map((campaignData: GetterCampaignData) => {\n return campaignData.name;\n }),\n );\n }\n return of('');\n }\n\n private getDateFieldData(activity: ActivityInterface, fieldId: string): Date | null {\n return this.fieldService.getFieldValueFromCrmObject(activity, fieldId)?.dateValue ?? null;\n }\n\n private getCampaignId(activity: ActivityInterface): Observable {\n const recipientId = this.getStringFieldData(activity, StandardIds.ActivityCampaignID);\n if (recipientId !== '') {\n return this.recipientCampaignService.getRecipientCampaign(recipientId).pipe(\n map((recipientCampaign: RecipientCampaignStruct) => {\n return recipientCampaign.campaignId;\n }),\n );\n }\n return of('');\n }\n\n private getAccountGroupId(activity: ActivityInterface): Observable {\n const recipientId = this.getStringFieldData(activity, StandardIds.ActivityCampaignID);\n if (recipientId !== '') {\n return this.recipientCampaignService.getRecipientCampaign(recipientId).pipe(\n map((recipientCampaign: RecipientCampaignStruct) => {\n const parts = recipientCampaign.partnerId.split('/');\n if (parts.length > 1) {\n return parts[1];\n }\n return '';\n }),\n );\n }\n\n return of('');\n }\n\n private getCampaign(activity: ActivityInterface): Observable {\n const campaignID$ = this.getCampaignId(activity);\n return campaignID$.pipe(\n switchMap((campaignId: string) => {\n return this.getCampaignName(campaignId);\n }),\n );\n }\n\n getAssociatedObjectName(): Observable {\n if (this.objectType === 'Contact') {\n return this.crmObjectService.getMultiObject('Contact', [this.associatedObjectId]).pipe(\n map((data: GetMultiCrmObjectResponseInterface) => {\n const crmObject = data?.crmObjects[0];\n const firstName =\n this.fieldService.getFieldValueFromCrmObject(crmObject, StandardExternalIds.FirstName)?.stringValue || '';\n const lastName =\n this.fieldService.getFieldValueFromCrmObject(crmObject, StandardExternalIds.LastName)?.stringValue || '';\n return `${firstName} ${lastName}` ?? '';\n }),\n );\n }\n if (this.objectType === 'Company') {\n return this.crmObjectService.getMultiObject('Company', [this.associatedObjectId]).pipe(\n map((data: GetMultiCrmObjectResponseInterface) => {\n const crmObject = data?.crmObjects[0];\n const companyName = this.fieldService.getFieldValueFromCrmObject(\n crmObject,\n StandardIds.CompanyName,\n )?.stringValue;\n return `${companyName}` ?? '';\n }),\n );\n }\n return of('');\n }\n\n private getContactEmails(activity: ActivityInterface): Observable<(string | undefined)[]> {\n const crmObjectIds: string[] = [];\n activity.associations?.forEach((association) => {\n if (association?.crmObjectType === 'Contact' && association?.crmObjectId) {\n crmObjectIds.push(association.crmObjectId);\n }\n });\n if (crmObjectIds.length > 0) {\n const contactDetails$ = this.crmObjectService.getMultiObject('Contact', crmObjectIds);\n return contactDetails$.pipe(\n map((resp) => {\n return resp?.crmObjects\n ? resp?.crmObjects?.map(\n (contact) =>\n this.fieldService.getFieldValueFromCrmObject(contact, StandardExternalIds.Email)?.stringValue,\n )\n : [];\n }),\n );\n }\n return of([]);\n }\n}\n\ninterface ActivityCardInformation {\n sourceName: string;\n emailBody: string;\n emailDirection: string;\n emailStatus: string;\n emailSubject: string;\n emailType: string;\n emailHeaders: string;\n}\n","
\n \n \n
\n \n
\n
\n \n
\n \n {{ headerText }}\n \n {{ 'ACTIVITY.UNKNOWN_TITLE' | translate }}\n \n \n \n

\n {{ cardInfo.effectiveDate | date : dateFormat }}\n

\n
\n
\n \n \n \n \n {{ cardInfo.emailSubject }}\n \n \n
\n \n
\n {{ ownerName }}\n
\n {{ 'ACTIVITY.EMAIL_TITLE.INBOUND' | translate }}\n
\n \n {{ contact }}, \n \n
\n
\n \n \n \n
\n
\n
\n
\n \n \n {{ cardInfo.emailSubject }}\n {{ 'CONTACT.ACTIVITIES.CREATED_FROM' | translate }}\n \n \n {{ campaignName() }}\n \n \n
\n
\n
\n","import { CommonModule } from '@angular/common';\nimport { HttpClient } from '@angular/common/http';\nimport { Component, Input, Signal, WritableSignal, computed, signal } from '@angular/core';\nimport { toObservable } from '@angular/core/rxjs-interop';\nimport { TranslateModule } from '@ngx-translate/core';\nimport { ActivityInterface } from '@vendasta/crm';\nimport { DateFormat } from '@vendasta/galaxy/utility/date-utils';\nimport { Observable, of } from 'rxjs';\nimport { switchMap } from 'rxjs/operators';\nimport { CollapsibleSectionComponent } from '../../collapsible-section/collapsible-section.component';\nimport { CrmFieldService, StandardIds, SystemFieldIds } from '../../../shared-services/crm-services/field.service';\nimport { TranslationModule } from '../../../i18n/translation-module';\n\n@Component({\n selector: 'crm-activity-logged-call',\n templateUrl: './logged-call.component.html',\n styleUrls: ['./logged-call.component.scss'],\n providers: [],\n imports: [CommonModule, TranslateModule, TranslationModule, CollapsibleSectionComponent],\n standalone: true,\n})\nexport class CrmActivityLoggedCallComponent {\n dateFormat = DateFormat.mediumDateShortTime;\n callRecordingSource$: Observable;\n\n private _activity: WritableSignal = signal({});\n @Input({ required: true }) set activity(activity: ActivityInterface) {\n this._activity.set(activity);\n }\n\n get activity() {\n return this._activity();\n }\n\n cardInfo: Signal = computed(() => {\n const cardInfo: any = {\n note: this.getFieldData(this._activity(), StandardIds.ActivityCallBody),\n direction: this.getFieldData(this._activity(), StandardIds.ActivityCallDirection),\n status: this.getFieldData(this._activity(), StandardIds.ActivityCallStatus),\n outcome: this.getFieldData(this._activity(), StandardIds.ActivityCallOutcome),\n date:\n this.fieldService.getFieldValueFromCrmObject(this._activity(), SystemFieldIds.ActivityEffectiveDate)\n ?.dateValue ?? null,\n };\n const callRecordingUrl = this.getFieldData(this._activity(), StandardIds.ActivityCallRecordingUrl);\n if (callRecordingUrl) {\n cardInfo.callRecordingUrl = callRecordingUrl;\n }\n return cardInfo;\n });\n\n private getFieldData(activity: ActivityInterface, fieldId: string): string {\n return this.fieldService.getFieldValueFromCrmObject(activity, fieldId)?.stringValue ?? '';\n }\n\n constructor(private readonly http: HttpClient, private readonly fieldService: CrmFieldService) {\n this.callRecordingSource$ = toObservable(this.cardInfo).pipe(\n switchMap((cardInfo) => {\n if (!cardInfo.callRecordingUrl) {\n return of(null);\n }\n return this.http.get(cardInfo.callRecordingUrl, {\n responseType: 'text',\n withCredentials: true,\n });\n }),\n );\n }\n}\n\ninterface ActivityCardInformation {\n note: string;\n outcome: string;\n status: string;\n direction: string;\n callRecordingUrl?: string;\n date: Date;\n}\n","
\n \n {{ cardInfo.note }}\n \n \n \n \n
\n \n \n \n \n
\n
\n\n\n
\n
\n {{ label | translate }}\n
\n
\n \n \n {{ value }}\n \n
\n
\n
\n","import { CommonModule } from '@angular/common';\nimport { Component, Input, WritableSignal, signal, Signal, computed } from '@angular/core';\nimport { TranslateModule } from '@ngx-translate/core';\nimport { TranslationModule } from '../../../i18n/translation-module';\nimport { CrmFieldService, StandardIds, SystemFieldIds } from '../../../shared-services/crm-services/field.service';\nimport { CollapsibleSectionComponent } from '../../collapsible-section/collapsible-section.component';\nimport { ActivityInterface } from '@vendasta/crm';\nimport { DateFormat } from '@vendasta/galaxy/utility/date-utils';\nimport { GalaxyPipesModule } from '@vendasta/galaxy/pipes';\n\n@Component({\n selector: 'crm-activity-logged-communication',\n templateUrl: './logged-communication.component.html',\n styleUrls: ['./logged-communication.component.scss'],\n providers: [],\n imports: [CommonModule, TranslateModule, TranslationModule, CollapsibleSectionComponent, GalaxyPipesModule],\n standalone: true,\n})\nexport class CrmActivityLoggedCommunicationComponent {\n private _activity: WritableSignal = signal({});\n @Input({ required: true }) set activity(activity: ActivityInterface) {\n this._activity.set(activity);\n }\n\n get activity() {\n return this._activity();\n }\n\n dateFormat = DateFormat.mediumDateShortTime;\n\n cardInfo: Signal = computed(() => {\n const cardInfo: any = {\n body: this.getFieldData(this._activity(), StandardIds.ActivityCommunicationBody),\n channel: this.getFieldData(this._activity(), StandardIds.ActivityCommunicationChannel),\n outcome: this.getFieldData(this._activity(), StandardIds.ActivityCommunicationOutcome),\n date:\n this.fieldService.getFieldValueFromCrmObject(this._activity(), SystemFieldIds.ActivityEffectiveDate)\n ?.dateValue ?? null,\n };\n return cardInfo;\n });\n\n private getFieldData(activity: ActivityInterface, fieldId: string): string {\n return this.fieldService.getFieldValueFromCrmObject(activity, fieldId)?.stringValue ?? '';\n }\n\n constructor(private readonly fieldService: CrmFieldService) {}\n}\n\ninterface ActivityCardInformation {\n body: string;\n channel: string;\n outcome: string;\n date: Date;\n}\n","
\n \n {{ cardInfo.body }}\n \n
\n \n \n \n
\n
\n\n\n
\n
\n {{ label | translate }}\n
\n
\n \n \n {{ value }}\n \n
\n
\n
\n","import { CommonModule } from '@angular/common';\nimport { Component, Input } from '@angular/core';\nimport { TranslateModule } from '@ngx-translate/core';\nimport { RxState } from '@rx-angular/state';\nimport { ActivityInterface } from '@vendasta/crm';\nimport { map } from 'rxjs';\nimport { CollapsibleSectionComponent } from '../../collapsible-section/collapsible-section.component';\nimport { CrmFieldService, StandardIds } from '../../../shared-services/crm-services/field.service';\nimport { TranslationModule } from '../../../i18n/translation-module';\n\n@Component({\n selector: 'crm-activity-logged-email',\n templateUrl: './logged-email.component.html',\n styleUrls: ['./logged-email.component.scss'],\n providers: [RxState],\n imports: [CommonModule, TranslateModule, TranslationModule, CollapsibleSectionComponent],\n standalone: true,\n})\nexport class CrmActivityLoggedEmailComponent {\n @Input() set activity(activity: ActivityInterface) {\n this.state.set({ activity: activity });\n }\n get activity() {\n return this.state.get().activity;\n }\n\n description$ = this.state.select('description');\n direction$ = this.state.select('direction');\n\n constructor(private readonly state: RxState, private readonly fieldService: CrmFieldService) {\n this.state.set({\n activity: undefined,\n description: '',\n direction: '',\n });\n\n this.state.connect(\n 'description',\n this.state\n .select('activity')\n .pipe(\n map(\n (activity) =>\n this.fieldService.getFieldValueFromCrmObject(activity, StandardIds.ActivityEmailBody)?.stringValue ?? '',\n ),\n ),\n );\n\n this.state.connect(\n 'direction',\n this.state\n .select('activity')\n .pipe(\n map(\n (activity) =>\n this.fieldService.getFieldValueFromCrmObject(activity, StandardIds.ActivityEmailDirection)?.stringValue ??\n '',\n ),\n ),\n );\n }\n}\n\ninterface ComponentState {\n activity: ActivityInterface;\n\n description: string;\n direction: string;\n}\n","
\n \n {{ description }}\n \n
\n
\n {{ 'ACTIVITY.LOGGED_EMAIL.DIRECTION' | translate }}\n
\n
\n {{ direction === 'Sent' ? 'Outbound' : direction }}\n
\n
\n
\n","import { CommonModule } from '@angular/common';\nimport { Component, Input, WritableSignal, signal, Signal, computed } from '@angular/core';\nimport { TranslateModule } from '@ngx-translate/core';\nimport { TranslationModule } from '../../../i18n/translation-module';\nimport { CrmFieldService, StandardIds, SystemFieldIds } from '../../../shared-services/crm-services/field.service';\nimport { CollapsibleSectionComponent } from '../../collapsible-section/collapsible-section.component';\nimport { ActivityInterface } from '@vendasta/crm';\nimport { intervalToDuration } from 'date-fns';\nimport { GalaxyPipesModule } from '@vendasta/galaxy/pipes';\nimport { DateFormat } from '@vendasta/galaxy/utility/date-utils';\nimport DOMPurify from 'dompurify';\n\n@Component({\n selector: 'crm-activity-logged-meeting',\n templateUrl: './logged-meeting.component.html',\n styleUrls: ['./logged-meeting.component.scss'],\n providers: [],\n imports: [CommonModule, TranslateModule, TranslationModule, CollapsibleSectionComponent, GalaxyPipesModule],\n standalone: true,\n})\nexport class CrmActivityLoggedMeetingComponent {\n dateFormat = DateFormat.mediumDateShortTime;\n private _activity: WritableSignal = signal({});\n @Input({ required: true }) set activity(activity: ActivityInterface) {\n this._activity.set(activity);\n }\n get activity() {\n return this._activity();\n }\n\n cardInfo: Signal = computed(() => {\n const duration = this.getIntegerFieldData(this._activity(), StandardIds.ActivityMeetingDuration);\n return {\n note: DOMPurify.sanitize(this.getStringFieldData(this._activity(), StandardIds.ActivityMeetingBody)),\n status: this.getStringFieldData(this._activity(), StandardIds.ActivityMeetingStatus),\n outcome: this.getStringFieldData(this._activity(), StandardIds.ActivityMeetingOutcome),\n date:\n this.fieldService.getFieldValueFromCrmObject(this._activity(), SystemFieldIds.ActivityEffectiveDate)\n ?.dateValue ?? null,\n duration: this.convertMillisecondsToHoursAndMinutes(duration),\n };\n });\n\n private getStringFieldData(activity: ActivityInterface, fieldId: string): string {\n return this.fieldService.getFieldValueFromCrmObject(activity, fieldId)?.stringValue ?? '';\n }\n private getIntegerFieldData(activity: ActivityInterface, fieldId: string): number {\n return this.fieldService.getFieldValueFromCrmObject(activity, fieldId)?.integerValue ?? 0;\n }\n private convertMillisecondsToHoursAndMinutes(duration: number): string {\n if (duration === 0) return '';\n const convertedDuration = intervalToDuration({ start: 0, end: duration });\n if (convertedDuration.hours > 0) {\n return `${convertedDuration.hours}h ${convertedDuration.minutes}m`;\n }\n return `${convertedDuration.minutes}m`;\n }\n\n constructor(private readonly fieldService: CrmFieldService) {}\n}\n\ninterface ActivityCardInformation {\n note: string;\n outcome: string;\n status: string;\n date: Date;\n duration: string;\n}\n","
\n \n \n \n
\n \n \n \n \n
\n
\n\n\n
\n
\n {{ label | translate }}\n
\n
\n \n \n {{ value }}\n \n
\n
\n
\n","import { CommonModule } from '@angular/common';\nimport { Component, Input } from '@angular/core';\nimport { TranslateModule } from '@ngx-translate/core';\nimport { TranslationModule } from '../../../i18n/translation-module';\nimport { RxState } from '@rx-angular/state';\nimport { map } from 'rxjs';\nimport { CrmFieldService, StandardIds } from '../../../shared-services/crm-services/field.service';\nimport { CollapsibleSectionComponent } from '../../collapsible-section/collapsible-section.component';\nimport { ActivityInterface } from '@vendasta/crm';\n\n@Component({\n selector: 'crm-activity-logged-note',\n templateUrl: './logged-note.component.html',\n styleUrls: ['./logged-note.component.scss'],\n providers: [RxState],\n imports: [CommonModule, TranslateModule, TranslationModule, CollapsibleSectionComponent],\n standalone: true,\n})\nexport class CrmActivityLoggedNoteComponent {\n @Input() set activity(activity: ActivityInterface) {\n this.state.set({ activity: activity });\n }\n get activity() {\n return this.state.get().activity;\n }\n\n noteBody$ = this.state.select('noteBody');\n\n constructor(private readonly state: RxState, private readonly fieldService: CrmFieldService) {\n this.state.set({\n activity: undefined,\n noteBody: '',\n });\n\n this.state.connect(\n 'noteBody',\n this.state\n .select('activity')\n .pipe(\n map(\n (activity) =>\n this.fieldService.getFieldValueFromCrmObject(activity, StandardIds.ActivityNoteBody)?.stringValue ?? '',\n ),\n ),\n );\n }\n}\n\ninterface ComponentState {\n activity: ActivityInterface;\n\n noteBody: string;\n}\n","
\n \n

{{ noteBody }}

\n
\n
\n","import { RxState } from '@rx-angular/state';\nimport { TranslateModule } from '@ngx-translate/core';\nimport { AVATAR_WIDTH } from '../../../constants';\nimport { TranslationModule } from '../../../i18n/translation-module';\nimport { CollapsibleSectionComponent } from '../../collapsible-section/collapsible-section.component';\nimport { ActivityInterface } from '@vendasta/crm';\nimport { CommonModule } from '@angular/common';\nimport { Component, computed, Input, WritableSignal, signal, Signal } from '@angular/core';\nimport { CrmFieldService, StandardIds, SystemFieldIds } from '../../../shared-services/crm-services/field.service';\nimport { MatCardModule } from '@angular/material/card';\nimport { DateFormat } from '@vendasta/galaxy/utility/date-utils';\nimport { GalaxyAvatarModule } from '@vendasta/galaxy/avatar';\nimport { CrmUnknownUserAvatarComponent } from '../../unknown-user-avatar/unknown-user-avatar.component';\n\n@Component({\n selector: 'crm-activity-note',\n templateUrl: './note.component.html',\n styleUrls: ['./note.component.scss'],\n providers: [RxState],\n imports: [\n CommonModule,\n TranslateModule,\n TranslationModule,\n CollapsibleSectionComponent,\n MatCardModule,\n GalaxyAvatarModule,\n CrmUnknownUserAvatarComponent,\n ],\n standalone: true,\n})\nexport class CrmActivityNoteComponent {\n private _activity: WritableSignal = signal({});\n @Input({ required: true }) set activity(activity: ActivityInterface) {\n this._activity.set(activity);\n }\n get activity() {\n return this._activity();\n }\n\n private _showAvatar = true;\n @Input() set showAvatar(showAvatar: boolean) {\n this._showAvatar = showAvatar;\n }\n\n get showAvatar() {\n return this._showAvatar;\n }\n dateFormat = DateFormat.medium;\n\n cardInfo: Signal = computed(() => {\n return {\n noteBody: this.getStringFieldData(this.activity, StandardIds.ActivityNoteBody),\n noteTitle: this.getStringFieldData(this.activity, StandardIds.ActivityNoteTitle),\n sourceName: this.getStringFieldData(this.activity, StandardIds.ActivitySourceName),\n effectiveDate: this.getDateFieldData(this.activity, SystemFieldIds.ActivityEffectiveDate),\n };\n });\n\n private getStringFieldData(activity: ActivityInterface, fieldId: string): string {\n return this.fieldService.getFieldValueFromCrmObject(activity, fieldId)?.stringValue ?? '';\n }\n\n private getDateFieldData(activity: ActivityInterface, fieldId: string): Date | null {\n return this.fieldService.getFieldValueFromCrmObject(activity, fieldId)?.dateValue ?? null;\n }\n\n constructor(private readonly fieldService: CrmFieldService) {}\n\n protected readonly AVATAR_WIDTH = AVATAR_WIDTH;\n\n headerText = computed(() => {\n const { noteTitle, sourceName } = this.cardInfo();\n\n if (sourceName) {\n return `${noteTitle} in ${sourceName}`.trim();\n }\n return noteTitle ?? '';\n });\n}\n\ninterface ActivityCardInformation {\n sourceName: string;\n noteBody: string;\n noteTitle: string;\n effectiveDate: Date | null;\n}\n","
\n \n \n
\n \n
\n \n {{ headerText() }}\n \n {{ 'ACTIVITY.UNKNOWN_TITLE' | translate }}\n \n \n \n

\n {{ cardInfo.effectiveDate | date : dateFormat }}\n

\n
\n
\n \n
\n \n

{{ cardInfo.noteBody }}

\n
\n
\n
\n
\n
\n","import * as i0 from '@angular/core';\nimport { Injectable } from '@angular/core';\nimport * as i1 from '@angular/common/http';\nimport { HttpHeaders } from '@angular/common/http';\nimport { map, mapTo, share, switchMap } from 'rxjs/operators';\nimport { EMPTY, throwError, of } from 'rxjs';\n\n// *********************************\n// Code generated by sdkgen\n// DO NOT EDIT!.\n//\n// Enums.\n// *********************************\nvar Archived = /*#__PURE__*/function (Archived) {\n Archived[Archived[\"ARCHIVED_ANY\"] = 0] = \"ARCHIVED_ANY\";\n Archived[Archived[\"ARCHIVED_YES\"] = 1] = \"ARCHIVED_YES\";\n Archived[Archived[\"ARCHIVED_NO\"] = 2] = \"ARCHIVED_NO\";\n return Archived;\n}(Archived || {});\nvar Campaign = /*#__PURE__*/function (Campaign) {\n Campaign[Campaign[\"CAMPAIGN_ANY\"] = 0] = \"CAMPAIGN_ANY\";\n Campaign[Campaign[\"CAMPAIGN_ON\"] = 1] = \"CAMPAIGN_ON\";\n Campaign[Campaign[\"CAMPAIGN_OFF\"] = 2] = \"CAMPAIGN_OFF\";\n return Campaign;\n}(Campaign || {});\nvar LifecycleStage = /*#__PURE__*/function (LifecycleStage) {\n LifecycleStage[LifecycleStage[\"LIFECYCLE_STAGE_UNSET\"] = 0] = \"LIFECYCLE_STAGE_UNSET\";\n LifecycleStage[LifecycleStage[\"LIFECYCLE_STAGE_LEAD\"] = 1] = \"LIFECYCLE_STAGE_LEAD\";\n LifecycleStage[LifecycleStage[\"LIFECYCLE_STAGE_PROSPECT\"] = 2] = \"LIFECYCLE_STAGE_PROSPECT\";\n LifecycleStage[LifecycleStage[\"LIFECYCLE_STAGE_CUSTOMER\"] = 3] = \"LIFECYCLE_STAGE_CUSTOMER\";\n return LifecycleStage;\n}(LifecycleStage || {});\nvar Snapshot = /*#__PURE__*/function (Snapshot) {\n Snapshot[Snapshot[\"SNAPSHOT_ANY\"] = 0] = \"SNAPSHOT_ANY\";\n Snapshot[Snapshot[\"SNAPSHOT_SENT\"] = 1] = \"SNAPSHOT_SENT\";\n Snapshot[Snapshot[\"SNAPSHOT_NOT_SENT\"] = 2] = \"SNAPSHOT_NOT_SENT\";\n return Snapshot;\n}(Snapshot || {});\n// *********************************\n// Code generated by sdkgen\n// DO NOT EDIT!.\n//\n// Enums.\n// *********************************\nvar ActionCategory = /*#__PURE__*/function (ActionCategory) {\n ActionCategory[ActionCategory[\"ACTION_CATEGORY_UNKNOWN\"] = 0] = \"ACTION_CATEGORY_UNKNOWN\";\n ActionCategory[ActionCategory[\"ACTION_CATEGORY_CLICK\"] = 1] = \"ACTION_CATEGORY_CLICK\";\n ActionCategory[ActionCategory[\"ACTION_CATEGORY_VIEW\"] = 2] = \"ACTION_CATEGORY_VIEW\";\n ActionCategory[ActionCategory[\"ACTION_CATEGORY_LINGER\"] = 3] = \"ACTION_CATEGORY_LINGER\";\n ActionCategory[ActionCategory[\"ACTION_CATEGORY_TYPED\"] = 4] = \"ACTION_CATEGORY_TYPED\";\n ActionCategory[ActionCategory[\"ACTION_CATEGORY_PURCHASED\"] = 5] = \"ACTION_CATEGORY_PURCHASED\";\n ActionCategory[ActionCategory[\"ACTION_CATEGORY_ADDED_TO_CART\"] = 6] = \"ACTION_CATEGORY_ADDED_TO_CART\";\n return ActionCategory;\n}(ActionCategory || {});\n// *********************************\n// Code generated by sdkgen\n// DO NOT EDIT!.\n//\n// Enums.\n// *********************************\nvar TicketPriority = /*#__PURE__*/function (TicketPriority) {\n TicketPriority[TicketPriority[\"TICKET_PRIORITY_UNSET\"] = 0] = \"TICKET_PRIORITY_UNSET\";\n TicketPriority[TicketPriority[\"TICKET_PRIORITY_LOW\"] = 1] = \"TICKET_PRIORITY_LOW\";\n TicketPriority[TicketPriority[\"TICKET_PRIORITY_MEDIUM\"] = 2] = \"TICKET_PRIORITY_MEDIUM\";\n TicketPriority[TicketPriority[\"TICKET_PRIORITY_HIGH\"] = 3] = \"TICKET_PRIORITY_HIGH\";\n TicketPriority[TicketPriority[\"TICKET_PRIORITY_URGENT\"] = 4] = \"TICKET_PRIORITY_URGENT\";\n return TicketPriority;\n}(TicketPriority || {});\n// *********************************\n// Code generated by sdkgen\n// DO NOT EDIT!.\n//\n// Enums.\n// *********************************\nvar CriteriaMatchType = /*#__PURE__*/function (CriteriaMatchType) {\n CriteriaMatchType[CriteriaMatchType[\"CRITERIA_MATCH_TYPE_ALL\"] = 0] = \"CRITERIA_MATCH_TYPE_ALL\";\n CriteriaMatchType[CriteriaMatchType[\"CRITERIA_MATCH_TYPE_ANY\"] = 1] = \"CRITERIA_MATCH_TYPE_ANY\";\n return CriteriaMatchType;\n}(CriteriaMatchType || {});\nvar TagMatchType = /*#__PURE__*/function (TagMatchType) {\n TagMatchType[TagMatchType[\"TAG_MATCH_TYPE_ALL\"] = 0] = \"TAG_MATCH_TYPE_ALL\";\n TagMatchType[TagMatchType[\"TAG_MATCH_TYPE_ANY\"] = 1] = \"TAG_MATCH_TYPE_ANY\";\n return TagMatchType;\n}(TagMatchType || {});\n// *********************************\n// Code generated by sdkgen\n// DO NOT EDIT!.\n//\n// Enums.\n// *********************************\nvar Frequency = /*#__PURE__*/function (Frequency) {\n Frequency[Frequency[\"FREQUENCY_ONETIME\"] = 0] = \"FREQUENCY_ONETIME\";\n Frequency[Frequency[\"FREQUENCY_DAILY\"] = 1] = \"FREQUENCY_DAILY\";\n Frequency[Frequency[\"FREQUENCY_WEEKLY\"] = 2] = \"FREQUENCY_WEEKLY\";\n Frequency[Frequency[\"FREQUENCY_BIWEEKLY\"] = 3] = \"FREQUENCY_BIWEEKLY\";\n Frequency[Frequency[\"FREQUENCY_MONTHLY\"] = 4] = \"FREQUENCY_MONTHLY\";\n Frequency[Frequency[\"FREQUENCY_YEARLY\"] = 5] = \"FREQUENCY_YEARLY\";\n return Frequency;\n}(Frequency || {});\n// *********************************\n// Code generated by sdkgen\n// DO NOT EDIT!.\n//\n// Enums.\n// *********************************\nvar Currency = /*#__PURE__*/function (Currency) {\n Currency[Currency[\"USD\"] = 0] = \"USD\";\n Currency[Currency[\"CAD\"] = 1] = \"CAD\";\n Currency[Currency[\"EUR\"] = 2] = \"EUR\";\n Currency[Currency[\"AUD\"] = 3] = \"AUD\";\n Currency[Currency[\"GBP\"] = 4] = \"GBP\";\n Currency[Currency[\"NZD\"] = 5] = \"NZD\";\n Currency[Currency[\"ZAR\"] = 6] = \"ZAR\";\n return Currency;\n}(Currency || {});\nvar DurationPeriod = /*#__PURE__*/function (DurationPeriod) {\n DurationPeriod[DurationPeriod[\"UNSPECIFIED\"] = 0] = \"UNSPECIFIED\";\n DurationPeriod[DurationPeriod[\"MONTH\"] = 1] = \"MONTH\";\n DurationPeriod[DurationPeriod[\"YEAR\"] = 2] = \"YEAR\";\n DurationPeriod[DurationPeriod[\"DAY\"] = 3] = \"DAY\";\n DurationPeriod[DurationPeriod[\"WEEK\"] = 4] = \"WEEK\";\n return DurationPeriod;\n}(DurationPeriod || {});\nvar RevenuePeriod = /*#__PURE__*/function (RevenuePeriod) {\n RevenuePeriod[RevenuePeriod[\"ONETIME\"] = 0] = \"ONETIME\";\n RevenuePeriod[RevenuePeriod[\"DAILY\"] = 1] = \"DAILY\";\n RevenuePeriod[RevenuePeriod[\"WEEKLY\"] = 2] = \"WEEKLY\";\n RevenuePeriod[RevenuePeriod[\"BIWEEKLY\"] = 3] = \"BIWEEKLY\";\n RevenuePeriod[RevenuePeriod[\"MONTHLY\"] = 4] = \"MONTHLY\";\n RevenuePeriod[RevenuePeriod[\"YEARLY\"] = 5] = \"YEARLY\";\n return RevenuePeriod;\n}(RevenuePeriod || {});\n// *********************************\n\nfunction enumStringToValue$a(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.userId !== 'undefined') {\n toReturn['userId'] = this.userId;\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 if (typeof this.jobTitle !== 'undefined') {\n toReturn['jobTitle'] = this.jobTitle;\n }\n if (typeof this.isSalesManager !== 'undefined') {\n toReturn['isSalesManager'] = this.isSalesManager;\n }\n if (typeof this.meetingBookingUrl !== 'undefined') {\n toReturn['meetingBookingUrl'] = this.meetingBookingUrl;\n }\n return toReturn;\n }\n}\nfunction enumStringToValue$9(enumRef, value) {\n if (typeof value === 'number') {\n return value;\n }\n return enumRef[value];\n}\nclass SalesTeam {\n static fromProto(proto) {\n let m = new SalesTeam();\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.teamName !== 'undefined') {\n toReturn['teamName'] = this.teamName;\n }\n if (typeof this.groupId !== 'undefined') {\n toReturn['groupId'] = this.groupId;\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.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$8(enumRef, value) {\n if (typeof value === 'number') {\n return value;\n }\n return enumRef[value];\n}\nclass SalesActivity {\n static fromProto(proto) {\n let m = new SalesActivity();\n m = Object.assign(m, proto);\n if (proto.key) {\n m.key = SalesActivityKey.fromProto(proto.key);\n }\n if (proto.created) {\n m.created = new Date(proto.created);\n }\n if (proto.lastEdited) {\n m.lastEdited = new Date(proto.lastEdited);\n }\n if (proto.deleted) {\n m.deleted = new Date(proto.deleted);\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' && this.key !== null) {\n toReturn['key'] = 'toApiJson' in this.key ? this.key.toApiJson() : this.key;\n }\n if (typeof this.opportunityId !== 'undefined') {\n toReturn['opportunityId'] = this.opportunityId;\n }\n if (typeof this.salespersonId !== 'undefined') {\n toReturn['salespersonId'] = this.salespersonId;\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.salesStatus !== 'undefined') {\n toReturn['salesStatus'] = this.salesStatus;\n }\n if (typeof this.previousSalesStatus !== 'undefined') {\n toReturn['previousSalesStatus'] = this.previousSalesStatus;\n }\n if (typeof this.salespersonAction !== 'undefined') {\n toReturn['salespersonAction'] = this.salespersonAction;\n }\n if (typeof this.customActionName !== 'undefined') {\n toReturn['customActionName'] = this.customActionName;\n }\n if (typeof this.productName !== 'undefined') {\n toReturn['productName'] = this.productName;\n }\n if (typeof this.productPrice !== 'undefined') {\n toReturn['productPrice'] = this.productPrice;\n }\n if (typeof this.connected !== 'undefined') {\n toReturn['connected'] = this.connected;\n }\n if (typeof this.notes !== 'undefined') {\n toReturn['notes'] = this.notes;\n }\n if (typeof this.closedLostReason !== 'undefined') {\n toReturn['closedLostReason'] = this.closedLostReason;\n }\n if (typeof this.audioKey !== 'undefined') {\n toReturn['audioKey'] = this.audioKey;\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.lastEdited !== 'undefined' && this.lastEdited !== null) {\n toReturn['lastEdited'] = 'toApiJson' in this.lastEdited ? this.lastEdited.toApiJson() : this.lastEdited;\n }\n if (typeof this.deleted !== 'undefined' && this.deleted !== null) {\n toReturn['deleted'] = 'toApiJson' in this.deleted ? this.deleted.toApiJson() : this.deleted;\n }\n if (typeof this.opportunityName !== 'undefined') {\n toReturn['opportunityName'] = this.opportunityName;\n }\n if (typeof this.salesPersonName !== 'undefined') {\n toReturn['salesPersonName'] = this.salesPersonName;\n }\n return toReturn;\n }\n}\nclass SalesActivityKey {\n static fromProto(proto) {\n let m = new SalesActivityKey();\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.salesActivityId !== 'undefined') {\n toReturn['salesActivityId'] = this.salesActivityId;\n }\n if (typeof this.businessId !== 'undefined') {\n toReturn['businessId'] = this.businessId;\n }\n return toReturn;\n }\n}\nfunction enumStringToValue$7(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.hotness) {\n m.hotness = parseInt(proto.hotness, 10);\n }\n if (proto.lastSalesActivityDate) {\n m.lastSalesActivityDate = new Date(proto.lastSalesActivityDate);\n }\n if (proto.lastCustomerActivityDate) {\n m.lastCustomerActivityDate = new Date(proto.lastCustomerActivityDate);\n }\n if (proto.latestSnapshotExpiry) {\n m.latestSnapshotExpiry = new Date(proto.latestSnapshotExpiry);\n }\n if (proto.lastConnectedDate) {\n m.lastConnectedDate = new Date(proto.lastConnectedDate);\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.name !== 'undefined') {\n toReturn['name'] = this.name;\n }\n if (typeof this.accountGroupId !== 'undefined') {\n toReturn['accountGroupId'] = this.accountGroupId;\n }\n if (typeof this.hotness !== 'undefined') {\n toReturn['hotness'] = this.hotness;\n }\n if (typeof this.city !== 'undefined') {\n toReturn['city'] = this.city;\n }\n if (typeof this.zip !== 'undefined') {\n toReturn['zip'] = this.zip;\n }\n if (typeof this.address !== 'undefined') {\n toReturn['address'] = this.address;\n }\n if (typeof this.state !== 'undefined') {\n toReturn['state'] = this.state;\n }\n if (typeof this.country !== 'undefined') {\n toReturn['country'] = this.country;\n }\n if (typeof this.phoneNumber !== 'undefined') {\n toReturn['phoneNumber'] = this.phoneNumber;\n }\n if (typeof this.salespersonId !== 'undefined') {\n toReturn['salespersonId'] = this.salespersonId;\n }\n if (typeof this.lastSalesActivityDate !== 'undefined' && this.lastSalesActivityDate !== null) {\n toReturn['lastSalesActivityDate'] = 'toApiJson' in this.lastSalesActivityDate ? this.lastSalesActivityDate.toApiJson() : this.lastSalesActivityDate;\n }\n if (typeof this.lastCustomerActivityDate !== 'undefined' && this.lastCustomerActivityDate !== null) {\n toReturn['lastCustomerActivityDate'] = 'toApiJson' in this.lastCustomerActivityDate ? this.lastCustomerActivityDate.toApiJson() : this.lastCustomerActivityDate;\n }\n if (typeof this.salesStatus !== 'undefined') {\n toReturn['salesStatus'] = this.salesStatus;\n }\n if (typeof this.isRead !== 'undefined') {\n toReturn['isRead'] = this.isRead;\n }\n if (typeof this.salesPersonAction !== 'undefined') {\n toReturn['salesPersonAction'] = this.salesPersonAction;\n }\n if (typeof this.latestSnapshotExpiry !== 'undefined' && this.latestSnapshotExpiry !== null) {\n toReturn['latestSnapshotExpiry'] = 'toApiJson' in this.latestSnapshotExpiry ? this.latestSnapshotExpiry.toApiJson() : this.latestSnapshotExpiry;\n }\n if (typeof this.snapshotOrCampaignEmailStatus !== 'undefined') {\n toReturn['snapshotOrCampaignEmailStatus'] = this.snapshotOrCampaignEmailStatus;\n }\n if (typeof this.activityType !== 'undefined') {\n toReturn['activityType'] = this.activityType;\n }\n if (typeof this.lastConnectedDate !== 'undefined' && this.lastConnectedDate !== null) {\n toReturn['lastConnectedDate'] = 'toApiJson' in this.lastConnectedDate ? this.lastConnectedDate.toApiJson() : this.lastConnectedDate;\n }\n if (typeof this.lifecycleStage !== 'undefined') {\n toReturn['lifecycleStage'] = this.lifecycleStage;\n }\n return toReturn;\n }\n}\nclass BusinessPagedResponseMetadata {\n static fromProto(proto) {\n let m = new BusinessPagedResponseMetadata();\n m = Object.assign(m, proto);\n if (proto.totalResults) {\n m.totalResults = parseInt(proto.totalResults, 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.nextCursor !== 'undefined') {\n toReturn['nextCursor'] = this.nextCursor;\n }\n if (typeof this.hasMore !== 'undefined') {\n toReturn['hasMore'] = this.hasMore;\n }\n if (typeof this.totalResults !== 'undefined') {\n toReturn['totalResults'] = this.totalResults;\n }\n return toReturn;\n }\n}\nclass BusinessSearchFilters {\n static fromProto(proto) {\n let m = new BusinessSearchFilters();\n m = Object.assign(m, proto);\n if (proto.fromDate) {\n m.fromDate = new Date(proto.fromDate);\n }\n if (proto.toDate) {\n m.toDate = new Date(proto.toDate);\n }\n if (proto.archived) {\n m.archived = enumStringToValue$7(Archived, proto.archived);\n }\n if (proto.onCampaign) {\n m.onCampaign = enumStringToValue$7(Campaign, proto.onCampaign);\n }\n if (proto.snapshotSent) {\n m.snapshotSent = enumStringToValue$7(Snapshot, proto.snapshotSent);\n }\n if (proto.lifecycleStage) {\n m.lifecycleStage = enumStringToValue$7(LifecycleStage, proto.lifecycleStage);\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.salesStatuses !== 'undefined') {\n toReturn['salesStatuses'] = this.salesStatuses;\n }\n if (typeof this.salesAction !== 'undefined') {\n toReturn['salesAction'] = this.salesAction;\n }\n if (typeof this.fromDate !== 'undefined' && this.fromDate !== null) {\n toReturn['fromDate'] = 'toApiJson' in this.fromDate ? this.fromDate.toApiJson() : this.fromDate;\n }\n if (typeof this.toDate !== 'undefined' && this.toDate !== null) {\n toReturn['toDate'] = 'toApiJson' in this.toDate ? this.toDate.toApiJson() : this.toDate;\n }\n if (typeof this.archived !== 'undefined') {\n toReturn['archived'] = this.archived;\n }\n if (typeof this.accountTags !== 'undefined') {\n toReturn['accountTags'] = this.accountTags;\n }\n if (typeof this.businessCategories !== 'undefined') {\n toReturn['businessCategories'] = this.businessCategories;\n }\n if (typeof this.onCampaign !== 'undefined') {\n toReturn['onCampaign'] = this.onCampaign;\n }\n if (typeof this.snapshotSent !== 'undefined') {\n toReturn['snapshotSent'] = this.snapshotSent;\n }\n if (typeof this.query !== 'undefined') {\n toReturn['query'] = this.query;\n }\n if (typeof this.assignees !== 'undefined') {\n toReturn['assignees'] = this.assignees;\n }\n if (typeof this.goal !== 'undefined') {\n toReturn['goal'] = this.goal;\n }\n if (typeof this.trainingPriorities !== 'undefined') {\n toReturn['trainingPriorities'] = this.trainingPriorities;\n }\n if (typeof this.customFieldPartnerId !== 'undefined') {\n toReturn['customFieldPartnerId'] = this.customFieldPartnerId;\n }\n if (typeof this.lifecycleStage !== 'undefined') {\n toReturn['lifecycleStage'] = this.lifecycleStage;\n }\n return toReturn;\n }\n}\nclass BusinessSearchSortOptions {\n static fromProto(proto) {\n let m = new BusinessSearchSortOptions();\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.sortKey !== 'undefined') {\n toReturn['sortKey'] = this.sortKey;\n }\n if (typeof this.sortAscending !== 'undefined') {\n toReturn['sortAscending'] = this.sortAscending;\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 BulkUploadUserActionsRequest {\n static fromProto(proto) {\n let m = new BulkUploadUserActionsRequest();\n m = Object.assign(m, proto);\n if (proto.userActions) {\n m.userActions = proto.userActions.map(UserActionsRequest.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.userActions !== 'undefined' && this.userActions !== null) {\n toReturn['userActions'] = 'toApiJson' in this.userActions ? this.userActions.toApiJson() : this.userActions;\n }\n return toReturn;\n }\n}\nclass GetUserActionsRequest {\n static fromProto(proto) {\n let m = new GetUserActionsRequest();\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.accountGroupId !== 'undefined') {\n toReturn['accountGroupId'] = this.accountGroupId;\n }\n if (typeof this.cursor !== 'undefined') {\n toReturn['cursor'] = this.cursor;\n }\n if (typeof this.pageSize !== 'undefined') {\n toReturn['pageSize'] = this.pageSize;\n }\n return toReturn;\n }\n}\nclass UploadUserActionForCustomerIDRequest {\n static fromProto(proto) {\n let m = new UploadUserActionForCustomerIDRequest();\n m = Object.assign(m, proto);\n if (proto.category) {\n m.category = enumStringToValue$6(ActionCategory, proto.category);\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.customerId !== 'undefined') {\n toReturn['customerId'] = this.customerId;\n }\n if (typeof this.partnerId !== 'undefined') {\n toReturn['partnerId'] = this.partnerId;\n }\n if (typeof this.category !== 'undefined') {\n toReturn['category'] = this.category;\n }\n if (typeof this.description !== 'undefined') {\n toReturn['description'] = this.description;\n }\n return toReturn;\n }\n}\nclass UserAction {\n static fromProto(proto) {\n let m = new UserAction();\n m = Object.assign(m, proto);\n if (proto.created) {\n m.created = new Date(proto.created);\n }\n if (proto.category) {\n m.category = enumStringToValue$6(ActionCategory, proto.category);\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.created !== 'undefined' && this.created !== null) {\n toReturn['created'] = 'toApiJson' in this.created ? this.created.toApiJson() : this.created;\n }\n if (typeof this.category !== 'undefined') {\n toReturn['category'] = this.category;\n }\n if (typeof this.description !== 'undefined') {\n toReturn['description'] = this.description;\n }\n return toReturn;\n }\n}\nclass UserActionsPagedResponseMetadata {\n static fromProto(proto) {\n let m = new UserActionsPagedResponseMetadata();\n m = Object.assign(m, proto);\n if (proto.totalResults) {\n m.totalResults = parseInt(proto.totalResults, 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.nextCursor !== 'undefined') {\n toReturn['nextCursor'] = this.nextCursor;\n }\n if (typeof this.hasMore !== 'undefined') {\n toReturn['hasMore'] = this.hasMore;\n }\n if (typeof this.totalResults !== 'undefined') {\n toReturn['totalResults'] = this.totalResults;\n }\n return toReturn;\n }\n}\nclass UserActionsRequest {\n static fromProto(proto) {\n let m = new UserActionsRequest();\n m = Object.assign(m, proto);\n if (proto.category) {\n m.category = enumStringToValue$6(ActionCategory, proto.category);\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.category !== 'undefined') {\n toReturn['category'] = this.category;\n }\n if (typeof this.description !== 'undefined') {\n toReturn['description'] = this.description;\n }\n return toReturn;\n }\n}\nclass UserActionsResponse {\n static fromProto(proto) {\n let m = new UserActionsResponse();\n m = Object.assign(m, proto);\n if (proto.userActions) {\n m.userActions = proto.userActions.map(UserAction.fromProto);\n }\n if (proto.pagingMetadata) {\n m.pagingMetadata = UserActionsPagedResponseMetadata.fromProto(proto.pagingMetadata);\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.userActions !== 'undefined' && this.userActions !== null) {\n toReturn['userActions'] = 'toApiJson' in this.userActions ? this.userActions.toApiJson() : this.userActions;\n }\n if (typeof this.pagingMetadata !== 'undefined' && this.pagingMetadata !== null) {\n toReturn['pagingMetadata'] = 'toApiJson' in this.pagingMetadata ? this.pagingMetadata.toApiJson() : this.pagingMetadata;\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 Contact {\n static fromProto(proto) {\n let m = new Contact();\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.version !== 'undefined') {\n toReturn['version'] = this.version;\n }\n if (typeof this.accountGroupId !== 'undefined') {\n toReturn['accountGroupId'] = this.accountGroupId;\n }\n if (typeof this.contactId !== 'undefined') {\n toReturn['contactId'] = this.contactId;\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.phoneExtension !== 'undefined') {\n toReturn['phoneExtension'] = this.phoneExtension;\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 if (typeof this.vbcUserId !== 'undefined') {\n toReturn['vbcUserId'] = this.vbcUserId;\n }\n if (typeof this.deleted !== 'undefined') {\n toReturn['deleted'] = this.deleted;\n }\n if (typeof this.deletedDate !== 'undefined') {\n toReturn['deletedDate'] = this.deletedDate;\n }\n if (typeof this.created !== 'undefined') {\n toReturn['created'] = this.created;\n }\n if (typeof this.updated !== 'undefined') {\n toReturn['updated'] = this.updated;\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 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$3(enumRef, value) {\n if (typeof value === 'number') {\n return value;\n }\n return enumRef[value];\n}\nclass Attachment {\n static fromProto(proto) {\n let m = new Attachment();\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.url !== 'undefined') {\n toReturn['url'] = this.url;\n }\n if (typeof this.name !== 'undefined') {\n toReturn['name'] = this.name;\n }\n if (typeof this.updated !== 'undefined' && this.updated !== null) {\n toReturn['updated'] = 'toApiJson' in this.updated ? this.updated.toApiJson() : this.updated;\n }\n if (typeof this.thumbnailUrl !== 'undefined') {\n toReturn['thumbnailUrl'] = this.thumbnailUrl;\n }\n return toReturn;\n }\n}\nclass Conversation {\n static fromProto(proto) {\n let m = new Conversation();\n m = Object.assign(m, proto);\n if (proto.created) {\n m.created = new Date(proto.created);\n }\n if (proto.updated) {\n m.updated = new Date(proto.updated);\n }\n if (proto.attachments) {\n m.attachments = proto.attachments.map(Attachment.fromProto);\n }\n return m;\n }\n constructor(kwargs) {\n if (!kwargs) {\n return;\n }\n Object.assign(this, kwargs);\n }\n toApiJson() {\n const toReturn = {};\n if (typeof this.id !== 'undefined') {\n toReturn['id'] = this.id;\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.updated !== 'undefined' && this.updated !== null) {\n toReturn['updated'] = 'toApiJson' in this.updated ? this.updated.toApiJson() : this.updated;\n }\n if (typeof this.message !== 'undefined') {\n toReturn['message'] = this.message;\n }\n if (typeof this.fromEmail !== 'undefined') {\n toReturn['fromEmail'] = this.fromEmail;\n }\n if (typeof this.toEmails !== 'undefined') {\n toReturn['toEmails'] = this.toEmails;\n }\n if (typeof this.ticketId !== 'undefined') {\n toReturn['ticketId'] = this.ticketId;\n }\n if (typeof this.attachments !== 'undefined' && this.attachments !== null) {\n toReturn['attachments'] = 'toApiJson' in this.attachments ? this.attachments.toApiJson() : this.attachments;\n }\n return toReturn;\n }\n}\nclass Pagination {\n static fromProto(proto) {\n let m = new Pagination();\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.pageIndex !== 'undefined') {\n toReturn['pageIndex'] = this.pageIndex;\n }\n if (typeof this.pageSize !== 'undefined') {\n toReturn['pageSize'] = this.pageSize;\n }\n return toReturn;\n }\n}\nclass Ticket {\n static fromProto(proto) {\n let m = new Ticket();\n m = Object.assign(m, proto);\n if (proto.id) {\n m.id = parseInt(proto.id, 10);\n }\n if (proto.updated) {\n m.updated = new Date(proto.updated);\n }\n if (proto.requested) {\n m.requested = new Date(proto.requested);\n }\n if (proto.requesterId) {\n m.requesterId = parseInt(proto.requesterId, 10);\n }\n if (proto.responderId) {\n m.responderId = parseInt(proto.responderId, 10);\n }\n if (proto.statusId) {\n m.statusId = parseInt(proto.statusId, 10);\n }\n if (proto.sourceId) {\n m.sourceId = parseInt(proto.sourceId, 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.updated !== 'undefined' && this.updated !== null) {\n toReturn['updated'] = 'toApiJson' in this.updated ? this.updated.toApiJson() : this.updated;\n }\n if (typeof this.requested !== 'undefined' && this.requested !== null) {\n toReturn['requested'] = 'toApiJson' in this.requested ? this.requested.toApiJson() : this.requested;\n }\n if (typeof this.requesterId !== 'undefined') {\n toReturn['requesterId'] = this.requesterId;\n }\n if (typeof this.responderId !== 'undefined') {\n toReturn['responderId'] = this.responderId;\n }\n if (typeof this.subject !== 'undefined') {\n toReturn['subject'] = this.subject;\n }\n if (typeof this.statusId !== 'undefined') {\n toReturn['statusId'] = this.statusId;\n }\n if (typeof this.sourceId !== 'undefined') {\n toReturn['sourceId'] = this.sourceId;\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 AutoAssignCriteriaAccountOriginCriteria {\n static fromProto(proto) {\n let m = new AutoAssignCriteriaAccountOriginCriteria();\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.origin !== 'undefined') {\n toReturn['origin'] = this.origin;\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 if (proto.sender) {\n m.sender = AddContactToCampaignRequestSender.fromProto(proto.sender);\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.contact !== 'undefined' && this.contact !== null) {\n toReturn['contact'] = 'toApiJson' in this.contact ? this.contact.toApiJson() : this.contact;\n }\n if (typeof this.sender !== 'undefined' && this.sender !== null) {\n toReturn['sender'] = 'toApiJson' in this.sender ? this.sender.toApiJson() : this.sender;\n }\n return toReturn;\n }\n}\nclass AutoAssignRuleAppKey {\n static fromProto(proto) {\n let m = new AutoAssignRuleAppKey();\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.appId !== 'undefined') {\n toReturn['appId'] = this.appId;\n }\n if (typeof this.editionId !== 'undefined') {\n toReturn['editionId'] = this.editionId;\n }\n return toReturn;\n }\n}\nclass AssignSalesTaskRequest {\n static fromProto(proto) {\n let m = new AssignSalesTaskRequest();\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.taskId !== 'undefined') {\n toReturn['taskId'] = this.taskId;\n }\n if (typeof this.salespersonUserId !== 'undefined') {\n toReturn['salespersonUserId'] = this.salespersonUserId;\n }\n return toReturn;\n }\n}\nclass AutoAssignCriteria {\n static fromProto(proto) {\n let m = new AutoAssignCriteria();\n m = Object.assign(m, proto);\n if (proto.locationCriteria) {\n m.locationCriteria = AutoAssignCriteriaLocationCriteria.fromProto(proto.locationCriteria);\n }\n if (proto.categoryCriteria) {\n m.categoryCriteria = AutoAssignCriteriaCategoryCriteria.fromProto(proto.categoryCriteria);\n }\n if (proto.tagCriteria) {\n m.tagCriteria = AutoAssignCriteriaTagCriteria.fromProto(proto.tagCriteria);\n }\n if (proto.conversionPointCriteria) {\n m.conversionPointCriteria = AutoAssignCriteriaConversionPointCriteria.fromProto(proto.conversionPointCriteria);\n }\n if (proto.accountOriginCriteria) {\n m.accountOriginCriteria = AutoAssignCriteriaAccountOriginCriteria.fromProto(proto.accountOriginCriteria);\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.locationCriteria !== 'undefined' && this.locationCriteria !== null) {\n toReturn['locationCriteria'] = 'toApiJson' in this.locationCriteria ? this.locationCriteria.toApiJson() : this.locationCriteria;\n }\n if (typeof this.categoryCriteria !== 'undefined' && this.categoryCriteria !== null) {\n toReturn['categoryCriteria'] = 'toApiJson' in this.categoryCriteria ? this.categoryCriteria.toApiJson() : this.categoryCriteria;\n }\n if (typeof this.tagCriteria !== 'undefined' && this.tagCriteria !== null) {\n toReturn['tagCriteria'] = 'toApiJson' in this.tagCriteria ? this.tagCriteria.toApiJson() : this.tagCriteria;\n }\n if (typeof this.conversionPointCriteria !== 'undefined' && this.conversionPointCriteria !== null) {\n toReturn['conversionPointCriteria'] = 'toApiJson' in this.conversionPointCriteria ? this.conversionPointCriteria.toApiJson() : this.conversionPointCriteria;\n }\n if (typeof this.accountOriginCriteria !== 'undefined' && this.accountOriginCriteria !== null) {\n toReturn['accountOriginCriteria'] = 'toApiJson' in this.accountOriginCriteria ? this.accountOriginCriteria.toApiJson() : this.accountOriginCriteria;\n }\n return toReturn;\n }\n}\nclass AutoAssignRule {\n static fromProto(proto) {\n let m = new AutoAssignRule();\n m = Object.assign(m, proto);\n if (proto.criteria) {\n m.criteria = proto.criteria.map(AutoAssignCriteria.fromProto);\n }\n if (proto.criteriaMatchType) {\n m.criteriaMatchType = enumStringToValue$2(CriteriaMatchType, proto.criteriaMatchType);\n }\n if (proto.appKeys) {\n m.appKeys = proto.appKeys.map(AutoAssignRuleAppKey.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.criteria !== 'undefined' && this.criteria !== null) {\n toReturn['criteria'] = 'toApiJson' in this.criteria ? this.criteria.toApiJson() : this.criteria;\n }\n if (typeof this.salespersonIds !== 'undefined') {\n toReturn['salespersonIds'] = this.salespersonIds;\n }\n if (typeof this.criteriaMatchType !== 'undefined') {\n toReturn['criteriaMatchType'] = this.criteriaMatchType;\n }\n if (typeof this.campaignId !== 'undefined') {\n toReturn['campaignId'] = this.campaignId;\n }\n if (typeof this.appKeys !== 'undefined' && this.appKeys !== null) {\n toReturn['appKeys'] = 'toApiJson' in this.appKeys ? this.appKeys.toApiJson() : this.appKeys;\n }\n return toReturn;\n }\n}\nclass BusinessListRequest {\n static fromProto(proto) {\n let m = new BusinessListRequest();\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.marketIds !== 'undefined') {\n toReturn['marketIds'] = this.marketIds;\n }\n if (typeof this.contactEmail !== 'undefined') {\n toReturn['contactEmail'] = this.contactEmail;\n }\n return toReturn;\n }\n}\nclass BusinessListResponse {\n static fromProto(proto) {\n let m = new BusinessListResponse();\n m = Object.assign(m, proto);\n if (proto.businesses) {\n m.businesses = proto.businesses.map(BusinessListResponseSalestoolBusiness.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 BusinessSearchRequest {\n static fromProto(proto) {\n let m = new BusinessSearchRequest();\n m = Object.assign(m, proto);\n if (proto.filters) {\n m.filters = BusinessSearchFilters.fromProto(proto.filters);\n }\n if (proto.pagingOptions) {\n m.pagingOptions = PagedRequestOptions.fromProto(proto.pagingOptions);\n }\n if (proto.sortOptions) {\n m.sortOptions = BusinessSearchSortOptions.fromProto(proto.sortOptions);\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.filters !== 'undefined' && this.filters !== null) {\n toReturn['filters'] = 'toApiJson' in this.filters ? this.filters.toApiJson() : this.filters;\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.sortOptions !== 'undefined' && this.sortOptions !== null) {\n toReturn['sortOptions'] = 'toApiJson' in this.sortOptions ? this.sortOptions.toApiJson() : this.sortOptions;\n }\n return toReturn;\n }\n}\nclass BusinessSearchResponse {\n static fromProto(proto) {\n let m = new BusinessSearchResponse();\n m = Object.assign(m, proto);\n if (proto.businesses) {\n m.businesses = proto.businesses.map(Business.fromProto);\n }\n if (proto.pagingMetadata) {\n m.pagingMetadata = BusinessPagedResponseMetadata.fromProto(proto.pagingMetadata);\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 if (typeof this.pagingMetadata !== 'undefined' && this.pagingMetadata !== null) {\n toReturn['pagingMetadata'] = 'toApiJson' in this.pagingMetadata ? this.pagingMetadata.toApiJson() : this.pagingMetadata;\n }\n return toReturn;\n }\n}\nclass AutoAssignCriteriaCategoryCriteria {\n static fromProto(proto) {\n let m = new AutoAssignCriteriaCategoryCriteria();\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.categories !== 'undefined') {\n toReturn['categories'] = this.categories;\n }\n return toReturn;\n }\n}\nclass ContactCreateRequest {\n static fromProto(proto) {\n let m = new ContactCreateRequest();\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.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.phoneNumber !== 'undefined') {\n toReturn['phoneNumber'] = this.phoneNumber;\n }\n if (typeof this.phoneNumberCountry !== 'undefined') {\n toReturn['phoneNumberCountry'] = this.phoneNumberCountry;\n }\n if (typeof this.phoneExtension !== 'undefined') {\n toReturn['phoneExtension'] = this.phoneExtension;\n }\n if (typeof this.notes !== 'undefined') {\n toReturn['notes'] = this.notes;\n }\n return toReturn;\n }\n}\nclass ContactCreateResponse {\n static fromProto(proto) {\n let m = new ContactCreateResponse();\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 AutoAssignCriteriaConversionPointCriteria {\n static fromProto(proto) {\n let m = new AutoAssignCriteriaConversionPointCriteria();\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.conversionPoint !== 'undefined') {\n toReturn['conversionPoint'] = this.conversionPoint;\n }\n return toReturn;\n }\n}\nclass CreateBusinessActivityRequest {\n static fromProto(proto) {\n let m = new CreateBusinessActivityRequest();\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.businessId !== 'undefined') {\n toReturn['businessId'] = this.businessId;\n }\n if (typeof this.activityType !== 'undefined') {\n toReturn['activityType'] = this.activityType;\n }\n if (typeof this.activityDetail !== 'undefined') {\n toReturn['activityDetail'] = this.activityDetail;\n }\n if (typeof this.productName !== 'undefined') {\n toReturn['productName'] = this.productName;\n }\n if (typeof this.productId !== 'undefined') {\n toReturn['productId'] = this.productId;\n }\n if (typeof this.doNotSendEmail !== 'undefined') {\n toReturn['doNotSendEmail'] = this.doNotSendEmail;\n }\n return toReturn;\n }\n}\nclass CreateOrUpdateAutoAssignConfigRequest {\n static fromProto(proto) {\n let m = new CreateOrUpdateAutoAssignConfigRequest();\n m = Object.assign(m, proto);\n if (proto.rules) {\n m.rules = proto.rules.map(AutoAssignRule.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.partnerId !== 'undefined') {\n toReturn['partnerId'] = this.partnerId;\n }\n if (typeof this.marketId !== 'undefined') {\n toReturn['marketId'] = this.marketId;\n }\n if (typeof this.rules !== 'undefined' && this.rules !== null) {\n toReturn['rules'] = 'toApiJson' in this.rules ? this.rules.toApiJson() : this.rules;\n }\n return toReturn;\n }\n}\nclass CreateSalesActivityRequest {\n static fromProto(proto) {\n let m = new CreateSalesActivityRequest();\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.salespersonId !== 'undefined') {\n toReturn['salespersonId'] = this.salespersonId;\n }\n if (typeof this.submittedBy !== 'undefined') {\n toReturn['submittedBy'] = this.submittedBy;\n }\n if (typeof this.action !== 'undefined') {\n toReturn['action'] = this.action;\n }\n if (typeof this.customActionName !== 'undefined') {\n toReturn['customActionName'] = this.customActionName;\n }\n if (typeof this.status !== 'undefined') {\n toReturn['status'] = this.status;\n }\n if (typeof this.notes !== 'undefined') {\n toReturn['notes'] = this.notes;\n }\n return toReturn;\n }\n}\nclass CreateSalesActivityResponse {\n static fromProto(proto) {\n let m = new CreateSalesActivityResponse();\n m = Object.assign(m, proto);\n if (proto.salesActivity) {\n m.salesActivity = SalesActivity.fromProto(proto.salesActivity);\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.salesActivity !== 'undefined' && this.salesActivity !== null) {\n toReturn['salesActivity'] = 'toApiJson' in this.salesActivity ? this.salesActivity.toApiJson() : this.salesActivity;\n }\n return toReturn;\n }\n}\nclass CreateSalesTaskRequest {\n static fromProto(proto) {\n let m = new CreateSalesTaskRequest();\n m = Object.assign(m, proto);\n if (proto.dueDate) {\n m.dueDate = new Date(proto.dueDate);\n }\n return m;\n }\n constructor(kwargs) {\n if (!kwargs) {\n return;\n }\n Object.assign(this, kwargs);\n }\n toApiJson() {\n const toReturn = {};\n if (typeof this.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.title !== 'undefined') {\n toReturn['title'] = this.title;\n }\n if (typeof this.dueDate !== 'undefined' && this.dueDate !== null) {\n toReturn['dueDate'] = 'toApiJson' in this.dueDate ? this.dueDate.toApiJson() : this.dueDate;\n }\n if (typeof this.salespersonIds !== 'undefined') {\n toReturn['salespersonIds'] = this.salespersonIds;\n }\n return toReturn;\n }\n}\nclass CreateSalesTaskResponse {\n static fromProto(proto) {\n let m = new CreateSalesTaskResponse();\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.taskId !== 'undefined') {\n toReturn['taskId'] = this.taskId;\n }\n if (typeof this.taskNamespace !== 'undefined') {\n toReturn['taskNamespace'] = this.taskNamespace;\n }\n return toReturn;\n }\n}\nclass ExternalIdentifierCreateRequest {\n static fromProto(proto) {\n let m = new ExternalIdentifierCreateRequest();\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.externalIdProvider !== 'undefined') {\n toReturn['externalIdProvider'] = this.externalIdProvider;\n }\n if (typeof this.internalId !== 'undefined') {\n toReturn['internalId'] = this.internalId;\n }\n if (typeof this.externalId !== 'undefined') {\n toReturn['externalId'] = this.externalId;\n }\n return toReturn;\n }\n}\nclass ExternalIdentifierGetByInternalIDRequest {\n static fromProto(proto) {\n let m = new ExternalIdentifierGetByInternalIDRequest();\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.externalIdProvider !== 'undefined') {\n toReturn['externalIdProvider'] = this.externalIdProvider;\n }\n if (typeof this.internalId !== 'undefined') {\n toReturn['internalId'] = this.internalId;\n }\n return toReturn;\n }\n}\nclass ExternalIdentifierGetByInternalIDResponse {\n static fromProto(proto) {\n let m = new ExternalIdentifierGetByInternalIDResponse();\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.externalId !== 'undefined') {\n toReturn['externalId'] = this.externalId;\n }\n return toReturn;\n }\n}\nclass GetAssignedSalespersonForPartnerRequest {\n static fromProto(proto) {\n let m = new GetAssignedSalespersonForPartnerRequest();\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 return toReturn;\n }\n}\nclass GetAssignedSalespersonForPartnerResponse {\n static fromProto(proto) {\n let m = new GetAssignedSalespersonForPartnerResponse();\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 if (typeof this.accountGroupId !== 'undefined') {\n toReturn['accountGroupId'] = this.accountGroupId;\n }\n return toReturn;\n }\n}\nclass GetAutoAssignConfigRequest {\n static fromProto(proto) {\n let m = new GetAutoAssignConfigRequest();\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 return toReturn;\n }\n}\nclass GetAutoAssignConfigResponse {\n static fromProto(proto) {\n let m = new GetAutoAssignConfigResponse();\n m = Object.assign(m, proto);\n if (proto.rules) {\n m.rules = proto.rules.map(AutoAssignRule.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.partnerId !== 'undefined') {\n toReturn['partnerId'] = this.partnerId;\n }\n if (typeof this.marketId !== 'undefined') {\n toReturn['marketId'] = this.marketId;\n }\n if (typeof this.rules !== 'undefined' && this.rules !== null) {\n toReturn['rules'] = 'toApiJson' in this.rules ? this.rules.toApiJson() : this.rules;\n }\n return toReturn;\n }\n}\nclass GetConfigurationRequest {\n static fromProto(proto) {\n let m = new GetConfigurationRequest();\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 GetConfigurationResponse {\n static fromProto(proto) {\n let m = new GetConfigurationResponse();\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.domain !== 'undefined') {\n toReturn['domain'] = this.domain;\n }\n if (typeof this.isValid !== 'undefined') {\n toReturn['isValid'] = this.isValid;\n }\n return toReturn;\n }\n}\nclass GetContactsByEmailRequest {\n static fromProto(proto) {\n let m = new GetContactsByEmailRequest();\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.email !== 'undefined') {\n toReturn['email'] = this.email;\n }\n return toReturn;\n }\n}\nclass GetContactsResponse {\n static fromProto(proto) {\n let m = new GetContactsResponse();\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 GetMembersRequest {\n static fromProto(proto) {\n let m = new GetMembersRequest();\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.groupId !== 'undefined') {\n toReturn['groupId'] = this.groupId;\n }\n return toReturn;\n }\n}\nclass GetMembersResponse {\n static fromProto(proto) {\n let m = new GetMembersResponse();\n m = Object.assign(m, proto);\n if (proto.salesPeople) {\n m.salesPeople = proto.salesPeople.map(Salesperson.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.salesPeople !== 'undefined' && this.salesPeople !== null) {\n toReturn['salesPeople'] = 'toApiJson' in this.salesPeople ? this.salesPeople.toApiJson() : this.salesPeople;\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 GetMultiSalesActivityRequest {\n static fromProto(proto) {\n let m = new GetMultiSalesActivityRequest();\n m = Object.assign(m, proto);\n if (proto.keys) {\n m.keys = proto.keys.map(SalesActivityKey.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.keys !== 'undefined' && this.keys !== null) {\n toReturn['keys'] = 'toApiJson' in this.keys ? this.keys.toApiJson() : this.keys;\n }\n return toReturn;\n }\n}\nclass GetMultiSalesActivityResponse {\n static fromProto(proto) {\n let m = new GetMultiSalesActivityResponse();\n m = Object.assign(m, proto);\n if (proto.salesActivities) {\n m.salesActivities = proto.salesActivities.map(GetMultiSalesActivityResponseSalesActivityContainer.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.salesActivities !== 'undefined' && this.salesActivities !== null) {\n toReturn['salesActivities'] = 'toApiJson' in this.salesActivities ? this.salesActivities.toApiJson() : this.salesActivities;\n }\n return toReturn;\n }\n}\nclass GetMultiSalesTeamRequest {\n static fromProto(proto) {\n let m = new GetMultiSalesTeamRequest();\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.groupIds !== 'undefined') {\n toReturn['groupIds'] = this.groupIds;\n }\n return toReturn;\n }\n}\nclass GetMultiSalesTeamResponse {\n static fromProto(proto) {\n let m = new GetMultiSalesTeamResponse();\n m = Object.assign(m, proto);\n if (proto.salesTeams) {\n m.salesTeams = proto.salesTeams.map(SalesTeam.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.salesTeams !== 'undefined' && this.salesTeams !== null) {\n toReturn['salesTeams'] = 'toApiJson' in this.salesTeams ? this.salesTeams.toApiJson() : this.salesTeams;\n }\n return toReturn;\n }\n}\nclass GetMultiSalespersonRequest {\n static fromProto(proto) {\n let m = new GetMultiSalespersonRequest();\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.salespersonIds !== 'undefined') {\n toReturn['salespersonIds'] = this.salespersonIds;\n }\n return toReturn;\n }\n}\nclass GetMultiSalespersonResponse {\n static fromProto(proto) {\n let m = new GetMultiSalespersonResponse();\n m = Object.assign(m, proto);\n if (proto.salespersons) {\n m.salespersons = proto.salespersons.map(Salesperson.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.salespersons !== 'undefined' && this.salespersons !== null) {\n toReturn['salespersons'] = 'toApiJson' in this.salespersons ? this.salespersons.toApiJson() : this.salespersons;\n }\n return toReturn;\n }\n}\nclass GetSalespersonRequest {\n static fromProto(proto) {\n let m = new GetSalespersonRequest();\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.salespersonId !== 'undefined') {\n toReturn['salespersonId'] = this.salespersonId;\n }\n if (typeof this.userId !== 'undefined') {\n toReturn['userId'] = this.userId;\n }\n return toReturn;\n }\n}\nclass GetTeamsBySalespersonsRequest {\n static fromProto(proto) {\n let m = new GetTeamsBySalespersonsRequest();\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.salespersonIds !== 'undefined') {\n toReturn['salespersonIds'] = this.salespersonIds;\n }\n return toReturn;\n }\n}\nclass GetTeamsBySalespersonsResponse {\n static fromProto(proto) {\n let m = new GetTeamsBySalespersonsResponse();\n m = Object.assign(m, proto);\n if (proto.teamMapping) {\n m.teamMapping = proto.teamMapping.map(GetTeamsBySalespersonsResponseTeamsForSalesperson.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.teamMapping !== 'undefined' && this.teamMapping !== null) {\n toReturn['teamMapping'] = 'toApiJson' in this.teamMapping ? this.teamMapping.toApiJson() : this.teamMapping;\n }\n return toReturn;\n }\n}\nclass GetZoomMeetingInfoRequest {\n static fromProto(proto) {\n let m = new GetZoomMeetingInfoRequest();\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.meetingId !== 'undefined') {\n toReturn['meetingId'] = this.meetingId;\n }\n return toReturn;\n }\n}\nclass GetZoomMeetingInfoResponse {\n static fromProto(proto) {\n let m = new GetZoomMeetingInfoResponse();\n m = Object.assign(m, proto);\n if (proto.zoomMeeting) {\n m.zoomMeeting = ZoomMeeting.fromProto(proto.zoomMeeting);\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.zoomMeeting !== 'undefined' && this.zoomMeeting !== null) {\n toReturn['zoomMeeting'] = 'toApiJson' in this.zoomMeeting ? this.zoomMeeting.toApiJson() : this.zoomMeeting;\n }\n return toReturn;\n }\n}\nclass ListSalesTeamsRequestListSalesTeamsFilters {\n static fromProto(proto) {\n let m = new ListSalesTeamsRequestListSalesTeamsFilters();\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 return toReturn;\n }\n}\nclass ListSalesTeamsRequest {\n static fromProto(proto) {\n let m = new ListSalesTeamsRequest();\n m = Object.assign(m, proto);\n if (proto.filters) {\n m.filters = ListSalesTeamsRequestListSalesTeamsFilters.fromProto(proto.filters);\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.filters !== 'undefined' && this.filters !== null) {\n toReturn['filters'] = 'toApiJson' in this.filters ? this.filters.toApiJson() : this.filters;\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 ListSalesTeamsResponse {\n static fromProto(proto) {\n let m = new ListSalesTeamsResponse();\n m = Object.assign(m, proto);\n if (proto.salesTeams) {\n m.salesTeams = proto.salesTeams.map(SalesTeam.fromProto);\n }\n if (proto.pagingMetadata) {\n m.pagingMetadata = PagedResponseMetadata.fromProto(proto.pagingMetadata);\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.salesTeams !== 'undefined' && this.salesTeams !== null) {\n toReturn['salesTeams'] = 'toApiJson' in this.salesTeams ? this.salesTeams.toApiJson() : this.salesTeams;\n }\n if (typeof this.pagingMetadata !== 'undefined' && this.pagingMetadata !== null) {\n toReturn['pagingMetadata'] = 'toApiJson' in this.pagingMetadata ? this.pagingMetadata.toApiJson() : this.pagingMetadata;\n }\n return toReturn;\n }\n}\nclass ListSalespersonsRequestListSalespersonsFilters {\n static fromProto(proto) {\n let m = new ListSalespersonsRequestListSalespersonsFilters();\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.onlySalesManagers !== 'undefined') {\n toReturn['onlySalesManagers'] = this.onlySalesManagers;\n }\n if (typeof this.searchTerm !== 'undefined') {\n toReturn['searchTerm'] = this.searchTerm;\n }\n return toReturn;\n }\n}\nclass ListSalespersonsRequest {\n static fromProto(proto) {\n let m = new ListSalespersonsRequest();\n m = Object.assign(m, proto);\n if (proto.filters) {\n m.filters = ListSalespersonsRequestListSalespersonsFilters.fromProto(proto.filters);\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.filters !== 'undefined' && this.filters !== null) {\n toReturn['filters'] = 'toApiJson' in this.filters ? this.filters.toApiJson() : this.filters;\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 ListSalespersonsResponse {\n static fromProto(proto) {\n let m = new ListSalespersonsResponse();\n m = Object.assign(m, proto);\n if (proto.salespersons) {\n m.salespersons = proto.salespersons.map(Salesperson.fromProto);\n }\n if (proto.pagingMetadata) {\n m.pagingMetadata = PagedResponseMetadata.fromProto(proto.pagingMetadata);\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.salespersons !== 'undefined' && this.salespersons !== null) {\n toReturn['salespersons'] = 'toApiJson' in this.salespersons ? this.salespersons.toApiJson() : this.salespersons;\n }\n if (typeof this.pagingMetadata !== 'undefined' && this.pagingMetadata !== null) {\n toReturn['pagingMetadata'] = 'toApiJson' in this.pagingMetadata ? this.pagingMetadata.toApiJson() : this.pagingMetadata;\n }\n return toReturn;\n }\n}\nclass AutoAssignCriteriaLocationCriteria {\n static fromProto(proto) {\n let m = new AutoAssignCriteriaLocationCriteria();\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.country !== 'undefined') {\n toReturn['country'] = this.country;\n }\n if (typeof this.state !== 'undefined') {\n toReturn['state'] = this.state;\n }\n if (typeof this.city !== 'undefined') {\n toReturn['city'] = this.city;\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 LookupSalespersonsRequest {\n static fromProto(proto) {\n let m = new LookupSalespersonsRequest();\n m = Object.assign(m, proto);\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.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.searchTerm !== 'undefined') {\n toReturn['searchTerm'] = this.searchTerm;\n }\n if (typeof this.marketIds !== 'undefined') {\n toReturn['marketIds'] = this.marketIds;\n }\n if (typeof this.includeLastLogin !== 'undefined') {\n toReturn['includeLastLogin'] = this.includeLastLogin;\n }\n return toReturn;\n }\n}\nclass LookupSalespersonsResponse {\n static fromProto(proto) {\n let m = new LookupSalespersonsResponse();\n m = Object.assign(m, proto);\n if (proto.salespersons) {\n m.salespersons = proto.salespersons.map(Salesperson.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.salespersons !== 'undefined' && this.salespersons !== null) {\n toReturn['salespersons'] = 'toApiJson' in this.salespersons ? this.salespersons.toApiJson() : this.salespersons;\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.cursor !== 'undefined') {\n toReturn['cursor'] = this.cursor;\n }\n if (typeof this.pageSize !== 'undefined') {\n toReturn['pageSize'] = this.pageSize;\n }\n return toReturn;\n }\n}\nclass PagedResponseMetadata {\n static fromProto(proto) {\n let m = new PagedResponseMetadata();\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.nextCursor !== 'undefined') {\n toReturn['nextCursor'] = this.nextCursor;\n }\n if (typeof this.hasMore !== 'undefined') {\n toReturn['hasMore'] = this.hasMore;\n }\n return toReturn;\n }\n}\nclass PartnerSalesDomainRequest {\n static fromProto(proto) {\n let m = new PartnerSalesDomainRequest();\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 return toReturn;\n }\n}\nclass PartnerSalesDomainResponse {\n static fromProto(proto) {\n let m = new PartnerSalesDomainResponse();\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.domain !== 'undefined') {\n toReturn['domain'] = this.domain;\n }\n return toReturn;\n }\n}\nclass PublishAskQuestionEventRequest {\n static fromProto(proto) {\n let m = new PublishAskQuestionEventRequest();\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.vbcUserId !== 'undefined') {\n toReturn['vbcUserId'] = this.vbcUserId;\n }\n return toReturn;\n }\n}\nclass PublishClaimAccountEventRequest {\n static fromProto(proto) {\n let m = new PublishClaimAccountEventRequest();\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.userEmail !== 'undefined') {\n toReturn['userEmail'] = this.userEmail;\n }\n return toReturn;\n }\n}\nclass PublishPackageInterestEventRequest {\n static fromProto(proto) {\n let m = new PublishPackageInterestEventRequest();\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.packageId !== 'undefined') {\n toReturn['packageId'] = this.packageId;\n }\n if (typeof this.vbcUserId !== 'undefined') {\n toReturn['vbcUserId'] = this.vbcUserId;\n }\n if (typeof this.userEmail !== 'undefined') {\n toReturn['userEmail'] = this.userEmail;\n }\n return toReturn;\n }\n}\nclass PublishProductInterestEventRequest {\n static fromProto(proto) {\n let m = new PublishProductInterestEventRequest();\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.vbcUserId !== 'undefined') {\n toReturn['vbcUserId'] = this.vbcUserId;\n }\n if (typeof this.productId !== 'undefined') {\n toReturn['productId'] = this.productId;\n }\n if (typeof this.message !== 'undefined') {\n toReturn['message'] = this.message;\n }\n if (typeof this.userEmail !== 'undefined') {\n toReturn['userEmail'] = this.userEmail;\n }\n return toReturn;\n }\n}\nclass PublishSnapshotOpenEventRequest {\n static fromProto(proto) {\n let m = new PublishSnapshotOpenEventRequest();\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.snapshotId !== 'undefined') {\n toReturn['snapshotId'] = this.snapshotId;\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 RequestSubscriptionChangeRequest {\n static fromProto(proto) {\n let m = new RequestSubscriptionChangeRequest();\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.businessId !== 'undefined') {\n toReturn['businessId'] = this.businessId;\n }\n if (typeof this.message !== 'undefined') {\n toReturn['message'] = this.message;\n }\n if (typeof this.phoneNumber !== 'undefined') {\n toReturn['phoneNumber'] = this.phoneNumber;\n }\n if (typeof this.name !== 'undefined') {\n toReturn['name'] = this.name;\n }\n return toReturn;\n }\n}\nclass GetMultiSalesActivityResponseSalesActivityContainer {\n static fromProto(proto) {\n let m = new GetMultiSalesActivityResponseSalesActivityContainer();\n m = Object.assign(m, proto);\n if (proto.salesActivity) {\n m.salesActivity = SalesActivity.fromProto(proto.salesActivity);\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.salesActivity !== 'undefined' && this.salesActivity !== null) {\n toReturn['salesActivity'] = 'toApiJson' in this.salesActivity ? this.salesActivity.toApiJson() : this.salesActivity;\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 BusinessListResponseSalestoolBusiness {\n static fromProto(proto) {\n let m = new BusinessListResponseSalestoolBusiness();\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.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.name !== 'undefined') {\n toReturn['name'] = this.name;\n }\n if (typeof this.address !== 'undefined') {\n toReturn['address'] = this.address;\n }\n if (typeof this.city !== 'undefined') {\n toReturn['city'] = this.city;\n }\n if (typeof this.state !== 'undefined') {\n toReturn['state'] = this.state;\n }\n if (typeof this.zip !== 'undefined') {\n toReturn['zip'] = this.zip;\n }\n if (typeof this.country !== 'undefined') {\n toReturn['country'] = this.country;\n }\n if (typeof this.contactFirstName !== 'undefined') {\n toReturn['contactFirstName'] = this.contactFirstName;\n }\n if (typeof this.contactLastName !== 'undefined') {\n toReturn['contactLastName'] = this.contactLastName;\n }\n if (typeof this.contactEmail !== 'undefined') {\n toReturn['contactEmail'] = this.contactEmail;\n }\n if (typeof this.created !== 'undefined' && this.created !== null) {\n toReturn['created'] = 'toApiJson' in this.created ? this.created.toApiJson() : this.created;\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 SearchTicketsRequest {\n static fromProto(proto) {\n let m = new SearchTicketsRequest();\n m = Object.assign(m, proto);\n if (proto.pagination) {\n m.pagination = Pagination.fromProto(proto.pagination);\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.accountGroupId !== 'undefined') {\n toReturn['accountGroupId'] = this.accountGroupId;\n }\n if (typeof this.pagination !== 'undefined' && this.pagination !== null) {\n toReturn['pagination'] = 'toApiJson' in this.pagination ? this.pagination.toApiJson() : this.pagination;\n }\n return toReturn;\n }\n}\nclass SearchTicketsResponse {\n static fromProto(proto) {\n let m = new SearchTicketsResponse();\n m = Object.assign(m, proto);\n if (proto.tickets) {\n m.tickets = proto.tickets.map(Ticket.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.tickets !== 'undefined' && this.tickets !== null) {\n toReturn['tickets'] = 'toApiJson' in this.tickets ? this.tickets.toApiJson() : this.tickets;\n }\n return toReturn;\n }\n}\nclass SendResetPasswordEmailRequest {\n static fromProto(proto) {\n let m = new SendResetPasswordEmailRequest();\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.salespersonId !== 'undefined') {\n toReturn['salespersonId'] = this.salespersonId;\n }\n return toReturn;\n }\n}\nclass AddContactToCampaignRequestSender {\n static fromProto(proto) {\n let m = new AddContactToCampaignRequestSender();\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.emailAddress !== 'undefined') {\n toReturn['emailAddress'] = this.emailAddress;\n }\n if (typeof this.name !== 'undefined') {\n toReturn['name'] = this.name;\n }\n if (typeof this.salespersonId !== 'undefined') {\n toReturn['salespersonId'] = this.salespersonId;\n }\n return toReturn;\n }\n}\nclass SetConfigurationRequest {\n static fromProto(proto) {\n let m = new SetConfigurationRequest();\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.domain !== 'undefined') {\n toReturn['domain'] = this.domain;\n }\n if (typeof this.apiKey !== 'undefined') {\n toReturn['apiKey'] = this.apiKey;\n }\n return toReturn;\n }\n}\nclass StoreZoomMeetingInfoRequest {\n static fromProto(proto) {\n let m = new StoreZoomMeetingInfoRequest();\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.meetingId !== 'undefined') {\n toReturn['meetingId'] = this.meetingId;\n }\n if (typeof this.accountGroupId !== 'undefined') {\n toReturn['accountGroupId'] = this.accountGroupId;\n }\n if (typeof this.salesPersonId !== 'undefined') {\n toReturn['salesPersonId'] = this.salesPersonId;\n }\n return toReturn;\n }\n}\nclass AutoAssignCriteriaTagCriteria {\n static fromProto(proto) {\n let m = new AutoAssignCriteriaTagCriteria();\n m = Object.assign(m, proto);\n if (proto.matchType) {\n m.matchType = enumStringToValue$2(TagMatchType, proto.matchType);\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.tags !== 'undefined') {\n toReturn['tags'] = this.tags;\n }\n if (typeof this.matchType !== 'undefined') {\n toReturn['matchType'] = this.matchType;\n }\n return toReturn;\n }\n}\nclass GetTeamsBySalespersonsResponseTeamsForSalesperson {\n static fromProto(proto) {\n let m = new GetTeamsBySalespersonsResponseTeamsForSalesperson();\n m = Object.assign(m, proto);\n if (proto.salesTeams) {\n m.salesTeams = proto.salesTeams.map(SalesTeam.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.salespersonId !== 'undefined') {\n toReturn['salespersonId'] = this.salespersonId;\n }\n if (typeof this.salesTeams !== 'undefined' && this.salesTeams !== null) {\n toReturn['salesTeams'] = 'toApiJson' in this.salesTeams ? this.salesTeams.toApiJson() : this.salesTeams;\n }\n return toReturn;\n }\n}\nclass UpdatePartnerSalesDomainRequest {\n static fromProto(proto) {\n let m = new UpdatePartnerSalesDomainRequest();\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.domain !== 'undefined') {\n toReturn['domain'] = this.domain;\n }\n return toReturn;\n }\n}\nclass UpdateTeamNameRequest {\n static fromProto(proto) {\n let m = new UpdateTeamNameRequest();\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.groupId !== 'undefined') {\n toReturn['groupId'] = this.groupId;\n }\n if (typeof this.newTeamName !== 'undefined') {\n toReturn['newTeamName'] = this.newTeamName;\n }\n return toReturn;\n }\n}\nclass ViewTicketIncludeFields {\n static fromProto(proto) {\n let m = new ViewTicketIncludeFields();\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.conversations !== 'undefined') {\n toReturn['conversations'] = this.conversations;\n }\n if (typeof this.requester !== 'undefined') {\n toReturn['requester'] = this.requester;\n }\n if (typeof this.company !== 'undefined') {\n toReturn['company'] = this.company;\n }\n if (typeof this.stats !== 'undefined') {\n toReturn['stats'] = this.stats;\n }\n return toReturn;\n }\n}\nclass ViewTicketRequest {\n static fromProto(proto) {\n let m = new ViewTicketRequest();\n m = Object.assign(m, proto);\n if (proto.ticketId) {\n m.ticketId = parseInt(proto.ticketId, 10);\n }\n if (proto.includeFields) {\n m.includeFields = ViewTicketIncludeFields.fromProto(proto.includeFields);\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.accountGroupId !== 'undefined') {\n toReturn['accountGroupId'] = this.accountGroupId;\n }\n if (typeof this.ticketId !== 'undefined') {\n toReturn['ticketId'] = this.ticketId;\n }\n if (typeof this.includeFields !== 'undefined' && this.includeFields !== null) {\n toReturn['includeFields'] = 'toApiJson' in this.includeFields ? this.includeFields.toApiJson() : this.includeFields;\n }\n return toReturn;\n }\n}\nclass ViewTicketResponse {\n static fromProto(proto) {\n let m = new ViewTicketResponse();\n m = Object.assign(m, proto);\n if (proto.baseTicket) {\n m.baseTicket = Ticket.fromProto(proto.baseTicket);\n }\n if (proto.conversations) {\n m.conversations = proto.conversations.map(Conversation.fromProto);\n }\n if (proto.priority) {\n m.priority = enumStringToValue$2(TicketPriority, proto.priority);\n }\n if (proto.dueBy) {\n m.dueBy = new Date(proto.dueBy);\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.baseTicket !== 'undefined' && this.baseTicket !== null) {\n toReturn['baseTicket'] = 'toApiJson' in this.baseTicket ? this.baseTicket.toApiJson() : this.baseTicket;\n }\n if (typeof this.tags !== 'undefined') {\n toReturn['tags'] = this.tags;\n }\n if (typeof this.conversations !== 'undefined' && this.conversations !== null) {\n toReturn['conversations'] = 'toApiJson' in this.conversations ? this.conversations.toApiJson() : this.conversations;\n }\n if (typeof this.priority !== 'undefined') {\n toReturn['priority'] = this.priority;\n }\n if (typeof this.description !== 'undefined') {\n toReturn['description'] = this.description;\n }\n if (typeof this.dueBy !== 'undefined' && this.dueBy !== null) {\n toReturn['dueBy'] = 'toApiJson' in this.dueBy ? this.dueBy.toApiJson() : this.dueBy;\n }\n return toReturn;\n }\n}\nclass ZoomMeeting {\n static fromProto(proto) {\n let m = new ZoomMeeting();\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.meetingId !== 'undefined') {\n toReturn['meetingId'] = this.meetingId;\n }\n if (typeof this.accountGroupId !== 'undefined') {\n toReturn['accountGroupId'] = this.accountGroupId;\n }\n if (typeof this.salesPersonId !== 'undefined') {\n toReturn['salesPersonId'] = this.salesPersonId;\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 PriceComponent {\n static fromProto(proto) {\n let m = new PriceComponent();\n m = Object.assign(m, proto);\n if (proto.value) {\n m.value = parseInt(proto.value, 10);\n }\n if (proto.frequency) {\n m.frequency = enumStringToValue$1(Frequency, proto.frequency);\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.value !== 'undefined') {\n toReturn['value'] = this.value;\n }\n if (typeof this.frequency !== 'undefined') {\n toReturn['frequency'] = this.frequency;\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 LineItemAppKey {\n static fromProto(proto) {\n let m = new LineItemAppKey();\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.appId !== 'undefined') {\n toReturn['appId'] = this.appId;\n }\n if (typeof this.editionId !== 'undefined') {\n toReturn['editionId'] = this.editionId;\n }\n if (typeof this.packageId !== 'undefined') {\n toReturn['packageId'] = this.packageId;\n }\n if (typeof this.packageInstanceId !== 'undefined') {\n toReturn['packageInstanceId'] = this.packageInstanceId;\n }\n return toReturn;\n }\n}\nclass BillingPeriod {\n static fromProto(proto) {\n let m = new BillingPeriod();\n m = Object.assign(m, proto);\n if (proto.startDate) {\n m.startDate = new Date(proto.startDate);\n }\n if (proto.endDate) {\n m.endDate = new Date(proto.endDate);\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.startDate !== 'undefined' && this.startDate !== null) {\n toReturn['startDate'] = 'toApiJson' in this.startDate ? this.startDate.toApiJson() : this.startDate;\n }\n if (typeof this.endDate !== 'undefined' && this.endDate !== null) {\n toReturn['endDate'] = 'toApiJson' in this.endDate ? this.endDate.toApiJson() : this.endDate;\n }\n return toReturn;\n }\n}\nclass Cost {\n static fromProto(proto) {\n let m = new Cost();\n m = Object.assign(m, proto);\n if (proto.customPrice) {\n m.customPrice = parseInt(proto.customPrice, 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.customPrice !== 'undefined') {\n toReturn['customPrice'] = this.customPrice;\n }\n return toReturn;\n }\n}\nclass CustomPriceMapping {\n static fromProto(proto) {\n let m = new CustomPriceMapping();\n m = Object.assign(m, proto);\n if (proto.customPrice) {\n m.customPrice = parseInt(proto.customPrice, 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.productId !== 'undefined') {\n toReturn['productId'] = this.productId;\n }\n if (typeof this.customPrice !== 'undefined') {\n toReturn['customPrice'] = this.customPrice;\n }\n return toReturn;\n }\n}\nclass Duration {\n static fromProto(proto) {\n let m = new Duration();\n m = Object.assign(m, proto);\n if (proto.value) {\n m.value = parseInt(proto.value, 10);\n }\n if (proto.duration) {\n m.duration = enumStringToValue(DurationPeriod, proto.duration);\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.value !== 'undefined') {\n toReturn['value'] = this.value;\n }\n if (typeof this.duration !== 'undefined') {\n toReturn['duration'] = this.duration;\n }\n return toReturn;\n }\n}\nclass LineItem {\n static fromProto(proto) {\n let m = new LineItem();\n m = Object.assign(m, proto);\n if (proto.appKey) {\n m.appKey = LineItemAppKey.fromProto(proto.appKey);\n }\n if (proto.currency) {\n m.currency = enumStringToValue(Currency, proto.currency);\n }\n if (proto.initialRevenue) {\n m.initialRevenue = Revenue.fromProto(proto.initialRevenue);\n }\n if (proto.currentRevenue) {\n m.currentRevenue = Revenue.fromProto(proto.currentRevenue);\n }\n if (proto.quantity) {\n m.quantity = parseInt(proto.quantity, 10);\n }\n if (proto.cost) {\n m.cost = Cost.fromProto(proto.cost);\n }\n if (proto.customPrices) {\n m.customPrices = proto.customPrices.map(CustomPriceMapping.fromProto);\n }\n if (proto.billingPeriod) {\n m.billingPeriod = BillingPeriod.fromProto(proto.billingPeriod);\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.appKey !== 'undefined' && this.appKey !== null) {\n toReturn['appKey'] = 'toApiJson' in this.appKey ? this.appKey.toApiJson() : this.appKey;\n }\n if (typeof this.packageId !== 'undefined') {\n toReturn['packageId'] = this.packageId;\n }\n if (typeof this.currency !== 'undefined') {\n toReturn['currency'] = this.currency;\n }\n if (typeof this.initialRevenue !== 'undefined' && this.initialRevenue !== null) {\n toReturn['initialRevenue'] = 'toApiJson' in this.initialRevenue ? this.initialRevenue.toApiJson() : this.initialRevenue;\n }\n if (typeof this.currentRevenue !== 'undefined' && this.currentRevenue !== null) {\n toReturn['currentRevenue'] = 'toApiJson' in this.currentRevenue ? this.currentRevenue.toApiJson() : this.currentRevenue;\n }\n if (typeof this.quantity !== 'undefined') {\n toReturn['quantity'] = this.quantity;\n }\n if (typeof this.isTrial !== 'undefined') {\n toReturn['isTrial'] = this.isTrial;\n }\n if (typeof this.currencyCode !== 'undefined') {\n toReturn['currencyCode'] = this.currencyCode;\n }\n if (typeof this.cost !== 'undefined' && this.cost !== null) {\n toReturn['cost'] = 'toApiJson' in this.cost ? this.cost.toApiJson() : this.cost;\n }\n if (typeof this.customPrices !== 'undefined' && this.customPrices !== null) {\n toReturn['customPrices'] = 'toApiJson' in this.customPrices ? this.customPrices.toApiJson() : this.customPrices;\n }\n if (typeof this.billingPeriod !== 'undefined' && this.billingPeriod !== null) {\n toReturn['billingPeriod'] = 'toApiJson' in this.billingPeriod ? this.billingPeriod.toApiJson() : this.billingPeriod;\n }\n if (typeof this.autoBillable !== 'undefined') {\n toReturn['autoBillable'] = this.autoBillable;\n }\n if (typeof this.nonBillable !== 'undefined') {\n toReturn['nonBillable'] = this.nonBillable;\n }\n return toReturn;\n }\n}\nclass Revenue {\n static fromProto(proto) {\n let m = new Revenue();\n m = Object.assign(m, proto);\n if (proto.revenueComponents) {\n m.revenueComponents = proto.revenueComponents.map(RevenueComponent.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.revenueComponents !== 'undefined' && this.revenueComponents !== null) {\n toReturn['revenueComponents'] = 'toApiJson' in this.revenueComponents ? this.revenueComponents.toApiJson() : this.revenueComponents;\n }\n return toReturn;\n }\n}\nclass RevenueComponent {\n static fromProto(proto) {\n let m = new RevenueComponent();\n m = Object.assign(m, proto);\n if (proto.value) {\n m.value = parseInt(proto.value, 10);\n }\n if (proto.period) {\n m.period = enumStringToValue(RevenuePeriod, proto.period);\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.value !== 'undefined') {\n toReturn['value'] = this.value;\n }\n if (typeof this.period !== 'undefined') {\n toReturn['period'] = this.period;\n }\n if (typeof this.isStartingRevenue !== 'undefined') {\n toReturn['isStartingRevenue'] = this.isStartingRevenue;\n }\n return toReturn;\n }\n}\n\n// *********************************\n\nconst environment = (window ? window['environment'] : 'prod') ?? 'prod';\nconst hostMap = {\n 'local': 'sales-api.vendasta-local.com',\n 'test': '',\n 'demo': 'sales-api-demo.apigateway.co',\n 'prod': 'sales-api-prod.apigateway.co',\n 'production': 'sales-api-prod.apigateway.co'\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(t) {\n return new (t || HostService)();\n };\n HostService.ɵprov = /* @__PURE__ */i0.ɵɵdefineInjectable({\n token: HostService,\n factory: HostService.ɵfac,\n providedIn: 'root'\n });\n return HostService;\n})();\n(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && void 0;\n})();\n\n// *********************************\nlet BusinessActivityApiService = /*#__PURE__*/(() => {\n class BusinessActivityApiService {\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 createBusinessActivity(r) {\n const request = r.toApiJson ? r : new CreateBusinessActivityRequest(r);\n return this.http.post(this._host + \"/sales.v1.BusinessActivity/CreateBusinessActivity\", request.toApiJson(), {\n ...this.apiOptions(),\n observe: 'response'\n });\n }\n }\n BusinessActivityApiService.ɵfac = function BusinessActivityApiService_Factory(t) {\n return new (t || BusinessActivityApiService)(i0.ɵɵinject(i1.HttpClient), i0.ɵɵinject(HostService));\n };\n BusinessActivityApiService.ɵprov = /* @__PURE__ */i0.ɵɵdefineInjectable({\n token: BusinessActivityApiService,\n factory: BusinessActivityApiService.ɵfac,\n providedIn: 'root'\n });\n return BusinessActivityApiService;\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 BusinessSearchRequest(r);\n return this.http.post(this._host + \"/sales.v1.BusinessService/Search\", request.toApiJson(), this.apiOptions()).pipe(map(resp => BusinessSearchResponse.fromProto(resp)));\n }\n requestSubscriptionChange(r) {\n const request = r.toApiJson ? r : new RequestSubscriptionChangeRequest(r);\n return this.http.post(this._host + \"/sales.v1.BusinessService/RequestSubscriptionChange\", request.toApiJson(), {\n ...this.apiOptions(),\n observe: 'response'\n });\n }\n list(r) {\n const request = r.toApiJson ? r : new BusinessListRequest(r);\n return this.http.post(this._host + \"/sales.v1.BusinessService/List\", request.toApiJson(), this.apiOptions()).pipe(map(resp => BusinessListResponse.fromProto(resp)));\n }\n }\n BusinessApiService.ɵfac = function BusinessApiService_Factory(t) {\n return new (t || 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.v1.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.v1.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.v1.CampaignService/AddContactToCampaign\", request.toApiJson(), {\n ...this.apiOptions(),\n observe: 'response'\n });\n }\n }\n CampaignApiService.ɵfac = function CampaignApiService_Factory(t) {\n return new (t || 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 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 create(r) {\n const request = r.toApiJson ? r : new ContactCreateRequest(r);\n return this.http.post(this._host + \"/sales.v1.Contacts/Create\", request.toApiJson(), this.apiOptions()).pipe(map(resp => ContactCreateResponse.fromProto(resp)));\n }\n getContactsByEmail(r) {\n const request = r.toApiJson ? r : new GetContactsByEmailRequest(r);\n return this.http.post(this._host + \"/sales.v1.Contacts/GetContactsByEmail\", request.toApiJson(), this.apiOptions()).pipe(map(resp => GetContactsResponse.fromProto(resp)));\n }\n }\n ContactsApiService.ɵfac = function ContactsApiService_Factory(t) {\n return new (t || 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 ExternalIdentifiersApiService = /*#__PURE__*/(() => {\n class ExternalIdentifiersApiService {\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 create(r) {\n const request = r.toApiJson ? r : new ExternalIdentifierCreateRequest(r);\n return this.http.post(this._host + \"/sales.v1.ExternalIdentifiers/Create\", request.toApiJson(), {\n ...this.apiOptions(),\n observe: 'response'\n });\n }\n getByInternalId(r) {\n const request = r.toApiJson ? r : new ExternalIdentifierGetByInternalIDRequest(r);\n return this.http.post(this._host + \"/sales.v1.ExternalIdentifiers/GetByInternalID\", request.toApiJson(), this.apiOptions()).pipe(map(resp => ExternalIdentifierGetByInternalIDResponse.fromProto(resp)));\n }\n }\n ExternalIdentifiersApiService.ɵfac = function ExternalIdentifiersApiService_Factory(t) {\n return new (t || ExternalIdentifiersApiService)(i0.ɵɵinject(i1.HttpClient), i0.ɵɵinject(HostService));\n };\n ExternalIdentifiersApiService.ɵprov = /* @__PURE__ */i0.ɵɵdefineInjectable({\n token: ExternalIdentifiersApiService,\n factory: ExternalIdentifiersApiService.ɵfac,\n providedIn: 'root'\n });\n return ExternalIdentifiersApiService;\n})();\n(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && void 0;\n})();\n\n// *********************************\nlet FreshdeskApiService = /*#__PURE__*/(() => {\n class FreshdeskApiService {\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 setConfiguration(r) {\n const request = r.toApiJson ? r : new SetConfigurationRequest(r);\n return this.http.post(this._host + \"/sales.v1.Freshdesk/SetConfiguration\", request.toApiJson(), {\n ...this.apiOptions(),\n observe: 'response'\n });\n }\n getConfiguration(r) {\n const request = r.toApiJson ? r : new GetConfigurationRequest(r);\n return this.http.post(this._host + \"/sales.v1.Freshdesk/GetConfiguration\", request.toApiJson(), this.apiOptions()).pipe(map(resp => GetConfigurationResponse.fromProto(resp)));\n }\n searchTickets(r) {\n const request = r.toApiJson ? r : new SearchTicketsRequest(r);\n return this.http.post(this._host + \"/sales.v1.Freshdesk/SearchTickets\", request.toApiJson(), this.apiOptions()).pipe(map(resp => SearchTicketsResponse.fromProto(resp)));\n }\n viewTicket(r) {\n const request = r.toApiJson ? r : new ViewTicketRequest(r);\n return this.http.post(this._host + \"/sales.v1.Freshdesk/ViewTicket\", request.toApiJson(), this.apiOptions()).pipe(map(resp => ViewTicketResponse.fromProto(resp)));\n }\n }\n FreshdeskApiService.ɵfac = function FreshdeskApiService_Factory(t) {\n return new (t || FreshdeskApiService)(i0.ɵɵinject(i1.HttpClient), i0.ɵɵinject(HostService));\n };\n FreshdeskApiService.ɵprov = /* @__PURE__ */i0.ɵɵdefineInjectable({\n token: FreshdeskApiService,\n factory: FreshdeskApiService.ɵfac,\n providedIn: 'root'\n });\n return FreshdeskApiService;\n})();\n(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && void 0;\n})();\n\n// *********************************\nlet LegacyEventsApiService = /*#__PURE__*/(() => {\n class LegacyEventsApiService {\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 publishSnapshotOpenEvent(r) {\n const request = r.toApiJson ? r : new PublishSnapshotOpenEventRequest(r);\n return this.http.post(this._host + \"/sales.v1.LegacyEvents/PublishSnapshotOpenEvent\", request.toApiJson(), {\n ...this.apiOptions(),\n observe: 'response'\n });\n }\n publishAskQuestionEvent(r) {\n const request = r.toApiJson ? r : new PublishAskQuestionEventRequest(r);\n return this.http.post(this._host + \"/sales.v1.LegacyEvents/PublishAskQuestionEvent\", request.toApiJson(), {\n ...this.apiOptions(),\n observe: 'response'\n });\n }\n publishClaimAccountEvent(r) {\n const request = r.toApiJson ? r : new PublishClaimAccountEventRequest(r);\n return this.http.post(this._host + \"/sales.v1.LegacyEvents/PublishClaimAccountEvent\", request.toApiJson(), {\n ...this.apiOptions(),\n observe: 'response'\n });\n }\n publishProductInterestEvent(r) {\n const request = r.toApiJson ? r : new PublishProductInterestEventRequest(r);\n return this.http.post(this._host + \"/sales.v1.LegacyEvents/PublishProductInterestEvent\", request.toApiJson(), {\n ...this.apiOptions(),\n observe: 'response'\n });\n }\n publishPackageInterestEvent(r) {\n const request = r.toApiJson ? r : new PublishPackageInterestEventRequest(r);\n return this.http.post(this._host + \"/sales.v1.LegacyEvents/PublishPackageInterestEvent\", request.toApiJson(), {\n ...this.apiOptions(),\n observe: 'response'\n });\n }\n }\n LegacyEventsApiService.ɵfac = function LegacyEventsApiService_Factory(t) {\n return new (t || LegacyEventsApiService)(i0.ɵɵinject(i1.HttpClient), i0.ɵɵinject(HostService));\n };\n LegacyEventsApiService.ɵprov = /* @__PURE__ */i0.ɵɵdefineInjectable({\n token: LegacyEventsApiService,\n factory: LegacyEventsApiService.ɵfac,\n providedIn: 'root'\n });\n return LegacyEventsApiService;\n})();\n(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && void 0;\n})();\n\n// *********************************\nlet MeetingApiService = /*#__PURE__*/(() => {\n class MeetingApiService {\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 storeZoomMeetingInfo(r) {\n const request = r.toApiJson ? r : new StoreZoomMeetingInfoRequest(r);\n return this.http.post(this._host + \"/sales.v1.Meeting/StoreZoomMeetingInfo\", request.toApiJson(), {\n ...this.apiOptions(),\n observe: 'response'\n });\n }\n getZoomMeetingInfo(r) {\n const request = r.toApiJson ? r : new GetZoomMeetingInfoRequest(r);\n return this.http.post(this._host + \"/sales.v1.Meeting/GetZoomMeetingInfo\", request.toApiJson(), this.apiOptions()).pipe(map(resp => GetZoomMeetingInfoResponse.fromProto(resp)));\n }\n }\n MeetingApiService.ɵfac = function MeetingApiService_Factory(t) {\n return new (t || MeetingApiService)(i0.ɵɵinject(i1.HttpClient), i0.ɵɵinject(HostService));\n };\n MeetingApiService.ɵprov = /* @__PURE__ */i0.ɵɵdefineInjectable({\n token: MeetingApiService,\n factory: MeetingApiService.ɵfac,\n providedIn: 'root'\n });\n return MeetingApiService;\n})();\n(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && void 0;\n})();\n\n// *********************************\nlet PartnerApiService = /*#__PURE__*/(() => {\n class PartnerApiService {\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 getPartnerSalesDomain(r) {\n const request = r.toApiJson ? r : new PartnerSalesDomainRequest(r);\n return this.http.post(this._host + \"/sales.v1.PartnerService/GetPartnerSalesDomain\", request.toApiJson(), this.apiOptions()).pipe(map(resp => PartnerSalesDomainResponse.fromProto(resp)));\n }\n updatePartnerSalesDomain(r) {\n const request = r.toApiJson ? r : new UpdatePartnerSalesDomainRequest(r);\n return this.http.post(this._host + \"/sales.v1.PartnerService/UpdatePartnerSalesDomain\", request.toApiJson(), {\n ...this.apiOptions(),\n observe: 'response'\n });\n }\n }\n PartnerApiService.ɵfac = function PartnerApiService_Factory(t) {\n return new (t || PartnerApiService)(i0.ɵɵinject(i1.HttpClient), i0.ɵɵinject(HostService));\n };\n PartnerApiService.ɵprov = /* @__PURE__ */i0.ɵɵdefineInjectable({\n token: PartnerApiService,\n factory: PartnerApiService.ɵfac,\n providedIn: 'root'\n });\n return PartnerApiService;\n})();\n(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && void 0;\n})();\n\n// *********************************\nlet SalesApiService = /*#__PURE__*/(() => {\n class SalesApiService {\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 getAutoAssignConfig(r) {\n const request = r.toApiJson ? r : new GetAutoAssignConfigRequest(r);\n return this.http.post(this._host + \"/sales.v1.Sales/GetAutoAssignConfig\", request.toApiJson(), this.apiOptions()).pipe(map(resp => GetAutoAssignConfigResponse.fromProto(resp)));\n }\n createOrUpdateAutoAssignConfig(r) {\n const request = r.toApiJson ? r : new CreateOrUpdateAutoAssignConfigRequest(r);\n return this.http.post(this._host + \"/sales.v1.Sales/CreateOrUpdateAutoAssignConfig\", request.toApiJson(), {\n ...this.apiOptions(),\n observe: 'response'\n });\n }\n getSalesperson(r) {\n const request = r.toApiJson ? r : new GetSalespersonRequest(r);\n return this.http.post(this._host + \"/sales.v1.Sales/GetSalesperson\", request.toApiJson(), this.apiOptions()).pipe(map(resp => Salesperson.fromProto(resp)));\n }\n getMultiSalesperson(r) {\n const request = r.toApiJson ? r : new GetMultiSalespersonRequest(r);\n return this.http.post(this._host + \"/sales.v1.Sales/GetMultiSalesperson\", request.toApiJson(), this.apiOptions()).pipe(map(resp => GetMultiSalespersonResponse.fromProto(resp)));\n }\n listSalespersons(r) {\n const request = r.toApiJson ? r : new ListSalespersonsRequest(r);\n return this.http.post(this._host + \"/sales.v1.Sales/ListSalespersons\", request.toApiJson(), this.apiOptions()).pipe(map(resp => ListSalespersonsResponse.fromProto(resp)));\n }\n getAssignedSalespersonForPartner(r) {\n const request = r.toApiJson ? r : new GetAssignedSalespersonForPartnerRequest(r);\n return this.http.post(this._host + \"/sales.v1.Sales/GetAssignedSalespersonForPartner\", request.toApiJson(), this.apiOptions()).pipe(map(resp => GetAssignedSalespersonForPartnerResponse.fromProto(resp)));\n }\n lookupSalespersons(r) {\n const request = r.toApiJson ? r : new LookupSalespersonsRequest(r);\n return this.http.post(this._host + \"/sales.v1.Sales/LookupSalespersons\", request.toApiJson(), this.apiOptions()).pipe(map(resp => LookupSalespersonsResponse.fromProto(resp)));\n }\n sendResetPasswordEmail(r) {\n const request = r.toApiJson ? r : new SendResetPasswordEmailRequest(r);\n return this.http.post(this._host + \"/sales.v1.Sales/SendResetPasswordEmail\", request.toApiJson(), {\n ...this.apiOptions(),\n observe: 'response'\n });\n }\n }\n SalesApiService.ɵfac = function SalesApiService_Factory(t) {\n return new (t || SalesApiService)(i0.ɵɵinject(i1.HttpClient), i0.ɵɵinject(HostService));\n };\n SalesApiService.ɵprov = /* @__PURE__ */i0.ɵɵdefineInjectable({\n token: SalesApiService,\n factory: SalesApiService.ɵfac,\n providedIn: 'root'\n });\n return SalesApiService;\n})();\n(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && void 0;\n})();\n\n// *********************************\nlet SalesActivityApiService = /*#__PURE__*/(() => {\n class SalesActivityApiService {\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 getMulti(r) {\n const request = r.toApiJson ? r : new GetMultiSalesActivityRequest(r);\n return this.http.post(this._host + \"/sales.v1.SalesActivityService/GetMulti\", request.toApiJson(), this.apiOptions()).pipe(map(resp => GetMultiSalesActivityResponse.fromProto(resp)));\n }\n create(r) {\n const request = r.toApiJson ? r : new CreateSalesActivityRequest(r);\n return this.http.post(this._host + \"/sales.v1.SalesActivityService/Create\", request.toApiJson(), this.apiOptions()).pipe(map(resp => CreateSalesActivityResponse.fromProto(resp)));\n }\n }\n SalesActivityApiService.ɵfac = function SalesActivityApiService_Factory(t) {\n return new (t || SalesActivityApiService)(i0.ɵɵinject(i1.HttpClient), i0.ɵɵinject(HostService));\n };\n SalesActivityApiService.ɵprov = /* @__PURE__ */i0.ɵɵdefineInjectable({\n token: SalesActivityApiService,\n factory: SalesActivityApiService.ɵfac,\n providedIn: 'root'\n });\n return SalesActivityApiService;\n})();\n(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && void 0;\n})();\n\n// *********************************\nlet SalesTeamApiService = /*#__PURE__*/(() => {\n class SalesTeamApiService {\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 ListSalesTeamsRequest(r);\n return this.http.post(this._host + \"/sales.v1.SalesTeamService/List\", request.toApiJson(), this.apiOptions()).pipe(map(resp => ListSalesTeamsResponse.fromProto(resp)));\n }\n getMulti(r) {\n const request = r.toApiJson ? r : new GetMultiSalesTeamRequest(r);\n return this.http.post(this._host + \"/sales.v1.SalesTeamService/GetMulti\", request.toApiJson(), this.apiOptions()).pipe(map(resp => GetMultiSalesTeamResponse.fromProto(resp)));\n }\n getMembers(r) {\n const request = r.toApiJson ? r : new GetMembersRequest(r);\n return this.http.post(this._host + \"/sales.v1.SalesTeamService/GetMembers\", request.toApiJson(), this.apiOptions()).pipe(map(resp => GetMembersResponse.fromProto(resp)));\n }\n getTeamsBySalespersons(r) {\n const request = r.toApiJson ? r : new GetTeamsBySalespersonsRequest(r);\n return this.http.post(this._host + \"/sales.v1.SalesTeamService/GetTeamsBySalespersons\", request.toApiJson(), this.apiOptions()).pipe(map(resp => GetTeamsBySalespersonsResponse.fromProto(resp)));\n }\n updateTeamName(r) {\n const request = r.toApiJson ? r : new UpdateTeamNameRequest(r);\n return this.http.post(this._host + \"/sales.v1.SalesTeamService/UpdateTeamName\", request.toApiJson(), {\n ...this.apiOptions(),\n observe: 'response'\n });\n }\n }\n SalesTeamApiService.ɵfac = function SalesTeamApiService_Factory(t) {\n return new (t || SalesTeamApiService)(i0.ɵɵinject(i1.HttpClient), i0.ɵɵinject(HostService));\n };\n SalesTeamApiService.ɵprov = /* @__PURE__ */i0.ɵɵdefineInjectable({\n token: SalesTeamApiService,\n factory: SalesTeamApiService.ɵfac,\n providedIn: 'root'\n });\n return SalesTeamApiService;\n})();\n(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && void 0;\n})();\n\n// *********************************\nlet TasksApiService = /*#__PURE__*/(() => {\n class TasksApiService {\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 createSalesTask(r) {\n const request = r.toApiJson ? r : new CreateSalesTaskRequest(r);\n return this.http.post(this._host + \"/sales.v1.Tasks/CreateSalesTask\", request.toApiJson(), this.apiOptions()).pipe(map(resp => CreateSalesTaskResponse.fromProto(resp)));\n }\n assignSalesTask(r) {\n const request = r.toApiJson ? r : new AssignSalesTaskRequest(r);\n return this.http.post(this._host + \"/sales.v1.Tasks/AssignSalesTask\", request.toApiJson(), {\n ...this.apiOptions(),\n observe: 'response'\n });\n }\n }\n TasksApiService.ɵfac = function TasksApiService_Factory(t) {\n return new (t || TasksApiService)(i0.ɵɵinject(i1.HttpClient), i0.ɵɵinject(HostService));\n };\n TasksApiService.ɵprov = /* @__PURE__ */i0.ɵɵdefineInjectable({\n token: TasksApiService,\n factory: TasksApiService.ɵfac,\n providedIn: 'root'\n });\n return TasksApiService;\n})();\n(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && void 0;\n})();\n\n// *********************************\nlet UserActionsProviderApiService = /*#__PURE__*/(() => {\n class UserActionsProviderApiService {\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 uploadUserAction(r) {\n const request = r.toApiJson ? r : new UserActionsRequest(r);\n return this.http.post(this._host + \"/sales.v1.UserActionsProvider/UploadUserAction\", request.toApiJson(), {\n ...this.apiOptions(),\n observe: 'response'\n });\n }\n uploadUserActionForCustomerId(r) {\n const request = r.toApiJson ? r : new UploadUserActionForCustomerIDRequest(r);\n return this.http.post(this._host + \"/sales.v1.UserActionsProvider/UploadUserActionForCustomerID\", request.toApiJson(), {\n ...this.apiOptions(),\n observe: 'response'\n });\n }\n bulkUploadUserActions(r) {\n const request = r.toApiJson ? r : new BulkUploadUserActionsRequest(r);\n return this.http.post(this._host + \"/sales.v1.UserActionsProvider/BulkUploadUserActions\", request.toApiJson(), {\n ...this.apiOptions(),\n observe: 'response'\n });\n }\n listUserActions(r) {\n const request = r.toApiJson ? r : new GetUserActionsRequest(r);\n return this.http.post(this._host + \"/sales.v1.UserActionsProvider/ListUserActions\", request.toApiJson(), this.apiOptions()).pipe(map(resp => UserActionsResponse.fromProto(resp)));\n }\n }\n UserActionsProviderApiService.ɵfac = function UserActionsProviderApiService_Factory(t) {\n return new (t || UserActionsProviderApiService)(i0.ɵɵinject(i1.HttpClient), i0.ɵɵinject(HostService));\n };\n UserActionsProviderApiService.ɵprov = /* @__PURE__ */i0.ɵɵdefineInjectable({\n token: UserActionsProviderApiService,\n factory: UserActionsProviderApiService.ɵfac,\n providedIn: 'root'\n });\n return UserActionsProviderApiService;\n})();\n(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && void 0;\n})();\n\n// *********************************\nlet SalespersonService = /*#__PURE__*/(() => {\n class SalespersonService {\n constructor(_api) {\n this._api = _api;\n }\n /** @deprecated Use getSalespersonBySubjectId or getSalespersonByUserId */\n getSalesperson(partnerId, salespersonId, userId) {\n return salespersonId ? this.getSalespersonBySubjectId(partnerId, salespersonId) : this.getSalespersonByUserId(partnerId, userId || '');\n }\n getSalespersons(partnerId, markets, options) {\n const params = {\n partnerId: partnerId,\n marketIds: markets,\n includeLastLogin: options?.includeLastLogin ?? false\n };\n if (!!options?.searchTerm) {\n params.searchTerm = options.searchTerm;\n }\n if (!!options?.pageSize && !!options?.cursor) {\n params.pagingOptions = {\n pageSize: options.pageSize,\n cursor: options.cursor\n };\n }\n if (!!options?.pageSize && !options?.cursor) {\n params.pagingOptions = {\n pageSize: options.pageSize\n };\n }\n return this._api.lookupSalespersons(params).pipe(map(r => r.salespersons));\n }\n getSalespersonBySubjectId(partnerId, salespersonId) {\n return this._api.getSalesperson({\n partnerId: partnerId,\n salespersonId: salespersonId\n });\n }\n getSalespersonByUserId(partnerId, userId) {\n return this._api.getSalesperson({\n partnerId: partnerId,\n userId: userId\n });\n }\n listSalespersons(filters, cursor, pageSize) {\n return this._api.listSalespersons({\n filters: filters,\n pagingOptions: {\n cursor: cursor,\n pageSize: pageSize\n }\n }).pipe(map(resp => {\n return {\n results: resp.salespersons,\n nextCursor: resp.pagingMetadata.nextCursor,\n hasMore: resp.pagingMetadata.hasMore\n };\n }));\n }\n getAssignedSalespersonForPartner(partnerId, marketId) {\n return this._api.getAssignedSalespersonForPartner({\n partnerId: partnerId,\n marketId: marketId\n });\n }\n sendResetPasswordEmail(partnerId, salespersonId) {\n return this._api.sendResetPasswordEmail({\n partnerId: partnerId,\n salespersonId: salespersonId\n });\n }\n getMultiSalesperson(partnerId, salespersonIds) {\n return this._api.getMultiSalesperson({\n partnerId: partnerId,\n salespersonIds: salespersonIds\n }).pipe(map(resp => resp.salespersons));\n }\n }\n SalespersonService.ɵfac = function SalespersonService_Factory(t) {\n return new (t || SalespersonService)(i0.ɵɵinject(SalesApiService));\n };\n SalespersonService.ɵprov = /* @__PURE__ */i0.ɵɵdefineInjectable({\n token: SalespersonService,\n factory: SalespersonService.ɵfac,\n providedIn: 'root'\n });\n return SalespersonService;\n})();\n(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && void 0;\n})();\nlet PagedResponse$2 = class PagedResponse {\n constructor(results, nextCursor, hasMore) {\n this.results = results;\n this.nextCursor = nextCursor;\n this.hasMore = hasMore;\n }\n};\nlet SalesTeamService = /*#__PURE__*/(() => {\n class SalesTeamService {\n constructor(_api) {\n this._api = _api;\n }\n list(partnerId, marketId, cursor, pageSize) {\n return this._api.list({\n filters: {\n partnerId: partnerId,\n marketId: marketId\n },\n pagingOptions: {\n cursor: cursor,\n pageSize: pageSize\n }\n }).pipe(map(resp => ({\n results: resp.salesTeams,\n nextCursor: resp.pagingMetadata.nextCursor,\n hasMore: resp.pagingMetadata.hasMore\n })));\n }\n getMembers(groupId) {\n return this._api.getMembers({\n groupId: groupId\n }).pipe(map(resp => resp.salesPeople || []));\n }\n updateTeamName(groupId, newTeamName) {\n return this._api.updateTeamName({\n groupId: groupId,\n newTeamName: newTeamName\n }).pipe(mapTo(null));\n }\n getSalesTeamsBySalesperson(salespersonId) {\n return this._api.getTeamsBySalespersons({\n salespersonIds: [salespersonId]\n }).pipe(map(resp => {\n if (!resp || !resp.teamMapping) {\n return [];\n }\n return resp.teamMapping.reduce((salesTeams, mapping) => {\n return [...salesTeams, ...((mapping || {\n salesTeams: []\n }).salesTeams || [])];\n }, []);\n }));\n }\n getMulti(groupIds) {\n return this._api.getMulti({\n groupIds: groupIds\n }).pipe(map(resp => resp.salesTeams || []));\n }\n }\n SalesTeamService.ɵfac = function SalesTeamService_Factory(t) {\n return new (t || SalesTeamService)(i0.ɵɵinject(SalesTeamApiService));\n };\n SalesTeamService.ɵprov = /* @__PURE__ */i0.ɵɵdefineInjectable({\n token: SalesTeamService,\n factory: SalesTeamService.ɵfac,\n providedIn: 'root'\n });\n return SalesTeamService;\n})();\n(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && void 0;\n})();\nlet PagedResponse$1 = class PagedResponse {\n constructor(results, nextCursor, hasMore) {\n this.results = results;\n this.nextCursor = nextCursor;\n this.hasMore = hasMore;\n }\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 }\n CampaignSDKService.ɵfac = function CampaignSDKService_Factory(t) {\n return new (t || 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})();\nconst defaultOptions = {\n withCredentials: true\n};\nlet Businesses = /*#__PURE__*/(() => {\n class Businesses {\n constructor(internal) {\n this.internal = internal;\n }\n search(partnerId, marketId, sortKey, sortAscending, searchOptions) {\n const options = searchOptions || {};\n const request = {\n filters: {\n partnerId: partnerId,\n marketId: marketId,\n query: options.searchTerm,\n salesStatuses: options.salesStatuses,\n salesAction: options.salesAction,\n fromDate: options.fromDate,\n toDate: options.toDate,\n archived: options.archived,\n accountTags: options.accountTags,\n businessCategories: options.businessCategories,\n onCampaign: options.onCampaign,\n snapshotSent: options.snapshotSent,\n assignees: options.assignees,\n goal: options.goal,\n trainingPriorities: options.trainingPriorities,\n customFieldPartnerId: options.customFieldPartnerId,\n lifecycleStage: options.lifecycleStage\n },\n pagingOptions: {\n cursor: options.cursor,\n pageSize: options.pageSize\n },\n sortOptions: {\n sortKey: sortKey,\n sortAscending: sortAscending\n }\n };\n return this.internal.search(request).pipe(map(resp => {\n const respBusinesses = resp.businesses || [];\n return {\n pagingMetadata: resp.pagingMetadata,\n businesses: respBusinesses\n };\n }), share());\n }\n requestSubscriptionChange(businessId, name, phoneNumber, message) {\n return this.internal.requestSubscriptionChange({\n businessId: businessId,\n message: message,\n phoneNumber: phoneNumber,\n name: name\n }).pipe(map(() => true));\n }\n }\n Businesses.ɵfac = function Businesses_Factory(t) {\n return new (t || Businesses)(i0.ɵɵinject(BusinessApiService));\n };\n Businesses.ɵprov = /* @__PURE__ */i0.ɵɵdefineInjectable({\n token: Businesses,\n factory: Businesses.ɵfac,\n providedIn: 'root'\n });\n return Businesses;\n})();\n(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && void 0;\n})();\nlet UserActionService = /*#__PURE__*/(() => {\n class UserActionService {\n constructor(_api) {\n this._api = _api;\n }\n listUserActions(accountGroupId, cursor, pageSize) {\n return this._api.listUserActions({\n accountGroupId: accountGroupId,\n cursor: cursor,\n pageSize: pageSize\n }).pipe(map(resp => ({\n results: resp.userActions,\n nextCursor: resp.pagingMetadata.nextCursor,\n hasMore: resp.pagingMetadata.hasMore\n })));\n }\n }\n UserActionService.ɵfac = function UserActionService_Factory(t) {\n return new (t || UserActionService)(i0.ɵɵinject(UserActionsProviderApiService));\n };\n UserActionService.ɵprov = /* @__PURE__ */i0.ɵɵdefineInjectable({\n token: UserActionService,\n factory: UserActionService.ɵfac,\n providedIn: 'root'\n });\n return UserActionService;\n})();\n(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && void 0;\n})();\nclass PagedResponse {\n constructor(results, nextCursor, hasMore) {\n this.results = results;\n this.nextCursor = nextCursor;\n this.hasMore = hasMore;\n }\n}\n\n// *********************************\n// Code generated by sdkgen\n// DO NOT EDIT!.\n//\n// Enums.\n// *********************************\nvar DiscountType = /*#__PURE__*/function (DiscountType) {\n DiscountType[DiscountType[\"DISCOUNT_TYPE_NO_DISCOUNT\"] = 0] = \"DISCOUNT_TYPE_NO_DISCOUNT\";\n DiscountType[DiscountType[\"DISCOUNT_TYPE_PERCENTAGE\"] = 1] = \"DISCOUNT_TYPE_PERCENTAGE\";\n DiscountType[DiscountType[\"DISCOUNT_TYPE_FIXED_AMOUNT\"] = 2] = \"DISCOUNT_TYPE_FIXED_AMOUNT\";\n return DiscountType;\n}(DiscountType || {});\nvar SortFields = /*#__PURE__*/function (SortFields) {\n SortFields[SortFields[\"SORT_FIELDS_CREATED\"] = 0] = \"SORT_FIELDS_CREATED\";\n SortFields[SortFields[\"SORT_FIELDS_UPDATED\"] = 1] = \"SORT_FIELDS_UPDATED\";\n return SortFields;\n}(SortFields || {});\nlet FreshdeskService = /*#__PURE__*/(() => {\n class FreshdeskService {\n constructor(_api) {\n this._api = _api;\n }\n getConfiguration(partnerId) {\n return this._api.getConfiguration(new GetConfigurationRequest({\n partnerId: partnerId\n }));\n }\n setConfiguration(partnerId, domain, apiKey) {\n const r = new SetConfigurationRequest({\n partnerId: partnerId,\n domain: domain,\n apiKey: apiKey\n });\n const errorInterceptor = httpResponse => httpResponse.pipe(switchMap(res => res.ok ? EMPTY : throwError(res.status)));\n return this._api.setConfiguration(r).pipe(errorInterceptor);\n }\n /**\n * Retrieves all tickets from Freshdesk for a given account group id\n * @param partnerID - Scopes the ticket search to a specific partner\n * @param accountGroupID - Scopes the ticket search to a particular accountGroupID\n * @param pagination - Includes pageIndex and pageSize used for paginating results\n *\n * @remarks\n * Freshdesk's API and the underlying µs explicitly uses 1-based page indexing, however this SDK uses 0-based page indexing.\n * Supplying `pageIndex=0` results in a call to the datasource using `pageIndex=1`\n **/\n searchTickets(partnerID, accountGroupID, pagination) {\n const req = new SearchTicketsRequest({\n pagination: {\n ...pagination,\n pageIndex: (pagination?.pageIndex || 0) + 1\n },\n accountGroupId: accountGroupID,\n partnerId: partnerID\n });\n return this._api.searchTickets(req).pipe(map(resp => {\n return resp.tickets ?? [];\n }));\n }\n viewTicket(partnerID, accountGroupId, ticketId, includeFields) {\n const req = new ViewTicketRequest({\n partnerId: partnerID,\n accountGroupId: accountGroupId,\n ticketId: ticketId,\n includeFields: includeFields\n });\n return this._api.viewTicket(req);\n }\n }\n FreshdeskService.ɵfac = function FreshdeskService_Factory(t) {\n return new (t || FreshdeskService)(i0.ɵɵinject(FreshdeskApiService));\n };\n FreshdeskService.ɵprov = /* @__PURE__ */i0.ɵɵdefineInjectable({\n token: FreshdeskService,\n factory: FreshdeskService.ɵfac,\n providedIn: \"root\"\n });\n return FreshdeskService;\n})();\n(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && void 0;\n})();\nlet PartnerService = /*#__PURE__*/(() => {\n class PartnerService {\n constructor(_api) {\n this._api = _api;\n }\n getPartnerSalesDomain(partnerId) {\n const r = new PartnerSalesDomainRequest({\n partnerId: partnerId\n });\n return this._api.getPartnerSalesDomain(r).pipe(map(resp => resp.domain));\n }\n updatePartnerSalesDomain(partnerId, domain) {\n const r = new UpdatePartnerSalesDomainRequest({\n partnerId: partnerId,\n domain: domain\n });\n return this._api.updatePartnerSalesDomain(r).pipe(mapTo(null));\n }\n }\n PartnerService.ɵfac = function PartnerService_Factory(t) {\n return new (t || PartnerService)(i0.ɵɵinject(PartnerApiService));\n };\n PartnerService.ɵprov = /* @__PURE__ */i0.ɵɵdefineInjectable({\n token: PartnerService,\n factory: PartnerService.ɵfac,\n providedIn: 'root'\n });\n return PartnerService;\n})();\n(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && void 0;\n})();\nlet TasksService = /*#__PURE__*/(() => {\n class TasksService {\n constructor(_api) {\n this._api = _api;\n }\n createSalesTask(title, partnerId, marketId, accountGroupId, dueDate, salespersonIds) {\n const req = {\n partnerId: partnerId,\n marketId: marketId,\n accountGroupId: accountGroupId,\n dueDate: dueDate,\n salespersonIds: salespersonIds,\n title: title\n };\n return this._api.createSalesTask(req).pipe(switchMap(resp => {\n if (!resp.taskId) {\n return throwError('No task ID returned');\n }\n if (!resp.taskNamespace) {\n return throwError('No task namespace returned');\n }\n return of({\n taskId: resp.taskId,\n taskNamespace: resp.taskNamespace\n });\n }));\n }\n assignSalesTask(partnerId, marketId, taskId, salespersonUserId, accountGroupId) {\n const req = {\n partnerId: partnerId,\n marketId: marketId,\n accountGroupId: accountGroupId,\n taskId: taskId,\n salespersonUserId: salespersonUserId\n };\n return this._api.assignSalesTask(req).pipe(map(v => v.body));\n }\n }\n TasksService.ɵfac = function TasksService_Factory(t) {\n return new (t || TasksService)(i0.ɵɵinject(TasksApiService));\n };\n TasksService.ɵprov = /* @__PURE__ */i0.ɵɵdefineInjectable({\n token: TasksService,\n factory: TasksService.ɵfac,\n providedIn: 'root'\n });\n return TasksService;\n})();\n(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && void 0;\n})();\n\n/**\n * Generated bundle index. Do not edit.\n */\n\nexport { Archived, AutoAssignCriteria, AutoAssignCriteriaAccountOriginCriteria, AutoAssignCriteriaCategoryCriteria, AutoAssignCriteriaConversionPointCriteria, AutoAssignCriteriaLocationCriteria, AutoAssignCriteriaTagCriteria, AutoAssignRule, Businesses, Campaign, CampaignSDKService, CriteriaMatchType, DiscountType, FreshdeskService, GetAutoAssignConfigResponse, LifecycleStage, PagedResponse$1 as PagedResponse, PartnerService, SalesApiService, SalesTeamService, Salesperson, SalespersonService, Snapshot, SortFields, TagMatchType, TasksService, TicketPriority, UserAction, UserActionService };\n","import { CommonModule } from '@angular/common';\nimport { Component, Inject, Input, computed, effect, signal } from '@angular/core';\nimport { toSignal } from '@angular/core/rxjs-interop';\nimport { MatCardModule } from '@angular/material/card';\nimport { TranslateModule } from '@ngx-translate/core';\nimport { ActivityInterface, CRMChangeLogApiService, CrmObjectChangeLogInterface } from '@vendasta/crm';\nimport { GalaxyAvatarModule } from '@vendasta/galaxy/avatar';\nimport { GalaxyPipesModule } from '@vendasta/galaxy/pipes';\nimport { BlankValueComponent } from '@vendasta/galaxy/table';\nimport { DateFormat } from '@vendasta/galaxy/utility/date-utils';\nimport { SalesSdk, SalespersonService } from '@vendasta/sales';\nimport { Salesperson } from '@vendasta/sales/lib/_internal/objects';\nimport { EMPTY, combineLatest, of, switchMap, take } from 'rxjs';\nimport { catchError } from 'rxjs/operators';\nimport {\n CrmInjectionToken,\n CrmDependencies,\n SimplifiedUser,\n ObjectType,\n RecordChangeType,\n} from '../../../tokens-and-interfaces';\nimport { TranslateByObjectTypeService } from '../../../i18n/translate-by-object-type/translate-by-object-type.service';\nimport { TranslationModule } from '../../../i18n/translation-module';\nimport { AVATAR_WIDTH } from '../../../constants';\nimport { CrmActivityTemplateComponent } from './activity-template.component';\nimport { CrmFieldService, StandardIds, SystemFieldIds, StandardExternalIds } from '../../../shared-services';\n\ninterface EffectResult {\n changeLog: CrmObjectChangeLogInterface;\n changeLogSalesPerson: Salesperson | null;\n changeLogUser: SimplifiedUser[];\n changeLogSalespersonId: string | null;\n}\n@Component({\n selector: 'crm-activity-record-change',\n templateUrl: './record-change.component.html',\n styleUrls: ['./record-change.scss'],\n imports: [\n CommonModule,\n TranslateModule,\n TranslationModule,\n MatCardModule,\n CrmActivityTemplateComponent,\n GalaxyPipesModule,\n GalaxyAvatarModule,\n BlankValueComponent,\n ],\n standalone: true,\n})\nexport class CrmActivityRecordChangeComponent {\n AVATAR_WIDTH = AVATAR_WIDTH;\n dateFormat = DateFormat.medium;\n\n #activity = signal({});\n private readonly namespace = toSignal(this.config.namespace$);\n\n private _showAvatar = true;\n\n isReady = signal(false);\n\n @Input() set activity(activity: ActivityInterface) {\n this.#activity.set(activity);\n }\n\n get activity(): ActivityInterface {\n return this.#activity();\n }\n\n get showAvatar() {\n return this._showAvatar;\n }\n\n recordChangeType = computed(() => {\n return this.fieldService.getFieldValueFromCrmObject(this.#activity(), StandardExternalIds.ActivityRecordChangeType)\n ?.stringValue as RecordChangeType;\n });\n\n objectType = computed(() => {\n const activity = this.#activity();\n if (activity.associations === undefined || activity.associations.length === 0) {\n console.warn('No associations found for activity. Could not deduce object type.', this.#activity().crmObjectId);\n return undefined;\n }\n return activity.associations[0].crmObjectType as ObjectType;\n });\n\n sourceName = computed(() => {\n return this.fieldService.getFieldValueFromCrmObject(this.#activity(), StandardIds.ActivitySourceName)?.stringValue;\n });\n\n cardInfo = computed(() => {\n return {\n isReady: this.isReady(),\n headerText: this.headerText(),\n contentText: this.contentText(),\n effectiveDate: this.effectiveDate(),\n isUpdatedRecordChange: this.isUpdatedRecordChange(),\n };\n });\n\n headerText = computed(() => {\n const effectResult = this.effectResult();\n\n let partialKey = '';\n switch (this.recordChangeType()) {\n case 'CREATED':\n partialKey = 'RECORD_CHANGE_ACTIVITY.CREATED';\n break;\n case 'IMPORTANT_FIELD_UPDATED':\n partialKey = 'RECORD_CHANGE_ACTIVITY.IMPORTANT_FIELD_UPDATED';\n break;\n }\n const computedObjectType = this.objectType();\n if (computedObjectType === undefined) {\n return '';\n }\n const sourceName = this.sourceName();\n if (sourceName !== undefined) {\n partialKey = 'RECORD_CHANGE_ACTIVITY.CREATED_VIA';\n }\n const createdVia = this.translateByObjectTypeService.getTranslationByObjectType(computedObjectType, partialKey);\n if (sourceName !== undefined) {\n return `${createdVia} ${sourceName}`;\n }\n\n if (this.recordChangeType() === 'IMPORTANT_FIELD_UPDATED') {\n const partialKey = 'RECORD_CHANGE_ACTIVITY.IMPORTANT_FIELD_UPDATED';\n const updatedByUserPartialKey = this.translateByObjectTypeService.getTranslationByObjectType(\n computedObjectType,\n partialKey,\n {\n updatedField: `Salesperson`,\n },\n );\n return `${updatedByUserPartialKey} ${effectResult?.changeLogUser[0].displayName ?? ''}`.trim();\n }\n return createdVia;\n });\n\n effectiveDate = computed(() => {\n return (\n this.fieldService.getFieldValueFromCrmObject(this.#activity(), SystemFieldIds.ActivityEffectiveDate)?.dateValue ??\n null\n );\n });\n\n effectResult = signal(undefined);\n\n contentText = computed(() => {\n const effectResult = this.effectResult();\n\n const computedObjectType = this.objectType();\n if (computedObjectType === undefined) {\n return '';\n }\n\n if (this.recordChangeType() === 'IMPORTANT_FIELD_UPDATED') {\n if (effectResult?.changeLogSalesPerson === null && effectResult?.changeLogSalespersonId) {\n const unknownKey = 'RECORD_CHANGE_ACTIVITY.IMPORTANT_FIELD_UPDATED_SALESPERSON_UNKNOWN';\n const salespersonUnknownPartialKey = this.translateByObjectTypeService.getTranslationByObjectType(\n computedObjectType,\n unknownKey,\n );\n const partialKey = 'RECORD_CHANGE_ACTIVITY.IMPORTANT_FIELD_UPDATED_SALESPERSON';\n const salespersonUpdatedPartialKey = this.translateByObjectTypeService.getTranslationByObjectType(\n computedObjectType,\n partialKey,\n );\n return `${salespersonUpdatedPartialKey} ${salespersonUnknownPartialKey}`.trim();\n }\n if (effectResult?.changeLogSalesPerson !== null) {\n const partialKey = 'RECORD_CHANGE_ACTIVITY.IMPORTANT_FIELD_UPDATED_SALESPERSON';\n const salespersonFullName = [\n effectResult?.changeLogSalesPerson.firstName ?? '',\n effectResult?.changeLogSalesPerson.lastName ?? '',\n ]\n .map((name) => name.trim())\n .join(' ');\n const salespersonUpdatedPartialKey = this.translateByObjectTypeService.getTranslationByObjectType(\n computedObjectType,\n partialKey,\n );\n return `${salespersonUpdatedPartialKey} ${salespersonFullName}`.trim();\n }\n const partialKey = 'RECORD_CHANGE_ACTIVITY.IMPORTANT_FIELD_UPDATED_SALESPERSON_NOT_ASSIGNED';\n const salespersonNotAssignedPartialKey = this.translateByObjectTypeService.getTranslationByObjectType(\n computedObjectType,\n partialKey,\n );\n return `${salespersonNotAssignedPartialKey}`;\n }\n return '';\n });\n\n isUpdatedRecordChange = computed(() => {\n const effectResult = this.effectResult();\n return effectResult?.changeLog.crmChangeSubtype !== '';\n });\n\n constructor(\n private readonly fieldService: CrmFieldService,\n private readonly translateByObjectTypeService: TranslateByObjectTypeService,\n private readonly changeLogService: CRMChangeLogApiService,\n @Inject(CrmInjectionToken) private readonly config: CrmDependencies,\n @Inject(SalespersonService) private readonly salespersonService: SalesSdk,\n ) {\n effect(\n () => {\n if (!this.recordChangeType() || this.recordChangeType() !== 'IMPORTANT_FIELD_UPDATED') {\n this.effectResult.set(undefined);\n this.isReady.set(true);\n } else if (this.recordChangeType() === 'IMPORTANT_FIELD_UPDATED') {\n const companyId =\n this.#activity().associations?.find((association) => association.crmObjectType === 'Company')\n ?.crmObjectId ?? '';\n const changeId =\n this.fieldService.getFieldValueFromCrmObject(this.#activity(), StandardIds.RecordChangeReferenceFieldID)\n ?.stringValue ?? '';\n\n this.changeLogService\n .getMultiChangeLog({\n crmObjectType: this.objectType(),\n namespace: this.namespace(),\n crmChangelogIdentifiers: [\n {\n crmObjectId: companyId,\n crmChangeId: changeId,\n },\n ],\n })\n .pipe(\n switchMap((res) => {\n const object = res.changeLogs[0];\n const salesPersonSubId = this.fieldService.getFieldValueFromCrmObject(\n object,\n StandardIds.CompanyPrimarySalespersonID,\n )?.stringValue;\n const createdByUserId = object.createdByUserId;\n const namespace = this.namespace() || '';\n\n return combineLatest([\n of(object),\n salesPersonSubId\n ? this.salespersonService\n .getSalespersonBySubjectId(namespace, salesPersonSubId)\n .pipe(catchError(() => of(null)))\n : of(null),\n createdByUserId\n ? this.config.services?.userService?.getMultiUsers([createdByUserId]) || EMPTY\n : EMPTY,\n of(salesPersonSubId),\n ]);\n }),\n take(1),\n )\n .subscribe(([object, salesPerson, simplifiedUser, salesPersonSubId]) => {\n const effectResult = {} as EffectResult;\n effectResult.changeLog = object;\n effectResult.changeLogSalesPerson = salesPerson;\n effectResult.changeLogUser = simplifiedUser;\n effectResult.changeLogSalespersonId = salesPersonSubId || null;\n this.effectResult.set(effectResult);\n this.isReady.set(true);\n });\n }\n },\n { allowSignalWrites: true },\n );\n }\n}\n","\n \n \n
\n \n
\n
\n \n {{ cardInfo.headerText }}\n \n \n

\n {{ cardInfo.effectiveDate | date : dateFormat }}\n

\n
\n
\n \n {{ cardInfo.contentText }}\n \n
\n
\n","import { CommonModule } from '@angular/common';\nimport {\n Component,\n Input,\n WritableSignal,\n signal,\n Signal,\n computed,\n OnInit,\n Output,\n EventEmitter,\n} from '@angular/core';\nimport { TranslateModule } from '@ngx-translate/core';\nimport { ActivityTaskStatus } from '../../../tokens-and-interfaces';\nimport { TranslationModule } from '../../../i18n/translation-module';\nimport { CrmFieldService, StandardIds, ActivityService } from '../../../shared-services';\nimport { ActivityInterface, FieldMaskInterface, ActivityAssociationInterface } from '@vendasta/crm';\nimport { DateFormat } from '@vendasta/galaxy/utility/date-utils';\nimport { User } from '@vendasta/iamv2';\nimport { MatCheckboxModule } from '@angular/material/checkbox';\nimport { MatIconModule } from '@angular/material/icon';\nimport { firstValueFrom } from 'rxjs';\nimport { SnackbarService } from '@vendasta/galaxy/snackbar-service';\nimport { FormControl, ReactiveFormsModule } from '@angular/forms';\nimport { GalaxyFormFieldModule } from '@vendasta/galaxy/form-field';\nimport { MatInputModule } from '@angular/material/input';\nimport { CollapsibleSectionComponent } from '../../collapsible-section/collapsible-section.component';\nimport { ObjectType } from '../../../tokens-and-interfaces';\n\n@Component({\n selector: 'crm-activity-task',\n templateUrl: './task.component.html',\n styleUrls: ['./task.component.scss'],\n providers: [],\n imports: [\n CommonModule,\n TranslateModule,\n TranslationModule,\n MatCheckboxModule,\n ReactiveFormsModule,\n GalaxyFormFieldModule,\n MatInputModule,\n MatIconModule,\n CollapsibleSectionComponent,\n ],\n standalone: true,\n})\nexport class CrmActivityTaskComponent implements OnInit {\n completedTaskControl = new FormControl(false);\n dateFormat = DateFormat.mediumDateShortTime;\n private _activity: WritableSignal = signal({});\n @Input({ required: true }) set activity(activity: ActivityInterface) {\n this._activity.set(activity);\n }\n get activity() {\n return this._activity();\n }\n @Output() activityChange = new EventEmitter();\n\n @Input() users?: User[] | null;\n\n @Input() associatedObject?: { crmObjectId: string; objectType: ObjectType } | null;\n\n private unknownNamePlaceholder = 'CONTACT.ACTIVITIES.UNKNOWN_NAME';\n\n cardInfo: Signal = computed(() => {\n return {\n crmObjectId: this._activity().crmObjectId,\n title: this.getFieldData(this._activity(), StandardIds.ActivityName),\n body: this.getFieldData(this._activity(), StandardIds.ActivityTaskBody),\n status: this.getFieldData(this._activity(), StandardIds.ActivityTaskStatus),\n type: this.getFieldData(this._activity(), StandardIds.ActivityTaskType),\n priority: this.getFieldData(this._activity(), StandardIds.ActivityTaskPriority),\n dueDate:\n this.fieldService.getFieldValueFromCrmObject(this._activity(), StandardIds.ActivityTaskDueDate)?.dateValue ??\n null,\n assignee: this.getAssigneeName(this._activity()),\n associations: this.getAssociations(this._activity()),\n };\n });\n\n ngOnInit(): void {\n const taskIsCompleted =\n this.activity?.fields?.find((field) => field.fieldId === StandardIds.ActivityTaskStatus)?.stringValue ===\n ActivityTaskStatus.Completed;\n this.completedTaskControl.setValue(taskIsCompleted, { emitEvent: false });\n }\n\n private getFieldData(activity: ActivityInterface, fieldId: string): string {\n return this.fieldService.getFieldValueFromCrmObject(activity, fieldId)?.stringValue ?? '';\n }\n\n private getAssigneeName(activity: ActivityInterface): string {\n const ownerId = activity?.ownerId ?? '';\n const user = this.users?.find((user) => user.userId === ownerId);\n const userName = [user?.firstName, user?.lastName]\n .map((name) => name?.trim())\n .filter((name) => name)\n .join(' ');\n return userName || this.unknownNamePlaceholder;\n }\n\n private getTaskCompletionStatus(): string {\n return this.completedTaskControl.value ? ActivityTaskStatus.Completed : ActivityTaskStatus.Open;\n }\n\n private getAssociations(activity: ActivityInterface): ActivityAssociationInterface[] {\n return activity?.associations;\n }\n\n private emitStatusChange(status: string): void {\n const activity = this.activity;\n const field = this.fieldService.getFieldValueFromCrmObject(activity, StandardIds.ActivityTaskStatus);\n if (field) {\n field.stringValue = status;\n } else {\n activity.fields?.push({ fieldId: StandardIds.ActivityTaskStatus, stringValue: status });\n }\n this._activity.set(activity);\n this.activityChange.emit(activity);\n }\n\n async updateTaskCompletionStatus(): Promise {\n const status = this.getTaskCompletionStatus();\n const activity: ActivityInterface = {\n crmObjectId: this.activity.crmObjectId,\n crmObjectSubtype: this.activity.crmObjectSubtype,\n fields: [{ fieldId: StandardIds.ActivityTaskStatus, stringValue: status }],\n };\n\n const mask: FieldMaskInterface = {\n paths: [StandardIds.ActivityTaskStatus],\n };\n try {\n await firstValueFrom(this.activityService.updateActivity(activity, mask));\n this.snack.openSuccessSnack('TASK.STATUS_UPDATE.SUCCESS');\n this.emitStatusChange(status);\n } catch (_) {\n this.snack.openErrorSnack('TASK.STATUS_UPDATE.ERROR');\n }\n }\n\n constructor(\n private readonly fieldService: CrmFieldService,\n private readonly activityService: ActivityService,\n private readonly snack: SnackbarService,\n ) {}\n}\ninterface ActivityCardInformation {\n title: string;\n body: string;\n status: string;\n type: string;\n priority: string;\n dueDate: Date | null;\n assignee: string;\n associations: ActivityAssociationInterface[];\n}\n","
\n \n \n \n {{ cardInfo.title }}\n {{ cardInfo.body }}\n \n \n \n\n
\n \n \n \n \n
\n
\n\n\n
\n
\n {{ label | translate }}\n
\n
\n \n \n {{ value }}\n \n
\n
\n
\n","export * from './activity.interface';\nexport * from './activity-communication.component';\nexport * from './activity-logger.component';\nexport * from './activity-logger.service';\nexport * from './activity-template.component';\nexport * from './activity-template-options.directive';\nexport * from './activity-url-builder';\nexport * from './email.component';\nexport * from './logged-call.component';\nexport * from './logged-communication.component';\nexport * from './logged-email.component';\nexport * from './logged-meeting.component';\nexport * from './logged-note.component';\nexport * from './note.component';\nexport * from './record-change.component';\nexport * from './task.component';\nexport * from './logger';\n","import { DestroyRef, inject, Injectable } from '@angular/core';\nimport { takeUntilDestroyed } from '@angular/core/rxjs-interop';\nimport { TranslateService } from '@ngx-translate/core';\nimport { RxState } from '@rx-angular/state';\nimport {\n ActivityInterface,\n DateDefault,\n FilterGroupInterface,\n FilterGroupOperator,\n FilterInterface,\n FilterOperator,\n ListActivitiesResponseInterface,\n PagedResponseMetadataInterface,\n} from '@vendasta/crm';\nimport { GalaxyFilterInterface } from '@vendasta/galaxy/filter/chips';\nimport { IAMService, User, UserIdentifier } from '@vendasta/iamv2';\nimport { combineLatest, distinctUntilChanged, filter, map, of, ReplaySubject, skipWhile, switchMap, tap } from 'rxjs';\nimport { debounceTime } from 'rxjs/operators';\nimport { ACTIVITIES_TIMELINE_PAGE_SIZE } from '../../../constants';\nimport { ActivityTaskStatus, ObjectType } from '../../../tokens-and-interfaces';\nimport { ObjectAssociationType } from '../../../tokens-and-interfaces';\nimport {\n StandardIds,\n CrmFieldService,\n CrmObjectService,\n ActivityService,\n SystemFieldIds,\n} from '../../../shared-services';\n\nexport interface ActivityExtended extends ActivityInterface {\n ownerUser?: User;\n isLoggedActivity?: boolean;\n}\n\ninterface ActivityExtendedWithEffectiveDate extends ActivityExtended {\n effectiveDate: Date;\n}\n\nexport interface ActivitySectionInterface {\n name: string;\n activities: ActivityExtended[];\n}\n\ninterface ActivitySectionInterfaceWithDate extends ActivitySectionInterface {\n date: Date | null; // date used to bin the section, empty means \"upcoming\" section\n}\n\ninterface ComponentState {\n activitiesLoading: boolean;\n activitiesLoadMore: boolean;\n activitiesChanged: boolean; // used to determine if the content has changed and the scroll position should be restored\n searchFilterInitialized: boolean;\n activitiesPagedResponseMetadata: PagedResponseMetadataInterface | null;\n activities: ActivityInterface[];\n activitySections: ActivitySectionInterface[];\n\n lockedActivityEffectiveDate: Map;\n uniqueUserIds: string[];\n\n uniqueUsers: User[];\n searchTerm: string;\n filters: GalaxyFilterInterface[];\n\n initialized: boolean;\n}\n\nconst OpenOverdueTaskFilters: FilterGroupInterface = {\n operator: FilterGroupOperator.FILTER_GROUP_OPERATOR_AND,\n filters: [\n {\n fieldId: StandardIds.ActivityTaskStatus,\n operator: FilterOperator.FILTER_OPERATOR_IS,\n values: [\n {\n string: ActivityTaskStatus.Open,\n },\n ],\n } as FilterInterface,\n {\n fieldId: StandardIds.ActivityTaskDueDate,\n operator: FilterOperator.FILTER_OPERATOR_IS_BEFORE,\n values: [\n {\n dateDefault: DateDefault.DATE_DEFAULT_TODAY,\n },\n ],\n } as FilterInterface,\n ],\n};\n\n@Injectable()\nexport class ActivitiesTimelineService {\n readonly upcomingSectionName = this.translateService.instant('CONTACT.ACTIVITIES_TIMELINE.SECTIONS.UPCOMING');\n readonly crmObjectId$$ = new ReplaySubject(1);\n readonly objectType$$ = new ReplaySubject(1);\n private destroyRef = inject(DestroyRef);\n\n constructor(\n public readonly state: RxState,\n private readonly activityService: ActivityService,\n private readonly fieldService: CrmFieldService,\n private readonly translateService: TranslateService,\n private readonly iamService: IAMService,\n private readonly crmObjectService: CrmObjectService,\n ) {\n this.state.set({\n activitiesLoading: false,\n activitiesLoadMore: false,\n activitiesChanged: false,\n activitiesPagedResponseMetadata: null,\n activities: [],\n activitySections: [],\n uniqueUserIds: [],\n searchTerm: '',\n filters: [],\n lockedActivityEffectiveDate: new Map(),\n initialized: false,\n });\n this.setupReloadActivities();\n this.setupLoadMore();\n this.setupUniqueUsers();\n }\n\n getActivitySections(activities: ActivityExtended[]): ActivitySectionInterface[] {\n const activitySections: ActivitySectionInterface[] = [];\n\n const activitiesWithEffectiveDate = activities.map((activity) => {\n const atv = this.toActivityWithEffectiveDate(activity);\n if (atv?.crmObjectId) {\n atv.effectiveDate = this.state.get('lockedActivityEffectiveDate').get(atv.crmObjectId) ?? atv.effectiveDate;\n }\n return atv;\n });\n\n const overdueTasks = activitiesWithEffectiveDate\n .filter((activity) => {\n return (\n this.fieldService.getFieldValueFromCrmObject(activity, StandardIds.ActivityTaskStatus)?.stringValue ===\n ActivityTaskStatus.Open && activity.effectiveDate.getTime() < Date.now()\n );\n })\n .sort((a, b) => a.effectiveDate.getTime() - b.effectiveDate.getTime());\n\n // split into upcoming and past activities\n const upcomingActivities = activitiesWithEffectiveDate.filter(\n (activity) => activity.effectiveDate.getTime() > Date.now(),\n );\n\n const overdueTasksAndUpcomingActivities = [...overdueTasks, ...upcomingActivities];\n\n const pastActivities = activitiesWithEffectiveDate.filter(\n (activity) => !overdueTasksAndUpcomingActivities?.find((item) => item.crmObjectId === activity.crmObjectId),\n );\n\n // add upcoming section if there are upcoming activities\n if (overdueTasksAndUpcomingActivities.length > 0) {\n activitySections.push({\n name: this.upcomingSectionName,\n activities: overdueTasksAndUpcomingActivities,\n });\n }\n\n // make a new section for each (month, year) pair\n const pastSectionsMap = new Map();\n for (const activity of pastActivities) {\n const startOfMonth = new Date(activity.effectiveDate.getFullYear(), activity.effectiveDate.getMonth());\n const startOfMonthTime = startOfMonth.getTime();\n if (!pastSectionsMap.has(startOfMonthTime)) {\n pastSectionsMap.set(startOfMonthTime, {\n name: `${startOfMonth.toLocaleString('default', { month: 'long' })} ${startOfMonth.getFullYear()}`,\n activities: [activity],\n date: startOfMonth,\n });\n continue;\n }\n pastSectionsMap.get(startOfMonthTime)?.activities.push(activity);\n }\n\n // map iteration undefined, so convert to descending array\n const pastSections = [...pastSectionsMap.values()].sort((a, b) => {\n if (a.date === null) {\n return -1;\n }\n if (b.date === null) {\n return 1;\n }\n if (a.date === b.date) {\n return 0;\n }\n return b.date.getTime() - a.date.getTime();\n });\n activitySections.push(...pastSections);\n\n return activitySections;\n }\n\n private toActivityWithEffectiveDate(crmActivity: ActivityInterface): ActivityExtendedWithEffectiveDate {\n const effectiveDate: Date | null =\n this.fieldService.getFieldValueFromCrmObject(crmActivity, SystemFieldIds.ActivityEffectiveDate)?.dateValue ??\n null;\n const isLoggedActivity =\n this.fieldService.getFieldValueFromCrmObject(crmActivity, StandardIds.ActivityManuallyLogged)?.booleanValue ??\n false;\n if (effectiveDate === null) {\n throw new Error(`Activity has no effective date, ${crmActivity.crmObjectId}`);\n }\n return {\n ...crmActivity,\n isLoggedActivity: isLoggedActivity,\n effectiveDate: effectiveDate,\n };\n }\n\n initializeState(searchTerm: string, filters: GalaxyFilterInterface[]): void {\n this.state.set({\n searchTerm: searchTerm,\n filters: filters,\n initialized: true,\n });\n }\n setupLoadMore(): void {\n combineLatest([\n this.state.select('initialized'),\n this.state.select('activitiesLoadMore'),\n this.state.select('searchTerm'),\n this.state.select('filters'),\n this.crmObjectId$$.asObservable(),\n this.objectType$$.asObservable(),\n ])\n .pipe(\n takeUntilDestroyed(this.destroyRef),\n skipWhile(([initialized]) => !initialized),\n debounceTime(100),\n filter(([, activitiesLoadMore]) => activitiesLoadMore),\n // save the scroll position because Angular will reset it when the content changes\n tap(() => {\n this.state.set({ activitiesLoading: true });\n }),\n switchMap(([, , searchTerm, filters, crmObjectId, objectType]) => {\n const activitiesPagedResponseMetadata = this.state.get('activitiesPagedResponseMetadata');\n if (activitiesPagedResponseMetadata?.hasMore === false) {\n return of({});\n }\n const crmFilters = this.crmObjectService.convertFilters(filters);\n const activities$ = this.activityService.listActivities({\n crmObjectId: crmObjectId,\n crmObjectType: objectType,\n pagingOptions: {\n pageSize: ACTIVITIES_TIMELINE_PAGE_SIZE,\n cursor: activitiesPagedResponseMetadata?.nextCursor ?? '',\n },\n search: {\n searchTerm: searchTerm,\n },\n filtersV2: this.addPredefinedFilters(crmFilters),\n });\n\n if (activitiesPagedResponseMetadata?.nextCursor || filters.length > 0 || searchTerm.length > 0) {\n return activities$;\n }\n\n const overdueTasks$ = this.activityService.listActivities({\n crmObjectId: crmObjectId,\n crmObjectType: objectType,\n pagingOptions: {\n pageSize: 100,\n cursor: '',\n },\n search: {\n searchTerm: searchTerm,\n },\n filtersV2: OpenOverdueTaskFilters,\n });\n\n return combineLatest([activities$, overdueTasks$]).pipe(\n map(([activities, overdueTasks]) => {\n const response = activities;\n const allActivities = [...(activities?.activities ?? []), ...(overdueTasks?.activities ?? [])];\n response.activities = allActivities;\n return response;\n }),\n );\n }),\n tap((response: ListActivitiesResponseInterface) => {\n if (!response) {\n return;\n }\n\n this.state.set({\n activitiesLoadMore: false,\n activitiesPagedResponseMetadata: {\n nextCursor: response?.pagingMetadata?.nextCursor ?? '',\n hasMore: response?.pagingMetadata?.hasMore ?? false,\n },\n });\n }),\n map((response) => response?.activities ?? []),\n tap((activities) => {\n this.state.set({\n activities: this.filterActivities([...this.state.get('activities'), ...activities]),\n activitiesLoading: false,\n activitiesChanged: true,\n });\n }),\n )\n .subscribe();\n }\n\n setupUniqueUsers(): void {\n this.state.connect(\n 'uniqueUserIds',\n this.state.select('activities').pipe(\n map((activities) => {\n const uniqueUserIds = [...this.state.get('uniqueUserIds')];\n for (const activity of activities) {\n if (activity.ownerId && !uniqueUserIds.includes(activity.ownerId)) {\n uniqueUserIds.push(activity.ownerId);\n }\n }\n return uniqueUserIds;\n }),\n ),\n );\n\n this.state.connect(\n 'uniqueUsers',\n this.state.select('uniqueUserIds').pipe(\n map((uniqueUserIds) => uniqueUserIds.map((userId) => new UserIdentifier({ userId: userId }))),\n switchMap((uniqueUserIdentifiers) => this.iamService.getMultiUsers(uniqueUserIdentifiers)),\n ),\n );\n }\n\n setupReloadActivities(): void {\n combineLatest([this.crmObjectId$$.asObservable(), this.objectType$$.asObservable()])\n .pipe(\n takeUntilDestroyed(this.destroyRef),\n distinctUntilChanged((a, b) => a[0] === b[0] && a[1] === b[1]),\n tap(([crmObjectId, objectType]) => {\n if (crmObjectId && objectType) {\n // triggers initial load of activities\n this.reloadActivities();\n }\n }),\n )\n .subscribe();\n }\n\n loadMoreActivities(): void {\n const activitiesPagedResponseMetadata = this.state.get('activitiesPagedResponseMetadata');\n if (activitiesPagedResponseMetadata?.hasMore === false) {\n return;\n }\n this.state.set({\n activitiesLoadMore: true,\n });\n }\n\n reloadActivities(): void {\n this.state.set({\n activitiesLoading: false,\n activitiesLoadMore: true,\n activitiesChanged: false,\n activitiesPagedResponseMetadata: null,\n activities: [],\n activitySections: [],\n lockedActivityEffectiveDate: new Map(),\n });\n }\n\n filterActivities(activities: ActivityInterface[]): ActivityInterface[] {\n const activitiesWithEffectiveDateMap = new Map();\n\n activities.map((activity) => {\n if (!activity.crmObjectId) {\n throw new Error('activity has no crmObjectId');\n }\n activitiesWithEffectiveDateMap.set(activity.crmObjectId, this.toActivityWithEffectiveDate(activity));\n });\n\n return [...activitiesWithEffectiveDateMap.values()];\n }\n\n lockActivityEffectiveDate(activity: ActivityInterface): void {\n if (activity.crmObjectId) {\n const lockedActivityEffectiveDate = this.state.get('lockedActivityEffectiveDate');\n if (lockedActivityEffectiveDate.get(activity.crmObjectId)) {\n return; // already locked\n }\n let effectiveDate = activity.created ?? new Date();\n try {\n effectiveDate = this.toActivityWithEffectiveDate(activity).effectiveDate;\n } catch (e) {\n // do nothing\n }\n\n lockedActivityEffectiveDate.set(activity.crmObjectId, effectiveDate);\n this.state.set({ lockedActivityEffectiveDate: lockedActivityEffectiveDate });\n }\n }\n\n addPredefinedFilters(filters: FilterGroupInterface | undefined): FilterGroupInterface | undefined {\n const predefFilter: FilterInterface[] = [\n {\n fieldId: 'FieldID-fb7ca0a7-e1a9-43a9-8ead-dd6ea20dda11',\n operator: 4,\n values: [{ string: 'UPDATED' }],\n },\n ];\n\n if (!filters) {\n filters = {\n operator: 1,\n filters: predefFilter,\n };\n } else {\n filters.filters = [...filters.filters, ...predefFilter];\n }\n\n return filters;\n }\n}\n","import { CommonModule } from '@angular/common';\nimport { Component, Input, signal, Signal, WritableSignal, inject } from '@angular/core';\nimport { TranslationModule } from '../../../i18n/translation-module';\nimport { map, switchMap, of, ReplaySubject, combineLatest, shareReplay, Observable } from 'rxjs';\nimport {\n ActivityService,\n CrmFieldService,\n CrmObjectService,\n PlatformExtensionFieldIds,\n StandardExternalIds,\n StandardIds,\n} from '../../../shared-services';\nimport { CrmInjectionToken, ObjectType } from '../../../tokens-and-interfaces';\nimport { PAGE_ROUTES } from '../../../constants';\nimport { SnackbarService } from '@vendasta/galaxy/snackbar-service';\nimport { ActivityInterface } from '@vendasta/crm';\nimport { toObservable, toSignal } from '@angular/core/rxjs-interop';\nimport { filter } from 'rxjs/operators';\nimport { RouterLink } from '@angular/router';\n\n@Component({\n selector: 'crm-association-popover',\n templateUrl: './association-popover.component.html',\n styleUrls: ['./association-popover.component.scss'],\n providers: [],\n imports: [CommonModule, TranslationModule, RouterLink],\n standalone: true,\n})\nexport class CrmActivityAssociationPopoverComponent {\n private _activity: WritableSignal = signal({});\n @Input({ required: true }) set activity(activity: ActivityInterface) {\n this._activity.set(activity);\n }\n get activity() {\n return this._activity();\n }\n\n private readonly objectType$$ = new ReplaySubject(1);\n protected objectType$: Observable = this.objectType$$.asObservable();\n private readonly crmObjectId$$ = new ReplaySubject(1);\n protected crmObjectId$: Observable = this.crmObjectId$$.asObservable();\n\n @Input() set associatedObject(a: { crmObjectId: string; objectType: ObjectType }) {\n this.objectType$$.next(a.objectType);\n this.crmObjectId$$.next(a.crmObjectId);\n }\n protected primaryAccountGroupId$: Observable;\n\n companies: Signal;\n contacts: Signal;\n opportunities: Signal;\n teamMembers: Signal;\n\n routePrefix: Signal;\n\n protected readonly config = inject(CrmInjectionToken);\n protected readonly opportunityService = this.config.services?.opportunityService;\n protected readonly userService = this.config.services?.userService;\n\n constructor(\n private readonly fieldService: CrmFieldService,\n private readonly activityService: ActivityService,\n private readonly snack: SnackbarService,\n private readonly objectService: CrmObjectService,\n ) {\n this.routePrefix = toSignal(this.config.routePrefix$);\n\n this.primaryAccountGroupId$ = combineLatest([this.crmObjectId$, this.objectType$]).pipe(\n switchMap((v: [string, ObjectType]) => {\n const crmObjectId = v[0],\n crmObjectType = v[1];\n return this.objectService.getMultiObject(crmObjectType, [crmObjectId]);\n }),\n map((response) => response?.crmObjects?.[0]),\n map((crmObject) => {\n return (\n this.fieldService.getFieldValueFromCrmObject(crmObject, PlatformExtensionFieldIds.AccountGroupID)\n ?.stringValue ?? null\n );\n }),\n filter(Boolean),\n shareReplay(1),\n );\n\n const companies$ = toObservable(this._activity).pipe(\n switchMap((activity) => {\n const ids = activity?.associations\n ?.filter((a) => a.crmObjectType == 'Company')\n .map((a) => {\n return a.crmObjectId;\n });\n if (ids.length > 0) {\n return this.objectService.getMultiObject('Company', ids);\n } else {\n return of(null);\n }\n }),\n map((response) => {\n return response?.crmObjects.map((o) => {\n return this.newTaskPopoverAssociation(\n this.fieldService.getFieldValueFromCrmObject(o, StandardIds.CompanyName)?.stringValue ?? '-',\n `${PAGE_ROUTES.COMPANY.ROOT}/${PAGE_ROUTES.COMPANY.SUBROUTES.PROFILE}`.replace(\n ':crmObjectId',\n o.crmObjectId || '',\n ),\n );\n });\n }),\n );\n\n this.companies = toSignal(companies$);\n\n const contacts$ = toObservable(this._activity).pipe(\n switchMap((activity) => {\n const ids = activity?.associations\n ?.filter((a) => a.crmObjectType == 'Contact')\n .map((a) => {\n return a.crmObjectId;\n });\n if (ids.length > 0) {\n return this.objectService.getMultiObject('Contact', ids);\n } else {\n return of(null);\n }\n }),\n map((response) => {\n return response?.crmObjects.map((o) => {\n const displayName =\n (this.fieldService.getFieldValueFromCrmObject(o, StandardExternalIds.FirstName)?.stringValue ?? '-') +\n ' ' +\n (this.fieldService.getFieldValueFromCrmObject(o, StandardExternalIds.LastName)?.stringValue ?? ' ');\n return this.newTaskPopoverAssociation(\n displayName,\n `${PAGE_ROUTES.CONTACT.ROOT}/${PAGE_ROUTES.CONTACT.SUBROUTES.PROFILE}`.replace(\n ':crmObjectId',\n o.crmObjectId || '',\n ),\n );\n });\n }),\n );\n\n this.contacts = toSignal(contacts$);\n\n const opportunities$ = combineLatest([toObservable(this._activity), this.primaryAccountGroupId$]).pipe(\n switchMap((v: [ActivityInterface, string]) => {\n const activity = v[0],\n accountGroupId = v[1];\n const ids = activity?.associations\n ?.filter((a) => a.crmObjectType == 'Opportunity')\n .map((a) => {\n return a.crmObjectId;\n });\n if (ids.length > 0) {\n this.opportunityService?.setAccountGroupId(accountGroupId);\n return this.opportunityService?.getMultiOpportunity(ids);\n } else {\n return of(null);\n }\n }),\n map((response) => {\n return response?.map((o) => {\n return this.newTaskPopoverAssociation(o?.name ?? '-', '');\n });\n }),\n );\n\n this.opportunities = toSignal(opportunities$);\n\n const userIds$ = toObservable(this._activity).pipe(\n switchMap((activity: ActivityInterface) => {\n const ids = activity?.associations\n ?.filter((a) => a.crmObjectType == 'User')\n .map((a) => {\n return a.crmObjectId;\n });\n if (ids.length > 0) {\n return this.userService?.getMultiUsers(ids);\n } else {\n return of(null);\n }\n }),\n map((response) => {\n return response?.map((o) => {\n return this.newTaskPopoverAssociation(o?.displayName ?? '-', '');\n });\n }),\n );\n\n this.teamMembers = toSignal(userIds$);\n }\n\n newTaskPopoverAssociation(name: string, link: string): TaskPopoverAssociationType {\n return {\n name: name,\n linkUrl: link,\n };\n }\n}\n\nexport interface TaskPopoverAssociationType {\n name?: string;\n linkUrl?: string;\n}\n","
0\" class=\"association\">\n
{{ 'ACTIVITY.POPOVER.CONTACTS' | translate }}
\n \n
\n
0\" class=\"association\">\n
{{ 'ACTIVITY.POPOVER.COMPANIES' | translate }}
\n \n
\n
0\" class=\"association\">\n
{{ 'ACTIVITY.POPOVER.OPPORTUNITIES' | translate }}
\n
\n {{ opportunity.name }}\n
\n
\n
0\" class=\"association\">\n
{{ 'ACTIVITY.POPOVER.TEAM_MEMBERS' | translate }}
\n
\n {{ member.name }}\n
\n
\n","import { Pipe, PipeTransform } from '@angular/core';\nimport { ActivityInterface } from '@vendasta/crm';\nimport { ObjectAssociationType, ObjectType, ObjectTypes } from '../../../tokens-and-interfaces';\n\ntype Type = ObjectType | ObjectAssociationType;\ninterface Input {\n objectType: Type;\n crmObjectId: string;\n}\ninterface Output {\n objectType: ObjectType;\n crmObjectId: string;\n}\n\n@Pipe({\n name: 'crmTimelineAssociatedObject',\n standalone: true,\n})\nexport class CrmTimelineAssociatedObjectPipe implements PipeTransform {\n transform(activity: ActivityInterface, crmObject?: Input): Output {\n if (crmObject && this.isObjectType(crmObject.objectType)) {\n return {\n objectType: crmObject.objectType,\n crmObjectId: crmObject.crmObjectId,\n };\n }\n\n // Get the first associated Company or Contact\n if (activity?.associations?.length) {\n for (const asc of activity.associations) {\n if (this.isObjectType(asc.crmObjectType)) {\n return {\n objectType: asc.crmObjectType as ObjectType,\n crmObjectId: asc.crmObjectId as string,\n };\n }\n }\n }\n\n return {} as Output;\n }\n\n private isObjectType(objectType?: string): objectType is ObjectType {\n return ObjectTypes.includes(objectType as ObjectType);\n }\n}\n","import { CommonModule } from '@angular/common';\nimport { HttpClient } from '@angular/common/http';\nimport { Component, Input, Signal, WritableSignal, computed, signal } from '@angular/core';\nimport { toObservable, toSignal } from '@angular/core/rxjs-interop';\nimport { MatCardModule } from '@angular/material/card';\nimport { TranslateModule } from '@ngx-translate/core';\nimport { RxState } from '@rx-angular/state';\nimport { ActivityInterface, GetMultiCrmObjectResponseInterface } from '@vendasta/crm';\nimport { GalaxyAvatarModule } from '@vendasta/galaxy/avatar';\nimport { GalaxyPipesModule } from '@vendasta/galaxy/pipes';\nimport { DateFormat } from '@vendasta/galaxy/utility/date-utils';\nimport { Observable, of } from 'rxjs';\nimport { map, switchMap } from 'rxjs/operators';\nimport { AVATAR_WIDTH } from '../../../constants';\nimport { TranslationModule } from '../../../i18n/translation-module';\nimport { CrmObjectService } from '../../../shared-services/crm-services/crm-object-service/crm-object.service';\nimport {\n CrmFieldService,\n StandardExternalIds,\n StandardIds,\n SystemFieldIds,\n} from '../../../shared-services/crm-services/field.service';\nimport { ObjectType } from '../../../tokens-and-interfaces';\nimport { CollapsibleSectionComponent } from '../../collapsible-section/collapsible-section.component';\nimport { CrmUnknownUserAvatarComponent } from '../../unknown-user-avatar/unknown-user-avatar.component';\nimport { ActivityExtended } from '../timeline/timeline.service';\n@Component({\n selector: 'crm-activity-call',\n templateUrl: './call.component.html',\n styleUrls: ['./call.component.scss'],\n providers: [RxState],\n imports: [\n CommonModule,\n TranslateModule,\n TranslationModule,\n CollapsibleSectionComponent,\n MatCardModule,\n GalaxyAvatarModule,\n CrmUnknownUserAvatarComponent,\n GalaxyPipesModule,\n ],\n standalone: true,\n})\nexport class CrmActivityCallComponent {\n dateFormat = DateFormat.mediumDateShortTime;\n callRecordingSource$: Observable;\n private _activity: WritableSignal = signal({});\n private _associatedObjectId: WritableSignal = signal('');\n private _objectType: WritableSignal = signal('Contact');\n\n @Input({ required: true }) set activity(activity: ActivityExtended) {\n this._activity.set(activity);\n }\n get activity() {\n return this._activity();\n }\n @Input() set objectType(objectType: ObjectType) {\n this._objectType.set(objectType);\n }\n get objectType() {\n return this._objectType();\n }\n\n @Input() set associatedObjectId(crmObjectId: string) {\n this._associatedObjectId.set(crmObjectId);\n }\n\n get associatedObjectId() {\n return this._associatedObjectId();\n }\n\n private _showAvatar = true;\n @Input() set showAvatar(showAvatar: boolean) {\n this._showAvatar = showAvatar;\n }\n\n get showAvatar() {\n return this._showAvatar;\n }\n\n associatedCrmObject$ = toObservable(this._activity).pipe(switchMap(() => this.getAssociatedObjectName()));\n associatedCrmObject = toSignal(this.associatedCrmObject$);\n\n getAssociatedObjectName(): Observable {\n if (this.objectType === 'Contact') {\n return this.crmObjectService.getMultiObject('Contact', [this.associatedObjectId]).pipe(\n map((data: GetMultiCrmObjectResponseInterface) => {\n const crmObject = data?.crmObjects[0];\n const firstName =\n this.fieldService.getFieldValueFromCrmObject(crmObject, StandardExternalIds.FirstName)?.stringValue || '';\n const lastName =\n this.fieldService.getFieldValueFromCrmObject(crmObject, StandardExternalIds.LastName)?.stringValue || '';\n return `${firstName} ${lastName}` ?? '';\n }),\n );\n }\n if (this.objectType === 'Company') {\n return this.crmObjectService.getMultiObject('Company', [this.associatedObjectId]).pipe(\n map((data: GetMultiCrmObjectResponseInterface) => {\n const crmObject = data?.crmObjects[0];\n const companyName =\n this.fieldService.getFieldValueFromCrmObject(crmObject, StandardIds.CompanyName)?.stringValue || '';\n return `${companyName}` ?? '';\n }),\n );\n }\n return of('');\n }\n\n headerText = computed(() => {\n const { direction } = this.cardInfo();\n let directionText = '';\n if (direction === 'Inbound') {\n directionText = `Call from ${this.ownerName()}`;\n } else if (direction === 'Outbound') {\n directionText = `Call to ${this.ownerName()}`;\n }\n return directionText;\n });\n\n cardTitle = computed(() => {\n const { status, duration } = this.cardInfo();\n const minutes = Math.floor(duration / 60000);\n const seconds = ((duration % 60000) / 1000).toFixed(0);\n if (status === 'Connected') {\n return `Call for ${minutes} minutes, ${seconds} seconds`;\n }\n return `Call - ${status}`;\n });\n\n ownerName = computed(() => {\n const owner = this.activity?.ownerUser;\n if (owner) {\n return `${owner?.firstName || ''} ${owner?.lastName || ''}`.trim();\n }\n return 'Unknown';\n });\n\n cardInfo: Signal = computed(() => {\n const cardInfo: any = {\n status: this.getStringFieldData(this.activity, StandardIds.ActivityCallStatus),\n direction: this.getStringFieldData(this.activity, StandardIds.ActivityCallDirection),\n date:\n this.fieldService.getFieldValueFromCrmObject(this._activity(), SystemFieldIds.ActivityEffectiveDate)\n ?.dateValue ?? null,\n to: this.getStringFieldData(this._activity(), StandardIds.ActivityCallToNumber),\n from: this.getStringFieldData(this._activity(), StandardIds.ActivityCallFromNumber),\n duration:\n this.fieldService.getFieldValueFromCrmObject(this._activity(), StandardIds.ActivityCallDuration)\n ?.integerValue ?? 0,\n };\n const callRecordingUrl = this.getStringFieldData(this._activity(), StandardIds.ActivityCallRecordingUrl);\n if (callRecordingUrl) {\n cardInfo.callRecordingUrl = callRecordingUrl;\n }\n return cardInfo;\n });\n\n private getStringFieldData(activity: ActivityInterface, fieldId: string): string {\n return this.fieldService.getFieldValueFromCrmObject(activity, fieldId)?.stringValue ?? '';\n }\n\n constructor(\n private readonly fieldService: CrmFieldService,\n private readonly http: HttpClient,\n private readonly crmObjectService: CrmObjectService,\n ) {\n this.callRecordingSource$ = toObservable(this.cardInfo).pipe(\n switchMap((cardInfo) => {\n if (!cardInfo.callRecordingUrl) {\n return of(null);\n }\n return this.http.get(cardInfo.callRecordingUrl, {\n responseType: 'text',\n withCredentials: true,\n });\n }),\n );\n }\n\n protected readonly AVATAR_WIDTH = AVATAR_WIDTH;\n}\n\ninterface ActivityCardInformation {\n status: string;\n direction: string;\n callRecordingUrl?: string;\n date: Date;\n to: string;\n from: string;\n duration: number;\n}\n","
\n \n \n
\n \n
\n \n {{ headerText }}\n \n {{ 'ACTIVITY.UNKNOWN_TITLE' | translate }}\n \n \n \n

\n {{ cardInfo.date | date: dateFormat }}\n

\n
\n
\n \n \n \n {{ cardTitle }}\n \n \n
\n \n
{{ ownerName }}
\n \n
{{ cardInfo.from }}
\n
\n
\n to {{ associatedObject }}\n ({{ cardInfo.to }})\n
\n
\n \n
\n {{ associatedObject }}\n ({{ cardInfo.from }})\n
\n
\n
\n \n \n \n
\n
\n
\n
\n
\n","import * as i0 from '@angular/core';\nimport { Injectable } from '@angular/core';\nimport * as i1 from '@angular/common/http';\nimport { HttpHeaders } from '@angular/common/http';\nimport { map, take, mapTo } from 'rxjs/operators';\n\n// *********************************\n// Code generated by sdkgen\n// DO NOT EDIT!.\n//\n// Enums.\n// *********************************\nvar Currency = /*#__PURE__*/function (Currency) {\n Currency[Currency[\"USD\"] = 0] = \"USD\";\n Currency[Currency[\"CAD\"] = 1] = \"CAD\";\n Currency[Currency[\"EUR\"] = 2] = \"EUR\";\n Currency[Currency[\"AUD\"] = 3] = \"AUD\";\n Currency[Currency[\"GBP\"] = 4] = \"GBP\";\n Currency[Currency[\"NZD\"] = 5] = \"NZD\";\n Currency[Currency[\"ZAR\"] = 6] = \"ZAR\";\n return Currency;\n}(Currency || {});\nvar DurationPeriod = /*#__PURE__*/function (DurationPeriod) {\n DurationPeriod[DurationPeriod[\"UNSPECIFIED\"] = 0] = \"UNSPECIFIED\";\n DurationPeriod[DurationPeriod[\"MONTH\"] = 1] = \"MONTH\";\n DurationPeriod[DurationPeriod[\"YEAR\"] = 2] = \"YEAR\";\n DurationPeriod[DurationPeriod[\"DAY\"] = 3] = \"DAY\";\n DurationPeriod[DurationPeriod[\"WEEK\"] = 4] = \"WEEK\";\n return DurationPeriod;\n}(DurationPeriod || {});\nvar RevenuePeriod = /*#__PURE__*/function (RevenuePeriod) {\n RevenuePeriod[RevenuePeriod[\"ONETIME\"] = 0] = \"ONETIME\";\n RevenuePeriod[RevenuePeriod[\"DAILY\"] = 1] = \"DAILY\";\n RevenuePeriod[RevenuePeriod[\"WEEKLY\"] = 2] = \"WEEKLY\";\n RevenuePeriod[RevenuePeriod[\"BIWEEKLY\"] = 3] = \"BIWEEKLY\";\n RevenuePeriod[RevenuePeriod[\"MONTHLY\"] = 4] = \"MONTHLY\";\n RevenuePeriod[RevenuePeriod[\"YEARLY\"] = 5] = \"YEARLY\";\n return RevenuePeriod;\n}(RevenuePeriod || {});\n// *********************************\n// Code generated by sdkgen\n// DO NOT EDIT!.\n//\n// Enums.\n// *********************************\nvar MEDDICSection = /*#__PURE__*/function (MEDDICSection) {\n MEDDICSection[MEDDICSection[\"MEDDIC_SECTION_UNDEFINED\"] = 0] = \"MEDDIC_SECTION_UNDEFINED\";\n MEDDICSection[MEDDICSection[\"MEDDIC_SECTION_METRICS\"] = 1] = \"MEDDIC_SECTION_METRICS\";\n MEDDICSection[MEDDICSection[\"MEDDIC_SECTION_ECONOMIC_BUYER\"] = 2] = \"MEDDIC_SECTION_ECONOMIC_BUYER\";\n MEDDICSection[MEDDICSection[\"MEDDIC_SECTION_DECISION_CRITERIA\"] = 3] = \"MEDDIC_SECTION_DECISION_CRITERIA\";\n MEDDICSection[MEDDICSection[\"MEDDIC_SECTION_DECISION_PROCESS\"] = 4] = \"MEDDIC_SECTION_DECISION_PROCESS\";\n MEDDICSection[MEDDICSection[\"MEDDIC_SECTION_IDENTIFY_PAIN\"] = 5] = \"MEDDIC_SECTION_IDENTIFY_PAIN\";\n MEDDICSection[MEDDICSection[\"MEDDIC_SECTION_CHAMPION_SCORE\"] = 6] = \"MEDDIC_SECTION_CHAMPION_SCORE\";\n MEDDICSection[MEDDICSection[\"MEDDIC_SECTION_COMPETITION\"] = 7] = \"MEDDIC_SECTION_COMPETITION\";\n MEDDICSection[MEDDICSection[\"MEDDIC_SECTION_PAPER_PROCESS\"] = 8] = \"MEDDIC_SECTION_PAPER_PROCESS\";\n return MEDDICSection;\n}(MEDDICSection || {});\n// *********************************\n// Code generated by sdkgen\n// DO NOT EDIT!.\n//\n// Enums.\n// *********************************\nvar ClientOrigin = /*#__PURE__*/function (ClientOrigin) {\n ClientOrigin[ClientOrigin[\"CLIENT_ORIGIN_UNSET\"] = 0] = \"CLIENT_ORIGIN_UNSET\";\n ClientOrigin[ClientOrigin[\"CLIENT_ORIGIN_SALES_CENTER\"] = 1] = \"CLIENT_ORIGIN_SALES_CENTER\";\n ClientOrigin[ClientOrigin[\"CLIENT_ORIGIN_PARTNER_CENTER\"] = 2] = \"CLIENT_ORIGIN_PARTNER_CENTER\";\n return ClientOrigin;\n}(ClientOrigin || {});\nvar ClosedLostReasonOption = /*#__PURE__*/function (ClosedLostReasonOption) {\n ClosedLostReasonOption[ClosedLostReasonOption[\"PRICE\"] = 0] = \"PRICE\";\n ClosedLostReasonOption[ClosedLostReasonOption[\"NO_BUDGET\"] = 1] = \"NO_BUDGET\";\n ClosedLostReasonOption[ClosedLostReasonOption[\"LOST_TO_COMPETITOR\"] = 2] = \"LOST_TO_COMPETITOR\";\n ClosedLostReasonOption[ClosedLostReasonOption[\"NOT_READY\"] = 3] = \"NOT_READY\";\n ClosedLostReasonOption[ClosedLostReasonOption[\"OTHER\"] = 4] = \"OTHER\";\n return ClosedLostReasonOption;\n}(ClosedLostReasonOption || {});\nvar OpportunityRevenuePeriod = /*#__PURE__*/function (OpportunityRevenuePeriod) {\n OpportunityRevenuePeriod[OpportunityRevenuePeriod[\"UNSPECIFIED\"] = 0] = \"UNSPECIFIED\";\n OpportunityRevenuePeriod[OpportunityRevenuePeriod[\"SELECTED_MONTH\"] = 1] = \"SELECTED_MONTH\";\n return OpportunityRevenuePeriod;\n}(OpportunityRevenuePeriod || {});\nvar SortDirection = /*#__PURE__*/function (SortDirection) {\n SortDirection[SortDirection[\"ASCENDING\"] = 0] = \"ASCENDING\";\n SortDirection[SortDirection[\"DESCENDING\"] = 1] = \"DESCENDING\";\n return SortDirection;\n}(SortDirection || {});\nvar ListOpportunitiesRequestSortField = /*#__PURE__*/function (ListOpportunitiesRequestSortField) {\n ListOpportunitiesRequestSortField[ListOpportunitiesRequestSortField[\"PROJECTED_FIRST_YEAR_VALUE\"] = 0] = \"PROJECTED_FIRST_YEAR_VALUE\";\n ListOpportunitiesRequestSortField[ListOpportunitiesRequestSortField[\"PROBABILITY\"] = 1] = \"PROBABILITY\";\n ListOpportunitiesRequestSortField[ListOpportunitiesRequestSortField[\"CREATED\"] = 2] = \"CREATED\";\n ListOpportunitiesRequestSortField[ListOpportunitiesRequestSortField[\"EXPECTED_CLOSE\"] = 3] = \"EXPECTED_CLOSE\";\n ListOpportunitiesRequestSortField[ListOpportunitiesRequestSortField[\"NAME\"] = 4] = \"NAME\";\n ListOpportunitiesRequestSortField[ListOpportunitiesRequestSortField[\"LAST_ACTIVITY\"] = 5] = \"LAST_ACTIVITY\";\n ListOpportunitiesRequestSortField[ListOpportunitiesRequestSortField[\"LAST_CONNECTED\"] = 6] = \"LAST_CONNECTED\";\n ListOpportunitiesRequestSortField[ListOpportunitiesRequestSortField[\"ACTUAL_CLOSE\"] = 7] = \"ACTUAL_CLOSE\";\n ListOpportunitiesRequestSortField[ListOpportunitiesRequestSortField[\"PIPELINE_STAGE\"] = 8] = \"PIPELINE_STAGE\";\n ListOpportunitiesRequestSortField[ListOpportunitiesRequestSortField[\"MEDDIC\"] = 9] = \"MEDDIC\";\n ListOpportunitiesRequestSortField[ListOpportunitiesRequestSortField[\"ASSIGNED_DATE\"] = 10] = \"ASSIGNED_DATE\";\n return ListOpportunitiesRequestSortField;\n}(ListOpportunitiesRequestSortField || {});\n// *********************************\n// Code generated by sdkgen\n// DO NOT EDIT!.\n//\n// Enums.\n// *********************************\nvar GoalType = /*#__PURE__*/function (GoalType) {\n GoalType[GoalType[\"GOAL_TYPE_UNSPECIFIED\"] = 0] = \"GOAL_TYPE_UNSPECIFIED\";\n GoalType[GoalType[\"REVENUE\"] = 1] = \"REVENUE\";\n GoalType[GoalType[\"NEW_REVENUE\"] = 2] = \"NEW_REVENUE\";\n GoalType[GoalType[\"EXPANSION_REVENUE\"] = 3] = \"EXPANSION_REVENUE\";\n GoalType[GoalType[\"EMAIL\"] = 4] = \"EMAIL\";\n GoalType[GoalType[\"CALL\"] = 5] = \"CALL\";\n GoalType[GoalType[\"MEETING\"] = 6] = \"MEETING\";\n GoalType[GoalType[\"OPPORTUNITY\"] = 7] = \"OPPORTUNITY\";\n return GoalType;\n}(GoalType || {});\n// *********************************\n// Code generated by sdkgen\n// DO NOT EDIT!.\n//\n// Enums.\n// *********************************\nvar ListGoalsRequestSortDirection = /*#__PURE__*/function (ListGoalsRequestSortDirection) {\n ListGoalsRequestSortDirection[ListGoalsRequestSortDirection[\"ASCENDING\"] = 0] = \"ASCENDING\";\n ListGoalsRequestSortDirection[ListGoalsRequestSortDirection[\"DESCENDING\"] = 1] = \"DESCENDING\";\n return ListGoalsRequestSortDirection;\n}(ListGoalsRequestSortDirection || {});\nvar ListGoalsRequestSortField = /*#__PURE__*/function (ListGoalsRequestSortField) {\n ListGoalsRequestSortField[ListGoalsRequestSortField[\"SORT_FIELD_UNSET\"] = 0] = \"SORT_FIELD_UNSET\";\n ListGoalsRequestSortField[ListGoalsRequestSortField[\"SORT_FIELD_CREATED\"] = 1] = \"SORT_FIELD_CREATED\";\n return ListGoalsRequestSortField;\n}(ListGoalsRequestSortField || {});\n// *********************************\n// Code generated by sdkgen\n// DO NOT EDIT!.\n//\n// Enums Index.\n// *********************************\n\nfunction enumStringToValue$8(enumRef, value) {\n if (typeof value === 'number') {\n return value;\n }\n return enumRef[value];\n}\nclass LineItemAppKey {\n static fromProto(proto) {\n let m = new LineItemAppKey();\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.appId !== 'undefined') {\n toReturn['appId'] = this.appId;\n }\n if (typeof this.editionId !== 'undefined') {\n toReturn['editionId'] = this.editionId;\n }\n if (typeof this.packageId !== 'undefined') {\n toReturn['packageId'] = this.packageId;\n }\n if (typeof this.packageInstanceId !== 'undefined') {\n toReturn['packageInstanceId'] = this.packageInstanceId;\n }\n return toReturn;\n }\n}\nclass BillingPeriod {\n static fromProto(proto) {\n let m = new BillingPeriod();\n m = Object.assign(m, proto);\n if (proto.startDate) {\n m.startDate = new Date(proto.startDate);\n }\n if (proto.endDate) {\n m.endDate = new Date(proto.endDate);\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.startDate !== 'undefined' && this.startDate !== null) {\n toReturn['startDate'] = 'toApiJson' in this.startDate ? this.startDate.toApiJson() : this.startDate;\n }\n if (typeof this.endDate !== 'undefined' && this.endDate !== null) {\n toReturn['endDate'] = 'toApiJson' in this.endDate ? this.endDate.toApiJson() : this.endDate;\n }\n return toReturn;\n }\n}\nclass Cost {\n static fromProto(proto) {\n let m = new Cost();\n m = Object.assign(m, proto);\n if (proto.customPrice) {\n m.customPrice = parseInt(proto.customPrice, 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.customPrice !== 'undefined') {\n toReturn['customPrice'] = this.customPrice;\n }\n return toReturn;\n }\n}\nclass CustomPriceMapping {\n static fromProto(proto) {\n let m = new CustomPriceMapping();\n m = Object.assign(m, proto);\n if (proto.customPrice) {\n m.customPrice = parseInt(proto.customPrice, 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.productId !== 'undefined') {\n toReturn['productId'] = this.productId;\n }\n if (typeof this.customPrice !== 'undefined') {\n toReturn['customPrice'] = this.customPrice;\n }\n return toReturn;\n }\n}\nclass Duration {\n static fromProto(proto) {\n let m = new Duration();\n m = Object.assign(m, proto);\n if (proto.value) {\n m.value = parseInt(proto.value, 10);\n }\n if (proto.duration) {\n m.duration = enumStringToValue$8(DurationPeriod, proto.duration);\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.value !== 'undefined') {\n toReturn['value'] = this.value;\n }\n if (typeof this.duration !== 'undefined') {\n toReturn['duration'] = this.duration;\n }\n return toReturn;\n }\n}\nclass LineItem {\n static fromProto(proto) {\n let m = new LineItem();\n m = Object.assign(m, proto);\n if (proto.appKey) {\n m.appKey = LineItemAppKey.fromProto(proto.appKey);\n }\n if (proto.currency) {\n m.currency = enumStringToValue$8(Currency, proto.currency);\n }\n if (proto.initialRevenue) {\n m.initialRevenue = Revenue.fromProto(proto.initialRevenue);\n }\n if (proto.currentRevenue) {\n m.currentRevenue = Revenue.fromProto(proto.currentRevenue);\n }\n if (proto.quantity) {\n m.quantity = parseInt(proto.quantity, 10);\n }\n if (proto.cost) {\n m.cost = Cost.fromProto(proto.cost);\n }\n if (proto.customPrices) {\n m.customPrices = proto.customPrices.map(CustomPriceMapping.fromProto);\n }\n if (proto.billingPeriod) {\n m.billingPeriod = BillingPeriod.fromProto(proto.billingPeriod);\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.appKey !== 'undefined' && this.appKey !== null) {\n toReturn['appKey'] = 'toApiJson' in this.appKey ? this.appKey.toApiJson() : this.appKey;\n }\n if (typeof this.packageId !== 'undefined') {\n toReturn['packageId'] = this.packageId;\n }\n if (typeof this.currency !== 'undefined') {\n toReturn['currency'] = this.currency;\n }\n if (typeof this.initialRevenue !== 'undefined' && this.initialRevenue !== null) {\n toReturn['initialRevenue'] = 'toApiJson' in this.initialRevenue ? this.initialRevenue.toApiJson() : this.initialRevenue;\n }\n if (typeof this.currentRevenue !== 'undefined' && this.currentRevenue !== null) {\n toReturn['currentRevenue'] = 'toApiJson' in this.currentRevenue ? this.currentRevenue.toApiJson() : this.currentRevenue;\n }\n if (typeof this.quantity !== 'undefined') {\n toReturn['quantity'] = this.quantity;\n }\n if (typeof this.isTrial !== 'undefined') {\n toReturn['isTrial'] = this.isTrial;\n }\n if (typeof this.currencyCode !== 'undefined') {\n toReturn['currencyCode'] = this.currencyCode;\n }\n if (typeof this.cost !== 'undefined' && this.cost !== null) {\n toReturn['cost'] = 'toApiJson' in this.cost ? this.cost.toApiJson() : this.cost;\n }\n if (typeof this.customPrices !== 'undefined' && this.customPrices !== null) {\n toReturn['customPrices'] = 'toApiJson' in this.customPrices ? this.customPrices.toApiJson() : this.customPrices;\n }\n if (typeof this.billingPeriod !== 'undefined' && this.billingPeriod !== null) {\n toReturn['billingPeriod'] = 'toApiJson' in this.billingPeriod ? this.billingPeriod.toApiJson() : this.billingPeriod;\n }\n return toReturn;\n }\n}\nclass Revenue {\n static fromProto(proto) {\n let m = new Revenue();\n m = Object.assign(m, proto);\n if (proto.revenueComponents) {\n m.revenueComponents = proto.revenueComponents.map(RevenueComponent.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.revenueComponents !== 'undefined' && this.revenueComponents !== null) {\n toReturn['revenueComponents'] = 'toApiJson' in this.revenueComponents ? this.revenueComponents.toApiJson() : this.revenueComponents;\n }\n return toReturn;\n }\n}\nclass RevenueComponent {\n static fromProto(proto) {\n let m = new RevenueComponent();\n m = Object.assign(m, proto);\n if (proto.value) {\n m.value = parseInt(proto.value, 10);\n }\n if (proto.period) {\n m.period = enumStringToValue$8(RevenuePeriod, proto.period);\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.value !== 'undefined') {\n toReturn['value'] = this.value;\n }\n if (typeof this.period !== 'undefined') {\n toReturn['period'] = this.period;\n }\n if (typeof this.isStartingRevenue !== 'undefined') {\n toReturn['isStartingRevenue'] = this.isStartingRevenue;\n }\n return toReturn;\n }\n}\nfunction enumStringToValue$7(enumRef, value) {\n if (typeof value === 'number') {\n return value;\n }\n return enumRef[value];\n}\nclass MEDDICScores {\n static fromProto(proto) {\n let m = new MEDDICScores();\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.metric !== 'undefined') {\n toReturn['metric'] = this.metric;\n }\n if (typeof this.economicBuyer !== 'undefined') {\n toReturn['economicBuyer'] = this.economicBuyer;\n }\n if (typeof this.decisionCriteria !== 'undefined') {\n toReturn['decisionCriteria'] = this.decisionCriteria;\n }\n if (typeof this.decisionProcess !== 'undefined') {\n toReturn['decisionProcess'] = this.decisionProcess;\n }\n if (typeof this.identifyPain !== 'undefined') {\n toReturn['identifyPain'] = this.identifyPain;\n }\n if (typeof this.champion !== 'undefined') {\n toReturn['champion'] = this.champion;\n }\n if (typeof this.competition !== 'undefined') {\n toReturn['competition'] = this.competition;\n }\n if (typeof this.paperProcess !== 'undefined') {\n toReturn['paperProcess'] = this.paperProcess;\n }\n return toReturn;\n }\n}\nclass ScoringScore {\n static fromProto(proto) {\n let m = new ScoringScore();\n m = Object.assign(m, proto);\n if (proto.section) {\n m.section = enumStringToValue$7(MEDDICSection, proto.section);\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.sectionId !== 'undefined') {\n toReturn['sectionId'] = this.sectionId;\n }\n if (typeof this.scoreValue !== 'undefined') {\n toReturn['scoreValue'] = this.scoreValue;\n }\n if (typeof this.notes !== 'undefined') {\n toReturn['notes'] = this.notes;\n }\n if (typeof this.section !== 'undefined') {\n toReturn['section'] = this.section;\n }\n return toReturn;\n }\n}\nclass Scoring {\n static fromProto(proto) {\n let m = new Scoring();\n m = Object.assign(m, proto);\n if (proto.scores) {\n m.scores = proto.scores.map(ScoringScore.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.scores !== 'undefined' && this.scores !== null) {\n toReturn['scores'] = 'toApiJson' in this.scores ? this.scores.toApiJson() : this.scores;\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 Forecasting {\n static fromProto(proto) {\n let m = new Forecasting();\n m = Object.assign(m, proto);\n if (proto.revenueInMonth) {\n m.revenueInMonth = RevenueInMonth.fromProto(proto.revenueInMonth);\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.revenueInMonth !== 'undefined' && this.revenueInMonth !== null) {\n toReturn['revenueInMonth'] = 'toApiJson' in this.revenueInMonth ? this.revenueInMonth.toApiJson() : this.revenueInMonth;\n }\n return toReturn;\n }\n}\nclass RevenueInMonth {\n static fromProto(proto) {\n let m = new RevenueInMonth();\n m = Object.assign(m, proto);\n if (proto.initialRevenue) {\n m.initialRevenue = parseInt(proto.initialRevenue, 10);\n }\n if (proto.recurringRevenue) {\n m.recurringRevenue = parseInt(proto.recurringRevenue, 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.initialRevenue !== 'undefined') {\n toReturn['initialRevenue'] = this.initialRevenue;\n }\n if (typeof this.recurringRevenue !== 'undefined') {\n toReturn['recurringRevenue'] = this.recurringRevenue;\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 Attachment {\n static fromProto(proto) {\n let m = new Attachment();\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.attachmentId !== 'undefined') {\n toReturn['attachmentId'] = this.attachmentId;\n }\n if (typeof this.name !== 'undefined') {\n toReturn['name'] = this.name;\n }\n if (typeof this.url !== 'undefined') {\n toReturn['url'] = this.url;\n }\n if (typeof this.created !== 'undefined' && this.created !== null) {\n toReturn['created'] = 'toApiJson' in this.created ? this.created.toApiJson() : this.created;\n }\n return toReturn;\n }\n}\nclass CSVExports {\n static fromProto(proto) {\n let m = new CSVExports();\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.opportunities !== 'undefined') {\n toReturn['opportunities'] = this.opportunities;\n }\n if (typeof this.opportunityHistory !== 'undefined') {\n toReturn['opportunityHistory'] = this.opportunityHistory;\n }\n return toReturn;\n }\n}\nclass CSVFormatOptions {\n static fromProto(proto) {\n let m = new CSVFormatOptions();\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.currencyCode !== 'undefined') {\n toReturn['currencyCode'] = this.currencyCode;\n }\n return toReturn;\n }\n}\nclass ClosedLostReason {\n static fromProto(proto) {\n let m = new ClosedLostReason();\n m = Object.assign(m, proto);\n if (proto.value) {\n m.value = enumStringToValue$5(ClosedLostReasonOption, 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.value !== 'undefined') {\n toReturn['value'] = this.value;\n }\n return toReturn;\n }\n}\nclass CurrentOpportunityPoint {\n static fromProto(proto) {\n let m = new CurrentOpportunityPoint();\n m = Object.assign(m, proto);\n if (proto.day) {\n m.day = new Date(proto.day);\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.day !== 'undefined' && this.day !== null) {\n toReturn['day'] = 'toApiJson' in this.day ? this.day.toApiJson() : this.day;\n }\n if (typeof this.openOpportunities !== 'undefined') {\n toReturn['openOpportunities'] = this.openOpportunities;\n }\n if (typeof this.partnerId !== 'undefined') {\n toReturn['partnerId'] = this.partnerId;\n }\n if (typeof this.salesPersonId !== 'undefined') {\n toReturn['salesPersonId'] = this.salesPersonId;\n }\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 ListOpportunitiesRequestFilters {\n static fromProto(proto) {\n let m = new ListOpportunitiesRequestFilters();\n m = Object.assign(m, proto);\n if (proto.createdDateFilter) {\n m.createdDateFilter = DateRangeFilter.fromProto(proto.createdDateFilter);\n }\n if (proto.expectedCloseDateFilter) {\n m.expectedCloseDateFilter = DateRangeFilter.fromProto(proto.expectedCloseDateFilter);\n }\n if (proto.probabilityRangeFilter) {\n m.probabilityRangeFilter = ProbabilityRangeFilter.fromProto(proto.probabilityRangeFilter);\n }\n if (proto.actualCloseDateFilter) {\n m.actualCloseDateFilter = DateRangeFilter.fromProto(proto.actualCloseDateFilter);\n }\n if (proto.revenuePeriodFilter) {\n m.revenuePeriodFilter = RevenuePeriodFilter.fromProto(proto.revenuePeriodFilter);\n }\n if (proto.assignedDate) {\n m.assignedDate = DateRangeFilter.fromProto(proto.assignedDate);\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.salesPersonIds !== 'undefined') {\n toReturn['salesPersonIds'] = this.salesPersonIds;\n }\n if (typeof this.pipelineStages !== 'undefined') {\n toReturn['pipelineStages'] = this.pipelineStages;\n }\n if (typeof this.createdDateFilter !== 'undefined' && this.createdDateFilter !== null) {\n toReturn['createdDateFilter'] = 'toApiJson' in this.createdDateFilter ? this.createdDateFilter.toApiJson() : this.createdDateFilter;\n }\n if (typeof this.expectedCloseDateFilter !== 'undefined' && this.expectedCloseDateFilter !== null) {\n toReturn['expectedCloseDateFilter'] = 'toApiJson' in this.expectedCloseDateFilter ? this.expectedCloseDateFilter.toApiJson() : this.expectedCloseDateFilter;\n }\n if (typeof this.probabilityRangeFilter !== 'undefined' && this.probabilityRangeFilter !== null) {\n toReturn['probabilityRangeFilter'] = 'toApiJson' in this.probabilityRangeFilter ? this.probabilityRangeFilter.toApiJson() : this.probabilityRangeFilter;\n }\n if (typeof this.packageIds !== 'undefined') {\n toReturn['packageIds'] = this.packageIds;\n }\n if (typeof this.actualCloseDateFilter !== 'undefined' && this.actualCloseDateFilter !== null) {\n toReturn['actualCloseDateFilter'] = 'toApiJson' in this.actualCloseDateFilter ? this.actualCloseDateFilter.toApiJson() : this.actualCloseDateFilter;\n }\n if (typeof this.tags !== 'undefined') {\n toReturn['tags'] = this.tags;\n }\n if (typeof this.pipelineId !== 'undefined') {\n toReturn['pipelineId'] = this.pipelineId;\n }\n if (typeof this.accountGroupIdsForTag !== 'undefined') {\n toReturn['accountGroupIdsForTag'] = this.accountGroupIdsForTag;\n }\n if (typeof this.lineItemProductIds !== 'undefined') {\n toReturn['lineItemProductIds'] = this.lineItemProductIds;\n }\n if (typeof this.revenuePeriodFilter !== 'undefined' && this.revenuePeriodFilter !== null) {\n toReturn['revenuePeriodFilter'] = 'toApiJson' in this.revenuePeriodFilter ? this.revenuePeriodFilter.toApiJson() : this.revenuePeriodFilter;\n }\n if (typeof this.pipelineIds !== 'undefined') {\n toReturn['pipelineIds'] = this.pipelineIds;\n }\n if (typeof this.assignedDate !== 'undefined' && this.assignedDate !== null) {\n toReturn['assignedDate'] = 'toApiJson' in this.assignedDate ? this.assignedDate.toApiJson() : this.assignedDate;\n }\n if (typeof this.opportunityTypes !== 'undefined') {\n toReturn['opportunityTypes'] = this.opportunityTypes;\n }\n return toReturn;\n }\n}\nclass InitiateOpportunityExportRequest {\n static fromProto(proto) {\n let m = new InitiateOpportunityExportRequest();\n m = Object.assign(m, proto);\n if (proto.filters) {\n m.filters = ListOpportunitiesRequestFilters.fromProto(proto.filters);\n }\n if (proto.sortOption) {\n m.sortOption = ListOpportunitiesRequestSortOption.fromProto(proto.sortOption);\n }\n if (proto.csvFormatOptions) {\n m.csvFormatOptions = CSVFormatOptions.fromProto(proto.csvFormatOptions);\n }\n if (proto.csvExports) {\n m.csvExports = CSVExports.fromProto(proto.csvExports);\n }\n if (proto.clientOrigin) {\n m.clientOrigin = enumStringToValue$5(ClientOrigin, proto.clientOrigin);\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.filters !== 'undefined' && this.filters !== null) {\n toReturn['filters'] = 'toApiJson' in this.filters ? this.filters.toApiJson() : this.filters;\n }\n if (typeof this.sortOption !== 'undefined' && this.sortOption !== null) {\n toReturn['sortOption'] = 'toApiJson' in this.sortOption ? this.sortOption.toApiJson() : this.sortOption;\n }\n if (typeof this.searchTerm !== 'undefined') {\n toReturn['searchTerm'] = this.searchTerm;\n }\n if (typeof this.csvFormatOptions !== 'undefined' && this.csvFormatOptions !== null) {\n toReturn['csvFormatOptions'] = 'toApiJson' in this.csvFormatOptions ? this.csvFormatOptions.toApiJson() : this.csvFormatOptions;\n }\n if (typeof this.csvExports !== 'undefined' && this.csvExports !== null) {\n toReturn['csvExports'] = 'toApiJson' in this.csvExports ? this.csvExports.toApiJson() : this.csvExports;\n }\n if (typeof this.clientOrigin !== 'undefined') {\n toReturn['clientOrigin'] = this.clientOrigin;\n }\n return toReturn;\n }\n}\nclass ListOpportunitiesRequest {\n static fromProto(proto) {\n let m = new ListOpportunitiesRequest();\n m = Object.assign(m, proto);\n if (proto.pageSize) {\n m.pageSize = parseInt(proto.pageSize, 10);\n }\n if (proto.filters) {\n m.filters = ListOpportunitiesRequestFilters.fromProto(proto.filters);\n }\n if (proto.sortOption) {\n m.sortOption = ListOpportunitiesRequestSortOption.fromProto(proto.sortOption);\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.cursor !== 'undefined') {\n toReturn['cursor'] = this.cursor;\n }\n if (typeof this.pageSize !== 'undefined') {\n toReturn['pageSize'] = this.pageSize;\n }\n if (typeof this.salesPersonIds !== 'undefined') {\n toReturn['salesPersonIds'] = this.salesPersonIds;\n }\n if (typeof this.filters !== 'undefined' && this.filters !== null) {\n toReturn['filters'] = 'toApiJson' in this.filters ? this.filters.toApiJson() : this.filters;\n }\n if (typeof this.sortOption !== 'undefined' && this.sortOption !== null) {\n toReturn['sortOption'] = 'toApiJson' in this.sortOption ? this.sortOption.toApiJson() : this.sortOption;\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.searchTerm !== 'undefined') {\n toReturn['searchTerm'] = this.searchTerm;\n }\n return toReturn;\n }\n}\nclass Opportunity {\n static fromProto(proto) {\n let m = new Opportunity();\n m = Object.assign(m, proto);\n if (proto.packages) {\n m.packages = proto.packages.map(Package.fromProto);\n }\n if (proto.expectedCloseDate) {\n m.expectedCloseDate = new Date(proto.expectedCloseDate);\n }\n if (proto.deleted) {\n m.deleted = new Date(proto.deleted);\n }\n if (proto.created) {\n m.created = new Date(proto.created);\n }\n if (proto.updated) {\n m.updated = new Date(proto.updated);\n }\n if (proto.projectedFirstYearValue) {\n m.projectedFirstYearValue = parseInt(proto.projectedFirstYearValue, 10);\n }\n if (proto.probableFirstYearValue) {\n m.probableFirstYearValue = parseInt(proto.probableFirstYearValue, 10);\n }\n if (proto.closedLostReason) {\n m.closedLostReason = ClosedLostReason.fromProto(proto.closedLostReason);\n }\n if (proto.actualClosedDate) {\n m.actualClosedDate = new Date(proto.actualClosedDate);\n }\n if (proto.lastConnectedDate) {\n m.lastConnectedDate = new Date(proto.lastConnectedDate);\n }\n if (proto.lastActivityDate) {\n m.lastActivityDate = new Date(proto.lastActivityDate);\n }\n if (proto.attachments) {\n m.attachments = proto.attachments.map(Attachment.fromProto);\n }\n if (proto.expectedContractDuration) {\n m.expectedContractDuration = Duration.fromProto(proto.expectedContractDuration);\n }\n if (proto.lineItems) {\n m.lineItems = proto.lineItems.map(LineItem.fromProto);\n }\n if (proto.scoring) {\n m.scoring = Scoring.fromProto(proto.scoring);\n }\n if (proto.forecasting) {\n m.forecasting = Forecasting.fromProto(proto.forecasting);\n }\n if (proto.assignedDate) {\n m.assignedDate = new Date(proto.assignedDate);\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.opportunityId !== 'undefined') {\n toReturn['opportunityId'] = this.opportunityId;\n }\n if (typeof this.accountGroupId !== 'undefined') {\n toReturn['accountGroupId'] = this.accountGroupId;\n }\n if (typeof this.salesPersonId !== 'undefined') {\n toReturn['salesPersonId'] = this.salesPersonId;\n }\n if (typeof this.name !== 'undefined') {\n toReturn['name'] = this.name;\n }\n if (typeof this.packages !== 'undefined' && this.packages !== null) {\n toReturn['packages'] = 'toApiJson' in this.packages ? this.packages.toApiJson() : this.packages;\n }\n if (typeof this.expectedCloseDate !== 'undefined' && this.expectedCloseDate !== null) {\n toReturn['expectedCloseDate'] = 'toApiJson' in this.expectedCloseDate ? this.expectedCloseDate.toApiJson() : this.expectedCloseDate;\n }\n if (typeof this.probability !== 'undefined') {\n toReturn['probability'] = this.probability;\n }\n if (typeof this.notes !== 'undefined') {\n toReturn['notes'] = this.notes;\n }\n if (typeof this.deleted !== 'undefined' && this.deleted !== null) {\n toReturn['deleted'] = 'toApiJson' in this.deleted ? this.deleted.toApiJson() : this.deleted;\n }\n if (typeof this.created !== 'undefined' && this.created !== null) {\n toReturn['created'] = 'toApiJson' in this.created ? this.created.toApiJson() : this.created;\n }\n if (typeof this.updated !== 'undefined' && this.updated !== null) {\n toReturn['updated'] = 'toApiJson' in this.updated ? this.updated.toApiJson() : this.updated;\n }\n if (typeof this.projectedFirstYearValue !== 'undefined') {\n toReturn['projectedFirstYearValue'] = this.projectedFirstYearValue;\n }\n if (typeof this.probableFirstYearValue !== 'undefined') {\n toReturn['probableFirstYearValue'] = this.probableFirstYearValue;\n }\n if (typeof this.pipelineStage !== 'undefined') {\n toReturn['pipelineStage'] = this.pipelineStage;\n }\n if (typeof this.isClosed !== 'undefined') {\n toReturn['isClosed'] = this.isClosed;\n }\n if (typeof this.closedLostReason !== 'undefined' && this.closedLostReason !== null) {\n toReturn['closedLostReason'] = 'toApiJson' in this.closedLostReason ? this.closedLostReason.toApiJson() : this.closedLostReason;\n }\n if (typeof this.actualClosedDate !== 'undefined' && this.actualClosedDate !== null) {\n toReturn['actualClosedDate'] = 'toApiJson' in this.actualClosedDate ? this.actualClosedDate.toApiJson() : this.actualClosedDate;\n }\n if (typeof this.lastConnectedDate !== 'undefined' && this.lastConnectedDate !== null) {\n toReturn['lastConnectedDate'] = 'toApiJson' in this.lastConnectedDate ? this.lastConnectedDate.toApiJson() : this.lastConnectedDate;\n }\n if (typeof this.lastActivityDate !== 'undefined' && this.lastActivityDate !== null) {\n toReturn['lastActivityDate'] = 'toApiJson' in this.lastActivityDate ? this.lastActivityDate.toApiJson() : this.lastActivityDate;\n }\n if (typeof this.reopenedReason !== 'undefined') {\n toReturn['reopenedReason'] = this.reopenedReason;\n }\n if (typeof this.tags !== 'undefined') {\n toReturn['tags'] = this.tags;\n }\n if (typeof this.attachments !== 'undefined' && this.attachments !== null) {\n toReturn['attachments'] = 'toApiJson' in this.attachments ? this.attachments.toApiJson() : this.attachments;\n }\n if (typeof this.expectedContractDuration !== 'undefined' && this.expectedContractDuration !== null) {\n toReturn['expectedContractDuration'] = 'toApiJson' in this.expectedContractDuration ? this.expectedContractDuration.toApiJson() : this.expectedContractDuration;\n }\n if (typeof this.pipelineId !== 'undefined') {\n toReturn['pipelineId'] = this.pipelineId;\n }\n if (typeof this.canReopen !== 'undefined') {\n toReturn['canReopen'] = this.canReopen;\n }\n if (typeof this.lineItems !== 'undefined' && this.lineItems !== null) {\n toReturn['lineItems'] = 'toApiJson' in this.lineItems ? this.lineItems.toApiJson() : this.lineItems;\n }\n if (typeof this.scoring !== 'undefined' && this.scoring !== null) {\n toReturn['scoring'] = 'toApiJson' in this.scoring ? this.scoring.toApiJson() : this.scoring;\n }\n if (typeof this.forecasting !== 'undefined' && this.forecasting !== null) {\n toReturn['forecasting'] = 'toApiJson' in this.forecasting ? this.forecasting.toApiJson() : this.forecasting;\n }\n if (typeof this.subscriberUserIds !== 'undefined') {\n toReturn['subscriberUserIds'] = this.subscriberUserIds;\n }\n if (typeof this.idempotencyKey !== 'undefined') {\n toReturn['idempotencyKey'] = this.idempotencyKey;\n }\n if (typeof this.assignedDate !== 'undefined' && this.assignedDate !== null) {\n toReturn['assignedDate'] = 'toApiJson' in this.assignedDate ? this.assignedDate.toApiJson() : this.assignedDate;\n }\n if (typeof this.opportunityType !== 'undefined') {\n toReturn['opportunityType'] = this.opportunityType;\n }\n return toReturn;\n }\n}\nclass OpportunityCount {\n static fromProto(proto) {\n let m = new OpportunityCount();\n m = Object.assign(m, proto);\n if (proto.count) {\n m.count = parseInt(proto.count, 10);\n }\n return m;\n }\n constructor(kwargs) {\n if (!kwargs) {\n return;\n }\n Object.assign(this, kwargs);\n }\n toApiJson() {\n const toReturn = {};\n if (typeof this.accountGroupId !== 'undefined') {\n toReturn['accountGroupId'] = this.accountGroupId;\n }\n if (typeof this.count !== 'undefined') {\n toReturn['count'] = this.count;\n }\n return toReturn;\n }\n}\nclass OpportunityValue {\n static fromProto(proto) {\n let m = new OpportunityValue();\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.accountGroupId !== 'undefined') {\n toReturn['accountGroupId'] = this.accountGroupId;\n }\n if (typeof this.value !== 'undefined') {\n toReturn['value'] = this.value;\n }\n return toReturn;\n }\n}\nclass Package {\n static fromProto(proto) {\n let m = new Package();\n m = Object.assign(m, proto);\n if (proto.currency) {\n m.currency = enumStringToValue$5(Currency, proto.currency);\n }\n if (proto.initialRevenue) {\n m.initialRevenue = Revenue.fromProto(proto.initialRevenue);\n }\n if (proto.currentRevenue) {\n m.currentRevenue = Revenue.fromProto(proto.currentRevenue);\n }\n if (proto.quantity) {\n m.quantity = parseInt(proto.quantity, 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.packageId !== 'undefined') {\n toReturn['packageId'] = this.packageId;\n }\n if (typeof this.currency !== 'undefined') {\n toReturn['currency'] = this.currency;\n }\n if (typeof this.initialRevenue !== 'undefined' && this.initialRevenue !== null) {\n toReturn['initialRevenue'] = 'toApiJson' in this.initialRevenue ? this.initialRevenue.toApiJson() : this.initialRevenue;\n }\n if (typeof this.currentRevenue !== 'undefined' && this.currentRevenue !== null) {\n toReturn['currentRevenue'] = 'toApiJson' in this.currentRevenue ? this.currentRevenue.toApiJson() : this.currentRevenue;\n }\n if (typeof this.quantity !== 'undefined') {\n toReturn['quantity'] = this.quantity;\n }\n return toReturn;\n }\n}\nclass PipelineClosePoint {\n static fromProto(proto) {\n let m = new PipelineClosePoint();\n m = Object.assign(m, proto);\n if (proto.month) {\n m.month = new Date(proto.month);\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.month !== 'undefined' && this.month !== null) {\n toReturn['month'] = 'toApiJson' in this.month ? this.month.toApiJson() : this.month;\n }\n if (typeof this.wonOpportunities !== 'undefined') {\n toReturn['wonOpportunities'] = this.wonOpportunities;\n }\n if (typeof this.lostOpportunities !== 'undefined') {\n toReturn['lostOpportunities'] = this.lostOpportunities;\n }\n if (typeof this.totalOpportunities !== 'undefined') {\n toReturn['totalOpportunities'] = this.totalOpportunities;\n }\n if (typeof this.partnerId !== 'undefined') {\n toReturn['partnerId'] = this.partnerId;\n }\n if (typeof this.salesPersonId !== 'undefined') {\n toReturn['salesPersonId'] = this.salesPersonId;\n }\n return toReturn;\n }\n}\nclass PipelineCreationPoint {\n static fromProto(proto) {\n let m = new PipelineCreationPoint();\n m = Object.assign(m, proto);\n if (proto.month) {\n m.month = new Date(proto.month);\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.month !== 'undefined' && this.month !== null) {\n toReturn['month'] = 'toApiJson' in this.month ? this.month.toApiJson() : this.month;\n }\n if (typeof this.createdOpportunities !== 'undefined') {\n toReturn['createdOpportunities'] = this.createdOpportunities;\n }\n if (typeof this.partnerId !== 'undefined') {\n toReturn['partnerId'] = this.partnerId;\n }\n if (typeof this.salesPersonId !== 'undefined') {\n toReturn['salesPersonId'] = this.salesPersonId;\n }\n return toReturn;\n }\n}\nclass ProbabilityRangeFilter {\n static fromProto(proto) {\n let m = new ProbabilityRangeFilter();\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.minimum !== 'undefined') {\n toReturn['minimum'] = this.minimum;\n }\n if (typeof this.maximum !== 'undefined') {\n toReturn['maximum'] = this.maximum;\n }\n return toReturn;\n }\n}\nclass RevenuePeriodFilter {\n static fromProto(proto) {\n let m = new RevenuePeriodFilter();\n m = Object.assign(m, proto);\n if (proto.revenueDate) {\n m.revenueDate = new Date(proto.revenueDate);\n }\n if (proto.revenuePeriod) {\n m.revenuePeriod = enumStringToValue$5(OpportunityRevenuePeriod, proto.revenuePeriod);\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.revenueDate !== 'undefined' && this.revenueDate !== null) {\n toReturn['revenueDate'] = 'toApiJson' in this.revenueDate ? this.revenueDate.toApiJson() : this.revenueDate;\n }\n if (typeof this.revenuePeriod !== 'undefined') {\n toReturn['revenuePeriod'] = this.revenuePeriod;\n }\n return toReturn;\n }\n}\nclass ListOpportunitiesRequestSortOption {\n static fromProto(proto) {\n let m = new ListOpportunitiesRequestSortOption();\n m = Object.assign(m, proto);\n if (proto.direction) {\n m.direction = enumStringToValue$5(SortDirection, proto.direction);\n }\n if (proto.field) {\n m.field = enumStringToValue$5(ListOpportunitiesRequestSortField, proto.field);\n }\n return m;\n }\n constructor(kwargs) {\n if (!kwargs) {\n return;\n }\n Object.assign(this, kwargs);\n }\n toApiJson() {\n const toReturn = {};\n if (typeof this.direction !== 'undefined') {\n toReturn['direction'] = this.direction;\n }\n if (typeof this.field !== 'undefined') {\n toReturn['field'] = this.field;\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 Pipeline {\n static fromProto(proto) {\n let m = new Pipeline();\n m = Object.assign(m, proto);\n if (proto.stages) {\n m.stages = proto.stages.map(Stage.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.pipelineId !== 'undefined') {\n toReturn['pipelineId'] = this.pipelineId;\n }\n if (typeof this.partnerId !== 'undefined') {\n toReturn['partnerId'] = this.partnerId;\n }\n if (typeof this.name !== 'undefined') {\n toReturn['name'] = this.name;\n }\n if (typeof this.stages !== 'undefined' && this.stages !== null) {\n toReturn['stages'] = 'toApiJson' in this.stages ? this.stages.toApiJson() : this.stages;\n }\n return toReturn;\n }\n}\nclass Stage {\n static fromProto(proto) {\n let m = new Stage();\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.stageId !== 'undefined') {\n toReturn['stageId'] = this.stageId;\n }\n if (typeof this.name !== 'undefined') {\n toReturn['name'] = this.name;\n }\n if (typeof this.probability !== 'undefined') {\n toReturn['probability'] = this.probability;\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 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$2(enumRef, value) {\n if (typeof value === 'number') {\n return value;\n }\n return enumRef[value];\n}\nclass Goal {\n static fromProto(proto) {\n let m = new Goal();\n m = Object.assign(m, proto);\n if (proto.type) {\n m.type = enumStringToValue$2(GoalType, proto.type);\n }\n if (proto.start) {\n m.start = new Date(proto.start);\n }\n if (proto.end) {\n m.end = new Date(proto.end);\n }\n if (proto.targets) {\n m.targets = proto.targets.map(Target.fromProto);\n }\n if (proto.created) {\n m.created = new Date(proto.created);\n }\n if (proto.updated) {\n m.updated = new Date(proto.updated);\n }\n if (proto.deleted) {\n m.deleted = new Date(proto.deleted);\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.partnerId !== 'undefined') {\n toReturn['partnerId'] = this.partnerId;\n }\n if (typeof this.name !== 'undefined') {\n toReturn['name'] = this.name;\n }\n if (typeof this.contributorId !== 'undefined') {\n toReturn['contributorId'] = this.contributorId;\n }\n if (typeof this.contributorType !== 'undefined') {\n toReturn['contributorType'] = this.contributorType;\n }\n if (typeof this.type !== 'undefined') {\n toReturn['type'] = this.type;\n }\n if (typeof this.pipelineIds !== 'undefined') {\n toReturn['pipelineIds'] = this.pipelineIds;\n }\n if (typeof this.interval !== 'undefined') {\n toReturn['interval'] = this.interval;\n }\n if (typeof this.start !== 'undefined' && this.start !== null) {\n toReturn['start'] = 'toApiJson' in this.start ? this.start.toApiJson() : this.start;\n }\n if (typeof this.end !== 'undefined' && this.end !== null) {\n toReturn['end'] = 'toApiJson' in this.end ? this.end.toApiJson() : this.end;\n }\n if (typeof this.targets !== 'undefined' && this.targets !== null) {\n toReturn['targets'] = 'toApiJson' in this.targets ? this.targets.toApiJson() : this.targets;\n }\n if (typeof this.createdBy !== 'undefined') {\n toReturn['createdBy'] = this.createdBy;\n }\n if (typeof this.status !== 'undefined') {\n toReturn['status'] = this.status;\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.updated !== 'undefined' && this.updated !== null) {\n toReturn['updated'] = 'toApiJson' in this.updated ? this.updated.toApiJson() : this.updated;\n }\n if (typeof this.deleted !== 'undefined' && this.deleted !== null) {\n toReturn['deleted'] = 'toApiJson' in this.deleted ? this.deleted.toApiJson() : this.deleted;\n }\n return toReturn;\n }\n}\nclass Target {\n static fromProto(proto) {\n let m = new Target();\n m = Object.assign(m, proto);\n if (proto.value) {\n m.value = parseInt(proto.value, 10);\n }\n if (proto.start) {\n m.start = new Date(proto.start);\n }\n if (proto.end) {\n m.end = new Date(proto.end);\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.value !== 'undefined') {\n toReturn['value'] = this.value;\n }\n if (typeof this.start !== 'undefined' && this.start !== null) {\n toReturn['start'] = 'toApiJson' in this.start ? this.start.toApiJson() : this.start;\n }\n if (typeof this.end !== 'undefined' && this.end !== null) {\n toReturn['end'] = 'toApiJson' in this.end ? this.end.toApiJson() : this.end;\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 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(enumRef, value) {\n if (typeof value === 'number') {\n return value;\n }\n return enumRef[value];\n}\nclass AddAttachmentToOpportunityRequest {\n static fromProto(proto) {\n let m = new AddAttachmentToOpportunityRequest();\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.opportunityId !== 'undefined') {\n toReturn['opportunityId'] = this.opportunityId;\n }\n if (typeof this.accountGroupId !== 'undefined') {\n toReturn['accountGroupId'] = this.accountGroupId;\n }\n if (typeof this.name !== 'undefined') {\n toReturn['name'] = this.name;\n }\n if (typeof this.url !== 'undefined') {\n toReturn['url'] = this.url;\n }\n return toReturn;\n }\n}\nclass AddOpportunityPackagesRequest {\n static fromProto(proto) {\n let m = new AddOpportunityPackagesRequest();\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.opportunityId !== 'undefined') {\n toReturn['opportunityId'] = this.opportunityId;\n }\n if (typeof this.accountGroupId !== 'undefined') {\n toReturn['accountGroupId'] = this.accountGroupId;\n }\n if (typeof this.editSalesPersonId !== 'undefined') {\n toReturn['editSalesPersonId'] = this.editSalesPersonId;\n }\n if (typeof this.packageIds !== 'undefined') {\n toReturn['packageIds'] = this.packageIds;\n }\n return toReturn;\n }\n}\nclass AddOpportunityPackagesResponse {\n static fromProto(proto) {\n let m = new AddOpportunityPackagesResponse();\n m = Object.assign(m, proto);\n if (proto.opportunity) {\n m.opportunity = Opportunity.fromProto(proto.opportunity);\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.opportunity !== 'undefined' && this.opportunity !== null) {\n toReturn['opportunity'] = 'toApiJson' in this.opportunity ? this.opportunity.toApiJson() : this.opportunity;\n }\n return toReturn;\n }\n}\nclass AddPipelineStagesRequestAddPipelineStage {\n static fromProto(proto) {\n let m = new AddPipelineStagesRequestAddPipelineStage();\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.name !== 'undefined') {\n toReturn['name'] = this.name;\n }\n if (typeof this.probability !== 'undefined') {\n toReturn['probability'] = this.probability;\n }\n return toReturn;\n }\n}\nclass AddPipelineStagesRequest {\n static fromProto(proto) {\n let m = new AddPipelineStagesRequest();\n m = Object.assign(m, proto);\n if (proto.stages) {\n m.stages = proto.stages.map(AddPipelineStagesRequestAddPipelineStage.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.partnerId !== 'undefined') {\n toReturn['partnerId'] = this.partnerId;\n }\n if (typeof this.pipelineId !== 'undefined') {\n toReturn['pipelineId'] = this.pipelineId;\n }\n if (typeof this.stages !== 'undefined' && this.stages !== null) {\n toReturn['stages'] = 'toApiJson' in this.stages ? this.stages.toApiJson() : this.stages;\n }\n return toReturn;\n }\n}\nclass AddPipelineStagesResponse {\n static fromProto(proto) {\n let m = new AddPipelineStagesResponse();\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 ArchiveGoalRequest {\n static fromProto(proto) {\n let m = new ArchiveGoalRequest();\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.id !== 'undefined') {\n toReturn['id'] = this.id;\n }\n if (typeof this.partnerId !== 'undefined') {\n toReturn['partnerId'] = this.partnerId;\n }\n return toReturn;\n }\n}\nclass CloseAsLostOpportunityRequest {\n static fromProto(proto) {\n let m = new CloseAsLostOpportunityRequest();\n m = Object.assign(m, proto);\n if (proto.reason) {\n m.reason = enumStringToValue(ClosedLostReasonOption, proto.reason);\n }\n if (proto.closeDate) {\n m.closeDate = new Date(proto.closeDate);\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.opportunityId !== 'undefined') {\n toReturn['opportunityId'] = this.opportunityId;\n }\n if (typeof this.accountGroupId !== 'undefined') {\n toReturn['accountGroupId'] = this.accountGroupId;\n }\n if (typeof this.editSalesPersonId !== 'undefined') {\n toReturn['editSalesPersonId'] = this.editSalesPersonId;\n }\n if (typeof this.reason !== 'undefined') {\n toReturn['reason'] = this.reason;\n }\n if (typeof this.closeDate !== 'undefined' && this.closeDate !== null) {\n toReturn['closeDate'] = 'toApiJson' in this.closeDate ? this.closeDate.toApiJson() : this.closeDate;\n }\n if (typeof this.notes !== 'undefined') {\n toReturn['notes'] = this.notes;\n }\n return toReturn;\n }\n}\nclass CloseAsLostOpportunityResponse {\n static fromProto(proto) {\n let m = new CloseAsLostOpportunityResponse();\n m = Object.assign(m, proto);\n if (proto.opportunity) {\n m.opportunity = Opportunity.fromProto(proto.opportunity);\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.opportunity !== 'undefined' && this.opportunity !== null) {\n toReturn['opportunity'] = 'toApiJson' in this.opportunity ? this.opportunity.toApiJson() : this.opportunity;\n }\n return toReturn;\n }\n}\nclass CloseAsWonOpportunityRequest {\n static fromProto(proto) {\n let m = new CloseAsWonOpportunityRequest();\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.opportunityId !== 'undefined') {\n toReturn['opportunityId'] = this.opportunityId;\n }\n if (typeof this.accountGroupId !== 'undefined') {\n toReturn['accountGroupId'] = this.accountGroupId;\n }\n if (typeof this.editSalesPersonId !== 'undefined') {\n toReturn['editSalesPersonId'] = this.editSalesPersonId;\n }\n if (typeof this.notes !== 'undefined') {\n toReturn['notes'] = this.notes;\n }\n return toReturn;\n }\n}\nclass CloseAsWonOpportunityResponse {\n static fromProto(proto) {\n let m = new CloseAsWonOpportunityResponse();\n m = Object.assign(m, proto);\n if (proto.opportunity) {\n m.opportunity = Opportunity.fromProto(proto.opportunity);\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.opportunity !== 'undefined' && this.opportunity !== null) {\n toReturn['opportunity'] = 'toApiJson' in this.opportunity ? this.opportunity.toApiJson() : this.opportunity;\n }\n return toReturn;\n }\n}\nclass CreateGoalRequest {\n static fromProto(proto) {\n let m = new CreateGoalRequest();\n m = Object.assign(m, proto);\n if (proto.start) {\n m.start = new Date(proto.start);\n }\n if (proto.end) {\n m.end = new Date(proto.end);\n }\n if (proto.targets) {\n m.targets = proto.targets.map(Target.fromProto);\n }\n if (proto.goalType) {\n m.goalType = enumStringToValue(GoalType, proto.goalType);\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.name !== 'undefined') {\n toReturn['name'] = this.name;\n }\n if (typeof this.contributorId !== 'undefined') {\n toReturn['contributorId'] = this.contributorId;\n }\n if (typeof this.contributorType !== 'undefined') {\n toReturn['contributorType'] = this.contributorType;\n }\n if (typeof this.pipelineIds !== 'undefined') {\n toReturn['pipelineIds'] = this.pipelineIds;\n }\n if (typeof this.start !== 'undefined' && this.start !== null) {\n toReturn['start'] = 'toApiJson' in this.start ? this.start.toApiJson() : this.start;\n }\n if (typeof this.end !== 'undefined' && this.end !== null) {\n toReturn['end'] = 'toApiJson' in this.end ? this.end.toApiJson() : this.end;\n }\n if (typeof this.targets !== 'undefined' && this.targets !== null) {\n toReturn['targets'] = 'toApiJson' in this.targets ? this.targets.toApiJson() : this.targets;\n }\n if (typeof this.goalType !== 'undefined') {\n toReturn['goalType'] = this.goalType;\n }\n return toReturn;\n }\n}\nclass CreateOpportunityRequestCreateOpportunityPackage {\n static fromProto(proto) {\n let m = new CreateOpportunityRequestCreateOpportunityPackage();\n m = Object.assign(m, proto);\n if (proto.quantity) {\n m.quantity = parseInt(proto.quantity, 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.packageId !== 'undefined') {\n toReturn['packageId'] = this.packageId;\n }\n if (typeof this.quantity !== 'undefined') {\n toReturn['quantity'] = this.quantity;\n }\n return toReturn;\n }\n}\nclass CreateOpportunityRequest {\n static fromProto(proto) {\n let m = new CreateOpportunityRequest();\n m = Object.assign(m, proto);\n if (proto.expectedCloseDate) {\n m.expectedCloseDate = new Date(proto.expectedCloseDate);\n }\n if (proto.packages) {\n m.packages = proto.packages.map(CreateOpportunityRequestCreateOpportunityPackage.fromProto);\n }\n if (proto.expectedContractDuration) {\n m.expectedContractDuration = Duration.fromProto(proto.expectedContractDuration);\n }\n if (proto.lineItems) {\n m.lineItems = proto.lineItems.map(LineItem.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.accountGroupId !== 'undefined') {\n toReturn['accountGroupId'] = this.accountGroupId;\n }\n if (typeof this.salesPersonId !== 'undefined') {\n toReturn['salesPersonId'] = this.salesPersonId;\n }\n if (typeof this.name !== 'undefined') {\n toReturn['name'] = this.name;\n }\n if (typeof this.packageIds !== 'undefined') {\n toReturn['packageIds'] = this.packageIds;\n }\n if (typeof this.expectedCloseDate !== 'undefined' && this.expectedCloseDate !== null) {\n toReturn['expectedCloseDate'] = 'toApiJson' in this.expectedCloseDate ? this.expectedCloseDate.toApiJson() : this.expectedCloseDate;\n }\n if (typeof this.probability !== 'undefined') {\n toReturn['probability'] = this.probability;\n }\n if (typeof this.notes !== 'undefined') {\n toReturn['notes'] = this.notes;\n }\n if (typeof this.marketId !== 'undefined') {\n toReturn['marketId'] = this.marketId;\n }\n if (typeof this.partnerId !== 'undefined') {\n toReturn['partnerId'] = this.partnerId;\n }\n if (typeof this.packages !== 'undefined' && this.packages !== null) {\n toReturn['packages'] = 'toApiJson' in this.packages ? this.packages.toApiJson() : this.packages;\n }\n if (typeof this.tags !== 'undefined') {\n toReturn['tags'] = this.tags;\n }\n if (typeof this.expectedContractDuration !== 'undefined' && this.expectedContractDuration !== null) {\n toReturn['expectedContractDuration'] = 'toApiJson' in this.expectedContractDuration ? this.expectedContractDuration.toApiJson() : this.expectedContractDuration;\n }\n if (typeof this.pipelineId !== 'undefined') {\n toReturn['pipelineId'] = this.pipelineId;\n }\n if (typeof this.lineItems !== 'undefined' && this.lineItems !== null) {\n toReturn['lineItems'] = 'toApiJson' in this.lineItems ? this.lineItems.toApiJson() : this.lineItems;\n }\n if (typeof this.subscriberUserIds !== 'undefined') {\n toReturn['subscriberUserIds'] = this.subscriberUserIds;\n }\n if (typeof this.idempotencyKey !== 'undefined') {\n toReturn['idempotencyKey'] = this.idempotencyKey;\n }\n if (typeof this.opportunityType !== 'undefined') {\n toReturn['opportunityType'] = this.opportunityType;\n }\n return toReturn;\n }\n}\nclass CreateOpportunityResponse {\n static fromProto(proto) {\n let m = new CreateOpportunityResponse();\n m = Object.assign(m, proto);\n if (proto.opportunity) {\n m.opportunity = Opportunity.fromProto(proto.opportunity);\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.opportunity !== 'undefined' && this.opportunity !== null) {\n toReturn['opportunity'] = 'toApiJson' in this.opportunity ? this.opportunity.toApiJson() : this.opportunity;\n }\n return toReturn;\n }\n}\nclass CreatePipelineRequest {\n static fromProto(proto) {\n let m = new CreatePipelineRequest();\n m = Object.assign(m, proto);\n if (proto.stages) {\n m.stages = proto.stages.map(CreatePipelineRequestCreatePipelineStage.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.partnerId !== 'undefined') {\n toReturn['partnerId'] = this.partnerId;\n }\n if (typeof this.name !== 'undefined') {\n toReturn['name'] = this.name;\n }\n if (typeof this.stages !== 'undefined' && this.stages !== null) {\n toReturn['stages'] = 'toApiJson' in this.stages ? this.stages.toApiJson() : this.stages;\n }\n return toReturn;\n }\n}\nclass CreatePipelineResponse {\n static fromProto(proto) {\n let m = new CreatePipelineResponse();\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.pipelineId !== 'undefined') {\n toReturn['pipelineId'] = this.pipelineId;\n }\n return toReturn;\n }\n}\nclass CreatePipelineRequestCreatePipelineStage {\n static fromProto(proto) {\n let m = new CreatePipelineRequestCreatePipelineStage();\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.name !== 'undefined') {\n toReturn['name'] = this.name;\n }\n if (typeof this.probability !== 'undefined') {\n toReturn['probability'] = this.probability;\n }\n return toReturn;\n }\n}\nclass DeleteGoalRequest {\n static fromProto(proto) {\n let m = new DeleteGoalRequest();\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.id !== 'undefined') {\n toReturn['id'] = this.id;\n }\n if (typeof this.partnerId !== 'undefined') {\n toReturn['partnerId'] = this.partnerId;\n }\n return toReturn;\n }\n}\nclass DeleteOpportunityRequest {\n static fromProto(proto) {\n let m = new DeleteOpportunityRequest();\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.opportunityId !== 'undefined') {\n toReturn['opportunityId'] = this.opportunityId;\n }\n if (typeof this.accountGroupId !== 'undefined') {\n toReturn['accountGroupId'] = this.accountGroupId;\n }\n if (typeof this.editSalesPersonId !== 'undefined') {\n toReturn['editSalesPersonId'] = this.editSalesPersonId;\n }\n return toReturn;\n }\n}\nclass DeletePipelineRequest {\n static fromProto(proto) {\n let m = new DeletePipelineRequest();\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.pipelineId !== 'undefined') {\n toReturn['pipelineId'] = this.pipelineId;\n }\n return toReturn;\n }\n}\nclass DeletePipelineResponse {\n static fromProto(proto) {\n let m = new DeletePipelineResponse();\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 ListGoalsRequestFilters {\n static fromProto(proto) {\n let m = new ListGoalsRequestFilters();\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.contributorId !== 'undefined') {\n toReturn['contributorId'] = this.contributorId;\n }\n if (typeof this.contributorType !== 'undefined') {\n toReturn['contributorType'] = this.contributorType;\n }\n if (typeof this.status !== 'undefined') {\n toReturn['status'] = this.status;\n }\n return toReturn;\n }\n}\nclass GetGoalRequest {\n static fromProto(proto) {\n let m = new GetGoalRequest();\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.id !== 'undefined') {\n toReturn['id'] = this.id;\n }\n return toReturn;\n }\n}\nclass GetMEDDICScoresRequest {\n static fromProto(proto) {\n let m = new GetMEDDICScoresRequest();\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.opportunityId !== 'undefined') {\n toReturn['opportunityId'] = this.opportunityId;\n }\n return toReturn;\n }\n}\nclass GetMEDDICScoresResponse {\n static fromProto(proto) {\n let m = new GetMEDDICScoresResponse();\n m = Object.assign(m, proto);\n if (proto.scores) {\n m.scores = MEDDICScores.fromProto(proto.scores);\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.scores !== 'undefined' && this.scores !== null) {\n toReturn['scores'] = 'toApiJson' in this.scores ? this.scores.toApiJson() : this.scores;\n }\n return toReturn;\n }\n}\nclass GetMEDDICSectionsRequest {\n static fromProto(proto) {\n let m = new GetMEDDICSectionsRequest();\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.opportunityId !== 'undefined') {\n toReturn['opportunityId'] = this.opportunityId;\n }\n return toReturn;\n }\n}\nclass GetMEDDICSectionsResponse {\n static fromProto(proto) {\n let m = new GetMEDDICSectionsResponse();\n m = Object.assign(m, proto);\n if (proto.sections) {\n m.sections = Scoring.fromProto(proto.sections);\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.sections !== 'undefined' && this.sections !== null) {\n toReturn['sections'] = 'toApiJson' in this.sections ? this.sections.toApiJson() : this.sections;\n }\n return toReturn;\n }\n}\nclass GetOpportunityByIdempotencyKeyRequest {\n static fromProto(proto) {\n let m = new GetOpportunityByIdempotencyKeyRequest();\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.idempotencyKey !== 'undefined') {\n toReturn['idempotencyKey'] = this.idempotencyKey;\n }\n return toReturn;\n }\n}\nclass GetOpportunityCountByAccountGroupsRequest {\n static fromProto(proto) {\n let m = new GetOpportunityCountByAccountGroupsRequest();\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.accountGroupIds !== 'undefined') {\n toReturn['accountGroupIds'] = this.accountGroupIds;\n }\n if (typeof this.onlyUnclosed !== 'undefined') {\n toReturn['onlyUnclosed'] = this.onlyUnclosed;\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 GetOpportunityCountByAccountGroupsResponse {\n static fromProto(proto) {\n let m = new GetOpportunityCountByAccountGroupsResponse();\n m = Object.assign(m, proto);\n if (proto.results) {\n m.results = proto.results.map(OpportunityCount.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.results !== 'undefined' && this.results !== null) {\n toReturn['results'] = 'toApiJson' in this.results ? this.results.toApiJson() : this.results;\n }\n return toReturn;\n }\n}\nclass GetOpportunityRequest {\n static fromProto(proto) {\n let m = new GetOpportunityRequest();\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.opportunityId !== 'undefined') {\n toReturn['opportunityId'] = this.opportunityId;\n }\n if (typeof this.accountGroupId !== 'undefined') {\n toReturn['accountGroupId'] = this.accountGroupId;\n }\n return toReturn;\n }\n}\nclass GetOpportunityResponse {\n static fromProto(proto) {\n let m = new GetOpportunityResponse();\n m = Object.assign(m, proto);\n if (proto.opportunity) {\n m.opportunity = Opportunity.fromProto(proto.opportunity);\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.opportunity !== 'undefined' && this.opportunity !== null) {\n toReturn['opportunity'] = 'toApiJson' in this.opportunity ? this.opportunity.toApiJson() : this.opportunity;\n }\n return toReturn;\n }\n}\nclass GetOpportunityValueByAccountGroupsRequest {\n static fromProto(proto) {\n let m = new GetOpportunityValueByAccountGroupsRequest();\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.accountGroupIds !== 'undefined') {\n toReturn['accountGroupIds'] = this.accountGroupIds;\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 GetOpportunityValueByAccountGroupsResponse {\n static fromProto(proto) {\n let m = new GetOpportunityValueByAccountGroupsResponse();\n m = Object.assign(m, proto);\n if (proto.results) {\n m.results = proto.results.map(OpportunityValue.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.results !== 'undefined' && this.results !== null) {\n toReturn['results'] = 'toApiJson' in this.results ? this.results.toApiJson() : this.results;\n }\n return toReturn;\n }\n}\nclass GetTagsForOpportunitiesRequest {\n static fromProto(proto) {\n let m = new GetTagsForOpportunitiesRequest();\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 return toReturn;\n }\n}\nclass GetTagsForOpportunitiesResponse {\n static fromProto(proto) {\n let m = new GetTagsForOpportunitiesResponse();\n m = Object.assign(m, proto);\n return m;\n }\n constructor(kwargs) {\n if (!kwargs) {\n return;\n }\n Object.assign(this, kwargs);\n }\n toApiJson() {\n const toReturn = {};\n if (typeof this.tags !== 'undefined') {\n toReturn['tags'] = this.tags;\n }\n return toReturn;\n }\n}\nclass GoalResponse {\n static fromProto(proto) {\n let m = new GoalResponse();\n m = Object.assign(m, proto);\n if (proto.goal) {\n m.goal = Goal.fromProto(proto.goal);\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.goal !== 'undefined' && this.goal !== null) {\n toReturn['goal'] = 'toApiJson' in this.goal ? this.goal.toApiJson() : this.goal;\n }\n return toReturn;\n }\n}\nclass InitiateOpportunityExportResponse {\n static fromProto(proto) {\n let m = new InitiateOpportunityExportResponse();\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.exportId !== 'undefined') {\n toReturn['exportId'] = this.exportId;\n }\n return toReturn;\n }\n}\nclass ListGoalsRequest {\n static fromProto(proto) {\n let m = new ListGoalsRequest();\n m = Object.assign(m, proto);\n if (proto.pageOptions) {\n m.pageOptions = PagedRequestOptions.fromProto(proto.pageOptions);\n }\n if (proto.filters) {\n m.filters = ListGoalsRequestFilters.fromProto(proto.filters);\n }\n if (proto.sortOption) {\n m.sortOption = ListGoalsRequestSortOption.fromProto(proto.sortOption);\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.pageOptions !== 'undefined' && this.pageOptions !== null) {\n toReturn['pageOptions'] = 'toApiJson' in this.pageOptions ? this.pageOptions.toApiJson() : this.pageOptions;\n }\n if (typeof this.filters !== 'undefined' && this.filters !== null) {\n toReturn['filters'] = 'toApiJson' in this.filters ? this.filters.toApiJson() : this.filters;\n }\n if (typeof this.sortOption !== 'undefined' && this.sortOption !== null) {\n toReturn['sortOption'] = 'toApiJson' in this.sortOption ? this.sortOption.toApiJson() : this.sortOption;\n }\n return toReturn;\n }\n}\nclass ListGoalsResponse {\n static fromProto(proto) {\n let m = new ListGoalsResponse();\n m = Object.assign(m, proto);\n if (proto.goals) {\n m.goals = proto.goals.map(Goal.fromProto);\n }\n if (proto.pagingMetadata) {\n m.pagingMetadata = PagedResponseMetadata.fromProto(proto.pagingMetadata);\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.goals !== 'undefined' && this.goals !== null) {\n toReturn['goals'] = 'toApiJson' in this.goals ? this.goals.toApiJson() : this.goals;\n }\n if (typeof this.pagingMetadata !== 'undefined' && this.pagingMetadata !== null) {\n toReturn['pagingMetadata'] = 'toApiJson' in this.pagingMetadata ? this.pagingMetadata.toApiJson() : this.pagingMetadata;\n }\n return toReturn;\n }\n}\nclass ListOpportunitiesResponse {\n static fromProto(proto) {\n let m = new ListOpportunitiesResponse();\n m = Object.assign(m, proto);\n if (proto.results) {\n m.results = proto.results.map(Opportunity.fromProto);\n }\n if (proto.totalResults) {\n m.totalResults = parseInt(proto.totalResults, 10);\n }\n if (proto.totalProjectedFirstYearValue) {\n m.totalProjectedFirstYearValue = parseInt(proto.totalProjectedFirstYearValue, 10);\n }\n if (proto.totalRevenueForRevenuePeriod) {\n m.totalRevenueForRevenuePeriod = parseInt(proto.totalRevenueForRevenuePeriod, 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.results !== 'undefined' && this.results !== null) {\n toReturn['results'] = 'toApiJson' in this.results ? this.results.toApiJson() : this.results;\n }\n if (typeof this.nextCursor !== 'undefined') {\n toReturn['nextCursor'] = this.nextCursor;\n }\n if (typeof this.hasMore !== 'undefined') {\n toReturn['hasMore'] = this.hasMore;\n }\n if (typeof this.totalResults !== 'undefined') {\n toReturn['totalResults'] = this.totalResults;\n }\n if (typeof this.totalProjectedFirstYearValue !== 'undefined') {\n toReturn['totalProjectedFirstYearValue'] = this.totalProjectedFirstYearValue;\n }\n if (typeof this.totalRevenueForRevenuePeriod !== 'undefined') {\n toReturn['totalRevenueForRevenuePeriod'] = this.totalRevenueForRevenuePeriod;\n }\n return toReturn;\n }\n}\nclass ListPipelinesRequest {\n static fromProto(proto) {\n let m = new ListPipelinesRequest();\n m = Object.assign(m, proto);\n if (proto.pageOptions) {\n m.pageOptions = PagedRequestOptions.fromProto(proto.pageOptions);\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.pageOptions !== 'undefined' && this.pageOptions !== null) {\n toReturn['pageOptions'] = 'toApiJson' in this.pageOptions ? this.pageOptions.toApiJson() : this.pageOptions;\n }\n return toReturn;\n }\n}\nclass ListPipelinesResponse {\n static fromProto(proto) {\n let m = new ListPipelinesResponse();\n m = Object.assign(m, proto);\n if (proto.results) {\n m.results = proto.results.map(Pipeline.fromProto);\n }\n if (proto.pagingMetadata) {\n m.pagingMetadata = PagedResponseMetadata.fromProto(proto.pagingMetadata);\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.results !== 'undefined' && this.results !== null) {\n toReturn['results'] = 'toApiJson' in this.results ? this.results.toApiJson() : this.results;\n }\n if (typeof this.pagingMetadata !== 'undefined' && this.pagingMetadata !== null) {\n toReturn['pagingMetadata'] = 'toApiJson' in this.pagingMetadata ? this.pagingMetadata.toApiJson() : this.pagingMetadata;\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.cursor !== 'undefined') {\n toReturn['cursor'] = this.cursor;\n }\n if (typeof this.pageSize !== 'undefined') {\n toReturn['pageSize'] = this.pageSize;\n }\n return toReturn;\n }\n}\nclass PagedResponseMetadata {\n static fromProto(proto) {\n let m = new PagedResponseMetadata();\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.nextCursor !== 'undefined') {\n toReturn['nextCursor'] = this.nextCursor;\n }\n if (typeof this.hasMore !== 'undefined') {\n toReturn['hasMore'] = this.hasMore;\n }\n return toReturn;\n }\n}\nclass RemoveOpportunityPackagesRequest {\n static fromProto(proto) {\n let m = new RemoveOpportunityPackagesRequest();\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.opportunityId !== 'undefined') {\n toReturn['opportunityId'] = this.opportunityId;\n }\n if (typeof this.accountGroupId !== 'undefined') {\n toReturn['accountGroupId'] = this.accountGroupId;\n }\n if (typeof this.editSalesPersonId !== 'undefined') {\n toReturn['editSalesPersonId'] = this.editSalesPersonId;\n }\n if (typeof this.packageIds !== 'undefined') {\n toReturn['packageIds'] = this.packageIds;\n }\n return toReturn;\n }\n}\nclass RemoveOpportunityPackagesResponse {\n static fromProto(proto) {\n let m = new RemoveOpportunityPackagesResponse();\n m = Object.assign(m, proto);\n if (proto.opportunity) {\n m.opportunity = Opportunity.fromProto(proto.opportunity);\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.opportunity !== 'undefined' && this.opportunity !== null) {\n toReturn['opportunity'] = 'toApiJson' in this.opportunity ? this.opportunity.toApiJson() : this.opportunity;\n }\n return toReturn;\n }\n}\nclass RemovePipelineStagesRequest {\n static fromProto(proto) {\n let m = new RemovePipelineStagesRequest();\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.pipelineId !== 'undefined') {\n toReturn['pipelineId'] = this.pipelineId;\n }\n if (typeof this.stageIds !== 'undefined') {\n toReturn['stageIds'] = this.stageIds;\n }\n return toReturn;\n }\n}\nclass RemovePipelineStagesResponse {\n static fromProto(proto) {\n let m = new RemovePipelineStagesResponse();\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 ReopenClosedOpportunityRequest {\n static fromProto(proto) {\n let m = new ReopenClosedOpportunityRequest();\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.opportunityId !== 'undefined') {\n toReturn['opportunityId'] = this.opportunityId;\n }\n if (typeof this.accountGroupId !== 'undefined') {\n toReturn['accountGroupId'] = this.accountGroupId;\n }\n if (typeof this.editSalesPersonId !== 'undefined') {\n toReturn['editSalesPersonId'] = this.editSalesPersonId;\n }\n if (typeof this.reason !== 'undefined') {\n toReturn['reason'] = this.reason;\n }\n return toReturn;\n }\n}\nclass RestoreDeletedPipelineRequest {\n static fromProto(proto) {\n let m = new RestoreDeletedPipelineRequest();\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.pipelineId !== 'undefined') {\n toReturn['pipelineId'] = this.pipelineId;\n }\n return toReturn;\n }\n}\nclass RestoreDeletedPipelineResponse {\n static fromProto(proto) {\n let m = new RestoreDeletedPipelineResponse();\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 SalespersonStatsRequest {\n static fromProto(proto) {\n let m = new SalespersonStatsRequest();\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 return toReturn;\n }\n}\nclass SalespersonStatsResponse {\n static fromProto(proto) {\n let m = new SalespersonStatsResponse();\n m = Object.assign(m, proto);\n if (proto.pipelineCloseRates) {\n m.pipelineCloseRates = proto.pipelineCloseRates.map(PipelineClosePoint.fromProto);\n }\n if (proto.pipelineCreationRates) {\n m.pipelineCreationRates = proto.pipelineCreationRates.map(PipelineCreationPoint.fromProto);\n }\n if (proto.currentOpporunities) {\n m.currentOpporunities = proto.currentOpporunities.map(CurrentOpportunityPoint.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.pipelineCloseRates !== 'undefined' && this.pipelineCloseRates !== null) {\n toReturn['pipelineCloseRates'] = 'toApiJson' in this.pipelineCloseRates ? this.pipelineCloseRates.toApiJson() : this.pipelineCloseRates;\n }\n if (typeof this.pipelineCreationRates !== 'undefined' && this.pipelineCreationRates !== null) {\n toReturn['pipelineCreationRates'] = 'toApiJson' in this.pipelineCreationRates ? this.pipelineCreationRates.toApiJson() : this.pipelineCreationRates;\n }\n if (typeof this.currentOpporunities !== 'undefined' && this.currentOpporunities !== null) {\n toReturn['currentOpporunities'] = 'toApiJson' in this.currentOpporunities ? this.currentOpporunities.toApiJson() : this.currentOpporunities;\n }\n return toReturn;\n }\n}\nclass SetPipelineStagesRequest {\n static fromProto(proto) {\n let m = new SetPipelineStagesRequest();\n m = Object.assign(m, proto);\n if (proto.stages) {\n m.stages = proto.stages.map(Stage.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.partnerId !== 'undefined') {\n toReturn['partnerId'] = this.partnerId;\n }\n if (typeof this.pipelineId !== 'undefined') {\n toReturn['pipelineId'] = this.pipelineId;\n }\n if (typeof this.stages !== 'undefined' && this.stages !== null) {\n toReturn['stages'] = 'toApiJson' in this.stages ? this.stages.toApiJson() : this.stages;\n }\n return toReturn;\n }\n}\nclass SetPipelineStagesResponse {\n static fromProto(proto) {\n let m = new SetPipelineStagesResponse();\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 ListGoalsRequestSortOption {\n static fromProto(proto) {\n let m = new ListGoalsRequestSortOption();\n m = Object.assign(m, proto);\n if (proto.direction) {\n m.direction = enumStringToValue(ListGoalsRequestSortDirection, proto.direction);\n }\n if (proto.field) {\n m.field = enumStringToValue(ListGoalsRequestSortField, proto.field);\n }\n return m;\n }\n constructor(kwargs) {\n if (!kwargs) {\n return;\n }\n Object.assign(this, kwargs);\n }\n toApiJson() {\n const toReturn = {};\n if (typeof this.direction !== 'undefined') {\n toReturn['direction'] = this.direction;\n }\n if (typeof this.field !== 'undefined') {\n toReturn['field'] = this.field;\n }\n return toReturn;\n }\n}\nclass UpdateClosedDateRequest {\n static fromProto(proto) {\n let m = new UpdateClosedDateRequest();\n m = Object.assign(m, proto);\n if (proto.closedDate) {\n m.closedDate = new Date(proto.closedDate);\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.opportunityId !== 'undefined') {\n toReturn['opportunityId'] = this.opportunityId;\n }\n if (typeof this.accountGroupId !== 'undefined') {\n toReturn['accountGroupId'] = this.accountGroupId;\n }\n if (typeof this.editSalesPersonId !== 'undefined') {\n toReturn['editSalesPersonId'] = this.editSalesPersonId;\n }\n if (typeof this.closedDate !== 'undefined' && this.closedDate !== null) {\n toReturn['closedDate'] = 'toApiJson' in this.closedDate ? this.closedDate.toApiJson() : this.closedDate;\n }\n return toReturn;\n }\n}\nclass UpdateGoalRequest {\n static fromProto(proto) {\n let m = new UpdateGoalRequest();\n m = Object.assign(m, proto);\n if (proto.start) {\n m.start = new Date(proto.start);\n }\n if (proto.end) {\n m.end = new Date(proto.end);\n }\n if (proto.targets) {\n m.targets = proto.targets.map(Target.fromProto);\n }\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.partnerId !== 'undefined') {\n toReturn['partnerId'] = this.partnerId;\n }\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.contributorId !== 'undefined') {\n toReturn['contributorId'] = this.contributorId;\n }\n if (typeof this.contributorType !== 'undefined') {\n toReturn['contributorType'] = this.contributorType;\n }\n if (typeof this.pipelineIds !== 'undefined') {\n toReturn['pipelineIds'] = this.pipelineIds;\n }\n if (typeof this.start !== 'undefined' && this.start !== null) {\n toReturn['start'] = 'toApiJson' in this.start ? this.start.toApiJson() : this.start;\n }\n if (typeof this.end !== 'undefined' && this.end !== null) {\n toReturn['end'] = 'toApiJson' in this.end ? this.end.toApiJson() : this.end;\n }\n if (typeof this.targets !== 'undefined' && this.targets !== null) {\n toReturn['targets'] = 'toApiJson' in this.targets ? this.targets.toApiJson() : this.targets;\n }\n if (typeof this.fieldMask !== 'undefined' && this.fieldMask !== null) {\n toReturn['fieldMask'] = 'toApiJson' in this.fieldMask ? this.fieldMask.toApiJson() : this.fieldMask;\n }\n return toReturn;\n }\n}\nclass UpdateLastActivityDateRequest {\n static fromProto(proto) {\n let m = new UpdateLastActivityDateRequest();\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.opportunityId !== 'undefined') {\n toReturn['opportunityId'] = this.opportunityId;\n }\n if (typeof this.accountGroupId !== 'undefined') {\n toReturn['accountGroupId'] = this.accountGroupId;\n }\n if (typeof this.editSalesPersonId !== 'undefined') {\n toReturn['editSalesPersonId'] = this.editSalesPersonId;\n }\n if (typeof this.lastActivityDate !== 'undefined' && this.lastActivityDate !== null) {\n toReturn['lastActivityDate'] = 'toApiJson' in this.lastActivityDate ? this.lastActivityDate.toApiJson() : this.lastActivityDate;\n }\n if (typeof this.connected !== 'undefined') {\n toReturn['connected'] = this.connected;\n }\n return toReturn;\n }\n}\nclass UpdateLastActivityDateResponse {\n static fromProto(proto) {\n let m = new UpdateLastActivityDateResponse();\n m = Object.assign(m, proto);\n if (proto.opportunity) {\n m.opportunity = Opportunity.fromProto(proto.opportunity);\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.opportunity !== 'undefined' && this.opportunity !== null) {\n toReturn['opportunity'] = 'toApiJson' in this.opportunity ? this.opportunity.toApiJson() : this.opportunity;\n }\n return toReturn;\n }\n}\nclass UpdateLastConnectedDateRequest {\n static fromProto(proto) {\n let m = new UpdateLastConnectedDateRequest();\n m = Object.assign(m, proto);\n if (proto.lastConnectedDate) {\n m.lastConnectedDate = new Date(proto.lastConnectedDate);\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.opportunityId !== 'undefined') {\n toReturn['opportunityId'] = this.opportunityId;\n }\n if (typeof this.accountGroupId !== 'undefined') {\n toReturn['accountGroupId'] = this.accountGroupId;\n }\n if (typeof this.editSalesPersonId !== 'undefined') {\n toReturn['editSalesPersonId'] = this.editSalesPersonId;\n }\n if (typeof this.lastConnectedDate !== 'undefined' && this.lastConnectedDate !== null) {\n toReturn['lastConnectedDate'] = 'toApiJson' in this.lastConnectedDate ? this.lastConnectedDate.toApiJson() : this.lastConnectedDate;\n }\n return toReturn;\n }\n}\nclass UpdateLastConnectedDateResponse {\n static fromProto(proto) {\n let m = new UpdateLastConnectedDateResponse();\n m = Object.assign(m, proto);\n if (proto.opportunity) {\n m.opportunity = Opportunity.fromProto(proto.opportunity);\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.opportunity !== 'undefined' && this.opportunity !== null) {\n toReturn['opportunity'] = 'toApiJson' in this.opportunity ? this.opportunity.toApiJson() : this.opportunity;\n }\n return toReturn;\n }\n}\nclass UpdateLineItemsRequest {\n static fromProto(proto) {\n let m = new UpdateLineItemsRequest();\n m = Object.assign(m, proto);\n if (proto.lineItems) {\n m.lineItems = proto.lineItems.map(LineItem.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.opportunityId !== 'undefined') {\n toReturn['opportunityId'] = this.opportunityId;\n }\n if (typeof this.accountGroupId !== 'undefined') {\n toReturn['accountGroupId'] = this.accountGroupId;\n }\n if (typeof this.editSalesPersonId !== 'undefined') {\n toReturn['editSalesPersonId'] = this.editSalesPersonId;\n }\n if (typeof this.lineItems !== 'undefined' && this.lineItems !== null) {\n toReturn['lineItems'] = 'toApiJson' in this.lineItems ? this.lineItems.toApiJson() : this.lineItems;\n }\n return toReturn;\n }\n}\nclass UpdateLineItemsResponse {\n static fromProto(proto) {\n let m = new UpdateLineItemsResponse();\n m = Object.assign(m, proto);\n if (proto.opportunity) {\n m.opportunity = Opportunity.fromProto(proto.opportunity);\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.opportunity !== 'undefined' && this.opportunity !== null) {\n toReturn['opportunity'] = 'toApiJson' in this.opportunity ? this.opportunity.toApiJson() : this.opportunity;\n }\n return toReturn;\n }\n}\nclass UpdateMEDDICNotesRequest {\n static fromProto(proto) {\n let m = new UpdateMEDDICNotesRequest();\n m = Object.assign(m, proto);\n if (proto.sectionName) {\n m.sectionName = enumStringToValue(MEDDICSection, proto.sectionName);\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.sectionName !== 'undefined') {\n toReturn['sectionName'] = this.sectionName;\n }\n if (typeof this.sectionNotes !== 'undefined') {\n toReturn['sectionNotes'] = this.sectionNotes;\n }\n if (typeof this.accountGroupId !== 'undefined') {\n toReturn['accountGroupId'] = this.accountGroupId;\n }\n if (typeof this.opportunityId !== 'undefined') {\n toReturn['opportunityId'] = this.opportunityId;\n }\n if (typeof this.editSalesPersonId !== 'undefined') {\n toReturn['editSalesPersonId'] = this.editSalesPersonId;\n }\n return toReturn;\n }\n}\nclass UpdateMEDDICScoringRequest {\n static fromProto(proto) {\n let m = new UpdateMEDDICScoringRequest();\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.opportunityId !== 'undefined') {\n toReturn['opportunityId'] = this.opportunityId;\n }\n if (typeof this.accountGroupId !== 'undefined') {\n toReturn['accountGroupId'] = this.accountGroupId;\n }\n if (typeof this.editSalesPersonId !== 'undefined') {\n toReturn['editSalesPersonId'] = this.editSalesPersonId;\n }\n if (typeof this.metricScoreValue !== 'undefined') {\n toReturn['metricScoreValue'] = this.metricScoreValue;\n }\n if (typeof this.economicBuyerScoreValue !== 'undefined') {\n toReturn['economicBuyerScoreValue'] = this.economicBuyerScoreValue;\n }\n if (typeof this.decisionCriteriaScoreValue !== 'undefined') {\n toReturn['decisionCriteriaScoreValue'] = this.decisionCriteriaScoreValue;\n }\n if (typeof this.decisionProcessScoreValue !== 'undefined') {\n toReturn['decisionProcessScoreValue'] = this.decisionProcessScoreValue;\n }\n if (typeof this.identifyPainScoreValue !== 'undefined') {\n toReturn['identifyPainScoreValue'] = this.identifyPainScoreValue;\n }\n if (typeof this.championScoreValue !== 'undefined') {\n toReturn['championScoreValue'] = this.championScoreValue;\n }\n if (typeof this.competitionScoreValue !== 'undefined') {\n toReturn['competitionScoreValue'] = this.competitionScoreValue;\n }\n if (typeof this.paperProcessScoreValue !== 'undefined') {\n toReturn['paperProcessScoreValue'] = this.paperProcessScoreValue;\n }\n return toReturn;\n }\n}\nclass UpdateOpportunityDurationRequest {\n static fromProto(proto) {\n let m = new UpdateOpportunityDurationRequest();\n m = Object.assign(m, proto);\n if (proto.expectedContractDuration) {\n m.expectedContractDuration = Duration.fromProto(proto.expectedContractDuration);\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.opportunityId !== 'undefined') {\n toReturn['opportunityId'] = this.opportunityId;\n }\n if (typeof this.accountGroupId !== 'undefined') {\n toReturn['accountGroupId'] = this.accountGroupId;\n }\n if (typeof this.editSalesPersonId !== 'undefined') {\n toReturn['editSalesPersonId'] = this.editSalesPersonId;\n }\n if (typeof this.expectedContractDuration !== 'undefined' && this.expectedContractDuration !== null) {\n toReturn['expectedContractDuration'] = 'toApiJson' in this.expectedContractDuration ? this.expectedContractDuration.toApiJson() : this.expectedContractDuration;\n }\n return toReturn;\n }\n}\nclass UpdateOpportunityDurationResponse {\n static fromProto(proto) {\n let m = new UpdateOpportunityDurationResponse();\n m = Object.assign(m, proto);\n if (proto.opportunity) {\n m.opportunity = Opportunity.fromProto(proto.opportunity);\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.opportunity !== 'undefined' && this.opportunity !== null) {\n toReturn['opportunity'] = 'toApiJson' in this.opportunity ? this.opportunity.toApiJson() : this.opportunity;\n }\n return toReturn;\n }\n}\nclass UpdateOpportunityExpectedCloseDateRequest {\n static fromProto(proto) {\n let m = new UpdateOpportunityExpectedCloseDateRequest();\n m = Object.assign(m, proto);\n if (proto.expectedCloseDate) {\n m.expectedCloseDate = new Date(proto.expectedCloseDate);\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.opportunityId !== 'undefined') {\n toReturn['opportunityId'] = this.opportunityId;\n }\n if (typeof this.accountGroupId !== 'undefined') {\n toReturn['accountGroupId'] = this.accountGroupId;\n }\n if (typeof this.editSalesPersonId !== 'undefined') {\n toReturn['editSalesPersonId'] = this.editSalesPersonId;\n }\n if (typeof this.expectedCloseDate !== 'undefined' && this.expectedCloseDate !== null) {\n toReturn['expectedCloseDate'] = 'toApiJson' in this.expectedCloseDate ? this.expectedCloseDate.toApiJson() : this.expectedCloseDate;\n }\n if (typeof this.createSalesActivity !== 'undefined') {\n toReturn['createSalesActivity'] = this.createSalesActivity;\n }\n return toReturn;\n }\n}\nclass UpdateOpportunityExpectedCloseDateResponse {\n static fromProto(proto) {\n let m = new UpdateOpportunityExpectedCloseDateResponse();\n m = Object.assign(m, proto);\n if (proto.opportunity) {\n m.opportunity = Opportunity.fromProto(proto.opportunity);\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.opportunity !== 'undefined' && this.opportunity !== null) {\n toReturn['opportunity'] = 'toApiJson' in this.opportunity ? this.opportunity.toApiJson() : this.opportunity;\n }\n return toReturn;\n }\n}\nclass UpdateOpportunityMarketRequest {\n static fromProto(proto) {\n let m = new UpdateOpportunityMarketRequest();\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.opportunityId !== 'undefined') {\n toReturn['opportunityId'] = this.opportunityId;\n }\n if (typeof this.accountGroupId !== 'undefined') {\n toReturn['accountGroupId'] = this.accountGroupId;\n }\n if (typeof this.editSalesPersonId !== 'undefined') {\n toReturn['editSalesPersonId'] = this.editSalesPersonId;\n }\n if (typeof this.marketId !== 'undefined') {\n toReturn['marketId'] = this.marketId;\n }\n return toReturn;\n }\n}\nclass UpdateOpportunityMarketResponse {\n static fromProto(proto) {\n let m = new UpdateOpportunityMarketResponse();\n m = Object.assign(m, proto);\n if (proto.opportunity) {\n m.opportunity = Opportunity.fromProto(proto.opportunity);\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.opportunity !== 'undefined' && this.opportunity !== null) {\n toReturn['opportunity'] = 'toApiJson' in this.opportunity ? this.opportunity.toApiJson() : this.opportunity;\n }\n return toReturn;\n }\n}\nclass UpdateOpportunityNameRequest {\n static fromProto(proto) {\n let m = new UpdateOpportunityNameRequest();\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.opportunityId !== 'undefined') {\n toReturn['opportunityId'] = this.opportunityId;\n }\n if (typeof this.accountGroupId !== 'undefined') {\n toReturn['accountGroupId'] = this.accountGroupId;\n }\n if (typeof this.editSalesPersonId !== 'undefined') {\n toReturn['editSalesPersonId'] = this.editSalesPersonId;\n }\n if (typeof this.name !== 'undefined') {\n toReturn['name'] = this.name;\n }\n return toReturn;\n }\n}\nclass UpdateOpportunityNameResponse {\n static fromProto(proto) {\n let m = new UpdateOpportunityNameResponse();\n m = Object.assign(m, proto);\n if (proto.opportunity) {\n m.opportunity = Opportunity.fromProto(proto.opportunity);\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.opportunity !== 'undefined' && this.opportunity !== null) {\n toReturn['opportunity'] = 'toApiJson' in this.opportunity ? this.opportunity.toApiJson() : this.opportunity;\n }\n return toReturn;\n }\n}\nclass UpdateOpportunityNotesRequest {\n static fromProto(proto) {\n let m = new UpdateOpportunityNotesRequest();\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.opportunityId !== 'undefined') {\n toReturn['opportunityId'] = this.opportunityId;\n }\n if (typeof this.accountGroupId !== 'undefined') {\n toReturn['accountGroupId'] = this.accountGroupId;\n }\n if (typeof this.editSalesPersonId !== 'undefined') {\n toReturn['editSalesPersonId'] = this.editSalesPersonId;\n }\n if (typeof this.notes !== 'undefined') {\n toReturn['notes'] = this.notes;\n }\n return toReturn;\n }\n}\nclass UpdateOpportunityNotesResponse {\n static fromProto(proto) {\n let m = new UpdateOpportunityNotesResponse();\n m = Object.assign(m, proto);\n if (proto.opportunity) {\n m.opportunity = Opportunity.fromProto(proto.opportunity);\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.opportunity !== 'undefined' && this.opportunity !== null) {\n toReturn['opportunity'] = 'toApiJson' in this.opportunity ? this.opportunity.toApiJson() : this.opportunity;\n }\n return toReturn;\n }\n}\nclass UpdateOpportunityPackageRequest {\n static fromProto(proto) {\n let m = new UpdateOpportunityPackageRequest();\n m = Object.assign(m, proto);\n if (proto.currentRevenue) {\n m.currentRevenue = Revenue.fromProto(proto.currentRevenue);\n }\n if (proto.quantity) {\n m.quantity = parseInt(proto.quantity, 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.opportunityId !== 'undefined') {\n toReturn['opportunityId'] = this.opportunityId;\n }\n if (typeof this.accountGroupId !== 'undefined') {\n toReturn['accountGroupId'] = this.accountGroupId;\n }\n if (typeof this.editSalesPersonId !== 'undefined') {\n toReturn['editSalesPersonId'] = this.editSalesPersonId;\n }\n if (typeof this.packageId !== 'undefined') {\n toReturn['packageId'] = this.packageId;\n }\n if (typeof this.currentRevenue !== 'undefined' && this.currentRevenue !== null) {\n toReturn['currentRevenue'] = 'toApiJson' in this.currentRevenue ? this.currentRevenue.toApiJson() : this.currentRevenue;\n }\n if (typeof this.quantity !== 'undefined') {\n toReturn['quantity'] = this.quantity;\n }\n return toReturn;\n }\n}\nclass UpdateOpportunityPackageResponse {\n static fromProto(proto) {\n let m = new UpdateOpportunityPackageResponse();\n m = Object.assign(m, proto);\n if (proto.opportunity) {\n m.opportunity = Opportunity.fromProto(proto.opportunity);\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.opportunity !== 'undefined' && this.opportunity !== null) {\n toReturn['opportunity'] = 'toApiJson' in this.opportunity ? this.opportunity.toApiJson() : this.opportunity;\n }\n return toReturn;\n }\n}\nclass UpdateOpportunityPackageRevenueRequest {\n static fromProto(proto) {\n let m = new UpdateOpportunityPackageRevenueRequest();\n m = Object.assign(m, proto);\n if (proto.revenue) {\n m.revenue = Revenue.fromProto(proto.revenue);\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.opportunityId !== 'undefined') {\n toReturn['opportunityId'] = this.opportunityId;\n }\n if (typeof this.accountGroupId !== 'undefined') {\n toReturn['accountGroupId'] = this.accountGroupId;\n }\n if (typeof this.editSalesPersonId !== 'undefined') {\n toReturn['editSalesPersonId'] = this.editSalesPersonId;\n }\n if (typeof this.packageId !== 'undefined') {\n toReturn['packageId'] = this.packageId;\n }\n if (typeof this.revenue !== 'undefined' && this.revenue !== null) {\n toReturn['revenue'] = 'toApiJson' in this.revenue ? this.revenue.toApiJson() : this.revenue;\n }\n return toReturn;\n }\n}\nclass UpdateOpportunityPackageRevenueResponse {\n static fromProto(proto) {\n let m = new UpdateOpportunityPackageRevenueResponse();\n m = Object.assign(m, proto);\n if (proto.opportunity) {\n m.opportunity = Opportunity.fromProto(proto.opportunity);\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.opportunity !== 'undefined' && this.opportunity !== null) {\n toReturn['opportunity'] = 'toApiJson' in this.opportunity ? this.opportunity.toApiJson() : this.opportunity;\n }\n return toReturn;\n }\n}\nclass UpdateOpportunityPipelineRequest {\n static fromProto(proto) {\n let m = new UpdateOpportunityPipelineRequest();\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.opportunityId !== 'undefined') {\n toReturn['opportunityId'] = this.opportunityId;\n }\n if (typeof this.accountGroupId !== 'undefined') {\n toReturn['accountGroupId'] = this.accountGroupId;\n }\n if (typeof this.editSalesPersonId !== 'undefined') {\n toReturn['editSalesPersonId'] = this.editSalesPersonId;\n }\n if (typeof this.pipelineId !== 'undefined') {\n toReturn['pipelineId'] = this.pipelineId;\n }\n return toReturn;\n }\n}\nclass UpdateOpportunityPipelineResponse {\n static fromProto(proto) {\n let m = new UpdateOpportunityPipelineResponse();\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 UpdateOpportunityProbabilityRequest {\n static fromProto(proto) {\n let m = new UpdateOpportunityProbabilityRequest();\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.opportunityId !== 'undefined') {\n toReturn['opportunityId'] = this.opportunityId;\n }\n if (typeof this.accountGroupId !== 'undefined') {\n toReturn['accountGroupId'] = this.accountGroupId;\n }\n if (typeof this.editSalesPersonId !== 'undefined') {\n toReturn['editSalesPersonId'] = this.editSalesPersonId;\n }\n if (typeof this.probability !== 'undefined') {\n toReturn['probability'] = this.probability;\n }\n return toReturn;\n }\n}\nclass UpdateOpportunityProbabilityResponse {\n static fromProto(proto) {\n let m = new UpdateOpportunityProbabilityResponse();\n m = Object.assign(m, proto);\n if (proto.opportunity) {\n m.opportunity = Opportunity.fromProto(proto.opportunity);\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.opportunity !== 'undefined' && this.opportunity !== null) {\n toReturn['opportunity'] = 'toApiJson' in this.opportunity ? this.opportunity.toApiJson() : this.opportunity;\n }\n return toReturn;\n }\n}\nclass UpdateOpportunitySalespersonRequest {\n static fromProto(proto) {\n let m = new UpdateOpportunitySalespersonRequest();\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.opportunityId !== 'undefined') {\n toReturn['opportunityId'] = this.opportunityId;\n }\n if (typeof this.accountGroupId !== 'undefined') {\n toReturn['accountGroupId'] = this.accountGroupId;\n }\n if (typeof this.editSalesPersonId !== 'undefined') {\n toReturn['editSalesPersonId'] = this.editSalesPersonId;\n }\n if (typeof this.salesPersonId !== 'undefined') {\n toReturn['salesPersonId'] = this.salesPersonId;\n }\n if (typeof this.createSalesActivity !== 'undefined') {\n toReturn['createSalesActivity'] = this.createSalesActivity;\n }\n return toReturn;\n }\n}\nclass UpdateOpportunitySalespersonResponse {\n static fromProto(proto) {\n let m = new UpdateOpportunitySalespersonResponse();\n m = Object.assign(m, proto);\n if (proto.opportunity) {\n m.opportunity = Opportunity.fromProto(proto.opportunity);\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.opportunity !== 'undefined' && this.opportunity !== null) {\n toReturn['opportunity'] = 'toApiJson' in this.opportunity ? this.opportunity.toApiJson() : this.opportunity;\n }\n return toReturn;\n }\n}\nclass UpdateOpportunityTagsRequest {\n static fromProto(proto) {\n let m = new UpdateOpportunityTagsRequest();\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.opportunityId !== 'undefined') {\n toReturn['opportunityId'] = this.opportunityId;\n }\n if (typeof this.accountGroupId !== 'undefined') {\n toReturn['accountGroupId'] = this.accountGroupId;\n }\n if (typeof this.editSalesPersonId !== 'undefined') {\n toReturn['editSalesPersonId'] = this.editSalesPersonId;\n }\n if (typeof this.tags !== 'undefined') {\n toReturn['tags'] = this.tags;\n }\n return toReturn;\n }\n}\nclass UpdateOpportunityTagsResponse {\n static fromProto(proto) {\n let m = new UpdateOpportunityTagsResponse();\n m = Object.assign(m, proto);\n if (proto.opportunity) {\n m.opportunity = Opportunity.fromProto(proto.opportunity);\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.opportunity !== 'undefined' && this.opportunity !== null) {\n toReturn['opportunity'] = 'toApiJson' in this.opportunity ? this.opportunity.toApiJson() : this.opportunity;\n }\n return toReturn;\n }\n}\nclass UpdateOpportunityTypeRequest {\n static fromProto(proto) {\n let m = new UpdateOpportunityTypeRequest();\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.opportunityId !== 'undefined') {\n toReturn['opportunityId'] = this.opportunityId;\n }\n if (typeof this.accountGroupId !== 'undefined') {\n toReturn['accountGroupId'] = this.accountGroupId;\n }\n if (typeof this.opportunityType !== 'undefined') {\n toReturn['opportunityType'] = this.opportunityType;\n }\n if (typeof this.editSalesPersonId !== 'undefined') {\n toReturn['editSalesPersonId'] = this.editSalesPersonId;\n }\n return toReturn;\n }\n}\nclass UpdateOpportunityTypeResponse {\n static fromProto(proto) {\n let m = new UpdateOpportunityTypeResponse();\n m = Object.assign(m, proto);\n if (proto.opportunity) {\n m.opportunity = Opportunity.fromProto(proto.opportunity);\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.opportunity !== 'undefined' && this.opportunity !== null) {\n toReturn['opportunity'] = 'toApiJson' in this.opportunity ? this.opportunity.toApiJson() : this.opportunity;\n }\n return toReturn;\n }\n}\nclass UpdatePipelineNameRequest {\n static fromProto(proto) {\n let m = new UpdatePipelineNameRequest();\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.pipelineId !== 'undefined') {\n toReturn['pipelineId'] = this.pipelineId;\n }\n if (typeof this.name !== 'undefined') {\n toReturn['name'] = this.name;\n }\n return toReturn;\n }\n}\nclass UpdatePipelineNameResponse {\n static fromProto(proto) {\n let m = new UpdatePipelineNameResponse();\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 UpdatePipelineStageNameRequest {\n static fromProto(proto) {\n let m = new UpdatePipelineStageNameRequest();\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.pipelineId !== 'undefined') {\n toReturn['pipelineId'] = this.pipelineId;\n }\n if (typeof this.stageId !== 'undefined') {\n toReturn['stageId'] = this.stageId;\n }\n if (typeof this.stageName !== 'undefined') {\n toReturn['stageName'] = this.stageName;\n }\n return toReturn;\n }\n}\nclass UpdatePipelineStageNameResponse {\n static fromProto(proto) {\n let m = new UpdatePipelineStageNameResponse();\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 UpdatePipelineStageProbabilityRequest {\n static fromProto(proto) {\n let m = new UpdatePipelineStageProbabilityRequest();\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.pipelineId !== 'undefined') {\n toReturn['pipelineId'] = this.pipelineId;\n }\n if (typeof this.stageId !== 'undefined') {\n toReturn['stageId'] = this.stageId;\n }\n if (typeof this.probability !== 'undefined') {\n toReturn['probability'] = this.probability;\n }\n return toReturn;\n }\n}\nclass UpdatePipelineStageProbabilityResponse {\n static fromProto(proto) {\n let m = new UpdatePipelineStageProbabilityResponse();\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 UpdateSubscriberUserIDsRequest {\n static fromProto(proto) {\n let m = new UpdateSubscriberUserIDsRequest();\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.opportunityId !== 'undefined') {\n toReturn['opportunityId'] = this.opportunityId;\n }\n if (typeof this.accountGroupId !== 'undefined') {\n toReturn['accountGroupId'] = this.accountGroupId;\n }\n if (typeof this.editSalesPersonId !== 'undefined') {\n toReturn['editSalesPersonId'] = this.editSalesPersonId;\n }\n if (typeof this.subscriberUserIds !== 'undefined') {\n toReturn['subscriberUserIds'] = this.subscriberUserIds;\n }\n return toReturn;\n }\n}\n\n// *********************************\n// Code generated by sdkgen\n// DO NOT EDIT!.\n//\n// Objects Index.\n// *********************************\n\nconst environment = (window ? window['environment'] : 'prod') ?? 'prod';\nconst hostMap = {\n 'local': 'sales-opportunities.vendasta-local.com',\n 'test': '',\n 'demo': 'sales-opportunities-demo.apigateway.co',\n 'prod': 'sales-opportunities-prod.apigateway.co',\n 'production': 'sales-opportunities-prod.apigateway.co'\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(t) {\n return new (t || HostService)();\n };\n HostService.ɵprov = /* @__PURE__ */i0.ɵɵdefineInjectable({\n token: HostService,\n factory: HostService.ɵfac,\n providedIn: 'root'\n });\n return HostService;\n})();\n(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && void 0;\n})();\n\n// *********************************\n// Code generated by sdkgen\n// DO NOT EDIT!.\n//\n// API Service.\n// *********************************\nlet GoalsApiService = /*#__PURE__*/(() => {\n class GoalsApiService {\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 create(r) {\n const request = r.toApiJson ? r : new CreateGoalRequest(r);\n return this.http.post(this._host + \"/salesopportunities.v1.Goals/Create\", request.toApiJson(), this.apiOptions()).pipe(map(resp => GoalResponse.fromProto(resp)));\n }\n update(r) {\n const request = r.toApiJson ? r : new UpdateGoalRequest(r);\n return this.http.post(this._host + \"/salesopportunities.v1.Goals/Update\", request.toApiJson(), this.apiOptions()).pipe(map(resp => GoalResponse.fromProto(resp)));\n }\n get(r) {\n const request = r.toApiJson ? r : new GetGoalRequest(r);\n return this.http.post(this._host + \"/salesopportunities.v1.Goals/Get\", request.toApiJson(), this.apiOptions()).pipe(map(resp => GoalResponse.fromProto(resp)));\n }\n list(r) {\n const request = r.toApiJson ? r : new ListGoalsRequest(r);\n return this.http.post(this._host + \"/salesopportunities.v1.Goals/List\", request.toApiJson(), this.apiOptions()).pipe(map(resp => ListGoalsResponse.fromProto(resp)));\n }\n delete(r) {\n const request = r.toApiJson ? r : new DeleteGoalRequest(r);\n return this.http.post(this._host + \"/salesopportunities.v1.Goals/Delete\", request.toApiJson(), {\n ...this.apiOptions(),\n observe: 'response'\n });\n }\n archive(r) {\n const request = r.toApiJson ? r : new ArchiveGoalRequest(r);\n return this.http.post(this._host + \"/salesopportunities.v1.Goals/Archive\", request.toApiJson(), {\n ...this.apiOptions(),\n observe: 'response'\n });\n }\n }\n GoalsApiService.ɵfac = function GoalsApiService_Factory(t) {\n return new (t || GoalsApiService)(i0.ɵɵinject(i1.HttpClient), i0.ɵɵinject(HostService));\n };\n GoalsApiService.ɵprov = /* @__PURE__ */i0.ɵɵdefineInjectable({\n token: GoalsApiService,\n factory: GoalsApiService.ɵfac,\n providedIn: 'root'\n });\n return GoalsApiService;\n})();\n(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && void 0;\n})();\n\n// *********************************\n// Code generated by sdkgen\n// DO NOT EDIT!.\n//\n// API Service.\n// *********************************\nlet OpportunityScoringApiService = /*#__PURE__*/(() => {\n class OpportunityScoringApiService {\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 getMeddicScores(r) {\n const request = r.toApiJson ? r : new GetMEDDICScoresRequest(r);\n return this.http.post(this._host + \"/salesopportunities.v1.OpportunityScoring/GetMEDDICScores\", request.toApiJson(), this.apiOptions()).pipe(map(resp => GetMEDDICScoresResponse.fromProto(resp)));\n }\n updateMeddicScoringForOpportunity(r) {\n const request = r.toApiJson ? r : new UpdateMEDDICScoringRequest(r);\n return this.http.post(this._host + \"/salesopportunities.v1.OpportunityScoring/UpdateMEDDICScoringForOpportunity\", request.toApiJson(), {\n ...this.apiOptions(),\n observe: 'response'\n });\n }\n updateMeddicNotesForOpportunity(r) {\n const request = r.toApiJson ? r : new UpdateMEDDICNotesRequest(r);\n return this.http.post(this._host + \"/salesopportunities.v1.OpportunityScoring/UpdateMEDDICNotesForOpportunity\", request.toApiJson(), {\n ...this.apiOptions(),\n observe: 'response'\n });\n }\n getMeddicSections(r) {\n const request = r.toApiJson ? r : new GetMEDDICSectionsRequest(r);\n return this.http.post(this._host + \"/salesopportunities.v1.OpportunityScoring/GetMEDDICSections\", request.toApiJson(), this.apiOptions()).pipe(map(resp => GetMEDDICSectionsResponse.fromProto(resp)));\n }\n }\n OpportunityScoringApiService.ɵfac = function OpportunityScoringApiService_Factory(t) {\n return new (t || OpportunityScoringApiService)(i0.ɵɵinject(i1.HttpClient), i0.ɵɵinject(HostService));\n };\n OpportunityScoringApiService.ɵprov = /* @__PURE__ */i0.ɵɵdefineInjectable({\n token: OpportunityScoringApiService,\n factory: OpportunityScoringApiService.ɵfac,\n providedIn: 'root'\n });\n return OpportunityScoringApiService;\n})();\n(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && void 0;\n})();\n\n// *********************************\n// Code generated by sdkgen\n// DO NOT EDIT!.\n//\n// API Service.\n// *********************************\nlet SalesOpportunitiesApiService = /*#__PURE__*/(() => {\n class SalesOpportunitiesApiService {\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 createOpportunity(r) {\n const request = r.toApiJson ? r : new CreateOpportunityRequest(r);\n return this.http.post(this._host + \"/salesopportunities.v1.SalesOpportunities/CreateOpportunity\", request.toApiJson(), this.apiOptions()).pipe(map(resp => CreateOpportunityResponse.fromProto(resp)));\n }\n getOpportunity(r) {\n const request = r.toApiJson ? r : new GetOpportunityRequest(r);\n return this.http.post(this._host + \"/salesopportunities.v1.SalesOpportunities/GetOpportunity\", request.toApiJson(), this.apiOptions()).pipe(map(resp => GetOpportunityResponse.fromProto(resp)));\n }\n getOpportunityByIdempotencyKey(r) {\n const request = r.toApiJson ? r : new GetOpportunityByIdempotencyKeyRequest(r);\n return this.http.post(this._host + \"/salesopportunities.v1.SalesOpportunities/GetOpportunityByIdempotencyKey\", request.toApiJson(), this.apiOptions()).pipe(map(resp => GetOpportunityResponse.fromProto(resp)));\n }\n listOpportunities(r) {\n const request = r.toApiJson ? r : new ListOpportunitiesRequest(r);\n return this.http.post(this._host + \"/salesopportunities.v1.SalesOpportunities/ListOpportunities\", request.toApiJson(), this.apiOptions()).pipe(map(resp => ListOpportunitiesResponse.fromProto(resp)));\n }\n getOpportunityCountByAccountGroups(r) {\n const request = r.toApiJson ? r : new GetOpportunityCountByAccountGroupsRequest(r);\n return this.http.post(this._host + \"/salesopportunities.v1.SalesOpportunities/GetOpportunityCountByAccountGroups\", request.toApiJson(), this.apiOptions()).pipe(map(resp => GetOpportunityCountByAccountGroupsResponse.fromProto(resp)));\n }\n updateOpportunityName(r) {\n const request = r.toApiJson ? r : new UpdateOpportunityNameRequest(r);\n return this.http.post(this._host + \"/salesopportunities.v1.SalesOpportunities/UpdateOpportunityName\", request.toApiJson(), this.apiOptions()).pipe(map(resp => UpdateOpportunityNameResponse.fromProto(resp)));\n }\n updateOpportunityProbability(r) {\n const request = r.toApiJson ? r : new UpdateOpportunityProbabilityRequest(r);\n return this.http.post(this._host + \"/salesopportunities.v1.SalesOpportunities/UpdateOpportunityProbability\", request.toApiJson(), this.apiOptions()).pipe(map(resp => UpdateOpportunityProbabilityResponse.fromProto(resp)));\n }\n updateOpportunityType(r) {\n const request = r.toApiJson ? r : new UpdateOpportunityTypeRequest(r);\n return this.http.post(this._host + \"/salesopportunities.v1.SalesOpportunities/UpdateOpportunityType\", request.toApiJson(), this.apiOptions()).pipe(map(resp => UpdateOpportunityTypeResponse.fromProto(resp)));\n }\n updateOpportunitySalesperson(r) {\n const request = r.toApiJson ? r : new UpdateOpportunitySalespersonRequest(r);\n return this.http.post(this._host + \"/salesopportunities.v1.SalesOpportunities/UpdateOpportunitySalesperson\", request.toApiJson(), this.apiOptions()).pipe(map(resp => UpdateOpportunitySalespersonResponse.fromProto(resp)));\n }\n updateOpportunityExpectedCloseDate(r) {\n const request = r.toApiJson ? r : new UpdateOpportunityExpectedCloseDateRequest(r);\n return this.http.post(this._host + \"/salesopportunities.v1.SalesOpportunities/UpdateOpportunityExpectedCloseDate\", request.toApiJson(), this.apiOptions()).pipe(map(resp => UpdateOpportunityExpectedCloseDateResponse.fromProto(resp)));\n }\n updateOpportunityNotes(r) {\n const request = r.toApiJson ? r : new UpdateOpportunityNotesRequest(r);\n return this.http.post(this._host + \"/salesopportunities.v1.SalesOpportunities/UpdateOpportunityNotes\", request.toApiJson(), this.apiOptions()).pipe(map(resp => UpdateOpportunityNotesResponse.fromProto(resp)));\n }\n addOpportunityPackages(r) {\n const request = r.toApiJson ? r : new AddOpportunityPackagesRequest(r);\n return this.http.post(this._host + \"/salesopportunities.v1.SalesOpportunities/AddOpportunityPackages\", request.toApiJson(), this.apiOptions()).pipe(map(resp => AddOpportunityPackagesResponse.fromProto(resp)));\n }\n removeOpportunityPackages(r) {\n const request = r.toApiJson ? r : new RemoveOpportunityPackagesRequest(r);\n return this.http.post(this._host + \"/salesopportunities.v1.SalesOpportunities/RemoveOpportunityPackages\", request.toApiJson(), this.apiOptions()).pipe(map(resp => RemoveOpportunityPackagesResponse.fromProto(resp)));\n }\n updateOpportunityPackageRevenue(r) {\n const request = r.toApiJson ? r : new UpdateOpportunityPackageRevenueRequest(r);\n return this.http.post(this._host + \"/salesopportunities.v1.SalesOpportunities/UpdateOpportunityPackageRevenue\", request.toApiJson(), this.apiOptions()).pipe(map(resp => UpdateOpportunityPackageRevenueResponse.fromProto(resp)));\n }\n updateOpportunityPackage(r) {\n const request = r.toApiJson ? r : new UpdateOpportunityPackageRequest(r);\n return this.http.post(this._host + \"/salesopportunities.v1.SalesOpportunities/UpdateOpportunityPackage\", request.toApiJson(), this.apiOptions()).pipe(map(resp => UpdateOpportunityPackageResponse.fromProto(resp)));\n }\n closeAsWonOpportunity(r) {\n const request = r.toApiJson ? r : new CloseAsWonOpportunityRequest(r);\n return this.http.post(this._host + \"/salesopportunities.v1.SalesOpportunities/CloseAsWonOpportunity\", request.toApiJson(), this.apiOptions()).pipe(map(resp => CloseAsWonOpportunityResponse.fromProto(resp)));\n }\n closeAsLostOpportunity(r) {\n const request = r.toApiJson ? r : new CloseAsLostOpportunityRequest(r);\n return this.http.post(this._host + \"/salesopportunities.v1.SalesOpportunities/CloseAsLostOpportunity\", request.toApiJson(), this.apiOptions()).pipe(map(resp => CloseAsLostOpportunityResponse.fromProto(resp)));\n }\n updateLastConnectedDate(r) {\n const request = r.toApiJson ? r : new UpdateLastConnectedDateRequest(r);\n return this.http.post(this._host + \"/salesopportunities.v1.SalesOpportunities/UpdateLastConnectedDate\", request.toApiJson(), this.apiOptions()).pipe(map(resp => UpdateLastConnectedDateResponse.fromProto(resp)));\n }\n updateLastActivityDate(r) {\n const request = r.toApiJson ? r : new UpdateLastActivityDateRequest(r);\n return this.http.post(this._host + \"/salesopportunities.v1.SalesOpportunities/UpdateLastActivityDate\", request.toApiJson(), this.apiOptions()).pipe(map(resp => UpdateLastActivityDateResponse.fromProto(resp)));\n }\n deleteOpportunity(r) {\n const request = r.toApiJson ? r : new DeleteOpportunityRequest(r);\n return this.http.post(this._host + \"/salesopportunities.v1.SalesOpportunities/DeleteOpportunity\", request.toApiJson(), {\n ...this.apiOptions(),\n observe: 'response'\n });\n }\n reopenClosedOpportunity(r) {\n const request = r.toApiJson ? r : new ReopenClosedOpportunityRequest(r);\n return this.http.post(this._host + \"/salesopportunities.v1.SalesOpportunities/ReopenClosedOpportunity\", request.toApiJson(), {\n ...this.apiOptions(),\n observe: 'response'\n });\n }\n updateOpportunityMarket(r) {\n const request = r.toApiJson ? r : new UpdateOpportunityMarketRequest(r);\n return this.http.post(this._host + \"/salesopportunities.v1.SalesOpportunities/UpdateOpportunityMarket\", request.toApiJson(), this.apiOptions()).pipe(map(resp => UpdateOpportunityMarketResponse.fromProto(resp)));\n }\n getSalespersonStats(r) {\n const request = r.toApiJson ? r : new SalespersonStatsRequest(r);\n return this.http.post(this._host + \"/salesopportunities.v1.SalesOpportunities/GetSalespersonStats\", request.toApiJson(), this.apiOptions()).pipe(map(resp => SalespersonStatsResponse.fromProto(resp)));\n }\n updateOpportunityTags(r) {\n const request = r.toApiJson ? r : new UpdateOpportunityTagsRequest(r);\n return this.http.post(this._host + \"/salesopportunities.v1.SalesOpportunities/UpdateOpportunityTags\", request.toApiJson(), this.apiOptions()).pipe(map(resp => UpdateOpportunityTagsResponse.fromProto(resp)));\n }\n getTagsForOpportunities(r) {\n const request = r.toApiJson ? r : new GetTagsForOpportunitiesRequest(r);\n return this.http.post(this._host + \"/salesopportunities.v1.SalesOpportunities/GetTagsForOpportunities\", request.toApiJson(), this.apiOptions()).pipe(map(resp => GetTagsForOpportunitiesResponse.fromProto(resp)));\n }\n updateOpportunityDuration(r) {\n const request = r.toApiJson ? r : new UpdateOpportunityDurationRequest(r);\n return this.http.post(this._host + \"/salesopportunities.v1.SalesOpportunities/UpdateOpportunityDuration\", request.toApiJson(), this.apiOptions()).pipe(map(resp => UpdateOpportunityDurationResponse.fromProto(resp)));\n }\n updateOpportunityPipeline(r) {\n const request = r.toApiJson ? r : new UpdateOpportunityPipelineRequest(r);\n return this.http.post(this._host + \"/salesopportunities.v1.SalesOpportunities/UpdateOpportunityPipeline\", request.toApiJson(), {\n ...this.apiOptions(),\n observe: 'response'\n });\n }\n addAttachmentToOpportunity(r) {\n const request = r.toApiJson ? r : new AddAttachmentToOpportunityRequest(r);\n return this.http.post(this._host + \"/salesopportunities.v1.SalesOpportunities/AddAttachmentToOpportunity\", request.toApiJson(), {\n ...this.apiOptions(),\n observe: 'response'\n });\n }\n updateClosedDateForOpportunity(r) {\n const request = r.toApiJson ? r : new UpdateClosedDateRequest(r);\n return this.http.post(this._host + \"/salesopportunities.v1.SalesOpportunities/UpdateClosedDateForOpportunity\", request.toApiJson(), {\n ...this.apiOptions(),\n observe: 'response'\n });\n }\n updateLineItemsForOpportunity(r) {\n const request = r.toApiJson ? r : new UpdateLineItemsRequest(r);\n return this.http.post(this._host + \"/salesopportunities.v1.SalesOpportunities/UpdateLineItemsForOpportunity\", request.toApiJson(), this.apiOptions()).pipe(map(resp => UpdateLineItemsResponse.fromProto(resp)));\n }\n updateSubscriberUserIDsForOpportunity(r) {\n const request = r.toApiJson ? r : new UpdateSubscriberUserIDsRequest(r);\n return this.http.post(this._host + \"/salesopportunities.v1.SalesOpportunities/UpdateSubscriberUserIDsForOpportunity\", request.toApiJson(), {\n ...this.apiOptions(),\n observe: 'response'\n });\n }\n getOpportunityValueByAccountGroups(r) {\n const request = r.toApiJson ? r : new GetOpportunityValueByAccountGroupsRequest(r);\n return this.http.post(this._host + \"/salesopportunities.v1.SalesOpportunities/GetOpportunityValueByAccountGroups\", request.toApiJson(), this.apiOptions()).pipe(map(resp => GetOpportunityValueByAccountGroupsResponse.fromProto(resp)));\n }\n initiateOpportunityExport(r) {\n const request = r.toApiJson ? r : new InitiateOpportunityExportRequest(r);\n return this.http.post(this._host + \"/salesopportunities.v1.SalesOpportunities/InitiateOpportunityExport\", request.toApiJson(), this.apiOptions()).pipe(map(resp => InitiateOpportunityExportResponse.fromProto(resp)));\n }\n }\n SalesOpportunitiesApiService.ɵfac = function SalesOpportunitiesApiService_Factory(t) {\n return new (t || SalesOpportunitiesApiService)(i0.ɵɵinject(i1.HttpClient), i0.ɵɵinject(HostService));\n };\n SalesOpportunitiesApiService.ɵprov = /* @__PURE__ */i0.ɵɵdefineInjectable({\n token: SalesOpportunitiesApiService,\n factory: SalesOpportunitiesApiService.ɵfac,\n providedIn: 'root'\n });\n return SalesOpportunitiesApiService;\n})();\n(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && void 0;\n})();\n\n// *********************************\n// Code generated by sdkgen\n// DO NOT EDIT!.\n//\n// API Service.\n// *********************************\nlet SalesPipelinesApiService = /*#__PURE__*/(() => {\n class SalesPipelinesApiService {\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 createPipeline(r) {\n const request = r.toApiJson ? r : new CreatePipelineRequest(r);\n return this.http.post(this._host + \"/salesopportunities.v1.SalesPipelines/CreatePipeline\", request.toApiJson(), this.apiOptions()).pipe(map(resp => CreatePipelineResponse.fromProto(resp)));\n }\n listPipelines(r) {\n const request = r.toApiJson ? r : new ListPipelinesRequest(r);\n return this.http.post(this._host + \"/salesopportunities.v1.SalesPipelines/ListPipelines\", request.toApiJson(), this.apiOptions()).pipe(map(resp => ListPipelinesResponse.fromProto(resp)));\n }\n updatePipelineName(r) {\n const request = r.toApiJson ? r : new UpdatePipelineNameRequest(r);\n return this.http.post(this._host + \"/salesopportunities.v1.SalesPipelines/UpdatePipelineName\", request.toApiJson(), this.apiOptions()).pipe(map(resp => UpdatePipelineNameResponse.fromProto(resp)));\n }\n updatePipelineStageName(r) {\n const request = r.toApiJson ? r : new UpdatePipelineStageNameRequest(r);\n return this.http.post(this._host + \"/salesopportunities.v1.SalesPipelines/UpdatePipelineStageName\", request.toApiJson(), this.apiOptions()).pipe(map(resp => UpdatePipelineStageNameResponse.fromProto(resp)));\n }\n updatePipelineStageProbability(r) {\n const request = r.toApiJson ? r : new UpdatePipelineStageProbabilityRequest(r);\n return this.http.post(this._host + \"/salesopportunities.v1.SalesPipelines/UpdatePipelineStageProbability\", request.toApiJson(), this.apiOptions()).pipe(map(resp => UpdatePipelineStageProbabilityResponse.fromProto(resp)));\n }\n setPipelineStages(r) {\n const request = r.toApiJson ? r : new SetPipelineStagesRequest(r);\n return this.http.post(this._host + \"/salesopportunities.v1.SalesPipelines/SetPipelineStages\", request.toApiJson(), this.apiOptions()).pipe(map(resp => SetPipelineStagesResponse.fromProto(resp)));\n }\n addPipelineStages(r) {\n const request = r.toApiJson ? r : new AddPipelineStagesRequest(r);\n return this.http.post(this._host + \"/salesopportunities.v1.SalesPipelines/AddPipelineStages\", request.toApiJson(), this.apiOptions()).pipe(map(resp => AddPipelineStagesResponse.fromProto(resp)));\n }\n removePipelineStages(r) {\n const request = r.toApiJson ? r : new RemovePipelineStagesRequest(r);\n return this.http.post(this._host + \"/salesopportunities.v1.SalesPipelines/RemovePipelineStages\", request.toApiJson(), this.apiOptions()).pipe(map(resp => RemovePipelineStagesResponse.fromProto(resp)));\n }\n deletePipeline(r) {\n const request = r.toApiJson ? r : new DeletePipelineRequest(r);\n return this.http.post(this._host + \"/salesopportunities.v1.SalesPipelines/DeletePipeline\", request.toApiJson(), this.apiOptions()).pipe(map(resp => DeletePipelineResponse.fromProto(resp)));\n }\n }\n SalesPipelinesApiService.ɵfac = function SalesPipelinesApiService_Factory(t) {\n return new (t || SalesPipelinesApiService)(i0.ɵɵinject(i1.HttpClient), i0.ɵɵinject(HostService));\n };\n SalesPipelinesApiService.ɵprov = /* @__PURE__ */i0.ɵɵdefineInjectable({\n token: SalesPipelinesApiService,\n factory: SalesPipelinesApiService.ɵfac,\n providedIn: 'root'\n });\n return SalesPipelinesApiService;\n})();\n(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && void 0;\n})();\n\n// *********************************\n// Code generated by sdkgen\n// DO NOT EDIT!.\n//\n// API Service.\n// *********************************\nlet SalesPipelinesAdminApiService = /*#__PURE__*/(() => {\n class SalesPipelinesAdminApiService {\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 restoreDeletedPipeline(r) {\n const request = r.toApiJson ? r : new RestoreDeletedPipelineRequest(r);\n return this.http.post(this._host + \"/salesopportunities.v1.SalesPipelinesAdmin/RestoreDeletedPipeline\", request.toApiJson(), this.apiOptions()).pipe(map(resp => RestoreDeletedPipelineResponse.fromProto(resp)));\n }\n }\n SalesPipelinesAdminApiService.ɵfac = function SalesPipelinesAdminApiService_Factory(t) {\n return new (t || SalesPipelinesAdminApiService)(i0.ɵɵinject(i1.HttpClient), i0.ɵɵinject(HostService));\n };\n SalesPipelinesAdminApiService.ɵprov = /* @__PURE__ */i0.ɵɵdefineInjectable({\n token: SalesPipelinesAdminApiService,\n factory: SalesPipelinesAdminApiService.ɵfac,\n providedIn: 'root'\n });\n return SalesPipelinesAdminApiService;\n})();\n(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && void 0;\n})();\n\n// *********************************\n// Code generated by sdkgen\n// DO NOT EDIT!.\n//\n// Index.\n// *********************************\n\nconst DEFAULT_PIPELINE_ID = 'DEFAULT';\nlet SalesOpportunitiesService = /*#__PURE__*/(() => {\n class SalesOpportunitiesService {\n constructor(_api) {\n this._api = _api;\n }\n updateOpportunityExpectedCloseDate(accountGroupId, opportunityId, editSalesPersonId, expectedCloseDate, createSalesActivity) {\n const req = {\n accountGroupId: accountGroupId,\n opportunityId: opportunityId,\n editSalesPersonId: editSalesPersonId,\n expectedCloseDate: expectedCloseDate,\n createSalesActivity: createSalesActivity ?? false\n };\n return this._api.updateOpportunityExpectedCloseDate(req).pipe(map(resp => resp.opportunity));\n }\n updateOpportunitySalesperson(accountGroupId, opportunityId, editSalesPersonId, salesPersonId, createSalesActivity) {\n const req = {\n accountGroupId: accountGroupId,\n opportunityId: opportunityId,\n editSalesPersonId: editSalesPersonId,\n salesPersonId: salesPersonId,\n createSalesActivity: createSalesActivity ?? false\n };\n return this._api.updateOpportunitySalesperson(req).pipe(map(resp => resp.opportunity));\n }\n addAttachment(opportunityId, accountGroupId, name, url) {\n return this._api.addAttachmentToOpportunity({\n opportunityId: opportunityId,\n accountGroupId: accountGroupId,\n name: name,\n url: url\n });\n }\n create(accountGroupId, salesPersonId, marketId, partnerId, expectedCloseDate, probability, pipelineId, name, packages, notes, tags, expectedContractDuration, lineItems, subscriberUserIds, opportunityType) {\n return this._api.createOpportunity(new CreateOpportunityRequest({\n accountGroupId: accountGroupId,\n salesPersonId: salesPersonId,\n marketId: marketId,\n partnerId: partnerId,\n packages: packages,\n expectedCloseDate: expectedCloseDate,\n probability: probability,\n name: name,\n notes: notes,\n tags: tags,\n expectedContractDuration: expectedContractDuration,\n pipelineId: pipelineId,\n lineItems: lineItems,\n subscriberUserIds: subscriberUserIds,\n opportunityType: opportunityType\n })).pipe(map(resp => resp.opportunity));\n }\n get(opportunityId, accountGroupId) {\n return this._api.getOpportunity({\n opportunityId: opportunityId,\n accountGroupId: accountGroupId\n }).pipe(map(resp => resp.opportunity));\n }\n getTags(partnerId, marketId) {\n return this._api.getTagsForOpportunities({\n partnerId,\n marketId\n }).pipe(map(resp => resp.tags || []));\n }\n updateTags(opportunityID, accountGroupID, editSalespersonID, tags) {\n return this._api.updateOpportunityTags({\n opportunityId: opportunityID,\n accountGroupId: accountGroupID,\n editSalesPersonId: editSalespersonID,\n tags: tags\n }).pipe(map(resp => resp.opportunity));\n }\n updateOpportunityNotes(opportunityId, accountGroupId, editSalesPersonId, notes) {\n return this._api.updateOpportunityNotes({\n opportunityId: opportunityId,\n accountGroupId: accountGroupId,\n editSalesPersonId: editSalesPersonId,\n notes: notes\n }).pipe(map(resp => resp.opportunity));\n }\n getOpportunityCountByAccountGroups(accountGroupIds, onlyOpen, partnerId, marketId) {\n return this._api.getOpportunityCountByAccountGroups({\n accountGroupIds: accountGroupIds,\n onlyUnclosed: onlyOpen,\n partnerId: partnerId,\n marketId: marketId\n }).pipe(map(resp => resp.results));\n }\n getOpportunityValueByAccountGroups(accountGroupIds, partnerId, marketId) {\n return this._api.getOpportunityValueByAccountGroups({\n accountGroupIds: accountGroupIds,\n partnerId: partnerId,\n marketId: marketId\n }).pipe(map(resp => resp.results));\n }\n modifyActualCloseDateForOpportunity(requestParams) {\n return this._api.updateClosedDateForOpportunity({\n opportunityId: requestParams.opportunityId,\n accountGroupId: requestParams.accountGroupId,\n editSalesPersonId: requestParams.editSalesPersonId,\n closedDate: requestParams.closedDate\n });\n }\n updateOpportunityPipeline(opportunityId, accountGroupId, editSalesPersonId, pipelineId) {\n return this._api.updateOpportunityPipeline({\n opportunityId: opportunityId,\n accountGroupId: accountGroupId,\n editSalesPersonId: editSalesPersonId,\n pipelineId: pipelineId\n });\n }\n updateOpportunityProbability(opportunityId, accountGroupId, editSalesPersonId, probability) {\n return this._api.updateOpportunityProbability({\n opportunityId: opportunityId,\n accountGroupId: accountGroupId,\n editSalesPersonId: editSalesPersonId,\n probability: probability\n }).pipe(map(resp => resp.opportunity));\n }\n updateOpportunityType(opportunityId, accountGroupId, opportunityType, editSalesPersonId) {\n return this._api.updateOpportunityType({\n opportunityId: opportunityId,\n accountGroupId: accountGroupId,\n opportunityType: opportunityType,\n editSalesPersonId: editSalesPersonId\n }).pipe(map(resp => resp.opportunity));\n }\n updateOpportunityDuration(opportunityId, accountGroupId, editSalesPersonId, expectedContractDuration) {\n return this._api.updateOpportunityDuration({\n opportunityId,\n accountGroupId,\n editSalesPersonId,\n expectedContractDuration\n }).pipe(map(resp => resp.opportunity));\n }\n updateLineItemsForOpportunity(opportunityId, accountGroupId, editSalesPersonId, lineItems) {\n return this._api.updateLineItemsForOpportunity({\n opportunityId,\n accountGroupId,\n editSalesPersonId,\n lineItems\n }).pipe(map(resp => resp.opportunity));\n }\n updateSubscriberUserIdsForOpportunity(opportunityId, accountGroupId, editSalesPersonId, subscriberUserIds) {\n return this._api.updateSubscriberUserIDsForOpportunity({\n opportunityId,\n accountGroupId,\n editSalesPersonId,\n subscriberUserIds\n });\n }\n list(partnerId, marketId, filters, sortOption, searchTerm, pageSize, cursor) {\n return this._api.listOpportunities({\n partnerId: partnerId,\n marketId: marketId,\n filters: filters,\n sortOption: sortOption,\n searchTerm: searchTerm,\n pageSize: pageSize,\n cursor: cursor\n }).pipe(map(resp => {\n if (!!resp.results) {\n resp.results.forEach(r => {\n if (!r.pipelineId || r.pipelineId === '') {\n r.pipelineId = DEFAULT_PIPELINE_ID;\n }\n });\n }\n return resp;\n }));\n }\n reopenOpportunity(opportunityId, accountGroupId, salesPersonId, reason) {\n const request = {\n opportunityId: opportunityId,\n accountGroupId: accountGroupId,\n editSalesPersonId: salesPersonId,\n reason: reason\n };\n return this._api.reopenClosedOpportunity(request).pipe(map(response => {\n return response.status === 200;\n }));\n }\n closeOpportunityAsWon(opportunityId, accountGroupId, salesPersonId, notes) {\n const request = {\n opportunityId: opportunityId,\n accountGroupId: accountGroupId,\n editSalesPersonId: salesPersonId,\n notes: notes\n };\n return this._api.closeAsWonOpportunity(request).pipe(map(response => response.opportunity));\n }\n closeOpportunityAsLost(opportunityId, accountGroupId, salesPersonId, reason, notes) {\n const request = {\n opportunityId: opportunityId,\n accountGroupId: accountGroupId,\n editSalesPersonId: salesPersonId,\n reason: reason,\n notes: notes\n };\n return this._api.closeAsLostOpportunity(request).pipe(map(response => response.opportunity));\n }\n initiateOpportunityExport(partnerId, marketId, filters, sortOption, searchTerm, csvExports, csvOptions, clientOrigin) {\n const request = {\n partnerId: partnerId,\n marketId: marketId,\n filters: filters,\n sortOption: sortOption,\n searchTerm: searchTerm,\n csvFormatOptions: csvOptions,\n csvExports: csvExports,\n clientOrigin: clientOrigin\n };\n return this._api.initiateOpportunityExport(request).pipe(map(response => response.exportId));\n }\n }\n SalesOpportunitiesService.ɵfac = function SalesOpportunitiesService_Factory(t) {\n return new (t || SalesOpportunitiesService)(i0.ɵɵinject(SalesOpportunitiesApiService));\n };\n SalesOpportunitiesService.ɵprov = /* @__PURE__ */i0.ɵɵdefineInjectable({\n token: SalesOpportunitiesService,\n factory: SalesOpportunitiesService.ɵfac,\n providedIn: 'root'\n });\n return SalesOpportunitiesService;\n})();\n(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && void 0;\n})();\nlet SalesPipelinesService = /*#__PURE__*/(() => {\n class SalesPipelinesService {\n constructor(_api) {\n this._api = _api;\n }\n createPipeline(partnerId, name, stages) {\n const request = {\n partnerId: partnerId,\n name: name,\n stages: stages\n };\n return this._api.createPipeline(request);\n }\n list(partnerId) {\n const request = {\n partnerId: partnerId\n };\n return this._api.listPipelines(request).pipe(map(resp => {\n return resp.results;\n }));\n }\n updatePipelineName(partnerId, pipelineId, name) {\n const request = {\n partnerId: partnerId,\n name: name,\n pipelineId: pipelineId\n };\n return this._api.updatePipelineName(request);\n }\n updatePipelineStageName(partnerId, pipelineId, stageId, stageName) {\n const request = {\n partnerId: partnerId,\n pipelineId: pipelineId,\n stageId: stageId,\n stageName: stageName\n };\n return this._api.updatePipelineStageName(request);\n }\n updatePipelineStageProbability(partnerId, pipelineId, stageId, probability) {\n const request = {\n partnerId: partnerId,\n pipelineId: pipelineId,\n stageId: stageId,\n probability: probability\n };\n return this._api.updatePipelineStageProbability(request);\n }\n addPipelineStages(partnerId, pipelineId, stages) {\n const request = {\n partnerId: partnerId,\n pipelineId: pipelineId,\n stages: stages\n };\n return this._api.addPipelineStages(request);\n }\n removePipelineStages(partnerId, pipelineId, stageIds) {\n const request = {\n partnerId: partnerId,\n pipelineId: pipelineId,\n stageIds: stageIds\n };\n return this._api.removePipelineStages(request);\n }\n deletePipeline(partnerId, pipelineId) {\n const request = {\n partnerId: partnerId,\n pipelineId: pipelineId\n };\n return this._api.deletePipeline(request);\n }\n }\n SalesPipelinesService.ɵfac = function SalesPipelinesService_Factory(t) {\n return new (t || SalesPipelinesService)(i0.ɵɵinject(SalesPipelinesApiService));\n };\n SalesPipelinesService.ɵprov = /* @__PURE__ */i0.ɵɵdefineInjectable({\n token: SalesPipelinesService,\n factory: SalesPipelinesService.ɵfac,\n providedIn: 'root'\n });\n return SalesPipelinesService;\n})();\n(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && void 0;\n})();\nlet OpportunityScoringService = /*#__PURE__*/(() => {\n class OpportunityScoringService {\n constructor(api, scoring) {\n this.api = api;\n this.scoring = scoring;\n }\n updateMEDDICScores(accountGroupId, opportunityId, meddicScores) {\n const req = {\n opportunityId: opportunityId,\n accountGroupId: accountGroupId,\n editSalesPersonId: '',\n metricScoreValue: meddicScores.metric,\n economicBuyerScoreValue: meddicScores.economicBuyer,\n decisionCriteriaScoreValue: meddicScores.decisionCriteria,\n decisionProcessScoreValue: meddicScores.decisionProcess,\n identifyPainScoreValue: meddicScores.identifyPain,\n championScoreValue: meddicScores.champion,\n competitionScoreValue: meddicScores.competition,\n paperProcessScoreValue: meddicScores.paperProcess\n };\n return this.scoring.updateMeddicScoringForOpportunity(req).pipe(take(1), mapTo(null));\n }\n getMEDDICScores(accountGroupId, opportunityId) {\n const req = {\n accountGroupId: accountGroupId,\n opportunityId: opportunityId\n };\n return this.scoring.getMeddicScores(req).pipe(map(response => ({\n metric: response.scores.metric || 0,\n economicBuyer: response.scores.economicBuyer || 0,\n decisionProcess: response.scores.decisionProcess || 0,\n decisionCriteria: response.scores.decisionCriteria || 0,\n identifyPain: response.scores.identifyPain || 0,\n champion: response.scores.champion || 0,\n competition: response.scores.competition || 0,\n paperProcess: response.scores.paperProcess || 0\n })));\n }\n updateMEDDICNotes(accountGroupId, opportunityId, editSalesPersonId, meddicSection, notes) {\n const req = {\n accountGroupId: accountGroupId,\n opportunityId: opportunityId,\n editSalesPersonId: editSalesPersonId,\n sectionName: meddicSection,\n sectionNotes: notes\n };\n return this.scoring.updateMeddicNotesForOpportunity(req).pipe(take(1), mapTo(null));\n }\n getMEDDICSections(accountGroupId, opportunityId) {\n const req = {\n accountGroupId: accountGroupId,\n opportunityId: opportunityId\n };\n return this.scoring.getMeddicSections(req).pipe(map(resp => {\n const sections = [];\n const scores = resp.sections.scores || [];\n scores.forEach(score => {\n const section = {\n sectionName: score.section,\n score: score.scoreValue || 0,\n notes: score.notes\n };\n sections.push(section);\n });\n return sections;\n }));\n }\n }\n OpportunityScoringService.ɵfac = function OpportunityScoringService_Factory(t) {\n return new (t || OpportunityScoringService)(i0.ɵɵinject(SalesOpportunitiesApiService), i0.ɵɵinject(OpportunityScoringApiService));\n };\n OpportunityScoringService.ɵprov = /* @__PURE__ */i0.ɵɵdefineInjectable({\n token: OpportunityScoringService,\n factory: OpportunityScoringService.ɵfac,\n providedIn: 'root'\n });\n return OpportunityScoringService;\n})();\n(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && void 0;\n})();\nlet GoalsService = /*#__PURE__*/(() => {\n class GoalsService {\n constructor(_api) {\n this._api = _api;\n }\n create(createRequest) {\n return this._api.create(createRequest);\n }\n update(updateRequest) {\n return this._api.update(updateRequest);\n }\n list(listRequest) {\n return this._api.list(listRequest);\n }\n get(id) {\n const getRequest = {\n id: id\n };\n return this._api.get(getRequest);\n }\n delete(partnerId, id) {\n const deleteRequest = {\n id: id,\n partnerId: partnerId\n };\n return this._api.delete(deleteRequest);\n }\n archive(partnerId, id) {\n const archiveGoalRequest = {\n id: id,\n partnerId: partnerId\n };\n return this._api.archive(archiveGoalRequest);\n }\n }\n GoalsService.ɵfac = function GoalsService_Factory(t) {\n return new (t || GoalsService)(i0.ɵɵinject(GoalsApiService));\n };\n GoalsService.ɵprov = /* @__PURE__ */i0.ɵɵdefineInjectable({\n token: GoalsService,\n factory: GoalsService.ɵfac,\n providedIn: 'root'\n });\n return GoalsService;\n})();\n(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && void 0;\n})();\n\n/**\n * Generated bundle index. Do not edit.\n */\n\nexport { CSVExports, CSVFormatOptions, ClientOrigin, CreateOpportunityRequest, CreateOpportunityRequestCreateOpportunityPackage, Currency, DateRangeFilter, Duration, DurationPeriod, GetTagsForOpportunitiesRequest, GoalType, GoalsService, LineItem, LineItemAppKey, ListOpportunitiesRequest, ListOpportunitiesRequestFilters, ListOpportunitiesRequestSortField, ListOpportunitiesRequestSortOption, ListOpportunitiesResponse, MEDDICSection, Opportunity, OpportunityCount, OpportunityRevenuePeriod, OpportunityScoringService, OpportunityValue, Package, Revenue, RevenueComponent, RevenuePeriod, RevenuePeriodFilter, SalesOpportunitiesApiService, SalesOpportunitiesService, SalesPipelinesService, Scoring, SortDirection, UpdateLineItemsRequest, UpdateLineItemsResponse };\n","import { Component, computed, effect, Inject, Input, Signal, signal } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { TranslateModule, TranslateService } from '@ngx-translate/core';\nimport { CrmFieldService, StandardIds, SystemFieldIds } from '../../../shared-services/crm-services/field.service';\nimport { CrmActivityTemplateComponent } from './activity-template.component';\nimport { CrmInjectionToken, CrmDependencies } from '../../../tokens-and-interfaces';\nimport { MatCardModule } from '@angular/material/card';\nimport { GalaxyPipesModule } from '@vendasta/galaxy/pipes';\nimport { GalaxyAvatarModule } from '@vendasta/galaxy/avatar';\nimport { BlankValueComponent } from '@vendasta/galaxy/table';\nimport { ActivityInterface } from '@vendasta/crm';\nimport { DateFormat } from '@vendasta/galaxy/utility/date-utils';\nimport { AVATAR_WIDTH } from '../../../constants';\nimport { RxState } from '@rx-angular/state';\nimport { CrmUnknownUserAvatarComponent } from '../../unknown-user-avatar/unknown-user-avatar.component';\nimport { CollapsibleSectionComponent } from '../../collapsible-section/collapsible-section.component';\nimport { SalespersonService, SalesSdk } from '@vendasta/sales';\nimport { catchError, map, switchMap, filter } from 'rxjs/operators';\nimport { combineLatest, of, take } from 'rxjs';\nimport { toSignal, toObservable } from '@angular/core/rxjs-interop';\nimport { SalesOpportunitiesSdk, SalesOpportunitiesService } from '@vendasta/sales-opportunities';\nimport { CrmPlatformApiService } from '../../../shared-services/platform-api.service';\n\n@Component({\n selector: 'crm-activity-opportunity-updated',\n templateUrl: './opportunity-change.component.html',\n styleUrls: ['./opportunity-change.component.scss'],\n providers: [RxState, CrmPlatformApiService],\n imports: [\n CommonModule,\n TranslateModule,\n MatCardModule,\n CrmActivityTemplateComponent,\n GalaxyPipesModule,\n GalaxyAvatarModule,\n BlankValueComponent,\n CrmUnknownUserAvatarComponent,\n CollapsibleSectionComponent,\n ],\n standalone: true,\n})\nexport class CrmActivityOpportunityUpdatedComponent {\n #activity = signal({});\n isClosedWon = false;\n\n private checkClosedWon(): void {\n const opportunityChangeStatus =\n this.fieldService.getFieldValueFromCrmObject(this.#activity(), StandardIds.ActivityOpportunityChangePipelineStage)\n ?.stringValue ?? '';\n\n this.isClosedWon = opportunityChangeStatus.toLowerCase() === 'closed-won';\n }\n\n ngOnInit(): void {\n this.checkClosedWon();\n }\n @Input() set activity(activity: ActivityInterface) {\n this.#activity.set(activity);\n }\n\n get activity(): ActivityInterface {\n return this.#activity();\n }\n\n private _showAvatar = true;\n protected readonly AVATAR_WIDTH = AVATAR_WIDTH;\n\n @Input() set showAvatar(showAvatar: boolean) {\n this._showAvatar = showAvatar;\n }\n\n get showAvatar() {\n return this._showAvatar;\n }\n\n dateFormat = DateFormat.medium;\n\n salespersonId: Signal = computed(() => {\n return (\n this.fieldService.getFieldValueFromCrmObject(this.activity, StandardIds.ActivityOpportunityChangeSalespersonID)\n ?.stringValue ?? ''\n );\n });\n\n private readonly namespace = toSignal(this.config.namespace$);\n\n effectResult = signal(undefined);\n\n headerText = computed(() => {\n const effectResult = this.effectResult();\n\n const salesPerson = this.salespersonId();\n if (salesPerson) {\n return (\n this.translateService.instant('COMPANY.OPPORTUNITY_CHANGE_ACTIVITY.OPPORTUNITY_UPDATED_BY') +\n ' ' +\n effectResult?.opportunityUpdatedBy\n );\n }\n return this.translateService.instant('COMPANY.OPPORTUNITY_CHANGE_ACTIVITY.OPPORTUNITY_UPDATED');\n });\n\n cardInfo = computed(() => {\n const headerText = this.headerText();\n const effectiveDate = this.effectiveDate();\n const opportunityName = this.opportunityName();\n const updatedBy = this.effectResult()?.opportunityUpdatedBy;\n\n const opportunityChangeStatus =\n this.fieldService.getFieldValueFromCrmObject(this.#activity(), StandardIds.ActivityOpportunityChangePipelineStage)\n ?.stringValue ?? '';\n const opportunityChangeLostReason =\n this.fieldService.getFieldValueFromCrmObject(this.#activity(), StandardIds.ActivityOpportunityChangeLostReason)\n ?.stringValue ?? '';\n const opportunityChangeNotes =\n this.getStringFieldData(this.#activity(), StandardIds.ActivityOpportunityChangeNotes) ?? '';\n\n const formattedStatus =\n opportunityChangeStatus.charAt(0).toUpperCase() + opportunityChangeStatus.slice(1).toLowerCase();\n const formattedLostReason =\n opportunityChangeLostReason.charAt(0).toUpperCase() + opportunityChangeLostReason.slice(1).toLowerCase();\n\n const activityInfo = {\n status: formattedStatus,\n lostReason: formattedLostReason,\n notes: opportunityChangeNotes,\n opportunityName: opportunityName,\n };\n\n return {\n headerText,\n effectiveDate,\n updatedBy,\n activityInfo,\n };\n });\n\n effectiveDate = computed(() => {\n return (\n this.fieldService.getFieldValueFromCrmObject(this.#activity(), SystemFieldIds.ActivityEffectiveDate)?.dateValue ??\n null\n );\n });\n\n private getStringFieldData(activity: ActivityInterface, fieldId: string): string {\n return this.fieldService.getFieldValueFromCrmObject(activity, fieldId)?.stringValue ?? '';\n }\n\n accountGroupId$ = toObservable(this.#activity).pipe(\n map(\n (activity) =>\n (activity.associations || []).find((association) => association.crmObjectType === 'Company')?.crmObjectId ?? '',\n ),\n filter((companyId) => !!companyId),\n switchMap((companyId) => this.crmPlatformApiService.getAccountGroupForCompany(companyId)),\n );\n\n opportunityName = toSignal(\n combineLatest([this.accountGroupId$, toObservable(this.#activity)]).pipe(\n switchMap(([accountGroupId, activity]) => {\n const opportunityId = this.getStringFieldData(activity, StandardIds.ActivityOpportunityChangeID);\n return this.opportunityApi.get(opportunityId, accountGroupId).pipe(\n map((opportunity) => opportunity.name),\n catchError(() => of('Unknown')),\n );\n }),\n ),\n );\n\n constructor(\n private readonly fieldService: CrmFieldService,\n private readonly translateService: TranslateService,\n private readonly crmPlatformApiService: CrmPlatformApiService,\n @Inject(SalespersonService) private readonly salespersonService: SalesSdk,\n @Inject(CrmInjectionToken) private readonly config: CrmDependencies,\n @Inject(SalesOpportunitiesService) private readonly opportunityApi: SalesOpportunitiesSdk,\n ) {\n effect(\n () => {\n const namespace = this.namespace() || '';\n if (this.salespersonId()) {\n return this.salespersonService\n .getSalespersonBySubjectId(namespace, this.salespersonId())\n .pipe(\n map((salesperson) => `${salesperson.firstName} ${salesperson.lastName}`),\n catchError(() => of('Unknown')),\n )\n .pipe(take(1))\n .subscribe((salesperson) => {\n const effectResult = {} as EffectResult;\n effectResult.opportunityUpdatedBy = salesperson;\n this.effectResult.set(effectResult);\n });\n }\n },\n { allowSignalWrites: true },\n );\n }\n}\n\ninterface EffectResult {\n opportunityUpdatedBy: string;\n effectiveDate: Date | null;\n}\n","\n \n \n
\n \n
\n \n {{ cardInfo.headerText }}\n \n \n

\n {{ cardInfo.effectiveDate | date: dateFormat }}\n

\n
\n
\n \n
\n
{{ activityInfo.opportunityName }}
\n
\n {{ 'COMPANY.OPPORTUNITY_CHANGE_ACTIVITY.STATUS_CHANGE_MESSAGE' | translate }}\n {{ activityInfo.status }}\n
\n
\n
\n {{ 'COMPANY.OPPORTUNITY_CHANGE_ACTIVITY.REASON_MESSAGE' | translate }}\n {{ activityInfo.lostReason }}\n
\n
\n
\n {{ 'COMPANY.OPPORTUNITY_CHANGE_ACTIVITY.NOTES_MESSAGE' | translate }}\n {{ activityInfo.notes }}\n
\n
\n
\n
\n
\n","import { CommonModule } from '@angular/common';\nimport { Component, EventEmitter, Input, OnDestroy, OnInit, Output } from '@angular/core';\nimport { ObserversModule } from '@angular/cdk/observers';\nimport { TranslateModule } from '@ngx-translate/core';\nimport { ObjectAssociationType, ObjectType, RecordChangeType } from '../../../tokens-and-interfaces';\nimport { TranslationModule } from '../../../i18n/translation-module';\nimport { VALID_RECORD_CHANGE_TYPES } from '../../../constants';\nimport { GalaxyEmptyStateModule } from '@vendasta/galaxy/empty-state';\nimport { GalaxyLoadingSpinnerModule } from '@vendasta/galaxy/loading-spinner';\nimport { MatIconModule } from '@angular/material/icon';\nimport { ActivityInterface } from '@vendasta/crm';\nimport { CrmActivityTemplateComponent } from '../activities/activity-template.component';\nimport { CrmActivityLoggedNoteComponent } from '../activities/logged-note.component';\nimport { RxState } from '@rx-angular/state';\nimport { map, combineLatest, filter, distinctUntilChanged } from 'rxjs';\nimport { ActivitiesTimelineService, ActivityExtended, ActivitySectionInterface } from './timeline.service';\nimport { CrmActivityRecordChangeComponent } from '../activities/record-change.component';\nimport { CrmFieldService, StandardIds, StandardExternalIds } from '../../../shared-services/crm-services/field.service';\nimport { CrmIsTaskOverduePipe } from '../../../shared-pipes/is-task-overdue.pipe';\nimport { CrmActivityLoggedEmailComponent } from '../activities/logged-email.component';\nimport { GalaxyFormFieldModule } from '@vendasta/galaxy/form-field';\nimport { MatInputModule } from '@angular/material/input';\nimport { ReactiveFormsModule } from '@angular/forms';\nimport { CrmActivityLoggedCallComponent } from '../activities/logged-call.component';\nimport { CrmActivityLoggedMeetingComponent } from '../activities/logged-meeting.component';\nimport { CrmActivityNoteComponent } from '../activities/note.component';\nimport { CrmActivityEmailComponent } from '../activities/email.component';\nimport { GalaxyFilterInterface } from '@vendasta/galaxy/filter/chips';\nimport { SubscriptionList } from '@vendasta/rx-utils';\nimport { CrmActivityTaskComponent } from '../activities/task.component';\nimport { CrmActivityAssociationPopoverComponent } from '../activities/association-popover.component';\nimport { DateFormat } from '@vendasta/galaxy/utility/date-utils';\nimport { CrmActivityEffectiveDatePipe } from '../../../shared-pipes/activity-effective-date.pipe';\nimport { CrmActivityLoggerComponent } from '../activities/activity-logger.component';\nimport { CrmActivityTemplateOptionsDirective } from '../activities/activity-template-options.directive';\nimport { MatMenuModule } from '@angular/material/menu';\nimport { MatButtonModule } from '@angular/material/button';\nimport { CrmTimelineAssociatedObjectPipe } from './timeline-associated-object.pipe';\nimport { CrmActivityLoggedCommunicationComponent } from '../activities/logged-communication.component';\nimport { CrmActivityCommunicationComponent } from '../activities/activity-communication.component';\nimport { CrmActivityCallComponent } from '../activities/call.component';\nimport { CrmActivityOpportunityUpdatedComponent } from '../activities/opportunity-change.component';\nimport { GalaxyPopoverModule, PopoverPositions } from '@vendasta/galaxy/popover';\n\n@Component({\n selector: 'crm-timeline',\n templateUrl: './timeline.component.html',\n styleUrls: ['./timeline.component.scss'],\n providers: [RxState],\n imports: [\n CommonModule,\n TranslateModule,\n TranslationModule,\n GalaxyEmptyStateModule,\n GalaxyLoadingSpinnerModule,\n GalaxyPopoverModule,\n MatIconModule,\n CrmActivityTemplateComponent,\n CrmActivityLoggedNoteComponent,\n ObserversModule,\n CrmActivityRecordChangeComponent,\n CrmActivityOpportunityUpdatedComponent,\n CrmActivityLoggedEmailComponent,\n CrmActivityLoggedCallComponent,\n CrmActivityLoggedMeetingComponent,\n CrmActivityEmailComponent,\n CrmActivityLoggedCommunicationComponent,\n GalaxyFormFieldModule,\n MatInputModule,\n ReactiveFormsModule,\n CrmActivityNoteComponent,\n CrmActivityTaskComponent,\n CrmActivityEffectiveDatePipe,\n CrmIsTaskOverduePipe,\n CrmActivityLoggerComponent,\n CrmActivityTemplateOptionsDirective,\n MatMenuModule,\n MatButtonModule,\n CrmTimelineAssociatedObjectPipe,\n CrmActivityCommunicationComponent,\n CrmActivityCallComponent,\n CrmActivityOpportunityUpdatedComponent,\n CrmActivityAssociationPopoverComponent,\n ],\n standalone: true,\n})\nexport class CrmTimelineComponent implements OnDestroy, OnInit {\n @Input({ required: true })\n set crmObjectId(crmObjectId: string) {\n this.activitiesTimelineService.crmObjectId$$.next(crmObjectId);\n }\n\n @Input({ required: true })\n set objectType(objectType: ObjectType | ObjectAssociationType) {\n this.activitiesTimelineService.objectType$$.next(objectType);\n }\n\n @Output() activitiesChanged = new EventEmitter();\n\n readonly dateFormat = DateFormat.medium;\n readonly now = new Date();\n\n popupOpen = {};\n PopoverPositions = PopoverPositions;\n\n crmIdentifiers$ = combineLatest([\n this.activitiesTimelineService.crmObjectId$$.asObservable(),\n this.activitiesTimelineService.objectType$$.asObservable(),\n ]).pipe(map(([crmObjectId, objectType]) => ({ crmObjectId, objectType })));\n activitySections$ = this.activitiesTimelineService.state.select('activitySections');\n uniqueUsers$ = this.activitiesTimelineService.state.select('uniqueUsers');\n readonly filters$ = this.activitiesTimelineService.state.select('filters');\n editingActivities: { [activityId: string]: boolean } = {};\n\n showInfiniteScroll$ = this.activitiesTimelineService.state\n .select('activities')\n .pipe(map((activities) => activities.length > 0));\n loading$ = combineLatest([\n this.activitiesTimelineService.state.select('activitiesLoading'),\n this.activitiesTimelineService.state.select('activitiesLoadMore'),\n ]).pipe(map(([activitiesLoading, activitiesLoadMore]) => activitiesLoading || activitiesLoadMore));\n filtersPristine$ = combineLatest([\n this.activitiesTimelineService.state.select('searchTerm'),\n this.activitiesTimelineService.state.select('filters'),\n ]).pipe(\n map(([searchTerm, filters]) => {\n if (searchTerm.length !== 0) {\n return false;\n }\n if (filters.length !== 0) {\n return false;\n }\n return true;\n }),\n );\n showLoadingAfterActivities$ = combineLatest([this.loading$, this.filtersPristine$]).pipe(\n map(([loading, filtersPristine]) => loading && filtersPristine),\n );\n showLoadingReplacingActivities$ = combineLatest([this.loading$, this.filtersPristine$]).pipe(\n map(([loading, filtersPristine]) => loading && !filtersPristine),\n );\n\n subscriptions = SubscriptionList.new();\n\n constructor(\n private readonly activitiesTimelineService: ActivitiesTimelineService,\n private readonly fieldService: CrmFieldService,\n ) {}\n\n ngOnInit() {\n this.setupSplitActivitiesIntoSections();\n this.activitiesTimelineService.state.connect('activitySections', this.activitySections$);\n this.activitiesTimelineService.state\n .select('activitiesChanged')\n .pipe(distinctUntilChanged(), filter(Boolean))\n .subscribe(() => {\n this.activitiesTimelineService.state.set({ activitiesChanged: false });\n this.activitiesChanged.emit(this.activitiesTimelineService.state.get('activities'));\n });\n }\n\n ngOnDestroy() {\n this.subscriptions.destroy();\n }\n\n isActivityValid(activity: ActivityInterface) {\n if (activity === null || activity === undefined) {\n return false;\n }\n\n switch (activity.crmObjectSubtype) {\n case 'Email':\n return true;\n case 'Note':\n return (\n this.fieldService.getFieldValueFromCrmObject(activity, StandardIds.ActivityNoteTitle)?.stringValue ||\n this.fieldService.getFieldValueFromCrmObject(activity, StandardIds.ActivityNoteBody)?.stringValue\n );\n case 'Meeting':\n return true;\n case 'Call':\n return true;\n case 'RecordChange':\n return VALID_RECORD_CHANGE_TYPES.includes(\n this.fieldService.getFieldValueFromCrmObject(activity, StandardExternalIds.ActivityRecordChangeType)\n ?.stringValue as RecordChangeType,\n );\n case 'Task':\n return true;\n case 'Communication':\n return true;\n case 'OpportunityChange':\n return true;\n default:\n console.error(`Unexpected activity type: ${activity.crmObjectSubtype}`);\n return false;\n }\n }\n\n setFilters(filters: GalaxyFilterInterface[]) {\n this.activitiesTimelineService.state.set({ filters: filters });\n this.activitiesTimelineService.reloadActivities();\n }\n\n setSearchTerm(searchTerm: string) {\n // set searchTerm imperatively since we want it available with the next reload\n this.activitiesTimelineService.state.set({ searchTerm: searchTerm });\n this.activitiesTimelineService.reloadActivities();\n }\n\n setupSplitActivitiesIntoSections(): void {\n this.activitySections$ = combineLatest([\n this.activitiesTimelineService.state.select('activities'),\n this.activitiesTimelineService.state.select('uniqueUsers'),\n ]).pipe(\n map(([activities, uniqueUsers]) => {\n return activities.map((activity) => {\n return {\n ...activity,\n ownerUser: uniqueUsers.find((user) => user.userId === activity.ownerId),\n isLoggedActivity:\n this.fieldService.getFieldValueFromCrmObject(activity, StandardIds.ActivityManuallyLogged)\n ?.booleanValue ?? false,\n } as ActivityExtended;\n });\n }),\n map((activitiesWithOwnerUser) => this.activitiesTimelineService.getActivitySections(activitiesWithOwnerUser)),\n );\n }\n\n addActivity(activity: ActivityInterface): void {\n this.activitiesTimelineService.state.set({\n activities: [activity, ...this.activitiesTimelineService.state.get('activities')],\n });\n }\n\n updateActivity(activity: ActivityInterface): void {\n const activities = this.activitiesTimelineService.state.get('activities');\n const index = activities.findIndex((a) => a.crmObjectId === activity.crmObjectId);\n if (index >= 0) {\n this.activitiesTimelineService.lockActivityEffectiveDate(activities[index]);\n activities[index] = activity;\n this.activitiesTimelineService.state.set({ activities: [...activities] });\n if (activity.crmObjectId) {\n this.editingActivities[activity.crmObjectId] = false;\n }\n }\n }\n\n loadMoreActivities() {\n this.activitiesTimelineService.loadMoreActivities();\n }\n\n trackActivitySectionsBy(index: number, section: ActivitySectionInterface) {\n return `${index}-${section.name}`;\n }\n\n trackActivitiesBy(index: number, activity: ActivityInterface) {\n return `${index}-${activity.crmObjectId}`;\n }\n\n openPopover(activity): void {\n this.popupOpen[activity.crmObjectId] = true;\n }\n}\n","
\n \n \n 0; else emptyActivities\">\n
\n
\n

{{ section.name | 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\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 \n \n \n \n \n \n \n \n \n\n\n\n \n\n\n\n \n \n \n \n \n \n \n \n {{ 'CONTACT.ACTIVITIES_TIMELINE.EMPTY.HEADER' | translate }}\n \n

{{ 'CONTACT.ACTIVITIES_TIMELINE.EMPTY.HINT' | translate }}

\n
\n \n \n {{ 'CONTACT.ACTIVITIES_TIMELINE.EMPTY_SEARCH.HEADER' | translate }}\n \n

{{ 'CONTACT.ACTIVITIES_TIMELINE.EMPTY_SEARCH.HINT' | translate }}

\n
\n
\n
\n
\n
\n\n\n
{{ 'ACTIVITY.DUE' | translate }}: {{ activity | crmActivityEffectiveDate | date: dateFormat }}
\n
\n\n\n
\n alarm\n {{ 'ACTIVITY.OVERDUE' | translate }}: {{ activity | crmActivityEffectiveDate | date: dateFormat }}\n
\n
\n","export * from './timeline.component';\nexport * from './timeline-associated-object.pipe';\nexport * from './timeline.service';\n","import {\n GalaxyFilterChipDependencies,\n GalaxyFilterDefinitionInterface,\n GalaxyFilterInterface,\n} from '@vendasta/galaxy/filter/chips';\nimport { BehaviorSubject, firstValueFrom, Observable } from 'rxjs';\nimport { Injectable } from '@angular/core';\nimport { CrmFieldOptionsService } from '../../shared-services/crm-services/crm-field-options.service';\nimport { CrmFiltersService } from '../../shared-services/crm-services/crm-filters.service';\n\n@Injectable()\nexport class ActivitiesTimelineFilterService implements GalaxyFilterChipDependencies {\n private initialFilters$$ = new BehaviorSubject([]);\n initialFilters$ = this.initialFilters$$.asObservable();\n\n constructor(\n private readonly crmFieldOptionsService: CrmFieldOptionsService,\n private readonly crmFiltersService: CrmFiltersService,\n ) {}\n\n getFieldOptions(fieldId: string, search: string): Observable {\n return this.crmFieldOptionsService.getFieldOptions(fieldId, search, 'Activity');\n }\n\n getInitialAppliedFilters(): Promise {\n return firstValueFrom(this.initialFilters$);\n }\n\n setInitialAppliedFilters(filters: GalaxyFilterInterface[]): void {\n this.initialFilters$$.next(filters);\n }\n\n listObjectFilters(searchTerm: string): Observable {\n return this.crmFiltersService.listObjectFilters$(searchTerm, 'Activity');\n }\n}\n","import { CommonModule } from '@angular/common';\nimport {\n AfterContentInit,\n Component,\n DestroyRef,\n ElementRef,\n Input,\n OnDestroy,\n OnInit,\n ViewChild,\n computed,\n inject,\n signal,\n AfterViewChecked,\n Inject,\n} from '@angular/core';\nimport { TranslateModule, TranslateService } from '@ngx-translate/core';\nimport { ObjectType } from '../../tokens-and-interfaces';\nimport { SEARCH_DEBOUNCE_MS } from '../../constants';\nimport { TranslationModule } from '../../i18n/translation-module';\nimport { Subscription, map, tap, debounceTime, skipWhile } from 'rxjs';\nimport { CrmActivityLoggerComponent } from './activities/activity-logger.component';\nimport { GalaxyFormFieldModule } from '@vendasta/galaxy/form-field';\nimport { MatInputModule } from '@angular/material/input';\nimport { FormControl, ReactiveFormsModule } from '@angular/forms';\nimport { CrmTimelineComponent } from './timeline/timeline.component';\nimport { CrmActivityNoteComponent } from './activities/note.component';\nimport { CrmActivityEmailComponent } from './activities/email.component';\nimport { MatButtonModule } from '@angular/material/button';\nimport { GalaxyFilterChipsComponent } from '@vendasta/galaxy/filter/chips/src/galaxy-filter-chips.component';\nimport {\n GalaxyFilterChipInjectionToken,\n GalaxyFilterInterface,\n GalaxyFilterOperator,\n} from '@vendasta/galaxy/filter/chips';\nimport { animate, state, style, transition, trigger } from '@angular/animations';\nimport { MatIconModule } from '@angular/material/icon';\nimport { ActivitiesTimelineFilterService } from './activity-timeline-filter.service';\nimport { GalaxyInfiniteScrollTriggerModule } from '@vendasta/galaxy/infinite-scroll-trigger';\nimport { ActivityInterface } from '@vendasta/crm';\nimport { RxState } from '@rx-angular/state';\nimport { takeUntilDestroyed } from '@angular/core/rxjs-interop';\nimport { ActivatedRoute, Router } from '@angular/router';\nimport { decodeFilters, encodeFilters, validateFilters } from '@vendasta/galaxy/filter/chips/src/utils';\nimport { ActivitiesTimelineService } from './timeline/timeline.service';\nimport { CrmInjectionToken, CrmDependencies } from '../../tokens-and-interfaces';\nimport { TranslateByObjectTypePipe } from '../../i18n/translate-by-object-type/translate-by-object-type.pipe';\nimport { FilterViewComponent } from '../filter-view/filter-view.component';\nimport { SavedFilters } from '../filter-view/interfaces';\n\n@Component({\n selector: 'crm-activities-timeline',\n templateUrl: './activities-timeline.component.html',\n styleUrls: ['./activities-timeline.component.scss'],\n providers: [\n RxState,\n ActivitiesTimelineFilterService,\n ActivitiesTimelineService,\n {\n provide: GalaxyFilterChipInjectionToken,\n useExisting: ActivitiesTimelineFilterService,\n },\n ],\n animations: [\n trigger('openClose', [\n state(\n 'open',\n style({\n height: '*',\n opacity: 1,\n }),\n ),\n state(\n 'closed',\n style({\n height: '0px',\n opacity: 0,\n }),\n ),\n transition('open <=> closed', [animate('0.2s')]),\n ]),\n ],\n imports: [\n CommonModule,\n TranslateModule,\n TranslationModule,\n CrmActivityLoggerComponent,\n CrmTimelineComponent,\n GalaxyFormFieldModule,\n MatInputModule,\n ReactiveFormsModule,\n CrmActivityNoteComponent,\n CrmActivityEmailComponent,\n MatButtonModule,\n GalaxyFilterChipsComponent,\n TranslateByObjectTypePipe,\n MatIconModule,\n GalaxyInfiniteScrollTriggerModule,\n FilterViewComponent,\n ],\n standalone: true,\n})\nexport class CrmActivitiesTimelineComponent implements OnDestroy, OnInit, AfterContentInit, AfterViewChecked {\n @ViewChild('crmTimelineRef', { static: true }) timeline!: CrmTimelineComponent;\n @ViewChild('scrollableContainerRef', { static: true }) scrollableContainer!: ElementRef;\n @ViewChild('filterChipRef') filterChipRef?: GalaxyFilterChipsComponent;\n\n #crmObjectId!: string;\n\n showFiltersOpen = false;\n\n @Input({ required: true }) set crmObjectId(crmObjectId: string) {\n this.#crmObjectId = crmObjectId;\n }\n\n get crmObjectId() {\n return this.#crmObjectId;\n }\n\n #activityObjectType!: ObjectType;\n @Input({ required: true }) set activityObjectType(objectType: ObjectType) {\n this.#activityObjectType = objectType;\n }\n\n get activityObjectType() {\n return this.#activityObjectType;\n }\n\n objectType: ObjectType = 'Activity';\n\n private readonly translateService = inject(TranslateService);\n private readonly destroyRef = inject(DestroyRef);\n\n protected readonly filters = signal([]);\n protected readonly filtersApplied = computed(() => this.filters().length > 0);\n presetFilters: SavedFilters = [\n { name: this.translateService.instant('VIEWS.PRESET_FILTERS.ALL'), filters: [] },\n {\n name: this.translateService.instant('VIEWS.PRESET_FILTERS.NOTES'),\n filters: [\n {\n fieldId: 'system__activity_activity_type',\n operator: GalaxyFilterOperator.FILTER_OPERATOR_IS,\n values: [{ string: 'Note' }],\n },\n ],\n },\n {\n name: this.translateService.instant('VIEWS.PRESET_FILTERS.EMAILS'),\n filters: [\n {\n fieldId: 'system__activity_activity_type',\n operator: GalaxyFilterOperator.FILTER_OPERATOR_IS,\n values: [{ string: 'Email' }],\n },\n ],\n },\n {\n name: this.translateService.instant('VIEWS.PRESET_FILTERS.CALLS'),\n filters: [\n {\n fieldId: 'system__activity_activity_type',\n operator: GalaxyFilterOperator.FILTER_OPERATOR_IS,\n values: [{ string: 'Call' }],\n },\n ],\n },\n {\n name: this.translateService.instant('VIEWS.PRESET_FILTERS.MEETINGS'),\n filters: [\n {\n fieldId: 'system__activity_activity_type',\n operator: GalaxyFilterOperator.FILTER_OPERATOR_IS,\n values: [{ string: 'Meeting' }],\n },\n ],\n },\n {\n name: this.translateService.instant('VIEWS.PRESET_FILTERS.TASKS'),\n filters: [\n {\n fieldId: 'system__activity_activity_type',\n operator: GalaxyFilterOperator.FILTER_OPERATOR_IS,\n values: [{ string: 'Task' }],\n },\n ],\n },\n {\n name: this.translateService.instant('VIEWS.PRESET_FILTERS.COMMUNICATIONS'),\n filters: [\n {\n fieldId: 'system__activity_activity_type',\n operator: GalaxyFilterOperator.FILTER_OPERATOR_IS,\n values: [{ string: 'Communication' }],\n },\n ],\n },\n ];\n searchControl = new FormControl('');\n subscriptions: Subscription[] = [];\n showLoadMore = false;\n private scrollTop = 0;\n\n private initialSearchTerm = '';\n private initialSearchTermSet = false;\n private initialFilters: GalaxyFilterInterface[] = [];\n keys: string[];\n\n constructor(\n @Inject(CrmInjectionToken) private readonly config: CrmDependencies,\n private readonly activitiesTimelineService: ActivitiesTimelineService,\n private readonly activitiesTimelineFilterService: ActivitiesTimelineFilterService,\n private readonly router: Router,\n private readonly activatedRoute: ActivatedRoute,\n ) {\n const filterParam = this.activatedRoute.snapshot.queryParamMap.get('filter');\n let filters: GalaxyFilterInterface[] = [];\n if (filterParam) {\n const f = decodeFilters(filterParam);\n if (validateFilters(f) && f.length > 0) {\n filters = f;\n }\n }\n this.initialFilters = filters;\n this.activitiesTimelineFilterService.setInitialAppliedFilters(filters);\n\n const keys: string[] = [];\n if (this.config?.appID) {\n keys.push('crm:' + this.config.appID + ':activities-timeline:views');\n }\n keys.push('crm:activities-timeline:views');\n this.keys = keys;\n }\n\n ngOnInit() {\n const searchParam = this.activatedRoute.snapshot.queryParamMap.get('search');\n if (searchParam) {\n this.initialSearchTerm = decodeURI(searchParam);\n }\n this.activitiesTimelineService.initializeState(this.initialSearchTerm, this.initialFilters);\n\n this.subscriptions.push(\n this.searchControl.valueChanges\n .pipe(\n skipWhile((term) => term !== this.initialSearchTerm),\n debounceTime(SEARCH_DEBOUNCE_MS),\n map((value) => value?.trim() ?? ''),\n tap((searchTerm) => {\n let searchParam: string | null = null;\n if (searchTerm) {\n searchParam = encodeURI(searchTerm);\n }\n this.router.navigate([], {\n relativeTo: this.activatedRoute,\n queryParams: { search: searchParam },\n queryParamsHandling: 'merge',\n });\n this.timeline.setSearchTerm(searchTerm);\n }),\n )\n .subscribe(),\n );\n }\n\n ngAfterViewChecked(): void {\n if (!this.initialSearchTermSet) {\n this.searchControl.setValue(this.initialSearchTerm);\n this.searchControl.updateValueAndValidity();\n this.initialSearchTermSet = true;\n }\n }\n\n ngAfterContentInit(): void {\n this.timeline.filters$.pipe(takeUntilDestroyed(this.destroyRef)).subscribe((filters) => this.filters.set(filters));\n }\n\n addActivity(activity: ActivityInterface): void {\n this.timeline.addActivity(activity);\n }\n\n handleActivitiesChanged(activities: ActivityInterface[]): void {\n this.scrollableContainer.nativeElement.scrollTop = this.scrollTop;\n this.showLoadMore = activities?.length > 0;\n }\n\n loadMoreActivities(): void {\n this.scrollTop = this.scrollableContainer?.nativeElement?.scrollTop ?? 0;\n this.timeline?.loadMoreActivities();\n }\n\n ngOnDestroy() {\n this.subscriptions.forEach((subscription) => subscription.unsubscribe());\n }\n\n toggleFilterBar(): void {\n this.showFiltersOpen = !this.showFiltersOpen;\n }\n\n updateFilters($event: GalaxyFilterInterface[], updateChipList?: boolean): void {\n if (!this.timeline) {\n return;\n }\n let filterParam: string | null = null;\n if ($event.length > 0) {\n filterParam = encodeFilters($event);\n }\n this.router.navigate([], {\n relativeTo: this.activatedRoute,\n queryParams: { filter: filterParam },\n queryParamsHandling: 'merge',\n });\n this.timeline.setFilters($event);\n if (updateChipList) {\n this.filterChipRef?.filters.set($event);\n }\n }\n}\n","
\n \n
\n
\n
\n \n \n filter_list\n \n \n {{ 'GALAXY.TABLE.FILTERS.TOGGLE_BUTTON' | translate }}\n \n\n \n \n \n
\n \n
\n
\n
\n \n
\n
\n
\n\n \n \n \n
\n","export * from './activities';\nexport * from './timeline';\n\nexport * from './activities-timeline.component';\nexport * from './activity-timeline-filter.service';\n","import { Component, computed, Input, signal } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { TranslateModule } from '@ngx-translate/core';\nimport { GalaxyAbstractFilterChip, GalaxyFilterValueInterface } from '@vendasta/galaxy/filter/chips';\nimport { takeUntilDestroyed, toObservable } from '@angular/core/rxjs-interop';\nimport { switchMap } from 'rxjs/operators';\nimport { CompanyDisplayName, CompanyFiltersService } from '../../../shared-services';\n\n@Component({\n template: `\n \n {{ selectedCompanyText() }}\n \n \n
\n
\n `,\n providers: [],\n styleUrls: ['./company-custom-filter-chip.component.scss'],\n imports: [CommonModule, TranslateModule],\n standalone: true,\n})\nexport class CompanyCustomFilterChipComponent implements GalaxyAbstractFilterChip {\n selectedCompanyId = signal('');\n selectedCompany = signal([]);\n @Input() set initialValue(value: GalaxyFilterValueInterface[]) {\n if (value?.length > 0 && value[0].string) {\n this.selectedCompanyId.set(value[0].string);\n }\n }\n\n selectedCompanyText = computed(() => {\n if (this.selectedCompany().length === 0) {\n return '';\n }\n return this.selectedCompany()[0]?.displayName || this.selectedCompanyId();\n });\n\n constructor(private readonly companyFiltersService: CompanyFiltersService) {\n toObservable(this.selectedCompanyId)\n .pipe(\n switchMap((companyIds) => {\n return this.companyFiltersService.getMultiCompany([companyIds]);\n }),\n takeUntilDestroyed(),\n )\n .subscribe((result) => {\n this.selectedCompany.set(result);\n });\n }\n}\n","import { Component, effect, EventEmitter, forwardRef, Input, Output, signal } from '@angular/core';\nimport { GalaxyAbstractFilterInput, GalaxyFilterValueInterface } from '@vendasta/galaxy/filter/chips';\nimport { CommonModule } from '@angular/common';\nimport { TranslateModule } from '@ngx-translate/core';\nimport { FormControl, ReactiveFormsModule } from '@angular/forms';\nimport { MatInputModule } from '@angular/material/input';\nimport { GalaxyFormFieldModule } from '@vendasta/galaxy/form-field';\nimport { MatAutocompleteModule } from '@angular/material/autocomplete';\nimport { takeUntilDestroyed, toObservable, toSignal } from '@angular/core/rxjs-interop';\nimport { of } from 'rxjs';\nimport { switchMap } from 'rxjs/operators';\nimport { CompanyDisplayName, CompanyFiltersService } from '../../../shared-services';\n\n@Component({\n template: `\n \n \n \n \n {{ option?.displayName }}\n \n \n \n \n
\n \n \n \n
\n
\n `,\n providers: [\n {\n provide: GalaxyAbstractFilterInput,\n useExisting: forwardRef(() => CompanyCustomFilterInputComponent),\n },\n ],\n imports: [\n CommonModule,\n TranslateModule,\n ReactiveFormsModule,\n MatInputModule,\n GalaxyFormFieldModule,\n MatAutocompleteModule,\n ],\n standalone: true,\n})\nexport class CompanyCustomFilterInputComponent implements GalaxyAbstractFilterInput {\n @Input() set fieldId(value: string) {\n this._fieldId.set(value);\n }\n @Output() valueChanges = new EventEmitter();\n formControl: FormControl = new FormControl('', {\n nonNullable: true,\n });\n\n searchTerm = toSignal(this.formControl.valueChanges, { initialValue: '' });\n\n _fieldId = signal('');\n availableOptions$ = toObservable(this.searchTerm).pipe(\n takeUntilDestroyed(),\n switchMap((searchTerm) => {\n const filterTerm = typeof searchTerm === 'string' ? searchTerm : searchTerm?.crmObjectId;\n\n return this.companyFiltersService.listReadableCompanies(filterTerm || '');\n }),\n );\n\n availableOptions = toSignal(this.availableOptions$);\n\n @Input() set initialValue(value: GalaxyFilterValueInterface[]) {\n if (value?.length > 0 && value[0].string) {\n this.formControl.setValue(value[0].string);\n }\n }\n\n clearValue(): void {\n this.formControl.setValue('');\n }\n\n companyDetails$ = toObservable(this.searchTerm).pipe(\n switchMap((value) => {\n let crmObjectId = '';\n if (typeof value === 'string') {\n crmObjectId = value;\n } else {\n crmObjectId = value.crmObjectId ?? '';\n }\n if (!crmObjectId) {\n return of({} as CompanyDisplayName[]);\n }\n return this.companyFiltersService.getMultiCompany([crmObjectId]);\n }),\n );\n\n constructor(private companyFiltersService: CompanyFiltersService) {\n effect(\n () => {\n const value = this.searchTerm();\n\n if (value === '') {\n this.valueChanges.emit([]);\n return;\n }\n if (typeof value === 'string') {\n this.valueChanges.emit([{ string: value }]);\n return;\n }\n this.valueChanges.emit([{ string: value?.crmObjectId }]);\n },\n { allowSignalWrites: true },\n );\n }\n\n displayFn(availableOptions: CompanyDisplayName[]): (company: CompanyDisplayName | string) => string {\n return (company: CompanyDisplayName | string): string => {\n if (!company || !availableOptions) {\n return '';\n }\n if (typeof company === 'string') {\n const foundCompany = availableOptions.find((displayName) => displayName.crmObjectId === company);\n return foundCompany?.displayName || company;\n }\n return company?.displayName;\n };\n }\n}\n","import { CommonModule } from '@angular/common';\nimport { Component, Input, signal, computed } from '@angular/core';\nimport { TranslateModule } from '@ngx-translate/core';\nimport { GalaxyAbstractFilterChip, GalaxyFilterValueInterface } from '@vendasta/galaxy/filter/chips';\n\n@Component({\n template: ``,\n imports: [CommonModule, TranslateModule],\n standalone: true,\n})\nexport abstract class AbstractAssigneeFilterChipComponent implements GalaxyAbstractFilterChip {\n selectedAssigneeIds = signal([]);\n selectedAssignees = signal([]);\n @Input() set initialValue(value: GalaxyFilterValueInterface[]) {\n this.selectedAssigneeIds.set(value?.map((v) => v.string ?? '').filter(Boolean) || []);\n }\n\n selectedAssigneesText = computed(() => {\n if (this.selectedAssignees().length === 0) {\n return '';\n }\n const firstAssigneeName = this.getDisplayName(this.selectedAssignees()[0]) || this.selectedAssigneeIds()[0];\n if (this.selectedAssignees().length === 1) {\n return firstAssigneeName;\n }\n return `${firstAssigneeName} +${this.selectedAssignees().length - 1}`;\n });\n\n abstract getDisplayName(assignee: T): string;\n}\n","import { Component, inject } from '@angular/core';\nimport { takeUntilDestroyed, toObservable } from '@angular/core/rxjs-interop';\nimport { switchMap } from 'rxjs/operators';\nimport { CommonModule } from '@angular/common';\nimport { TranslateModule } from '@ngx-translate/core';\nimport { AbstractAssigneeFilterChipComponent } from '../../abstract-custom-filters/abstract-assignee/abstract-assignee-filter-chip.component';\nimport { ActivityAssigneeService } from '../../../shared-services/activity-assignee.service';\nimport { UserWithDisplayName } from '../../../tokens-and-interfaces';\n\n@Component({\n template: `\n \n \n {{ selectedAssigneesText() }}\n \n \n \n
\n
\n `,\n providers: [],\n styleUrls: ['../common-filter-chip.component.scss'],\n imports: [CommonModule, TranslateModule],\n standalone: true,\n})\nexport class UserFilterChipComponent extends AbstractAssigneeFilterChipComponent {\n private readonly userService = inject(ActivityAssigneeService);\n getDisplayName(user: UserWithDisplayName): string {\n return user.displayName;\n }\n\n constructor() {\n super();\n toObservable(this.selectedAssigneeIds)\n .pipe(\n switchMap((userIds) => {\n return this.userService.getMultiUsers(userIds);\n }),\n takeUntilDestroyed(),\n )\n .subscribe((result) => {\n this.selectedAssignees.set(result);\n });\n }\n}\n","import { Component, computed, effect, EventEmitter, forwardRef, Input, Output, Signal, signal } from '@angular/core';\nimport { GalaxyAbstractFilterInput, GalaxyFilterValueInterface } from '@vendasta/galaxy/filter/chips';\nimport { CommonModule } from '@angular/common';\nimport { TranslateModule } from '@ngx-translate/core';\nimport { FormControl, ReactiveFormsModule } from '@angular/forms';\nimport { MatInputModule } from '@angular/material/input';\nimport { GalaxyFormFieldModule } from '@vendasta/galaxy/form-field';\nimport { MatAutocompleteModule } from '@angular/material/autocomplete';\nimport { toSignal } from '@angular/core/rxjs-interop';\n\n@Component({\n template: '',\n providers: [\n {\n provide: GalaxyAbstractFilterInput,\n useExisting: forwardRef(() => AbstractAssigneeFilterInputComponent),\n },\n ],\n imports: [\n CommonModule,\n TranslateModule,\n ReactiveFormsModule,\n MatInputModule,\n GalaxyFormFieldModule,\n MatAutocompleteModule,\n ],\n standalone: true,\n})\nexport abstract class AbstractAssigneeFilterInputComponent implements GalaxyAbstractFilterInput {\n @Input() set fieldId(value: string) {\n this._fieldId.set(value);\n }\n\n @Output() valueChanges = new EventEmitter();\n formControl: FormControl = new FormControl('', {\n nonNullable: true,\n });\n\n searchTerm = toSignal(this.formControl.valueChanges, { initialValue: '' });\n _fieldId = signal('');\n availableOptions = signal([]);\n\n @Input() set initialValue(value: GalaxyFilterValueInterface[]) {\n if (value?.length > 0 && value[0].string) {\n this.formControl.setValue(value[0].string);\n }\n }\n\n filteredOptions: Signal = computed(() => {\n const searchTerm = this.searchTerm();\n const availableOptions = this.availableOptions();\n const filterTerm = this.extractFilterTerm(searchTerm);\n return availableOptions.filter((assignee) => this.filterFn(assignee, filterTerm));\n });\n\n protected constructor() {\n effect(\n () => {\n const value = this.searchTerm();\n if (value === '') {\n this.valueChanges.emit([]);\n return;\n }\n if (typeof value === 'string') {\n this.valueChanges.emit([{ string: value }]);\n return;\n }\n this.valueChanges.emit([{ string: this.getId(value) }]);\n },\n { allowSignalWrites: true },\n );\n }\n\n clearValue() {\n this.formControl.setValue('');\n }\n\n displayFn(availableOptions: T[]): (assignee: T | string) => string {\n return (assignee: T | string): string => {\n if (!assignee) {\n return '';\n }\n if (typeof assignee === 'string') {\n const foundOption = availableOptions.find((o) => this.getId(o) === assignee);\n return foundOption ? this.getDisplayName(foundOption) : assignee;\n }\n return this.getDisplayName(assignee);\n };\n }\n\n abstract filterFn(assignee: T, searchTerm: string): boolean;\n abstract extractFilterTerm(assignee: T | string): string;\n abstract getId(assignee: T): string;\n abstract getDisplayName(assignee: T): string;\n abstract setAvailableOptions(): void;\n}\n","import { CommonModule } from '@angular/common';\nimport { Component } from '@angular/core';\nimport { ReactiveFormsModule } from '@angular/forms';\nimport { MatInputModule } from '@angular/material/input';\nimport { TranslateModule } from '@ngx-translate/core';\nimport { GalaxyFormFieldModule } from '@vendasta/galaxy/form-field';\nimport { MatAutocompleteModule } from '@angular/material/autocomplete';\nimport { takeUntilDestroyed } from '@angular/core/rxjs-interop';\nimport { ActivityAssigneeService } from '../../../shared-services/activity-assignee.service';\nimport { AbstractAssigneeFilterInputComponent } from '../../abstract-custom-filters/abstract-assignee/abstract-assignee-filter-input.component';\nimport { UserWithDisplayName } from '../../../tokens-and-interfaces';\nimport { userFilterFn } from '../../../utils';\n\n@Component({\n template: `\n \n \n \n \n {{ option?.displayName }}\n \n \n \n `,\n imports: [\n CommonModule,\n TranslateModule,\n ReactiveFormsModule,\n MatInputModule,\n GalaxyFormFieldModule,\n MatAutocompleteModule,\n ],\n standalone: true,\n})\nexport class UserFilterInputComponent extends AbstractAssigneeFilterInputComponent {\n filterFn(user: UserWithDisplayName, searchTerm: string): boolean {\n return userFilterFn(user, searchTerm);\n }\n extractFilterTerm(user: string | UserWithDisplayName): string {\n return typeof user === 'string' ? user : user?.userId;\n }\n getId(user: UserWithDisplayName): string {\n return user.userId;\n }\n getDisplayName(user: UserWithDisplayName): string {\n return user.displayName;\n }\n setAvailableOptions(): void {\n this.userService.allUsers$.pipe(takeUntilDestroyed()).subscribe((allUsers) => this.availableOptions.set(allUsers));\n }\n\n constructor(private readonly userService: ActivityAssigneeService) {\n super();\n this.setAvailableOptions();\n }\n}\n","export { CompanyCustomFilterChipComponent } from './company-custom-filter/company-custom-filter-chip.component';\nexport { CompanyCustomFilterInputComponent } from './company-custom-filter/company-custom-filter-input.component';\nexport { UserFilterChipComponent } from './user/user-filter-chip.component';\nexport { UserFilterInputComponent } from './user/user-filter-input.component';\n","export { AbstractAssigneeFilterChipComponent } from './abstract-assignee/abstract-assignee-filter-chip.component';\nexport { AbstractAssigneeFilterInputComponent } from './abstract-assignee/abstract-assignee-filter-input.component';\n","export * from './association-panel-components';\nexport * from './custom-table-cells';\nexport * from './filter-view';\nexport * from './list-objects';\nexport * from './select-object-type-modal/select-object-type-modal.component';\nexport * from './create-crm-object-modal';\nexport * from './side-panel';\nexport * from './model-driven-form';\nexport * from './activities-timeline';\nexport * from './custom-filters';\nexport * from './abstract-custom-filters';\n","export * from './lib/shared-services';\nexport * from './lib/shared-components';\nexport * from './lib/shared-pipes';\nexport * from './lib/crm-core.module';\nexport * from './lib/tokens-and-interfaces';\nexport * from './lib/constants';\nexport * from './lib/i18n';\nexport * from './lib/utils';\n"],"mappings":"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BACX,MAAS,4BACX,EACA,yBAA4B,CAC1B,MAAS,yCACT,QAAW,qBACX,MAAS,8BACX,CACF,EACA,iBAAoB,CAClB,MAAS,yCACT,YAAe,gFACf,iBAAoB,mGACpB,OAAU,SACV,OAAU,SACV,QAAW,wCACX,MAAS,wBACX,EACA,MAAS,CACP,oBAAuB,kDACvB,gBAAmB,cACnB,oBAAuB,6CACvB,kBAAqB,sBACrB,WAAc,mBACd,UAAa,aACb,iBAAoB,yCACpB,mBAAsB,oBACxB,EACA,cAAiB,CACf,gBAAmB,yBACnB,oBAAuB,4DACzB,EACA,YAAe,CACb,MAAS,aACX,EACA,SAAY,CACV,MAAS,WACT,YAAe,kBACf,aAAgB,eAChB,OAAU,SACV,gBAAmB,kBACnB,YAAe,cACf,KAAQ,OACR,eAAkB,0BAClB,cAAiB,sCACjB,MAAS,4CACT,OAAU,CACR,MAAS,QACT,YAAe,aACjB,CACF,EACA,QAAW,CACT,MAAS,SACX,EACA,cAAiB,CACf,MAAS,eACX,EACA,eAAkB,CAChB,MAAS,gBACX,EACA,YAAe,CACb,MAAS,aACX,EACA,UAAa,CACX,MAAS,YACT,gBAAmB,eACnB,MAAS,oBACT,UAAa,yBACb,YAAe,4CACf,gBAAmB,kBACnB,MAAS,CACP,QAAW,iCACX,MAAS,2BACT,QAAW,gBACX,aAAgB,qBAChB,mBAAsB,yBACxB,EACA,eAAkB,CAChB,IAAO,MACP,MAAS,OACX,EACA,SAAY,UACd,EACA,MAAS,CACP,MAAS,OACX,EACA,qBAAwB,CACtB,MAAS,WACT,SAAY,CACV,IAAO,MACP,UAAa,WACf,EACA,OAAU,CACR,KAAQ,OACR,YAAe,cACf,oBAAuB,sBACvB,UAAa,YACb,QAAW,SACb,EACA,YAAe,iBACjB,EACA,OAAU,CACR,MAAS,QACX,EACA,mBAAsB,CACpB,MAAS,oBACX,EACA,UAAa,CACX,MAAS,WACX,EACA,MAAS,CACP,MAAS,OACX,EACA,kBAAqB,CACnB,OAAU,4BACV,YAAe,mIACf,MAAS,CACP,MAAS,8CACT,YAAe,oEACjB,CACF,EACA,QAAW,CACT,MA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AAS,gBACT,qBAAwB,yBACxB,QAAW,SACX,OAAU,SACV,QAAW,gBACX,MAAS,sBACX,EACA,OAAU,CACR,MAAS,aACX,EACA,WAAc,CACZ,MAAS,wBACT,kBAAqB,wCACrB,kBAAqB,wBACvB,CACF,EACA,eAAkB,CAChB,YAAe,cACf,aAAgB,4BAChB,cAAiB,4BACnB,CACF,EACA,cAAiB,CACf,OAAU,OACZ,EACA,cAAiB,CACf,QAAW,sBACX,MAAS,2BACX,CACF,EACA,mBAAsB,CACpB,eAAkB,CAChB,aAAgB,SAClB,EACA,QAAW,CACT,OAAU,CACR,YAAe,kBACjB,CACF,EACA,eAAkB,CAChB,MAAS,SACX,EACA,eAAkB,CAChB,MAAS,SACX,EACA,aAAgB,CACd,QAAW,aACX,MAAS,QACT,UAAa,YACb,SAAY,WACZ,UAAa,YACb,UAAa,YACb,UAAa,YACb,WAAc,aACd,WAAc,aACd,WAAc,aACd,aAAgB,eAChB,aAAgB,eAChB,aAAgB,eAChB,UAAa,YACb,UAAa,YACb,UAAa,WACf,EACA,mBAAsB,CACpB,MAAS,aACX,EACA,UAAa,CACX,MAAS,IACX,EACA,eAAkB,CAChB,MAAS,SACX,EACA,qBAAwB,CACtB,mBAAsB,CACpB,SAAY,+CACZ,QAAW,0DACb,CACF,CACF,EACA,iBAAoB,CAClB,yBAA4B,oBAC9B,EACA,sBAAyB,CACvB,QAAW,CACT,kBAAqB,oBACrB,yBAA4B,mBAC5B,yBAA4B,eAC9B,EACA,QAAW,CACT,kBAAqB,oBACrB,uBAA0B,wBAC5B,EACA,cAAiB,eACnB,EACA,qBAAwB,CACtB,QAAW,CACT,8CAAiD,0DACnD,EACA,QAAW,CACT,sBAAyB,0BAC3B,CACF,EACA,eAAkB,CAChB,OAAU,gBACV,KAAQ,uDACV,EACA,YAAe,CACb,gBAAmB,CACjB,MAAS,aACT,aAAgB,2CAChB,aAAgB,qFAChB,kBAAqB,yBACrB,SAAY,yBACZ,kBAAqB,oCACvB,EACA,gBAAmB,CACjB,MAAS,aACT,aAAgB,oIAChB,QAAW,UACX,UAAa,YACb,OAAU,SACV,WAAc,gBACd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","names":["GalaxyDateDefault","GalaxyFilterOperator","GalaxyFilterType","init_enums","__esmMin","GalaxyAbstractFilterInput","GalaxyFilterChipInjectionToken","InnerGalaxyFilterChipInjectionToken","GalaxySymbolsFilterOperators","GalaxyStringFilterValue","init_interface","__esmMin","init_enums","init_core","inputs","initialValue","outputs","valueChanges","_GalaxyAbstractFilterInput","InjectionToken","GalaxyFilterOperator","FILTER_OPERATOR_INVALID","FILTER_OPERATOR_IS_EMPTY","FILTER_OPERATOR_IS_NOT_EMPTY","FILTER_OPERATOR_IS","FILTER_OPERATOR_IS_NOT","FILTER_OPERATOR_IS_ANY","FILTER_OPERATOR_IS_NOT_ANY","FILTER_OPERATOR_IS_ALL","FILTER_OPERATOR_IS_NOT_ALL","FILTER_OPERATOR_CONTAINS","FILTER_OPERATOR_DOES_NOT_CONTAIN","FILTER_OPERATOR_IS_EQUAL_TO","FILTER_OPERATOR_IS_NOT_EQUAL_TO","FILTER_OPERATOR_IS_GREATER_THAN","FILTER_OPERATOR_IS_GREATER_THAN_OR_EQUAL_TO","FILTER_OPERATOR_IS_LESS_THAN","FILTER_OPERATOR_IS_LESS_THAN_OR_EQUAL_TO","FILTER_OPERATOR_IS_BEFORE","FILTER_OPERATOR_IS_BEFORE_OR_ON","FILTER_OPERATOR_IS_AFTER","FILTER_OPERATOR_IS_AFTER_OR_ON","FILTER_OPERATOR_IS_BETWEEN","FILTER_OPERATOR_IS_NOT_BETWEEN","GalaxyDateDefault","DATE_DEFAULT_INVALID","DATE_DEFAULT_TODAY","DATE_DEFAULT_YESTERDAY","DATE_DEFAULT_TOMORROW","DATE_DEFAULT_THIS_WEEK","DATE_DEFAULT_LAST_WEEK","DATE_DEFAULT_NEXT_WEEK","DATE_DEFAULT_THIS_MONTH","DATE_DEFAULT_LAST_MONTH","DATE_DEFAULT_NEXT_MONTH","DATE_DEFAULT_THIS_QUARTER","DATE_DEFAULT_LAST_QUARTER","DATE_DEFAULT_NEXT_QUARTER","DATE_DEFAULT_THIS_YEAR","DATE_DEFAULT_LAST_YEAR","DATE_DEFAULT_NEXT_YEAR","ɵɵelementStart","ɵɵlistener","filterDefinition_r2","ɵɵrestoreView","_r1","$implicit","ctx_r2","ɵɵnextContext","ɵɵresetView","emitNewFilter","ɵɵtext","ɵɵelementEnd","ɵɵadvance","ɵɵtextInterpolate1","fieldName","GalaxyAddFilterModalComponent","init_galaxy_add_filter_modal_component","__esmMin","init_common","init_core","init_forms","init_divider","init_icon","init_input","init_select","init_ngx_translate_core","init_form_field","init_esm","init_interface","constructor","filtersHeader","addFilter","EventEmitter","searchControl","UntypedFormControl","filtersDependencies","inject","InnerGalaxyFilterChipInjectionToken","filterDefinitions$","valueChanges","pipe","startWith","switchMap","searchTerm","listObjectFilters","filter","emit","__spreadValues","selectors","inputs","outputs","standalone","features","ɵɵStandaloneFeature","decls","vars","consts","template","rf","ctx","ɵɵelement","ɵɵtemplate","GalaxyAddFilterModalComponent_p_8_Template","ɵɵproperty","ɵɵpropertyInterpolate","ɵɵpipeBind1","ɵɵtextInterpolate","CommonModule","NgForOf","AsyncPipe","MatSelectModule","ReactiveFormsModule","DefaultValueAccessor","NgControlStatus","FormControlDirective","TranslateModule","TranslatePipe","GalaxyFormFieldModule","FormFieldComponent","MatIconModule","MatDividerModule","MatInputModule","MatInput","styles","_GalaxyAddFilterModalComponent","GalaxyCustomFilterChipComponent","init_custom_filter_chip_component","__esmMin","init_common","init_core","initialValue","values","_initialValues","constructor","ref","ngAfterViewInit","filterChip","console","error","viewContainerRef","overrideRef","clear","componentRef","createComponent","instance","detectChanges","ɵɵdirectiveInject","ChangeDetectorRef","selectors","viewQuery","rf","ctx","ViewContainerRef","ɵɵtemplate","GalaxyCustomFilterChipComponent_ng_template_0_Template","ɵɵtemplateRefExtractor","CommonModule","encapsulation","_GalaxyCustomFilterChipComponent","ɵɵelementStart","ɵɵtext","ɵɵelementEnd","ɵɵproperty","control_r1","option","ɵɵadvance","ɵɵtextInterpolate1","GalaxyCheckboxFilterInputComponent","init_checkbox_filter_input_component","__esmMin","init_common","init_core","init_forms","init_input","init_ngx_translate_core","init_interface","init_form_field","init_esm","init_autocomplete","init_operators","init_rxjs_interop","init_checkbox","fieldId","value","_fieldId","set","disabled","formGroup","disable","initialValue","_initialValue","constructor","formBuilder","valueChanges","EventEmitter","FormGroup","signal","availableOptions","formValueChanges","toSignal","controls","computed","Object","keys","forEach","formControl","get","subscriptions","filtersDependencies","inject","InnerGalaxyFilterChipInjectionToken","effect","currentValues","map","string","options","includes","removeControl","control","addControl","pristine","setValue","allowSignalWrites","fieldId$","toObservable","push","pipe","distinctUntilChanged","a","b","sort","join","subscribe","values","entries","checked","emit","filter","length","switchMap","getFieldOptions","shareReplay","ngOnDestroy","subscription","unsubscribe","clearValue","reset","ɵɵdirectiveInject","FormBuilder","selectors","inputs","outputs","standalone","features","ɵɵProvidersFeature","provide","GalaxyAbstractFilterInput","useExisting","forwardRef","ɵɵStandaloneFeature","decls","vars","consts","template","rf","ctx","ɵɵtemplate","GalaxyCheckboxFilterInputComponent_mat_checkbox_1_Template","CommonModule","NgForOf","TranslateModule","ReactiveFormsModule","NgControlStatus","NgControlStatusGroup","FormGroupDirective","FormControlName","MatInputModule","GalaxyFormFieldModule","FormFieldComponent","MatAutocompleteModule","MatCheckboxModule","MatCheckbox","encapsulation","_GalaxyCheckboxFilterInputComponent","GalaxyCustomFilterInputComponent","init_custom_filter_input_component","__esmMin","init_common","init_core","init_rxjs_interop","init_interface","initialValue","values","_initialValues","constructor","ref","valueChanges","EventEmitter","destroyRef","inject","DestroyRef","ngAfterViewInit","filterOverride","console","error","viewContainerRef","overrideRef","clear","componentRef","createComponent","filterInput","instance","pipe","takeUntilDestroyed","subscribe","value","emit","detectChanges","clearValue","ɵɵdirectiveInject","ChangeDetectorRef","selectors","viewQuery","rf","ctx","ViewContainerRef","provide","GalaxyAbstractFilterInput","useExisting","forwardRef","ɵɵStandaloneFeature","decls","vars","consts","template","ɵɵtemplate","GalaxyCustomFilterInputComponent_ng_template_0_Template","ɵɵtemplateRefExtractor","CommonModule","encapsulation","_GalaxyCustomFilterInputComponent","dateDefaultToLabel","init_date_default_labels","__esmMin","init_enums","dateOption","GalaxyDateDefault","DATE_DEFAULT_INVALID","label","DATE_DEFAULT_TODAY","DATE_DEFAULT_TOMORROW","DATE_DEFAULT_YESTERDAY","DATE_DEFAULT_THIS_WEEK","DATE_DEFAULT_NEXT_WEEK","DATE_DEFAULT_LAST_WEEK","DATE_DEFAULT_THIS_MONTH","DATE_DEFAULT_NEXT_MONTH","DATE_DEFAULT_LAST_MONTH","DATE_DEFAULT_THIS_QUARTER","DATE_DEFAULT_NEXT_QUARTER","DATE_DEFAULT_LAST_QUARTER","DATE_DEFAULT_THIS_YEAR","DATE_DEFAULT_NEXT_YEAR","DATE_DEFAULT_LAST_YEAR","ɵɵelementContainerStart","ɵɵelementStart","ɵɵtext","ɵɵelementEnd","ɵɵadvance","ɵɵproperty","option_r1","dateOption","ɵɵtextInterpolate","ɵɵpipeBind1","label","ɵɵtemplate","GalaxyDateFilterInputComponent_glxy_form_field_1_ng_container_3_Template","ctx_r1","dateDefaultControl","dateDefaultOptions","ɵɵelement","dateRangePicker_r3","ɵɵpropertyInterpolate","startDateControl","endDateControl","GalaxyDateFilterInputComponent_ng_container_2_ng_container_1_Template","showDateRangePicker","datePicker_r4","datePicker_r5","dateControl","GalaxyDateFilterInputComponent","init_date_filter_input","__esmMin","init_core","init_common","init_interface","init_enums","init_form_field","init_esm","init_date_default_labels","init_forms","init_ngx_translate_core","init_select","init_button","init_input","init_datepicker","operator","value","state","update","__spreadProps","__spreadValues","dateSelectionType","GalaxyFilterOperator","FILTER_OPERATOR_IS_BETWEEN","FILTER_OPERATOR_IS_NOT_BETWEEN","DatePickerSelection","range","single","initialValue","length","date","setValue","GalaxyDateDefault","DATE_DEFAULT_INVALID","window","setTimeout","valueChanges","emit","dateDefault","emitEvent","disabled","disable","constructor","signal","FILTER_OPERATOR_IS","EventEmitter","computed","dateDefaultToLabel","filter","option","FormControl","nonNullable","undefined","showDate$","pipe","startWith","map","subscriptions","push","tap","subscribe","combineLatest","startDate","endDate","ngOnDestroy","forEach","subscription","unsubscribe","clearValue","selectors","inputs","outputs","standalone","features","ɵɵProvidersFeature","provide","GalaxyAbstractFilterInput","useExisting","forwardRef","ɵɵStandaloneFeature","decls","vars","consts","template","rf","ctx","GalaxyDateFilterInputComponent_glxy_form_field_1_Template","GalaxyDateFilterInputComponent_ng_container_2_Template","GalaxyDateFilterInputComponent_ng_template_4_Template","ɵɵtemplateRefExtractor","CommonModule","NgForOf","NgIf","AsyncPipe","TranslateModule","TranslatePipe","MatSelectModule","MatPrefix","MatSelect","MatOption","MatButtonModule","MatInputModule","MatInput","GalaxyFormFieldModule","FormFieldComponent","ReactiveFormsModule","DefaultValueAccessor","NgControlStatus","FormControlDirective","GalaxyDatepickerModule","MatDatepickerModule","MatDatepicker","MatDatepickerInput","MatDatepickerToggle","MatDateRangeInput","MatStartDate","MatEndDate","MatDateRangePicker","styles","_GalaxyDateFilterInputComponent","GalaxyNoInputFilterInputComponent","init_no_input_component","__esmMin","init_core","init_common","constructor","valueChanges","EventEmitter","initialValue","_","emit","selectors","inputs","outputs","standalone","features","ɵɵProvidersFeature","ɵɵStandaloneFeature","decls","vars","template","rf","ctx","dependencies","CommonModule","encapsulation","_GalaxyNoInputFilterInputComponent","GalaxyNoneSelectedFilterInputComponent","init_none_selected_input_component","__esmMin","init_common","init_ngx_translate_core","selectors","standalone","features","ɵɵProvidersFeature","ɵɵStandaloneFeature","decls","vars","template","rf","ctx","ɵɵelementStart","ɵɵtext","ɵɵelementEnd","ɵɵadvance","ɵɵtextInterpolate","ɵɵpipeBind1","CommonModule","TranslateModule","TranslatePipe","encapsulation","_GalaxyNoneSelectedFilterInputComponent","ɵɵelementStart","ɵɵtext","ɵɵelementEnd","ɵɵproperty","option_r1","ɵɵadvance","ɵɵtextInterpolate","GalaxyRadioFilterInputComponent","init_radio_filter_input_component","__esmMin","init_common","init_core","init_rxjs_interop","init_forms","init_autocomplete","init_input","init_radio","init_ngx_translate_core","init_form_field","init_esm","init_operators","init_interface","fieldId","value","_fieldId","set","disabled","formControl","disable","initialValue","_initialValue","constructor","valueChanges","EventEmitter","FormControl","signal","availableOptions","subscriptions","filtersDependencies","inject","InnerGalaxyFilterChipInjectionToken","effect","length","setValue","string","allowSignalWrites","fieldId$","toObservable","push","pipe","distinctUntilChanged","subscribe","emit","filter","switchMap","getFieldOptions","shareReplay","options","ngOnDestroy","forEach","subscription","unsubscribe","clearValue","reset","selectors","inputs","outputs","standalone","features","ɵɵProvidersFeature","provide","GalaxyAbstractFilterInput","useExisting","forwardRef","ɵɵStandaloneFeature","decls","vars","consts","template","rf","ctx","ɵɵtemplate","GalaxyRadioFilterInputComponent_mat_radio_button_2_Template","CommonModule","NgForOf","TranslateModule","ReactiveFormsModule","NgControlStatus","FormControlDirective","MatInputModule","GalaxyFormFieldModule","FormFieldComponent","MatAutocompleteModule","MatRadioModule","MatRadioGroup","MatRadioButton","encapsulation","_GalaxyRadioFilterInputComponent","SEARCH_DEBOUNCE_MS","FILTER_RANGE_OPERATORS","init_constants","__esmMin","init_enums","GalaxyFilterOperator","FILTER_OPERATOR_IS_BETWEEN","FILTER_OPERATOR_IS_NOT_BETWEEN","ɵɵelementStart","ɵɵtext","ɵɵelementEnd","ɵɵproperty","option_r1","ɵɵadvance","ɵɵtextInterpolate1","GalaxyStringFilterInputComponent","init_string_filter_input_component","__esmMin","init_common","init_core","init_rxjs_interop","init_forms","init_autocomplete","init_input","init_ngx_translate_core","init_form_field","init_esm","init_operators","init_constants","init_interface","fieldId","value","_fieldId","set","initialValue","length","string","formControl","setValue","disabled","disable","constructor","valueChanges","EventEmitter","FormControl","nonNullable","searchTerm","toSignal","signal","availableOptions","subscriptions","filteredOptions","computed","filtersDependencies","inject","InnerGalaxyFilterChipInjectionToken","effect","emit","allowSignalWrites","searchTerm$","toObservable","fieldId$","push","combineLatest","pipe","filter","debounceTime","SEARCH_DEBOUNCE_MS","switchMap","getFieldOptions","shareReplay","subscribe","options","ngOnDestroy","forEach","subscription","unsubscribe","clearValue","selectors","inputs","outputs","standalone","features","ɵɵProvidersFeature","provide","GalaxyAbstractFilterInput","useExisting","forwardRef","ɵɵStandaloneFeature","decls","vars","consts","template","rf","ctx","ɵɵelement","ɵɵtemplate","GalaxyStringFilterInputComponent_mat_option_5_Template","ɵɵpipeBind1","auto_r2","CommonModule","NgForOf","TranslateModule","TranslatePipe","ReactiveFormsModule","DefaultValueAccessor","NgControlStatus","FormControlDirective","MatInputModule","MatInput","GalaxyFormFieldModule","FormFieldComponent","MatAutocompleteModule","MatAutocomplete","MatOption","MatAutocompleteTrigger","encapsulation","_GalaxyStringFilterInputComponent","ɵɵelementContainerStart","ɵɵelementStart","ɵɵlistener","tagIndex_r3","ɵɵrestoreView","_r2","index","ctx_r3","ɵɵnextContext","ɵɵresetView","removeTag","ɵɵtext","ɵɵelementEnd","ɵɵadvance","ɵɵtextInterpolate1","tag_r5","ɵɵproperty","tag_r6","ɵɵtextInterpolate","TagsComponent","init_tags_component","__esmMin","init_coercion","init_core","init_forms","init_esm","availableTags","tags","_availableTags","uniqueTags","filter","tag","chosenTagsControl","value","includes","constructor","ngControl","_elementRef","translate","searchText","EventEmitter","maxTagLength","maxTags","autocompleteOnly","FormControl","nonNullable","searchControl","separatorKeysCodes","ENTER","COMMA","maxTagLengthReached$","valueChanges","pipe","map","searchTerm","length","_disabled","_required","_placeholder","id","nextId","stateChanges","Subject","focused","controlType","onChange","onTouched","valueAccessor","maxTagLengthReachedMessage","instant","maxLength","ngOnInit","subscribe","emit","ngOnDestroy","complete","addTag","touchControls","markAsDirty","markAsTouched","updateValueAndValidity","setValue","addNewTagByTokenEnd","event","trim","chipInput","clear","tagIndex","splice","selectExistingTagFromAutocomplete","searchInput","nativeElement","option","viewValue","disabled","coerceBooleanProperty","next","required","placeholder","plh","empty","errorState","errors","touched","shouldLabelFloat","setDescribedByIds","ids","setAttribute","join","onContainerClick","focus","writeValue","registerOnChange","fn","registerOnTouched","setDisabledState","isDisabled","_TagsComponent","ɵɵdirectiveInject","NgControl","ElementRef","TranslateService","selectors","viewQuery","rf","ctx","ɵɵhostProperty","ɵɵtemplate","TagsComponent_ng_container_3_Template","$event","i0","_r1","TagsComponent_mat_option_9_Template","ɵɵpropertyInterpolate","ɵɵpipeBind1","auto_r8","chipGrid_r7","MODULE_IMPORTS","GalaxyTagsModule","init_tags_module","__esmMin","init_common","init_forms","init_icon","init_autocomplete","init_chips","init_input","init_ngx_translate_core","init_badge","init_form_field","init_tooltip","CommonModule","MatAutocompleteModule","MatChipsModule","MatIconModule","MatInputModule","ReactiveFormsModule","TranslateModule","GalaxyBadgeModule","GalaxyFormFieldModule","GalaxyTooltipModule","_GalaxyTagsModule","init_public_api","__esmMin","init_tags_module","init_tags","__esmMin","init_public_api","MAX_TAG_LENGTH","GalaxyTagsFilterInputComponent","init_tags_filter_input_component","__esmMin","init_common","init_core","init_rxjs_interop","init_forms","init_ngx_translate_core","init_form_field","init_tags","init_esm","init_constants","init_interface","tagsFieldId","value","_tagsFieldId","set","initialValue","tags","map","val","string","filter","tag","length","formControl","setValue","disabled","disable","constructor","signal","searchTerm","availableTags","maxTags","valueChanges","EventEmitter","FormControl","nonNullable","subscriptions","filtersDependencies","inject","InnerGalaxyFilterChipInjectionToken","tagsUsed","toSignal","effect","filterValues","emit","allowSignalWrites","availableTags$","toObservable","computed","pipe","options","distinctUntilChanged","debounceTime","SEARCH_DEBOUNCE_MS","switchMap","o","getFieldOptions","push","subscribe","ngOnDestroy","forEach","subscription","unsubscribe","searchTextChanged","clearValue","selectors","inputs","outputs","standalone","features","ɵɵProvidersFeature","provide","GalaxyAbstractFilterInput","useExisting","forwardRef","ɵɵStandaloneFeature","decls","vars","consts","template","rf","ctx","ɵɵelementStart","ɵɵlistener","$event","ɵɵelementEnd","ɵɵelement","ɵɵadvance","ɵɵproperty","ɵɵpipeBind1","tmp_3_0","undefined","ɵɵpureFunction0","_c0","CommonModule","TranslateModule","TranslatePipe","ReactiveFormsModule","NgControlStatus","MaxLengthValidator","FormControlDirective","GalaxyTagsModule","TagsComponent","GalaxyFormFieldModule","FormFieldComponent","encapsulation","_GalaxyTagsFilterInputComponent","ɵɵelementStart","ɵɵtext","ɵɵelementEnd","ɵɵproperty","option_r1","ɵɵadvance","ɵɵtextInterpolate","GalaxyBooleanFilterInputComponent","init_boolean_filter_input_component","__esmMin","init_common","init_core","init_rxjs_interop","init_forms","init_autocomplete","init_input","init_radio","init_ngx_translate_core","init_form_field","init_esm","init_operators","init_interface","fieldId","value","_fieldId","set","initialValue","_initialValue","disabled","formControl","disable","constructor","valueChanges","EventEmitter","FormControl","signal","availableOptions","subscriptions","filtersDependencies","inject","InnerGalaxyFilterChipInjectionToken","effect","length","setValue","boolean","allowSignalWrites","fieldId$","toObservable","push","pipe","distinctUntilChanged","subscribe","emit","filter","switchMap","getFieldOptions","shareReplay","options","ngOnDestroy","forEach","subscription","unsubscribe","clearValue","reset","selectors","inputs","outputs","standalone","features","ɵɵProvidersFeature","provide","GalaxyAbstractFilterInput","useExisting","forwardRef","ɵɵStandaloneFeature","decls","vars","consts","template","rf","ctx","ɵɵtemplate","GalaxyBooleanFilterInputComponent_mat_radio_button_2_Template","CommonModule","NgForOf","TranslateModule","ReactiveFormsModule","NgControlStatus","FormControlDirective","MatInputModule","GalaxyFormFieldModule","FormFieldComponent","MatAutocompleteModule","MatRadioModule","MatRadioGroup","MatRadioButton","styles","_GalaxyBooleanFilterInputComponent","filterOperatorToLabel","init_filter_operator_labels","__esmMin","init_enums","GalaxyFilterOperator","FILTER_OPERATOR_INVALID","FILTER_OPERATOR_IS_EMPTY","FILTER_OPERATOR_IS_NOT_EMPTY","FILTER_OPERATOR_IS","FILTER_OPERATOR_IS_NOT","FILTER_OPERATOR_IS_ANY","FILTER_OPERATOR_IS_NOT_ANY","FILTER_OPERATOR_IS_ALL","FILTER_OPERATOR_IS_NOT_ALL","FILTER_OPERATOR_CONTAINS","FILTER_OPERATOR_DOES_NOT_CONTAIN","FILTER_OPERATOR_IS_EQUAL_TO","FILTER_OPERATOR_IS_NOT_EQUAL_TO","FILTER_OPERATOR_IS_GREATER_THAN","FILTER_OPERATOR_IS_GREATER_THAN_OR_EQUAL_TO","FILTER_OPERATOR_IS_LESS_THAN","FILTER_OPERATOR_IS_LESS_THAN_OR_EQUAL_TO","FILTER_OPERATOR_IS_BEFORE","FILTER_OPERATOR_IS_BEFORE_OR_ON","FILTER_OPERATOR_IS_AFTER","FILTER_OPERATOR_IS_AFTER_OR_ON","FILTER_OPERATOR_IS_BETWEEN","FILTER_OPERATOR_IS_NOT_BETWEEN","ɵɵelementStart","ɵɵelement","ɵɵelementEnd","ɵɵadvance","ɵɵpropertyInterpolate","ɵɵpipeBind1","ɵɵproperty","ctx_r0","valueControl","ɵɵtext","endValueControl","GalaxyFloatFilterInputComponent","init_float_filter_input","__esmMin","init_core","init_common","init_interface","init_enums","init_form_field","init_esm","init_forms","init_ngx_translate_core","init_input","init_rxjs_interop","operator","value","setSelectionType","initialValue","length","setValue","setRangeValue","disabled","disable","constructor","valueChanges","EventEmitter","selectionType$$","BehaviorSubject","FormControl","undefined","nonNullable","combineLatest","pipe","startWith","takeUntilDestroyed","debounceTime","subscribe","selectionType","endValue","emit","float","clearValue","reset","rangeOperators","GalaxyFilterOperator","FILTER_OPERATOR_IS_BETWEEN","FILTER_OPERATOR_IS_NOT_BETWEEN","next","includes","startValue","selectors","inputs","outputs","standalone","features","ɵɵProvidersFeature","provide","GalaxyAbstractFilterInput","useExisting","forwardRef","ɵɵStandaloneFeature","decls","vars","consts","template","rf","ctx","ɵɵtemplate","GalaxyFloatFilterInputComponent_Conditional_1_Template","GalaxyFloatFilterInputComponent_Conditional_3_Template","ɵɵconditional","CommonModule","AsyncPipe","TranslateModule","TranslatePipe","MatInputModule","MatInput","GalaxyFormFieldModule","FormFieldComponent","ReactiveFormsModule","DefaultValueAccessor","NumberValueAccessor","NgControlStatus","FormControlDirective","styles","_GalaxyFloatFilterInputComponent","ɵɵelementContainerStart","ɵɵelementStart","ɵɵtext","ɵɵelementEnd","ɵɵadvance","ɵɵproperty","operatorOption_r1","operator","ɵɵtextInterpolate","ɵɵpipeBind1","label","ɵɵtemplate","GalaxyEditFilterModalComponent_ng_container_0_div_5_ng_container_4_Template","ctx_r1","selectedOperatorControl","operatorOptions","ɵɵtextInterpolate1","GalaxyEditFilterModalComponent_ng_container_0_ng_template_6_div_0_Template","GalaxyEditFilterModalComponent_ng_container_0_ng_template_6_ng_template_1_Template","ɵɵtemplateRefExtractor","tmp_6_0","length","defaultOperator_r3","ɵɵlistener","$event","ɵɵrestoreView","_r4","ɵɵnextContext","ɵɵresetView","filterValuesChanged","_initialFilter_r5","values","ɵɵpureFunction0","_c0","filterDefinition","fieldId","lockedValue","_r6","undefined","_r7","_r8","_r9","tmp_5_0","_r10","_r11","_r12","value","_r13","_r14","_r15","filterOverride","ɵɵelement","ɵɵelementContainer","GalaxyEditFilterModalComponent_ng_container_0_ng_container_21_ng_container_1_Template","applyButton_r16","GalaxyEditFilterModalComponent_ng_container_0_ng_container_22_ng_container_1_Template","GalaxyEditFilterModalComponent_ng_container_0_div_5_Template","GalaxyEditFilterModalComponent_ng_container_0_ng_template_6_Template","GalaxyEditFilterModalComponent_ng_container_0_glxy_string_filter_input_9_Template","GalaxyEditFilterModalComponent_ng_container_0_glxy_tags_filter_input_10_Template","GalaxyEditFilterModalComponent_ng_container_0_glxy_tags_filter_input_11_Template","GalaxyEditFilterModalComponent_ng_container_0_glxy_tags_filter_input_12_Template","GalaxyEditFilterModalComponent_ng_container_0_glxy_radio_filter_input_13_Template","GalaxyEditFilterModalComponent_ng_container_0_glxy_checkbox_filter_input_14_Template","GalaxyEditFilterModalComponent_ng_container_0_glxy_no_input_filter_input_15_Template","GalaxyEditFilterModalComponent_ng_container_0_glxy_date_filter_input_16_Template","GalaxyEditFilterModalComponent_ng_container_0_glxy_float_filter_input_17_Template","GalaxyEditFilterModalComponent_ng_container_0_glxy_boolean_filter_input_18_Template","GalaxyEditFilterModalComponent_ng_container_0_glxy_custom_filter_input_19_Template","GalaxyEditFilterModalComponent_ng_container_0_glxy_none_selected_input_filter_input_20_Template","GalaxyEditFilterModalComponent_ng_container_0_ng_container_21_Template","GalaxyEditFilterModalComponent_ng_container_0_ng_container_22_Template","fieldName","supportedOperators","operatorLabel_r17","inputType","FilterInputType","FILTER_INPUT_TYPE_SINGLE_SELECT_STRING","FILTER_INPUT_TYPE_MULTI_SELECT_STRING","FILTER_INPUT_TYPE_SINGLE_SELECT_TAG","FILTER_INPUT_TYPE_MULTI_SELECT_TAG","FILTER_INPUT_TYPE_SINGLE_SELECT_RADIO","FILTER_INPUT_TYPE_MULTI_SELECT_CHECKBOX","FILTER_INPUT_TYPE_NO_INPUT","FILTER_INPUT_TYPE_DATE_SELECT","FILTER_INPUT_TYPE_FLOAT","FILTER_INPUT_TYPE_BOOLEAN","FILTER_INPUT_TYPE_CUSTOM_INPUT","FILTER_INPUT_TYPE_NO_OPERATOR_SELECTED","_r18","applyFilter","GalaxyEditFilterModalComponent","init_galaxy_edit_filter_modal_component","__esmMin","init_common","init_core","init_rxjs_interop","init_forms","init_button","init_input","init_select","init_ngx_translate_core","init_form_field","init_enums","init_checkbox_filter_input_component","init_custom_filter_input_component","init_date_filter_input","init_no_input_component","init_none_selected_input_component","init_radio_filter_input_component","init_string_filter_input_component","init_tags_filter_input_component","init_boolean_filter_input_component","init_filter_operator_labels","init_interface","init_float_filter_input","constructor","applyFilterChanges","EventEmitter","FormControl","GalaxyFilterOperator","FILTER_OPERATOR_IS","nonNullable","filterValues","signal","_initialFilter","computed","getOperatorOptions","foundOverride","filterInputOverrides","find","override","getInputType","selectedOperator","operatorControl","toSignal","valueChanges","initialValue","filterValuesSet","filterFloatTolerance","findIndex","float","filtersDependencies","inject","InnerGalaxyFilterChipInjectionToken","getFilterInputOverrides","initialFilter","setValue","disable","set","_filterValuesSet","filter","floatTolerance","operatorHasNoInput","FILTER_OPERATOR_IS_NOT_EMPTY","FILTER_OPERATOR_IS_EMPTY","includes","FILTER_OPERATOR_INVALID","preset","emit","map","filterOperatorToLabel","type","GalaxyFilterType","FILTER_TYPE_CHECKBOX","FILTER_OPERATOR_IS_NOT","FILTER_OPERATOR_IS_EQUAL_TO","FILTER_OPERATOR_IS_NOT_EQUAL_TO","FILTER_TYPE_DATE","FILTER_TYPE_FLOAT","FILTER_OPERATOR_CONTAINS","FILTER_OPERATOR_DOES_NOT_CONTAIN","FILTER_TYPE_STRING","FILTER_TYPE_TAG","FILTER_TYPE_BOOLEAN","FILTER_OPERATOR_IS_ANY","FILTER_OPERATOR_IS_NOT_ANY","FILTER_OPERATOR_IS_ALL","FILTER_OPERATOR_IS_NOT_ALL","selectors","viewQuery","rf","ctx","GalaxyAbstractFilterInput","GalaxyEditFilterModalComponent_ng_container_0_Template","GalaxyEditFilterModalComponent_ng_template_1_Template","CommonModule","NgForOf","NgIf","NgTemplateOutlet","NgSwitch","NgSwitchCase","TranslateModule","TranslatePipe","MatSelectModule","MatSelect","MatOption","MatButtonModule","MatButton","MatInputModule","GalaxyFormFieldModule","FormFieldComponent","ReactiveFormsModule","NgControlStatus","FormControlDirective","GalaxyStringFilterInputComponent","GalaxyNoInputFilterInputComponent","GalaxyNoneSelectedFilterInputComponent","GalaxyTagsFilterInputComponent","GalaxyDateFilterInputComponent","GalaxyCheckboxFilterInputComponent","GalaxyRadioFilterInputComponent","GalaxyCustomFilterInputComponent","GalaxyFloatFilterInputComponent","GalaxyBooleanFilterInputComponent","styles","_GalaxyEditFilterModalComponent","ɵɵelementStart","ɵɵtext","ɵɵelementEnd","ɵɵadvance","ɵɵtextInterpolate1","filter_r2","operatorSymbol","ɵɵelement","ɵɵproperty","customChip","values","selectedValue","ɵɵtemplate","GalaxyFilterChipsComponent_mat_chip_3_ng_template_5_span_0_Template","ɵɵlistener","ɵɵrestoreView","_r5","ɵɵnextContext","$implicit","ctx_r2","ɵɵresetView","clearFilterValue","_r1","removeFilter","editFilterPopover_r4","ɵɵreference","openEditFilter","open","GalaxyFilterChipsComponent_mat_chip_3_span_3_Template","GalaxyFilterChipsComponent_mat_chip_3_span_4_Template","GalaxyFilterChipsComponent_mat_chip_3_ng_template_5_Template","ɵɵtemplateRefExtractor","GalaxyFilterChipsComponent_mat_chip_3_button_7_Template","selectFilter","$event","updateSelectedFilter","definition","preset","fieldName","canHaveEmptyValue","withSelectedValue_r6","lockedValue","popoverPositions","tmp_20_0","selectedFilter","tmp_21_0","filter","ɵɵelementContainerStart","_r8","addSelectedFilter","selected_r9","_r10","selectNewFilterFromDefinition","addFiltersHeader","_r11","clearFilters","ɵɵpipeBind1","_r7","openAddFilter","GalaxyFilterChipsComponent_div_4_ng_container_8_Template","GalaxyFilterChipsComponent_div_4_ng_template_9_Template","GalaxyFilterChipsComponent_div_4_button_11_Template","addFilterPopover_r12","add_r13","canClear","GalaxyFilterChipsComponent","init_galaxy_filter_chips_component","__esmMin","init_common","init_core","init_rxjs_interop","init_forms","init_chips","init_icon","init_select","init_ngx_translate_core","init_form_field","init_popover","init_date_utils","init_esm","init_esm_browser","init_galaxy_add_filter_modal_component","init_custom_filter_chip_component","init_galaxy_edit_filter_modal_component","init_enums","init_interface","init_constants","constructor","translate","datePipe","showAddFilter","filtersChanged","EventEmitter","filtersDependencies","inject","InnerGalaxyFilterChipInjectionToken","filterDefinitions","toSignal","listObjectFilters","filters","signal","filterInputOverrides","getFilterInputOverrides","filterOverrideMap","computed","overrideMap","Map","override","set","fieldId","pops","BottomLeft","Bottom","BottomRight","TopLeft","TopRight","filtersChips","filtersToFilterChips","f","def","find","d","length","effect","emit","allowSignalWrites","ngOnInit","getInitialAppliedFilters","then","catch","err","console","error","newFilterId","uuidv4","update","presetResettedFilterValues","map","__spreadProps","__spreadValues","lockedFilterValues","filterId","filterDefinition","defaultOperator","GalaxyFilterOperator","FILTER_OPERATOR_IS","type","GalaxyFilterType","FILTER_TYPE_TAG","FILTER_OPERATOR_IS_ALL","FILTER_TYPE_FLOAT","FILTER_OPERATOR_IS_EQUAL_TO","supportedOperators","operator","selected","floatTolerance","addFilterPopover","closePopovers","editFilterPopover","close","getFilterChipOverride","filterOverride","get","filterChip","definitionForFilter","filterValues","GalaxySymbolsFilterOperators","FILTER_OPERATOR_INVALID","symbol","instant","FILTER_OPERATOR_IS_NOT_EMPTY","FILTER_OPERATOR_IS_EMPTY","hasStringProperty","Object","prototype","hasOwnProperty","call","string","float","undefined","from","toString","FILTER_RANGE_OPERATORS","includes","to","boolean","dateDefaultStringFilter","FILTER_OPERATOR_IS_NOT","FILTER_OPERATOR_IS_BEFORE","FILTER_OPERATOR_IS_BEFORE_OR_ON","FILTER_OPERATOR_IS_AFTER","FILTER_OPERATOR_IS_AFTER_OR_ON","dateDefault","GalaxyDateDefault","DATE_DEFAULT_INVALID","translateFilter","GalaxyStringFilterValue","date","formatDate","FILTER_OPERATOR_IS_NOT_BETWEEN","FILTER_OPERATOR_IS_BETWEEN","fromDate","transform","toDate","overrideChip","ɵɵdirectiveInject","TranslateService","DatePipe","selectors","viewQuery","rf","ctx","provide","useFactory","deps","GalaxyFilterChipInjectionToken","bind","getFieldOptions","of","__async","_GalaxyFilterChipsComponent","ɵɵStandaloneFeature","decls","vars","consts","template","GalaxyFilterChipsComponent_mat_chip_3_Template","GalaxyFilterChipsComponent_div_4_Template","CommonModule","NgForOf","NgIf","MatSelectModule","ReactiveFormsModule","TranslateModule","TranslatePipe","GalaxyFormFieldModule","MatIconModule","MatIcon","GalaxyPopoverModule","PopoverComponent","GalaxyPopoverDirective","GalaxyEditFilterModalComponent","MatChipsModule","MatChip","MatChipRemove","MatChipSet","GalaxyAddFilterModalComponent","GalaxyCustomFilterChipComponent","styles","MODULE_IMPORTS","GalaxyFilterChipsModule","init_filter_chips_module","__esmMin","init_galaxy_filter_chips_component","GalaxyFilterChipsComponent","_GalaxyFilterChipsModule","init_public_api","__esmMin","init_filter_chips_module","init_enums","init_interface","init_chips","__esmMin","init_public_api","StandardExternalIds","SystemFieldIds","ContactCustomColumns","CompanyCustomColumns","TaskCustomColumns","StandardIds","PlatformExtensionFieldIds","fieldIds","renderableReadonlyFields","demoFieldIds","prodFieldIds","CrmFieldService","init_field_service","__esmMin","init_src","FirstName","LastName","PhoneNumber","Email","Tags","ActivityRecordChangeType","ContactCompanyName","ChangeRecordChangeType","ActivityCreated","ActivityUpdated","ActivityEffectiveDate","ActivityID","ActivityType","ActivityOwnerID","ContactCreated","ContactUpdated","ContactID","ContactExternalID","ContactOwnerID","ContactGroupID","CompanyCreated","CompanyUpdated","CompanyID","CompanyExternalID","CompanyOwnerID","CompanyGroupID","FullName","FullAddress","PrimaryCompanyName","ParentCompanyName","AssignedTo","ActivityManuallyLogged","ActivityNoteBody","ActivityNoteTitle","ActivityEmailType","ActivityEmailDirection","ActivityEmailStatus","ActivityEmailBody","ActivityEmailSubject","ActivityEmailHeaders","ActivityEmailDate","ActivityCampaignID","ActivityCallDirection","ActivityCallOutcome","ActivityCallDuration","ActivityCallFromNumber","ActivityCallToNumber","ActivityCallRecordingURL","ActivityCallBody","ActivityCallStatus","ActivityCallDate","ActivityCallRecordingUrl","ActivityMeetingBody","ActivityMeetingInternalNotes","ActivityMeetingURL","ActivityMeetingLocation","ActivityMeetingStartTime","ActivityMeetingEndTime","ActivityMeetingOutcome","ActivityMeetingStatus","ActivityMeetingDuration","ActivityName","ActivitySourceName","ActivityTaskBody","ActivityTaskDueDate","ActivityTaskPriority","ActivityTaskStatus","ActivityTaskType","ActivityTags","ActivityCommunicationChannel","ActivityCommunicationOutcome","ActivityCommunicationDirection","ActivityCommunicationFromId","ActivityCommunicationToId","ActivityCommunicationBody","ActivityCommunicationDate","ActivityUrl","ActivityUrlName","ActivityOpportunityChangeID","ActivityOpportunityChangePipelineStage","ActivityOpportunityChangeLostReason","ActivityOpportunityChangeNotes","ActivityOpportunityChangeUpdatedDate","ActivityOpportunityChangeSalespersonID","CompanyName","CompanyPrimaryAddressLine1","CompanyPrimaryAddressLine2","CompanyPrimaryAddressCity","CompanyPrimaryAddressState","CompanyPrimaryAddressPostalCode","CompanyPrimaryAddressCountry","CompanyPrimaryAddressGooglePlaceID","CompanyPrimaryAddressLatitudeLongitude","CompanyWebsite","CompanyPhoneNumber","CompanyTags","CompanyLifecycleStage","CompanyTimezone","CompanyParentCompanyID","CompanyGoogleReviewScore","CompanyLeadScore","CompanyGBPClaimed","ContactPrimaryCompanyID","ContactPrimaryAddressLine1","ContactPrimaryAddressLine2","ContactPrimaryAddressCity","ContactPrimaryAddressState","ContactPrimaryAddressPostalCode","ContactPrimaryAddressCountry","CompanyPrimarySalespersonID","CompanySourceName","ContactPrimarySalespersonID","CompanyAdditionalSalespersonIDs","ContactAdditionalSalespersonIDs","ContactLifecycleStage","ContactJobTitle","ContactLinkedInURL","ContactSourceName","RecordChangedByUserID","RecordChangeFieldIDsList","RecordChangeReferenceFieldID","CompanyNextTaskDueDate","ContactNextTaskDueDate","AccountGroupID","LatestSnapshotID","UserID","constructor","environmentService","getFieldId","identifier","Object","values","includes","getEnvironment","Environment","DEMO","Error","getEnvironmentString","PROD","getFieldValueFromCrmObject","crmObject","fields","fieldId","fieldValue","find","field","getFieldIdFromFormField","getFieldMaskFromFormFields","forEach","id","push","getFieldMaskFromFormGroup","formGroup","dirtyFields","controls","get","dirty","shouldRenderReadonlyField","ɵɵinject","EnvironmentService","factory","ɵfac","providedIn","_CrmFieldService","TableCustomizationService","ActivityTableCustomizationService","init_abstract_table_customization_service","__esmMin","init_field_service","constructor","crmFieldService","addCustomCell","tableCustomCell","crmObject","columnData","cellValue","fieldIds","map","fieldId","getFieldValueFromCrmObject","columnDefinition","id","cellType","value","component","customCellComponent","addCustomCells","tableCustomCells","addCustomColumns","customColumns","columns","customColumn","__spreadProps","__spreadValues","hidden","filter","column","index","self","indexOf","overrideCustomFilters","filters","overrides","override","findFieldIDIndex","findIndex","f","fieldName","title","ɵɵinject","CrmFieldService","factory","ɵfac","_TableCustomizationService","getRowFullName","name","getFieldId","StandardIds","ActivityName","fields","find","stringValue","getAssociationInfo","t","_ActivityTableCustomizationService","ContactService","init_contact_service","__esmMin","constructor","service","createCrmObject","request","createContact","deleteCrmObject","deleteContact","validateCrmObject","validateContact","updateCrmObject","updateContact","listObjects","listContacts","listObjectsFilters","listContactsFilters","getMultiObject","getMultiContact","listFieldOptions","listContactFieldOptions","ɵɵinject","CRMApiService","factory","ɵfac","providedIn","_ContactService","CompanyService","init_company_service","__esmMin","constructor","service","createCrmObject","request","createCompany","deleteCrmObject","deleteCompany","validateCrmObject","validateCompany","updateCrmObject","updateCompany","listObjects","listCompanies","listObjectsFilters","listCompaniesFilters","getMultiObject","getMultiCompany","listFieldOptions","listCompanyFieldOptions","startBulkCreate","startBulkCompanyCreate","ɵɵinject","CRMCompanyApiService","factory","ɵfac","providedIn","_CompanyService","ActivityObjectService","init_activity_object_service","__esmMin","init_operators","constructor","activityApiService","createCrmObject","request","createActivity","deleteCrmObject","deleteActivity","getMultiObject","getMultiActivity","pipe","map","response","crmObjects","activities","listFieldOptions","listActivityFieldOptions","listObjects","listActivities","listObjectsFilters","listActivityFilters","updateCrmObject","updateActivity","namespace","activity","crmObject","fieldMask","validateCrmObject","validateActivity","ɵɵinject","CRMActivityApiService","factory","ɵfac","providedIn","_ActivityObjectService","CrmObjectService","init_crm_object_service","__esmMin","init_vendasta_crm","init_esm","init_chips","init_tokens_and_interfaces","constructor","config","contactService","companyService","activityService","createCrmObject","objectType","crmObject","namespace$","pipe","take","switchMap","namespace","request","selectService","deleteCrmObject","objectId","crmObjectId","validateCrmObject","updateCrmObject","paths","fields","forEach","field","push","fieldId","fieldMask","convertSortBy","sorting","sortBy","sort","direction","active","sortDirection","SortDirection","SORT_DIRECTION_ASCENDING","SORT_DIRECTION_DESCENDING","convertFilters","filters","filterGroup","operator","FilterGroupOperator","FILTER_GROUP_OPERATOR_AND","inputFilter","filterOperator","FilterOperator","GalaxyFilterOperator","undefined","filterGroupFilter","values","floatTolerance","map","v","dateDefault","DateDefault","GalaxyDateDefault","boolean","integer","string","date","float","listObjects","__spreadProps","__spreadValues","response","crmObjects","activities","listObjectsFilters","getMultiObject","crmObjectIds","listFieldOptions","ɵɵinject","CrmInjectionToken","ContactService","CompanyService","ActivityObjectService","factory","ɵfac","_CrmObjectService","CrmFieldOptionsService","init_crm_field_options_service","__esmMin","init_operators","constructor","objectService","getFieldOptions","fieldId","search","objectType","listFieldOptions","pageSize","searchTerm","pipe","map","response","options","ɵɵinject","CrmObjectService","factory","ɵfac","_CrmFieldOptionsService","businessAccountLink","LIST_OBJECTS_PAGE_SIZE_OPTIONS","ACTIVITIES_TIMELINE_PAGE_SIZE","VALID_RECORD_CHANGE_TYPES","AVATAR_WIDTH","RESERVED_TAGS","PRIMARY_TAG","DEFAULT_TAG_SEARCH_SIZE","PAGE_ROUTES","init_constants","__esmMin","LIST_OBJECTS_DEFAULT_PAGE_SIZE","CONTACT","ROOT","SUBROUTES","LIST","CREATE","EDIT","BULK_IMPORT","PROFILE","USER","COMPANY","ACCOUNT","TASK","PROSPECT","BUSINESSES","PERMISSION_REQUIRED","ActivityService","init_activity_service","__esmMin","init_operators","init_tokens_and_interfaces","constructor","config","activityService","listActivities","request","namespace$","pipe","switchMap","namespace","__spreadProps","__spreadValues","take","createActivity","activity","map","response","crmObjectId","getMultiActivities","crmObjectIds","getMultiActivity","activities","updateActivity","fieldMask","paths","length","Error","ɵɵinject","CrmInjectionToken","CRMActivityApiService","factory","ɵfac","_ActivityService","objectSpecificTranslationKeys","TranslateByObjectTypeService","init_translate_by_object_type_service","__esmMin","constructor","translateService","getTranslationKeyByObjectType","objectType","partialTranslationKey","includes","toUpperCase","console","warn","getTranslationByObjectType","interpolateParams","translationKey","translation","instant","ɵɵinject","TranslateService","factory","ɵfac","_TranslateByObjectTypeService","MAX_SERVER_PAGE_SIZE","CrmFormService","init_crm_form_service","__esmMin","init_vendasta_crm","init_esm","init_tokens_and_interfaces","init_field_service","constructor","config","crmObjectService","crmFieldSchemaApiService","crmFieldLayoutApiService","translationService","translateByObjectTypeService","handleValidationErrors","objectType","validationResponse","invalidSeverityErrors","errors","filter","e","severity","ErrorSeverity","VALIDATION_ERROR_SEVERITY_INVALID","length","firstError","firstErrorSchema","fieldSchemaMap","get","details","uniquenessCheck","fieldId","message","Error","getTranslationByObjectType","label","fieldName","toLowerCase","listAllObjectFields$","of","fieldSchemas","pagingMetadata","nextCursor","hasMore","pipe","expand","resp","listObjectFieldsNextPage$","cursor","pageSize","EMPTY","reduce","acc","val","paging","namespace$","take","switchMap","namespace","listFieldSchema","crmObjectType","pagingOptions","listAllObjectFieldGroups$","listObjectFieldGroupsNextPage$","fieldGroups","listFieldGroups","crmFieldGroupToFormFieldGroup","crmFieldGroup","description","fieldIds","listAllObjectFormFieldGroups$","map","crmFieldGroups","crmFieldSchemasToFormFieldSchemas","crmFieldSchemas","crmFieldSchema","fieldType","FieldType","FIELD_TYPE_INVALID","fieldDescription","dropdownOptions","currencyCode","value","readOnly","readonly","listAllFormFields$","shareReplay","bufferSize","refCount","getCrmFieldValueToFormValue","crmFieldValue","FIELD_TYPE_INTEGER","FIELD_TYPE_CURRENCY","integerValue","FIELD_TYPE_STRING","FIELD_TYPE_DROPDOWN","FIELD_TYPE_EMAIL","FIELD_TYPE_PHONE","stringValue","FIELD_TYPE_BOOLEAN","booleanValue","FIELD_TYPE_TAG","FIELD_TYPE_STRING_LIST","stringValues","values","FIELD_TYPE_DATETIME","FIELD_TYPE_DATE","dateValue","FIELD_TYPE_FLOAT","floatValue","compareStringList","currentValue","modifiedValue","currentValues","modifiedValues","sortedCurrentValues","sort","sortedModifiedValues","index","entries","isFieldValueEmpty","isModifiedFieldValue","getTime","initializeFormFieldSchemaWithCrmObject","fieldSchema","crmObject","fields","crmObjectFieldValue","find","crmObjectField","listAllFormFieldsInitializedWithCrmObject$","crmObjectId","forkJoin","getMultiObject","getMultiResponse","crmObjects","instant","forEach","field","validateCrmObject$","validationErrors$","validateCrmObject","response","fieldSchemaMap$","schemas","schemaMap","Map","schema","set","validationErrors","validateAndCreateCrmObject$","hasModification","fieldValue","fieldValues","validationResponse$","setSystemFields","createCrmObject","contactOwnerID","SystemFieldIds","ContactOwnerID","ownerId","contactGroupID","ContactGroupID","groupId","companyOwnerID","CompanyOwnerID","companyGroupID","CompanyGroupID","validateAndUpdateCrmObject$","modifiedFieldValues","updateCrmObject","validateAndUpdateCrmObjectField$","fieldSchema$","getMultiFieldSchema","currentCrmObject$","validationValues$","combineLatest","currentObject","currentObjectFields","currentValueIndex","findIndex","validationValues","ɵɵinject","CrmInjectionToken","CrmObjectService","CRMFieldSchemaApiService","CRMFieldLayoutApiService","TranslateService","TranslateByObjectTypeService","factory","ɵfac","_CrmFormService","init_abstract_service","__esmMin","CompanyContactCacheService","init_company_contact_cache_service","__esmMin","constructor","cache","Map","ttlCache","set","key","data","ttl","Date","now","get","clear","delete","factory","ɵfac","providedIn","_CompanyContactCacheService","CrmAssociationService","init_crm_association_service","__esmMin","init_esm","init_operators","init_vendasta_crm","init_tokens_and_interfaces","constructor","config","companyService","contactService","crmAssociationApiService","modal","companyContactCacheService","crmObjectIdToAssociate","copyCrmObjects","crmObjects","objects","setCopyCrmObjects","setCrmObjectIdToAssociate","getRemainingCompanyAssociationsForContacts$","contactId","namespace$","associations$","pipe","switchMap","namespace","of","associations","pagingMetadata","hasMore","nextCursor","expand","resp","listAssociation","pagingOptions","pageSize","cursor","filtersV2","operator","FilterGroupOperator","FILTER_GROUP_OPERATOR_AND","filters","fieldId","FilterOperator","FILTER_OPERATOR_IS","values","string","EMPTY","reduce","acc","val","companies$","combineLatest","response","length","companyIds","map","associationResponse","toId","getMultiObject","crmObjectIds","companies","association","company","find","crmObjectId","tags","tag","tagValue","associationId","associationType","associatedObject","getCompanyAssociationsForContact$","getCompaniesWithAssociations$","joinAssociationsWithObjects$","getCompanyAssociationObjectIdsForContact$","asc","getRemainingContactAssociationsForCompanies$","companyId","take","contacts$","contactIds","fromId","contacts","contact","shareReplay","bufferSize","refCount","getChildCompanyAssociationsForCompany$","companyID","FILTER_OPERATOR_IS_ANY","getParentCompanyAssociationsForCompany$","direction","ids","objects$","getCachedContactAssociationsForCompany$","cachedContacts","get","associatedContacts","set","getContactAssociationsForCompany$","getContactsWithAssociations$","removeAssociation","id","deleteAssociation","createContactCompanyAssociation$","primarySelection","tagMap","primaryAssociation","Map","associationTagValues","savedData$","row","push","forEach","createAssociation","catchError","error","console","zip","data","errorOccurred","checkError","item","filteredData","filter","filteredCopy","_","index","respCount","createdCount","String","totalCount","copyCrmObjectsUpdated","obj","__spreadProps","__spreadValues","createAssociation$","fallbackToNoTags","associationTags","listAssociationFieldOptions","searchTerm","options","updateAssociationTags","updateAssociation","t","getAssociation","getMultiAssociation","associationIds","ɵɵinject","CrmInjectionToken","CompanyService","ContactService","CRMAssociationApiService","MatDialog","CompanyContactCacheService","factory","ɵfac","_CrmAssociationService","CrmTableStateService","init_crm_table_state_service","__esmMin","init_core","init_esm","init_operators","init_tokens_and_interfaces","constructor","config","breakpointObserver","MOBILE_BREAKPOINT","isMobile$","observe","pipe","map","result","matches","distinctUntilChanged","tableState","signal","localStorageKey","initializeLocalStorageColumns","columns","of","isMobile","lcColumns","i","ls","localStorage","getItem","JSON","parse","forEach","column","localStorageColumnIndex","findIndex","c","id","push","localStorageColumn","__spreadProps","__spreadValues","_position","hidden","lcColumnsCleaned","filter","find","setItem","stringify","setLocalStorageColumns","take","subscribe","length","setLocalStorageKey","objectType","appName","appID","set","ɵɵinject","CrmInjectionToken","BreakpointObserver","factory","ɵfac","_CrmTableStateService","init_crm_object_service","__esmMin","init_abstract_service","init_activity_object_service","init_company_service","init_contact_service","init_crm_association_service","init_crm_table_state_service","init_crm_services","__esmMin","init_activity_service","init_crm_field_options_service","init_crm_filters_service","init_crm_form_service","init_field_service","init_crm_object_service","ɵɵelementStart","ɵɵelementContainer","ɵɵelementEnd","ɵɵproperty","link_r1","ɵɵadvance","displayNameTemplate_r3","ɵɵpureFunction1","_c0","data_r2","displayValue","ɵɵelement","ɵɵelementContainerStart","ɵɵtemplate","ParentCompanyNameComponent_ng_container_0_a_1_Template","ParentCompanyNameComponent_ng_container_0_ng_template_2_Template","ɵɵtemplateRefExtractor","link","div_r4","ɵɵtext","ɵɵtextInterpolate","displayName_r5","ParentCompanyNameComponent_ng_template_4_ng_container_0_Template","ctx_r5","NO_VALUE_FOR_COMPANY_NAME","blank_r7","ParentCompanyNameComponent","init_parent_company_name_component","__esmMin","init_router","init_common","init_table","init_esm","init_operators","init_shared_services","init_tokens_and_interfaces","init_constants","CustomCellComponent","value","newValue","companyId$$","next","constructor","config","crmFieldService","crmObjectService","BehaviorSubject","displayValue$","pipe","switchMap","parentCompanyID","getMultiObject","of","map","getMultiResponse","crmObjects","length","crmObjectId","getFieldValueFromCrmObject","StandardIds","CompanyName","companyNameFieldValue","stringValue","link$","viewProfileFlag$","take","featureFlag","routePrefix$","routePrefix","getValue","parentCompanyProfileViewRoute","PAGE_ROUTES","COMPANY","ROOT","SUBROUTES","PROFILE","replace","componentData$","combineLatest","ɵɵdirectiveInject","CrmInjectionToken","CrmFieldService","CrmObjectService","selectors","standalone","features","ɵɵInheritDefinitionFeature","ɵɵStandaloneFeature","decls","vars","consts","template","rf","ctx","ParentCompanyNameComponent_ng_container_0_Template","ParentCompanyNameComponent_ng_template_2_Template","ParentCompanyNameComponent_ng_template_4_Template","ParentCompanyNameComponent_ng_template_6_Template","ɵɵpipeBind1","loading_r8","RouterLink","CommonModule","NgIf","NgTemplateOutlet","AsyncPipe","BlankValueComponent","styles","_ParentCompanyNameComponent","ScoreService","init_score_service","__esmMin","init_tokens_and_interfaces","init_esm","init_operators","constructor","config","scoringApiService","crmObjectId","setObjectId","objectId","getScoreForProfile$","fieldId","getScore$","getScoreForTableRow$","companyId","namespace$","pipe","switchMap","namespace","getScore","scoringIdentifier","crmObjectType","label","map","response","score","shareReplay","ɵɵinject","CrmInjectionToken","ScoringApiService","factory","ɵfac","_ScoreService","ɵɵelementStart","ɵɵtext","ɵɵelementEnd","ɵɵadvance","ɵɵtextInterpolate","score_r1","ɵɵelement","ɵɵtemplate","LeadScoreCellComponent_Conditional_0_Conditional_0_Template","LeadScoreCellComponent_Conditional_0_Conditional_1_Template","ɵɵconditional","ctx","ctx_r1","NO_VALUE_FOR_SCORE","LeadScoreCellComponent","init_score_component","__esmMin","init_core","init_common","init_table","init_rxjs_interop","init_operators","init_shared_services","init_esm","init_score_service","CustomCellComponent","value","newValues","fieldValues","set","constructor","scoreService","signal","score","toObservable","pipe","switchMap","companyId","find","fieldValue","fieldId","SystemFieldIds","CompanyID","stringValue","isScoreSet","StandardIds","CompanyLeadScore","floatValue","undefined","of","getScoreForTableRow$","takeUntilDestroyed","subscribe","result","ɵɵdirectiveInject","ScoreService","selectors","standalone","features","ɵɵProvidersFeature","ɵɵInheritDefinitionFeature","ɵɵStandaloneFeature","decls","vars","consts","template","rf","LeadScoreCellComponent_Conditional_0_Template","LeadScoreCellComponent_Conditional_1_Template","tmp_0_0","CommonModule","BlankValueComponent","styles","_LeadScoreCellComponent","enumStringToValue$1","enumRef","value","ResourceScope","FieldMask","GetPermissionsRequest","GetPermissionsResponse","Namespace","Permissions","Resource","UpdatePermissionsRequest","environment","hostMap","HostService","PermissionsApiService","init_vendasta_platform_users","__esmMin","init_core","init_http","init_operators","_FieldMask","proto","m","kwargs","toReturn","_GetPermissionsRequest","_GetPermissionsResponse","_Namespace","_Permissions","_Resource","_UpdatePermissionsRequest","ɵɵdefineInjectable","http","hostService","HttpHeaders","r","request","map","resp","__spreadProps","__spreadValues","ɵɵinject","HttpClient","PartnerCenterClientAppID","ShellClientAppID","AppsRestrictedByMarkets","RestrictedGroupService","init_restricted_group_service","__esmMin","init_core","init_vendasta_platform_users","init_tokens_and_interfaces","init_esm","init_vendasta_partner","init_vendasta_iamv2","init_operators","constructor","config","inject","CrmInjectionToken","permissionsApiService","PermissionsApiService","featureFlagService","FeatureFlagsApiService","iamService","IAMService","featureEnabled$","namespace$","pipe","switchMap","namespace","includes","appID","batchGetStatus","featureIds","partnerId","of","hasAccess","map","response","length","currentUser$","currentUserId$","userId","uniqueUserIdentifiers","UserIdentifier","getMultiUsers","catchError","currentGroupId$","combineLatest","user","featureEnabled","roles","hasDeveloperRole","isSuperAdmin","attributes","boolAttribute","isNotSupported","getPermissions","permissions","restrictedToMarketId","shareReplay","getCurrentGroupId","factory","ɵfac","_RestrictedGroupService","LeadScoreColumnCell","CompanyTableCustomizationService","init_company_table_customization_service","__esmMin","init_abstract_table_customization_service","init_esm","init_field_service","init_tokens_and_interfaces","init_operators","init_constants","init_chips","init_parent_company_name_component","init_score_component","fieldIds","StandardIds","CompanyLeadScore","SystemFieldIds","CompanyID","columnDefinition","id","customCellComponent","LeadScoreCellComponent","TableCustomizationService","getRowFullAddress","crmObject","crmFieldService","addressLineOne","getFieldId","CompanyPrimaryAddressLine1","addressLineTwo","CompanyPrimaryAddressLine2","city","CompanyPrimaryAddressCity","state","CompanyPrimaryAddressState","postalCode","CompanyPrimaryAddressPostalCode","country","CompanyPrimaryAddressCountry","addressLineOneData","fields","find","f","fieldId","addressLineTwoData","cityData","stateData","postalCodeData","countryData","stringValue","filter","value","undefined","join","constructor","translate","config","restrictedGroupService","profileLink$","routePrefix$","pipe","map","prefix","viewRoute","PAGE_ROUTES","COMPANY","ROOT","SUBROUTES","PROFILE","hideIDColumns","columns","columnIdentifiersToHide","CompanyExternalID","CompanyParentCompanyID","CompanyWebsite","identifier","index","findIndex","c","hidden","nameCol","CompanyName","sticky","customizeColumnsMobile","columnIdentifiersToShow","Map","forEach","column","get","addCompanyProfileLink","columnData","companyNameField","take","subscribe","profileLink","replace","crmObjectId","cellType","getRowFullName","link","customizeRowData","schemaMap","customizeNextTaskDueDateCellData","addPrimaryCompanyNameRowData","addFullAddressColumnData","addCustomCells","company","tableCustomCells","cell","CompanyNextTaskDueDate","CompanyCustomColumns","FullAddress","customizeColumns","isMobile","customizedColumns","addFullAddressColumn","addParentCompanyNameColumn","customCells","push","addCustomColumns","name","getAssociationInfo","title","instant","sortable","ParentCompanyName","__async","parentCompanyID","parentCompanyIDFieldValue","getFieldValueFromCrmObject","component","ParentCompanyNameComponent","makeGroupFilterRestricted","restrictedToGroupId","filters","groupIDIndex","CompanyGroupID","preset","lockedValue","customizeFilters","appliedOverrides$","filterInputOverrides$","of","overrides","overrideCustomFilters","combineLatest","getCurrentGroupId","restrictedMarketId","getInitialFilters","firstValueFrom","then","selectedGroupId","filterId","operator","GalaxyFilterOperator","FILTER_OPERATOR_IS","values","string","ɵɵinject","CrmFieldService","TranslateService","CrmInjectionToken","RestrictedGroupService","factory","ɵfac","_CompanyTableCustomizationService","init_table_customization","__esmMin","init_abstract_table_customization_service","init_company_table_customization_service","init_contact_table_customization_service","init_task_table_customization_service","enumStringToValue","enumRef","value","AddContactAsIamUserForCompanyStatus","CreateAccountGroupForCompanyStatus","AddContactAsIamUserForCompanyRequest","AddContactAsIamUserForCompanyStatusResponse","CreateAccountGroupForCompanyRequest","GetAccountGroupForCompanyRequest","GetAccountGroupForCompanyResponse","GetCreateAccountGroupForCompanyStatusRequest","GetCreateAccountGroupForCompanyStatusResponse","IsContactIamUserForCompanyRequest","IsContactIamUserForCompanyResponse","RemoveContactAsIamUserForCompanyRequest","environment","hostMap","HostService","PlatformApiService","init_vendasta_crm_integrations","__esmMin","init_core","init_http","init_operators","_AddContactAsIamUserForCompanyRequest","proto","m","kwargs","toReturn","_AddContactAsIamUserForCompanyStatusResponse","_CreateAccountGroupForCompanyRequest","_GetAccountGroupForCompanyRequest","_GetAccountGroupForCompanyResponse","_GetCreateAccountGroupForCompanyStatusRequest","_GetCreateAccountGroupForCompanyStatusResponse","_IsContactIamUserForCompanyRequest","_IsContactIamUserForCompanyResponse","_RemoveContactAsIamUserForCompanyRequest","ɵɵdefineInjectable","http","hostService","HttpHeaders","r","request","__spreadProps","__spreadValues","map","resp","ɵɵinject","HttpClient","CrmPlatformApiService","init_platform_api_service","__esmMin","init_tokens_and_interfaces","init_esm","init_operators","init_http","constructor","config","platformAPIService","createAccountGroupForCompany","companyId","namespace$","pipe","switchMap","namespace","request","map","response","ok","take","getCreateAccountGroupForCompanyStatus","status","accountGroupId","getAccountGroupForCompany","addContactAsIamUserForCompany","contactId","catchError","error","of","HttpErrorResponse","removeContactAsIamUserForCompany","isContactIamUserForCompany","isIamUser","ɵɵinject","CrmInjectionToken","PlatformApiService","factory","ɵfac","_CrmPlatformApiService","CompanyProfileCardsPanelService","init_company_profile_cards_panel_service","__esmMin","init_core","init_esm","init_tokens_and_interfaces","init_operators","init_vendasta_crm_integrations","constructor","config","platformAPIService","snackbarService","loadingAccountGroup","signal","companyProfileCards$","company","profileCards$","EMPTY","justInTimeAccountGroupCreation","companyId","afterCreatedCallback","set","createAccountGroupForCompany","pipe","take","subscribe","next","accountGroupId","length","error","openErrorSnack","duration","SNACKBAR_DURATION","switchMap","waitForAccountGroupUpdate","map","accountStatus","status","CreateAccountGroupForCompanyStatus","CREATE_ACCOUNT_GROUP_FOR_COMPANY_STATUS_SUCCEEDED","Error","getCreateAccountGroupForCompanyStatus","CREATE_ACCOUNT_GROUP_FOR_COMPANY_STATUS_FAILED","retry","delay","ɵɵinject","CrmInjectionToken","CrmPlatformApiService","SnackbarService","factory","ɵfac","_CompanyProfileCardsPanelService","EditAssociationTagsComponent","init_edit_association_tags_component","__esmMin","init_core","init_common","init_ngx_translate_core","init_dialog","init_button","init_forms","init_tags","init_esm","init_rxjs_interop","init_form_field","init_constants","tags","tagsControl","setValue","constructor","destroyRef","crmAssociationService","tagsChanged","EventEmitter","FormControl","searchTextChanged","signal","filteredTags$","toObservable","pipe","takeUntilDestroyed","debounceTime","SEARCH_DEBOUNCE_MS","switchMap","searchText","listTags","catchError","of","map","filter","tag","RESERVED_TAGS","includes","toLowerCase","valueChanges","tap","emit","subscribe","value","listAssociationFieldOptions","associationType","DEFAULT_TAG_SEARCH_SIZE","ɵɵdirectiveInject","DestroyRef","CrmAssociationService","selectors","inputs","outputs","standalone","features","ɵɵStandaloneFeature","decls","vars","consts","template","rf","ctx","ɵɵelementStart","ɵɵtext","ɵɵelementEnd","ɵɵlistener","$event","set","ɵɵadvance","ɵɵtextInterpolate","ɵɵpipeBind1","ɵɵproperty","tmp_2_0","undefined","ɵɵpureFunction0","_c0","CommonModule","AsyncPipe","TranslateModule","TranslatePipe","MatDialogModule","MatButtonModule","GalaxyTagsModule","TagsComponent","ReactiveFormsModule","NgControlStatus","FormControlDirective","GalaxyFormFieldModule","FormFieldComponent","LabelDirective","ExtendedDirective","styles","_EditAssociationTagsComponent","ɵɵelementContainerStart","ɵɵelementStart","ɵɵlistener","$event","ɵɵrestoreView","_r1","ctx_r1","ɵɵnextContext","ɵɵresetView","tagsChanged","ɵɵelementEnd","ɵɵadvance","ɵɵproperty","ɵɵpipeBind1","initialTags$","associationType_r3","EditAssociationDialogComponent","init_edit_association_dialog_component","__esmMin","init_common","init_dialog","init_button","init_ngx_translate_core","init_edit_association_tags_component","init_esm","init_constants","constructor","dialogRef","data","crmAssociationService","snackService","initialAssociation$","getAssociation","associationId","isPrimary$","pipe","map","association","tags","tag","tagValue","filter","includes","PRIMARY_TAG","t","RESERVED_TAGS","toLowerCase","associationType$","associationType","tagsToSave","save","switchMap","isPrimary","updateAssociationTags","subscribe","next","openSuccessSnack","duration","SNACKBAR_DURATION","close","error","openErrorSnack","cancel","slice","ɵɵdirectiveInject","MatDialogRef","MAT_DIALOG_DATA","CrmAssociationService","SnackbarService","selectors","standalone","features","ɵɵStandaloneFeature","decls","vars","consts","template","rf","ctx","ɵɵtext","ɵɵtemplate","EditAssociationDialogComponent_ng_container_6_Template","ɵɵtextInterpolate1","ɵɵtextInterpolate","associationName","CommonModule","NgIf","AsyncPipe","TranslateModule","TranslatePipe","MatDialogModule","MatDialogTitle","MatDialogActions","MatDialogContent","MatButtonModule","MatButton","EditAssociationTagsComponent","styles","_EditAssociationDialogComponent","combineAssociationsWithChanges","associations","changes","combinedData","updatedAssociation","updatedAssociationIndex","findIndex","a","associationId","DefaultAssociationActionsService","init_default_association_actions_service","__esmMin","init_edit_association_dialog_component","init_esm","constructor","dialog","associationService","objectService","reloadAssociations","cardData","association$","getAssociation","pipe","shareReplay","crmObject$","switchMap","association","type","getMultiObject","toId","fromId","of","crmObjects","map","response","length","combineLatest","crmObject","associationType","tags","tag","tagValue","associatedObject","editTagsAction","associationName","businessName","userName","open","EditAssociationDialogComponent","data","width","afterClosed","success","ɵɵinject","MatDialog","CrmAssociationService","CrmObjectService","factory","ɵfac","_DefaultAssociationActionsService","PreviewObjectService","init_preview_object_service","__esmMin","init_esm","init_field_service","constructor","previewCrmObject$$","BehaviorSubject","createDatesForPreview","previewObject","objectType","objectCreatedFieldId","objectUpdatedFieldId","SystemFieldIds","ContactCreated","ContactUpdated","CompanyCreated","CompanyUpdated","createdDateIndex","fields","findIndex","f","fieldId","updatedDateIndex","dateValue","Date","push","externalId","setPreviewCrmObject","next","deepCopyObject","JSON","parse","stringify","clearPreview","withPreview","crmObjects","crmObjectsCopy","applyCrmObjectPreview","previewCrmObject","getValue","existsAlreadyAtIndex","obj","crmObjectId","splice","unshift","factory","ɵfac","_PreviewObjectService","CRMTrackingService","init_page_analytics_service","__esmMin","constructor","trackingService","eventName","trackEvent","objectType","action","properties","toLowerCase","ɵɵinject","ProductAnalyticsService","factory","ɵfac","_CRMTrackingService","SidePanelContentService","init_side_panel_content_service","__esmMin","init_esm","constructor","activePortal$$","ReplaySubject","setContent","content","next","getContent","asObservable","clearContent","factory","ɵfac","providedIn","_SidePanelContentService","CompanyFiltersService","init_company_filters_service","__esmMin","init_esm","init_operators","init_tokens_and_interfaces","init_field_service","constructor","crmObjectService","crmFieldService","crmConfig","searchTerm$$","BehaviorSubject","getReadableParentCompanies","parentCompanies","map","company","__spreadProps","__spreadValues","displayName","getFieldValueFromCrmObject","StandardIds","CompanyName","stringValue","listObjects","namespace","cursor","pageSize","search","request","pagingOptions","searchTerm","listReadableCompanies","namespace$","pipe","switchMap","response","crmObjects","catchError","error","console","of","getMultiCompany","companyIds","getMultiObject","length","crmObjectId","crmObj","crmObject","ɵɵinject","CrmObjectService","CrmFieldService","CrmInjectionToken","factory","ɵfac","providedIn","_CompanyFiltersService","userFilterFn","user","searchTerm","toLowerCase","includesFullName","displayName","includes","includesFirstName","firstName","includesLastName","lastName","includesUserId","userId","includesEmail","email","convertToReadableUsers","users","map","__spreadProps","__spreadValues","trim","init_utils","__esmMin","ActivityAssigneeService","init_activity_assignee_service","__esmMin","init_vendasta_iamv2","init_esm","init_crm_services","init_tokens_and_interfaces","init_utils","init_operators","init_rxjs_interop","constructor","config","iamService","crmObjectService","allUsers$$","ReplaySubject","allUsers$","asObservable","namespace$","pipe","filter","id","takeUntilDestroyed","switchMap","namespace","listFieldOptions","fieldId","SystemFieldIds","ActivityOwnerID","pageSize","map","resp","options","userIds","userId","UserIdentifier","getMultiUsers","users","convertToReadableUsers","catchError","error","console","of","subscribe","next","cachedUser$","userHashMap","Map","forEach","set","find","u","shareReplay","fetchedMissingUsers$","cachedUsers","get","undefined","idsToGet","length","combineLatest","fetchedUsers","user","values","Boolean","ɵɵinject","CrmInjectionToken","IAMService","CrmObjectService","factory","ɵfac","_ActivityAssigneeService","init_shared_services","__esmMin","init_crm_services","init_table_customization","init_company_profile_cards_panel_service","init_default_association_actions_service","init_platform_api_service","init_preview_object_service","init_page_analytics_service","init_side_panel_content_service","init_company_filters_service","init_activity_assignee_service","init_company_contact_cache_service","init_score_service","init_restricted_group_service","ɵɵelementStart","ɵɵelementContainer","ɵɵelementEnd","ɵɵproperty","link_r1","ɵɵadvance","displayNameTemplate_r3","ɵɵpureFunction1","_c0","data_r2","displayValue","ɵɵelement","ɵɵelementContainerStart","ɵɵtemplate","PrimaryCompanyNameComponent_ng_container_0_a_1_Template","PrimaryCompanyNameComponent_ng_container_0_ng_template_2_Template","ɵɵtemplateRefExtractor","link","div_r4","ɵɵtext","ɵɵtextInterpolate","displayName_r5","PrimaryCompanyNameComponent_ng_template_4_ng_container_0_Template","ctx_r5","NO_VALUE_FOR_COMPANY_NAME","blank_r7","PrimaryCompanyNameComponent","init_primary_company_name_component","__esmMin","init_common","init_router","init_table","init_esm","init_operators","init_shared_services","init_constants","init_tokens_and_interfaces","CustomCellComponent","value","newValue","companyId$$","next","constructor","config","crmFieldService","crmObjectService","BehaviorSubject","displayValue$","pipe","switchMap","contactPrimaryCompanyID","getMultiObject","of","map","getMultiResponse","crmObjects","length","crmObjectId","getFieldValueFromCrmObject","StandardIds","CompanyName","companyNameFieldValue","stringValue","link$","viewProfileFlag$","take","featureFlag","routePrefix$","routePrefix","getValue","primaryCompanyProfileViewRoute","PAGE_ROUTES","COMPANY","ROOT","SUBROUTES","PROFILE","replace","componentData$","combineLatest","ɵɵdirectiveInject","CrmInjectionToken","CrmFieldService","CrmObjectService","selectors","standalone","features","ɵɵInheritDefinitionFeature","ɵɵStandaloneFeature","decls","vars","consts","template","rf","ctx","PrimaryCompanyNameComponent_ng_container_0_Template","PrimaryCompanyNameComponent_ng_template_2_Template","PrimaryCompanyNameComponent_ng_template_4_Template","PrimaryCompanyNameComponent_ng_template_6_Template","ɵɵpipeBind1","loading_r8","RouterLink","CommonModule","NgIf","NgTemplateOutlet","AsyncPipe","BlankValueComponent","styles","_PrimaryCompanyNameComponent","ContactTableCustomizationService","init_contact_table_customization_service","__esmMin","init_abstract_table_customization_service","init_esm","init_tokens_and_interfaces","init_field_service","init_operators","init_constants","init_primary_company_name_component","init_libphonenumber_js","init_chips","TableCustomizationService","constructor","config","crmFieldService","translate","restrictedGroupService","contactLinkBuild$$","BehaviorSubject","viewProfileFlag$","pipe","take","switchMap","featureFlag","routePrefix$","of","subscribe","routePrefix","contactProfileViewRoute","PAGE_ROUTES","CONTACT","ROOT","SUBROUTES","PROFILE","next","hideIDColumns","columns","columnIdentifiersToHide","getFieldId","StandardExternalIds","FirstName","LastName","SystemFieldIds","ContactExternalID","ContactID","StandardIds","ContactPrimaryCompanyID","ContactCustomColumns","FullAddress","identifier","index","findIndex","c","id","hidden","addPrimaryCompanyNameColumn","PrimaryCompanyName","title","instant","addPrimaryCompanyNameRowData","crmObject","schemaMap","columnData","__async","contactPrimaryCompanyID","contactPrimaryCompanyIDFieldValue","getFieldValueFromCrmObject","stringValue","cellType","value","component","PrimaryCompanyNameComponent","addFullNameColumn","FullName","sticky","sortable","formatPhoneNumber","phoneNumber","parsedNumber","parseNumber","defaultCountry","Object","keys","length","format","addFullNameRowData","getRowFullName","link","replace","crmObjectId","firstName","lastName","email","Email","phone","PhoneNumber","firstNameData","fields","find","f","fieldId","lastNameData","emailData","phoneData","trim","getAssociationInfo","addFullAddressColumnData","getRowFullAddress","customizeRowData","customizeNextTaskDueDateCellData","addCustomCells","contact","tableCustomCells","cell","ContactNextTaskDueDate","customizeColumns","isMobile","customizedColumns","addFullAddressColumn","customCells","addCustomColumns","map","columnDefinition","customizeColumnsMobile","columnIdentifiersToShow","Map","forEach","column","get","addressLineOne","ContactPrimaryAddressLine1","addressLineTwo","ContactPrimaryAddressLine2","city","ContactPrimaryAddressCity","state","ContactPrimaryAddressState","postalCode","ContactPrimaryAddressPostalCode","country","ContactPrimaryAddressCountry","addressLineOneData","addressLineTwoData","cityData","stateData","postalCodeData","countryData","filter","undefined","join","makeGroupFilterRestricted","restrictedToGroupId","filters","groupIDIndex","ContactGroupID","preset","lockedValue","customizeFilters","appliedOverrides$","filterInputOverrides$","overrides","overrideCustomFilters","combineLatest","getCurrentGroupId","restrictedMarketId","getInitialFilters","firstValueFrom","then","selectedGroupId","filterId","operator","GalaxyFilterOperator","FILTER_OPERATOR_IS","values","string","ɵɵinject","CrmInjectionToken","CrmFieldService","TranslateService","RestrictedGroupService","factory","ɵfac","_ContactTableCustomizationService","convertToGalaxyFilterType","type","GalaxyFilterType","FilterType","convertToGalaxyFilterOperator","operator","GalaxyFilterOperator","FilterOperator","convertToGalaxyFilterOperators","operators","map","o","FILTER_PAGE_SIZE","CrmFiltersService","init_crm_filters_service","__esmMin","init_esm","init_operators","init_chips","init_tokens_and_interfaces","init_vendasta_crm","constructor","config","crmObjectService","contactTableCustomization","companyTableCustomization","taskTableCustomization","initialFilters$$","BehaviorSubject","initialFilters$","asObservable","customizeFilters","filters","objectType","activityType","of","listObjectFilters$","searchTerm","namespace$","pipe","switchMap","namespace","listObjectsFilters","paging","pageSize","resp","filterDef","fieldId","typeV2","FILTER_TYPE_INVALID","hasFilterOptions","supportedOperators","supportedOperatorsV2","fieldName","getInitialAppliedFilters$","__async","firstValueFrom","then","length","getInitialFilters","urlFilters","initialContactFilters","joinedFilters","filter","index","findIndex","f","filterId","initialCompanyFilters","setInitialFilters","next","ɵɵinject","CrmInjectionToken","CrmObjectService","ContactTableCustomizationService","CompanyTableCustomizationService","TaskTableCustomizationService","factory","ɵfac","_CrmFiltersService","tableFiltersInjectionTokenGenerator","objectType","activityType","crmFieldOptionsService","inject","CrmFieldOptionsService","crmFiltersService","CrmFiltersService","crmConfigDependencies","CrmInjectionToken","listObjectFilters","searchTerm","listObjectFilters$","getFieldOptions","fieldId","search","getFilterInputOverrides","contact","filterInputOverrides$","of","company","task","getInitialAppliedFilters","getInitialAppliedFilters$","console","error","pageAnalyticsInjectionTokenGenerator","crmTrackingService","CRMTrackingService","trackEvent","action","properties","modelDrivenFormFieldOptionsInjectionTokenGenerator","ObjectTypes","FormInputComponent","COMPANY_PROFILE_CARD_DATA_TOKEN","PageAnalyticsInjectionToken","ActivityTaskStatus","FieldOptionsInjectionToken","LoadingStatus","SavingStatus","CONTACT_PROFILE_CARD_DATA_TOKEN","PROFILE_ACTION_BUTTON_DATA_TOKEN","init_tokens_and_interfaces","__esmMin","init_esm","init_core","init_crm_field_options_service","init_crm_filters_service","init_page_analytics_service","init_vendasta_crm","constructor","readOnly","inlineEdit$","InjectionToken","Open","Completed","ɵɵelementStart","ɵɵtext","ɵɵelementEnd","TaskStatusCellComponent","init_task_status_component","__esmMin","init_core","init_common","init_table","init_pipes","init_ngx_translate_core","init_icon","init_esm","init_tokens_and_interfaces","init_button","init_src","init_shared_services","CustomCellComponent","value","newValues","statusField","filter","Boolean","find","field","fieldId","StandardIds","ActivityTaskStatus","taskOpen","stringValue","Open","idField","SystemFieldIds","ActivityID","activityId","updateTaskCompletionStatus","newStatus","Completed","activity","crmObjectId","crmObjectSubtype","activitySubtype","fields","mask","paths","firstValueFrom","activityService","updateActivity","then","snack","openSuccessSnack","openErrorSnack","analyticsService","trackEvent","status","constructor","inject","ProductAnalyticsService","ɵɵdirectiveInject","ActivityService","SnackbarService","selectors","standalone","features","ɵɵInheritDefinitionFeature","ɵɵStandaloneFeature","decls","vars","consts","template","rf","ctx","ɵɵlistener","i0","ɵɵrestoreView","_r1","ɵɵresetView","ɵɵtemplate","TaskStatusCellComponent_mat_icon_1_Template","TaskStatusCellComponent_ng_template_2_Template","ɵɵtemplateRefExtractor","ɵɵadvance","ɵɵproperty","taskComplete_r2","CommonModule","NgIf","GalaxyPipesModule","TranslateModule","MatIconModule","MatIcon","MatButtonModule","MatIconButton","styles","_TaskStatusCellComponent","StatusColumnCell","TaskTableCustomizationService","init_task_table_customization_service","__esmMin","init_vendasta_crm","init_chips","init_esm","init_operators","init_tokens_and_interfaces","init_task_status_component","init_abstract_table_customization_service","init_field_service","fieldIds","StandardIds","ActivityTaskStatus","SystemFieldIds","ActivityID","columnDefinition","id","customCellComponent","TaskStatusCellComponent","ActivityTableCustomizationService","constructor","config","crmFieldService","ownerFilter$$","ReplaySubject","defaultSortingOptions","fieldId","getFieldId","ActivityTaskDueDate","sortDirection","SortDirection","SORT_DIRECTION_ASCENDING","customizeColumns","columns","isMobile","excludeNonTaskColumns","customCells","task","tableCustomCells","push","addCustomColumns","map","c","showBaseColumns","sortColumns","customizeFilters","filters","excludeNonTaskFilters","captureInitialFilters","filterInputOverrides$","of","pipe","overrides","overrideCustomFilters","ownerFilterDefinition","find","f","ActivityOwnerID","next","getInitialFilters","__async","firstValueFrom","combineLatest","currentUserId$","then","filterDefinition","userId","filterId","operator","GalaxyFilterOperator","FILTER_OPERATOR_IS","values","string","Open","customizeRowData","crmObject","schemaMap","columnData","customizeDueDateCellData","addCustomCells","cell","cellType","filter","getTaskFieldIds","includes","ActivityName","ActivityTaskPriority","ActivityTaskType","ActivityCreated","ActivityUpdated","columnsToHide","columnsToUnHide","TaskCustomColumns","AssignedTo","column","hidden","columnOrder","sort","a","b","order","aIndex","indexOf","bIndex","Infinity","ɵɵinject","CrmInjectionToken","CrmFieldService","factory","ɵfac","_TaskTableCustomizationService","en_devel_default","init_en_devel","__esmMin","TranslationModule","init_translation_module","__esmMin","init_src","init_ngx_translate_core","init_en_devel","TranslateModule","LexiconModule","forChild","componentName","baseTranslation","En","_TranslationModule","TranslateByObjectTypePipe","init_translate_by_object_type_pipe","__esmMin","constructor","translateByObjectType","transform","value","objectType","interpolationParams","getTranslationByObjectType","ɵɵdirectiveInject","TranslateByObjectTypeService","pure","standalone","_TranslateByObjectTypePipe","init_i18n","__esmMin","init_translation_module","init_translate_by_object_type_pipe","init_translate_by_object_type_service","DeleteModalComponent","init_delete_modal_component","__esmMin","init_dialog","init_common","init_button","init_translation_module","init_translate_by_object_type_pipe","constructor","data","dialogRef","objectType","name$","onConfirmClick","close","ɵɵdirectiveInject","MAT_DIALOG_DATA","MatDialogRef","selectors","standalone","features","ɵɵStandaloneFeature","decls","vars","consts","template","rf","ctx","ɵɵelementStart","ɵɵtext","ɵɵelementEnd","ɵɵlistener","ɵɵadvance","ɵɵtextInterpolate1","ɵɵpipeBind2","ɵɵpureFunction1","_c0","toLowerCase","ɵɵtextInterpolate","CommonModule","MatButtonModule","MatButton","TranslationModule","TranslatePipe","MatDialogModule","MatDialogClose","MatDialogTitle","MatDialogActions","MatDialogContent","TranslateByObjectTypePipe","styles","_DeleteModalComponent","EMPTY_PAGE","ListObjectsTableService","init_list_objects_table_service","__esmMin","init_vendasta_crm","init_table","init_esm","init_operators","init_tokens_and_interfaces","init_shared_services","pagingOptions","pageSize","LIST_OBJECTS_DEFAULT_PAGE_SIZE","cursor","searchOptions","text","fields","constructor","config","objectsService","fieldsService","state","translate","previewObjectService","trackingService","contactCustomization","companyCustomization","taskCustomization","tableStateService","snackService","crmFormService","columns$","select","groupConfigs$","initialLoading$","deletedObjectIds$","showEmptyState$","combineLatest","pipe","map","loading","hasObjects","showObjects$","showEmptyState","data$$","BehaviorSubject","data$","rows","deleted","filter","r","includes","crmObjectId","filters","sorting","baseColumnIds","showActions","initial","objectType","fieldSchemas","columns","groupConfigs","initialLoading","receivedObject","deletedObjectIds","set","schemas$","namespace$","distinctUntilChanged","a","b","JSON","stringify","switchMap","listAllObjectFields$","connect","schemas","observeOn","asyncScheduler","schema","fieldSchemaToTableColumn","applyColumnLayout$","customizedColumns","get","addStaticColumns","showBaseColumns","initializeLocalStorageColumns","addColumnGroups","listObjects","take","resp","crmObjects","length","latestPage","paginatedAPI","req","results","catchError","openErrorSnack","of","pagingMetadata","nextCursor","hasMore","tap","trackEvent","searchFields","next","withLatestFrom","objectListResp","data","crmObjectsToTableRows","totalResults","Infinity","id","dataSource","GalaxyDataSource","listAllObjectFieldGroups$","fieldGroups","fieldIds","reduce","fieldGroup","concat","sortedColumns","parse","sort","indexA","indexOf","external_id","indexB","firstFieldGroupFieldIds","column","hidden","actionsColumn","title","instant","pinned","stickyEnd","sortable","groups","group","fieldGroupId","description","fieldId","find","moveItemsToBeginning","identifiersToMove","movedToFront","col","c","push","movedToBack","m","isMobile","index","findIndex","deleteObject","objectId","deleteCrmObject","setObjectType","setActivityType","activityType","setBaseColumns","setShowActions","initialFilters$","getInitialFilters","initialFilters","filterGroup","convertFilters","getActivityTypeFilter","sortBy","convertSortBy","objType","getTableCustomizationService","defaultSortingOptions","search","searchTerm","filtersV2","listRequestIsPristine","withPreview","clearPreview","SystemFieldIds","ActivityType","operator","FilterOperator","FILTER_OPERATOR_IS","values","string","externalId","fieldName","objects","schemaMap","forEach","obj","columnData","field","getValueByType","customizeRowData","fieldType","FieldType","FIELD_TYPE_CURRENCY","FIELD_TYPE_INTEGER","cellType","value","integerValue","FIELD_TYPE_FLOAT","floatValue","FIELD_TYPE_DATETIME","FIELD_TYPE_DATE","dateData","dateValue","FIELD_TYPE_PHONE","phoneData","stringValue","FIELD_TYPE_STRING","FIELD_TYPE_EMAIL","textData","FIELD_TYPE_DROPDOWN","dropDownOptionData","FIELD_TYPE_BOOLEAN","booleanValue","FIELD_TYPE_TAG","FIELD_TYPE_STRING_LIST","stringValues","label","dropdownOptions","o","link","customizeColumns","lookupRowDisplayName","row","firstName","f","lastName","trim","email","phone","ngOnDestroy","ɵɵinject","CrmInjectionToken","CrmObjectService","CrmFormService","RxState","TranslateService","PreviewObjectService","CRMTrackingService","ContactTableCustomizationService","CompanyTableCustomizationService","TaskTableCustomizationService","CrmTableStateService","SnackbarService","factory","ɵfac","_ListObjectsTableService","SidepanelService","init_side_panel_service","__esmMin","init_esm","init_operators","constructor","isOpenSource$$","ReplaySubject","isOpen$","pipe","startWith","headerTitle$$","headerTitle$","openSidepanel","content","next","createView","closeSidepanel","viewContainerRef","clear","setViewContainer","createComponent","setHeaderTitle","headerTitle","factory","ɵfac","providedIn","_SidepanelService","SidepanelComponent","init_side_panel_component","__esmMin","init_common","init_core","init_button","init_icon","init_sidenav","init_toolbar","init_empty_state","constructor","sidepanelService","isOpen$","headerTitle$","ngAfterContentInit","setViewContainer","contentContainerRef","closeSidepanel","ɵɵdirectiveInject","SidepanelService","selectors","viewQuery","rf","ctx","ViewContainerRef","ɵɵelementStart","ɵɵtext","ɵɵelement","ɵɵlistener","i0","ɵɵrestoreView","_r1","ɵɵresetView","ɵɵelementEnd","ɵɵelementContainer","ɵɵproperty","ɵɵpipeBind1","ɵɵadvance","ɵɵtextInterpolate1","MatSidenavModule","MatDrawer","MatIconModule","MatIcon","CommonModule","AsyncPipe","GalaxyEmptyStateModule","MatToolbarModule","MatToolbar","MatToolbarRow","MatButtonModule","MatIconButton","styles","_SidepanelComponent","FilterVisibleActionsPipe","init_filter_visible_actions_pipe","__esmMin","transform","actions","params","filter","action","visible","row","objectType","pure","standalone","_FilterVisibleActionsPipe","CrmActivityEffectiveDatePipe","init_activity_effective_date_pipe","__esmMin","init_core","init_field_service","constructor","fieldService","inject","CrmFieldService","transform","activity","getFieldValueFromCrmObject","SystemFieldIds","ActivityEffectiveDate","dateValue","pure","standalone","_CrmActivityEffectiveDatePipe","CrmIsTaskOverduePipe","init_is_task_overdue_pipe","__esmMin","init_core","init_field_service","constructor","fieldService","inject","CrmFieldService","transform","activity","getFieldValueFromCrmObject","StandardIds","ActivityTaskStatus","stringValue","effectiveDate","SystemFieldIds","ActivityEffectiveDate","dateValue","getTime","Date","now","pure","standalone","_CrmIsTaskOverduePipe","DefaultMaxChars","CrmTruncatePipe","init_truncate_pipe","__esmMin","transform","text","maxChars","max","length","slice","pure","standalone","_CrmTruncatePipe","init_shared_pipes","__esmMin","init_filter_visible_actions_pipe","init_activity_effective_date_pipe","init_is_task_overdue_pipe","init_truncate_pipe","encodeFilters","filters","encodeURIComponent","JSON","stringify","decodeFilters","parse","decodeURIComponent","validateFilters","filter","fieldId","filterId","operator","init_utils","__esmMin","ɵɵelementContainer","ɵɵelementStart","ɵɵlistener","ɵɵrestoreView","_r5","filter_r3","ɵɵnextContext","$implicit","ctx_r3","ɵɵresetView","handleDeleteFilterClick","ɵɵtext","ɵɵelementEnd","_r2","handleSelectFilterClick","ɵɵtemplate","FilterViewComponent_ng_template_12_div_0_div_1_button_3_Template","ɵɵadvance","ɵɵtextInterpolate1","name","ɵɵproperty","preset","FilterViewComponent_ng_template_12_div_0_div_1_Template","allFilters","FilterViewComponent_ng_template_12_div_0_Template","hasFilters","noViews_r6","_r7","handleCreateViewClick","ɵɵpipeBind1","ɵɵtextInterpolate","ɵɵelementContainerStart","FilterViewComponent_ng_template_18_ng_container_5_glxy_error_1_Template","FilterViewComponent_ng_template_18_ng_container_5_glxy_error_2_Template","FilterViewComponent_ng_template_18_ng_container_5_glxy_error_3_Template","newViewNameCtrl","errors","ɵɵelement","FilterViewComponent_ng_template_18_ng_container_5_Template","touched","_r8","handleSaveClick","handleCancelClick","FilterViewComponent","init_filter_view_component","__esmMin","init_common","init_core","init_forms","init_button","init_icon","init_menu","init_ngx_translate_core","init_form_field","init_popover","init_empty_state","init_snackbar_service","init_button_group","init_confirmation_modal","init_esm","init_rxjs_interop","filters","value","currentFilters","_filters","set","filterAreEqual","selectedFilter","undefined","keys","_keys","presetFilters","map","f","__spreadProps","__spreadValues","_presetFilters","constructor","signal","filtersChange","EventEmitter","snackbarService","inject","SnackbarService","confirmationModalService","OpenConfirmationModalService","translateService","TranslateService","i18n","views","toSignal","stream","mode","savedFilters","computed","sortFilters","Object","length","FormControl","validators","Validators","required","nameExistsValidator","nameLengthValidator","mobileWidth","popoverPosition","PopoverPositions","selectedFilterName","effect","loadSavedFilters","allowSignalWrites","setValue","markAsUntouched","openErrorSnack","filter","__async","firstValueFrom","openModal","title","cancelOnEscapeKeyOrBackgroundClick","message","instant","viewName","type","confirmButtonText","localStorage","setItem","JSON","stringify","markAsTouched","valid","savedFilter","concat","viewsMenu","close","emit","handleViewsClick","open","a","b","key","getItem","parse","removeItem","control","Boolean","find","presetName","nameLength","sort","toLocaleLowerCase","localeCompare","selectors","viewQuery","rf","ctx","i0","_r1","FilterViewComponent_ng_container_9_Template","FilterViewComponent_ng_container_11_Template","FilterViewComponent_ng_template_12_Template","ɵɵtemplateRefExtractor","FilterViewComponent_ng_template_14_Template","FilterViewComponent_ng_template_16_Template","FilterViewComponent_ng_template_18_Template","FilterViewComponent_ng_template_20_Template","viewsMenu_r9","listTemplate_r10","saveTemplate_r12","listActions_r11","saveActions_r13","CommonModule","NgForOf","NgIf","GalaxyButtonGroupModule","GalaxyFormFieldModule","FormFieldComponent","LabelDirective","ErrorDirective","GalaxyPopoverModule","PopoverComponent","PopoverTitleDirective","PopoverActionsDirective","GalaxyPopoverDirective","GalaxyEmptyStateModule","EmptyStateComponent","EmptyStateHeroDirective","MatButtonModule","MatButton","MatIconModule","MatIcon","MatMenuModule","ReactiveFormsModule","DefaultValueAccessor","NgControlStatus","FormControlDirective","TranslateModule","TranslatePipe","styles","changeDetection","_FilterViewComponent","init_interfaces","__esmMin","init_filter_view","__esmMin","init_filter_view_component","init_interfaces","ɵɵelement","ɵɵproperty","ɵɵelementStart","ɵɵelementEnd","ɵɵtext","ɵɵadvance","ɵɵpipeBind2","ctx_r0","objectTypeForTranslation","ɵɵtextInterpolate1","ɵɵtextInterpolate","ɵɵlistener","ɵɵrestoreView","_r3","ɵɵnextContext","ɵɵresetView","handleSelectAll","ɵɵpipeBind3","objectType","ɵɵpureFunction1","_c2","dataSource","state","totalDataMembers","ɵɵtemplate","ListObjectsTableComponent_glxy_table_container_5_div_11_div_2_Template","ɵɵpipeBind1","useSelectAll$","clearSelection_r4","action_r6","_r5","$implicit","callback","selectedRows","filters","search","searchTerm","useSelectAll","selectAll","totalObjects","label","ListObjectsTableComponent_glxy_table_container_5_Conditional_13_button_0_Template","selectAllActions$","action_r8","_r7","ListObjectsTableComponent_glxy_table_container_5_Conditional_15_button_0_Template","multiRowActions$","row_r9","ɵɵelementContainerStart","action_r12","_r11","row_r13","ListObjectsTableComponent_glxy_table_container_5_td_25_ng_container_7_Template","_r10","editObject","id","deleteObject","menu_r14","singleRowActions$","ɵɵpureFunction2","_c3","rowStyle","row_r15","ɵɵpureFunction0","_c4","$event","_r2","selectionChanged","columnsChanged","updateFilters","ListObjectsTableComponent_glxy_table_container_5_div_11_Template","ListObjectsTableComponent_glxy_table_container_5_Conditional_13_Template","ListObjectsTableComponent_glxy_table_container_5_Conditional_15_Template","ListObjectsTableComponent_glxy_table_container_5_tr_19_Template","ListObjectsTableComponent_glxy_table_container_5_th_21_Template","ListObjectsTableComponent_glxy_table_container_5_td_22_Template","ListObjectsTableComponent_glxy_table_container_5_th_24_Template","ListObjectsTableComponent_glxy_table_container_5_td_25_Template","ListObjectsTableComponent_glxy_table_container_5_tr_26_Template","columns$","groupConfigs$","tableId","pageSizeOptions","pageSize","multiRowActionExists$","tmp_15_0","showFiltersApplied$","undefined","hasSelectAllActions$","ɵɵconditional","viewKeys","_c1","_r16","_c5","ListObjectsTableComponent","init_list_objects_table_component","__esmMin","init_common","init_core","init_icon","init_button","init_dialog","init_menu","init_table","init_state","init_badge","init_empty_state","init_loading_spinner","init_page","init_snackbar_service","init_esm","init_constants","init_translation_module","init_delete_modal_component","init_list_objects_table_service","init_operators","init_translate_by_object_type_pipe","init_side_panel_component","init_shared_pipes","init_crm_table_state_service","init_chips","init_sort","init_rxjs_interop","init_utils","init_confirmation_modal","init_filter_view","init_tokens_and_interfaces","o","_objectType","set","tableStateService","setLocalStorageKey","service","setObjectType","activityType","_activityType","setActivityType","constructor","config","router","snackService","translateByObjectTypeService","dialog","activatedRoute","crmFiltersService","signal","toObservable","pipe","switchMap","createMultiRowActions","createSelectAllActions","createSingleRowActions","map","actions","length","editClick","EventEmitter","initialLoading$","showEmptyState$","showObjects$","filtersApplied$","data$","LIST_OBJECTS_PAGE_SIZE_OPTIONS","LIST_OBJECTS_DEFAULT_PAGE_SIZE","isMobile$","confirmationModalService","inject","OpenConfirmationModalService","subscriptions","selectAll$","of","clearSelectionOnChange","filterParam","snapshot","queryParamMap","get","f","decodeFilters","validateFilters","setInitialFilters","sub","combineLatest","queryParams","state$","tap","newQueryParams","__spreadValues","encodeFilters","navigate","relativeTo","subscribe","push","ngOnDestroy","forEach","unsubscribe","ngOnInit","contact","baseColumnIds","setBaseColumns","company","task","appID","objectId","emit","routePrefix$","routePrefix","editRouteTemplate","PAGE_ROUTES","CONTACT","ROOT","SUBROUTES","EDIT","COMPANY","editRoute","replace","navigateByUrl","row","open","DeleteModalComponent","width","data","name$","lookupRowDisplayName","afterClosed","confirmed","next","translatedString","getTranslationByObjectType","openSuccessSnack","error","err","console","openErrorSnack","updateChipList","setFilters","filterChipRef","rows","columns","filter","c","setLocalStorageColumns","commonSingleRowActions$","singleRowTableActions$","typeActions","commonActions","deleteRows","openModal","type","title","message","confirmButtonText","cancelButtonText","ids","forkJoin","catchError","resp","failedIDs","address","clearSelection","commonMultiRowActions$","multiRowTableActions$","deleteRowsAction","selectAllVisible","commonSelectAllActions$","selectAllTableActions$","toggleSelectAll","ɵɵdirectiveInject","CrmInjectionToken","ListObjectsTableService","Router","SnackbarService","TranslateByObjectTypeService","MatDialog","CrmTableStateService","ActivatedRoute","CrmFiltersService","selectors","viewQuery","rf","ctx","RxState","ɵɵStandaloneFeature","decls","vars","consts","template","ListObjectsTableComponent_glxy_loading_spinner_0_Template","ListObjectsTableComponent_glxy_empty_state_2_Template","ListObjectsTableComponent_glxy_table_container_5_Template","ListObjectsTableComponent_ng_template_7_Template","ɵɵtemplateRefExtractor","CommonModule","NgForOf","NgIf","NgStyle","AsyncPipe","GalaxyEmptyStateModule","EmptyStateComponent","EmptyStateHeroDirective","EmptyStateTitleDirective","GalaxyLoadingSpinnerModule","LoadingSpinnerComponent","GalaxyTableModule","TableContainerComponent","TableContentHeaderComponent","GalaxySelectionComponent","MatTableModule","MatTable","MatHeaderCellDef","MatHeaderRowDef","MatColumnDef","MatCellDef","MatRowDef","MatHeaderCell","MatCell","MatHeaderRow","MatRow","MatIconModule","MatIcon","MatMenuModule","MatMenu","MatMenuItem","MatMenuTrigger","MatButtonModule","MatIconButton","TranslationModule","TranslatePipe","MatDialogModule","GalaxySnackbarModule","GalaxyBadgeModule","GalaxyPageModule","TranslateByObjectTypePipe","SidepanelComponent","FilterVisibleActionsPipe","GalaxyFilterChipsModule","GalaxyFilterChipsComponent","MatSortModule","FilterViewComponent","styles","_ListObjectsTableComponent","ɵɵelementContainerStart","ɵɵelementStart","ɵɵtext","ɵɵelementEnd","ɵɵadvance","ɵɵproperty","route_r1","ɵɵtextInterpolate1","ɵɵpipeBind1","create_r3","ɵɵpipeBind2","ctx_r1","objectType","ListObjectsPageComponent","init_list_objects_page_component","__esmMin","init_common","init_core","init_icon","init_button","init_menu","init_router","init_page","init_tooltip","init_operators","init_translation_module","init_list_objects_table_component","init_translate_by_object_type_pipe","init_rxjs_interop","init_tokens_and_interfaces","tableComponent","value","data$","pipe","takeUntilDestroyed","destroyRef","subscribe","rows","rowsChange","emit","typeForTitle","activityType","constructor","config","tableStateService","createObjectRoute","importCSVRoute","accountPageRoute","editClick","EventEmitter","isMobile$","createObjectRoute$","routePrefix$","filter","map","crm","importCSVRoute$","ɵɵdirectiveInject","CrmInjectionToken","CrmTableStateService","DestroyRef","selectors","viewQuery","rf","ctx","ListObjectsTableComponent","ɵɵprojection","ɵɵtemplate","ListObjectsPageComponent_ng_container_7_Template","ListObjectsPageComponent_ng_container_9_Template","ɵɵlistener","$event","ɵɵtextInterpolate","customRowStyle","CommonModule","NgIf","AsyncPipe","MatMenuModule","GalaxyPageModule","PageComponent","PageToolbarComponent","PageTitleDirective","PageActionsDirective","GalaxyTooltipModule","MatButtonModule","MatAnchor","MatIconModule","RouterModule","RouterLink","TranslationModule","TranslatePipe","TranslateByObjectTypePipe","styles","_ListObjectsPageComponent","ListObjectsTableContentDirective","init_content_directive","__esmMin","crmTableContent","value","placement","selectors","inputs","standalone","_ListObjectsTableContentDirective","PageActionsDirective","init_page_actions_directive","__esmMin","selectors","standalone","_PageActionsDirective","CrmDrawerComponent","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","_CrmDrawerComponent","init_side_panel","__esmMin","init_drawer_component","STANDARD_DATE_FORMAT","DEFAULT_TASK_STATUS","init_constants","__esmMin","init_tokens_and_interfaces","ActivityTaskStatus","Open","require_interopRequireDefault","__commonJSMin","exports","module","_interopRequireDefault","obj","require_typeof","__commonJSMin","exports","module","_typeof","o","require_requiredArgs","__commonJSMin","exports","module","requiredArgs","required","args","require_isDate","__commonJSMin","exports","module","_interopRequireDefault","isDate","_typeof2","_index","value","require_toDate","__commonJSMin","exports","module","_interopRequireDefault","toDate","_typeof2","_index","argument","argStr","require_isValid","__commonJSMin","exports","module","_interopRequireDefault","isValid","_index","_index2","_index3","dirtyDate","date","require_toInteger","__commonJSMin","exports","module","toInteger","dirtyNumber","number","require_addMilliseconds","__commonJSMin","exports","module","_interopRequireDefault","addMilliseconds","_index","_index2","_index3","dirtyDate","dirtyAmount","timestamp","amount","require_subMilliseconds","__commonJSMin","exports","module","_interopRequireDefault","subMilliseconds","_index","_index2","_index3","dirtyDate","dirtyAmount","amount","require_getUTCDayOfYear","__commonJSMin","exports","module","_interopRequireDefault","getUTCDayOfYear","_index","_index2","MILLISECONDS_IN_DAY","dirtyDate","date","timestamp","startOfYearTimestamp","difference","require_startOfUTCISOWeek","__commonJSMin","exports","module","_interopRequireDefault","startOfUTCISOWeek","_index","_index2","dirtyDate","weekStartsOn","date","day","diff","require_getUTCISOWeekYear","__commonJSMin","exports","module","_interopRequireDefault","getUTCISOWeekYear","_index","_index2","_index3","dirtyDate","date","year","fourthOfJanuaryOfNextYear","startOfNextYear","fourthOfJanuaryOfThisYear","startOfThisYear","require_startOfUTCISOWeekYear","__commonJSMin","exports","module","_interopRequireDefault","startOfUTCISOWeekYear","_index","_index2","_index3","dirtyDate","year","fourthOfJanuary","date","require_getUTCISOWeek","__commonJSMin","exports","module","_interopRequireDefault","getUTCISOWeek","_index","_index2","_index3","_index4","MILLISECONDS_IN_WEEK","dirtyDate","date","diff","require_defaultOptions","__commonJSMin","exports","getDefaultOptions","setDefaultOptions","defaultOptions","newOptions","require_startOfUTCWeek","__commonJSMin","exports","module","_interopRequireDefault","startOfUTCWeek","_index","_index2","_index3","_index4","dirtyDate","options","_ref","_ref2","_ref3","_options$weekStartsOn","_options$locale","_options$locale$optio","_defaultOptions$local","_defaultOptions$local2","defaultOptions","weekStartsOn","date","day","diff","require_getUTCWeekYear","__commonJSMin","exports","module","_interopRequireDefault","getUTCWeekYear","_index","_index2","_index3","_index4","_index5","dirtyDate","options","_ref","_ref2","_ref3","_options$firstWeekCon","_options$locale","_options$locale$optio","_defaultOptions$local","_defaultOptions$local2","date","year","defaultOptions","firstWeekContainsDate","firstWeekOfNextYear","startOfNextYear","firstWeekOfThisYear","startOfThisYear","require_startOfUTCWeekYear","__commonJSMin","exports","module","_interopRequireDefault","startOfUTCWeekYear","_index","_index2","_index3","_index4","_index5","dirtyDate","options","_ref","_ref2","_ref3","_options$firstWeekCon","_options$locale","_options$locale$optio","_defaultOptions$local","_defaultOptions$local2","defaultOptions","firstWeekContainsDate","year","firstWeek","date","require_getUTCWeek","__commonJSMin","exports","module","_interopRequireDefault","getUTCWeek","_index","_index2","_index3","_index4","MILLISECONDS_IN_WEEK","dirtyDate","options","date","diff","require_addLeadingZeros","__commonJSMin","exports","module","addLeadingZeros","number","targetLength","sign","output","require_lightFormatters","__commonJSMin","exports","module","_interopRequireDefault","_index","formatters","date","token","signedYear","year","month","dayPeriodEnumValue","numberOfDigits","milliseconds","fractionalSeconds","_default","require_formatters","__commonJSMin","exports","module","_interopRequireDefault","_index","_index2","_index3","_index4","_index5","_index6","_index7","dayPeriodEnum","formatters","date","token","localize","era","signedYear","year","options","signedWeekYear","weekYear","twoDigitYear","isoWeekYear","quarter","month","week","isoWeek","dayOfYear","dayOfWeek","localDayOfWeek","isoDayOfWeek","hours","dayPeriodEnumValue","_localize","originalDate","timezoneOffset","formatTimezoneWithOptionalMinutes","formatTimezone","formatTimezoneShort","timestamp","offset","dirtyDelimiter","sign","absOffset","minutes","delimiter","_default","require_longFormatters","__commonJSMin","exports","module","dateLongFormatter","pattern","formatLong","timeLongFormatter","dateTimeLongFormatter","matchResult","datePattern","timePattern","dateTimeFormat","longFormatters","_default","require_getTimezoneOffsetInMilliseconds","__commonJSMin","exports","module","getTimezoneOffsetInMilliseconds","date","utcDate","require_protectedTokens","__commonJSMin","exports","isProtectedDayOfYearToken","isProtectedWeekYearToken","throwProtectedError","protectedDayOfYearTokens","protectedWeekYearTokens","token","format","input","require_formatDistance","__commonJSMin","exports","module","formatDistanceLocale","formatDistance","token","count","options","result","tokenValue","_default","require_buildFormatLongFn","__commonJSMin","exports","module","buildFormatLongFn","args","options","width","format","require_formatLong","__commonJSMin","exports","module","_interopRequireDefault","_index","dateFormats","timeFormats","dateTimeFormats","formatLong","_default","require_formatRelative","__commonJSMin","exports","module","formatRelativeLocale","formatRelative","token","_date","_baseDate","_options","_default","require_buildLocalizeFn","__commonJSMin","exports","module","buildLocalizeFn","args","dirtyIndex","options","context","valuesArray","defaultWidth","width","_defaultWidth","_width","index","require_localize","__commonJSMin","exports","module","_interopRequireDefault","_index","eraValues","quarterValues","monthValues","dayValues","dayPeriodValues","formattingDayPeriodValues","ordinalNumber","dirtyNumber","_options","number","rem100","localize","quarter","_default","require_buildMatchFn","__commonJSMin","exports","module","buildMatchFn","args","string","options","width","matchPattern","matchResult","matchedString","parsePatterns","key","findIndex","pattern","findKey","value","rest","object","predicate","array","require_buildMatchPatternFn","__commonJSMin","exports","module","buildMatchPatternFn","args","string","options","matchResult","matchedString","parseResult","value","rest","require_match","__commonJSMin","exports","module","_interopRequireDefault","_index","_index2","matchOrdinalNumberPattern","parseOrdinalNumberPattern","matchEraPatterns","parseEraPatterns","matchQuarterPatterns","parseQuarterPatterns","matchMonthPatterns","parseMonthPatterns","matchDayPatterns","parseDayPatterns","matchDayPeriodPatterns","parseDayPeriodPatterns","match","value","index","_default","require_en_US","__commonJSMin","exports","module","_interopRequireDefault","_index","_index2","_index3","_index4","_index5","locale","_default","require_defaultLocale","__commonJSMin","exports","module","_interopRequireDefault","_index","_default","require_format","__commonJSMin","exports","module","_interopRequireDefault","format","_index","_index2","_index3","_index4","_index5","_index6","_index7","_index8","_index9","_index10","_index11","formattingTokensRegExp","longFormattingTokensRegExp","escapedStringRegExp","doubleQuoteRegExp","unescapedLatinCharacterRegExp","dirtyDate","dirtyFormatStr","options","_ref","_options$locale","_ref2","_ref3","_ref4","_options$firstWeekCon","_options$locale2","_options$locale2$opti","_defaultOptions$local","_defaultOptions$local2","_ref5","_ref6","_ref7","_options$weekStartsOn","_options$locale3","_options$locale3$opti","_defaultOptions$local3","_defaultOptions$local4","formatStr","defaultOptions","locale","firstWeekContainsDate","weekStartsOn","originalDate","timezoneOffset","utcDate","formatterOptions","result","substring","firstCharacter","longFormatter","cleanEscapedString","formatter","input","matched","tzIntlTimeZoneName","length","date","options","dtf","getDTF","partsTimeZone","hackyTimeZone","formatted","i","tzNameMatch","timeZone","locale","init_tzIntlTimeZoneName","__esmMin","tzTokenizeDate","date","timeZone","dtf","getDateTimeFormat","partsOffset","hackyOffset","formatted","filled","i","pos","typeToPos","error","parsed","dtfCache","testDateFormatted","hourCycleSupported","init_tzTokenizeDate","__esmMin","newDateUTC","fullYear","month","day","hour","minute","second","millisecond","utcDate","init_newDateUTC","__esmMin","tzParseTimezone","timezoneString","date","isUtcDate","token","absoluteOffset","patterns","hours","validateTimezone","MILLISECONDS_IN_HOUR","minutes","MILLISECONDS_IN_MINUTE","isValidTimezoneIANAString","utcDate","toUtcDate","offset","calcOffset","fixedOffset","fixOffset","newDateUTC","tokens","tzTokenizeDate","asUTC","asTS","over","localTS","utcGuess","o2","o3","timeZoneString","validIANATimezoneCache","init_tzParseTimezone","__esmMin","init_tzTokenizeDate","init_newDateUTC","getTimeZoneOffset","timeZone","originalDate","timeZoneOffset","tzParseTimezone","MILLISECONDS_IN_MINUTE","addLeadingZeros","number","targetLength","sign","output","formatTimezone","offset","dirtyDelimeter","delimeter","absOffset","hours","minutes","formatTimezoneWithOptionalMinutes","formatTimezoneShort","dirtyDelimiter","delimiter","formatters","formatters_default","init_formatters","__esmMin","init_tzIntlTimeZoneName","init_tzParseTimezone","date","token","localize","options","timezoneOffset","tzIntlTimeZoneName","tzPattern","tzPattern_default","init_tzPattern","__esmMin","toDate","argument","dirtyOptions","options","additionalDigits","DEFAULT_ADDITIONAL_DIGITS","toInteger","dateStrings","splitDateString","parseYearResult","parseYear","year","restDateString","date","parseDate","timestamp","time","offset","parseTime","tzParseTimezone","getTimezoneOffsetInMilliseconds","dateString","parts","patterns","timeString","token","patternYYY","patternYYYYY","yearString","centuryString","month","week","validateDate","dayOfYear","validateDayOfYearDate","day","validateWeekDate","dayOfISOWeekYear","dayOfWeek","hours","minutes","validateTime","MILLISECONDS_IN_HOUR","MILLISECONDS_IN_MINUTE","seconds","isoWeekYear","fourthOfJanuaryDay","diff","isLeapYearIndex","isLeapYear","DAYS_IN_MONTH_LEAP_YEAR","DAYS_IN_MONTH","import_toInteger","import_getTimezoneOffsetInMilliseconds","init_toDate","__esmMin","init_tzParseTimezone","init_tzPattern","tzPattern_default","format","dirtyDate","dirtyFormatStr","dirtyOptions","formatStr","options","matches","tzFormattingTokensRegExp","date","toDate","result","token","pos","precededByQuotedSection","replaced","formatters_default","dateFnsFormat","import_format","init_format","__esmMin","init_formatters","init_toDate","init_esm","__esmMin","init_format","ActivityTaskType","ActivityTaskTypeTranslationKeys","ActivityDirection","CallStatus","ActivityOutcome","MeetingDuration","MeetingStatus","init_activity_interface","__esmMin","ToDo","Email","Call","Message","Connection","LinkedIn","nameKey","value","Outbound","Inbound","Forwarded","Connected","Busy","Rejected","Voicemail","NoAnswer","NotInService","WrongNumber","BusinessReview","Demo","DemoCompleted","Discovery","Interested","NoInterest","Presentation","QualityConnect","Rescheduling","Referred","Timeline","FiveMin","FifteenMin","ThirtyMin","OneHour","OneHourThirtyMin","TwoHoursPlus","Scheduled","Rescheduled","Completed","Cancelled","NoShow","requiredFormGroupFieldsIf","predicate","fieldNames","formGroup","when","controls","map","name","get","filter","c","Boolean","forEach","validateRequired","clearRequired","control","value","hasError","errors","setErrors","required","init_validators","__esmMin","ɵɵelementStart","ɵɵtext","ɵɵelementEnd","ɵɵadvance","ɵɵtextInterpolate1","ɵɵpipeBind1","ɵɵelementContainerStart","ɵɵtemplate","CrmActivityLoggerTaskComponent_ng_container_8_glxy_error_1_Template","ɵɵproperty","ctx_r0","formGroup","controls","taskName","hasError","CrmActivityLoggerTaskComponent_ng_container_21_glxy_error_1_Template","taskDueDate","ɵɵpropertyInterpolate","owner_r2","id","displayName","CrmActivityLoggerTaskComponent_ng_container_26_glxy_error_1_Template","taskOwner","type_r3","value","nameKey","CrmActivityLoggerTaskComponent_ng_container_32_glxy_error_1_Template","taskType","CrmActivityLoggerTaskComponent","init_task_component","__esmMin","init_text_field","init_common","init_core","init_forms","init_input","init_ngx_translate_core","init_form_field","init_constants","init_translation_module","init_esm","init_datepicker","init_select","init_activity_interface","init_validators","init_coercion","init_rxjs_interop","init_shared_services","activity","setValues","user","_user","undefined","setPossibleOwners","activityOwner","_activityOwner","description","patchValue","taskInstructions","emitEvent","constructor","fieldsService","mobile","descriptionChange","EventEmitter","showErrors","ActivityOutcome","MeetingDuration","MeetingStatus","textRows","possibleOwners","today","Date","FormBuilder","nonNullable","group","formatDate","setDate","getDate","STANDARD_DATE_FORMAT","ActivityTaskType","ToDo","taskPriority","disabled","validators","requiredFormGroupFieldsIf","taskTypes","ActivityTaskTypeTranslationKeys","valueChanges","pipe","takeUntilDestroyed","distinctUntilChanged","subscribe","emit","ngAfterViewInit","defaultInput","nativeElement","focus","resetForm","reset","userId","updateValueAndValidity","getValues","formValues","getRawValue","fieldId","getFieldId","StandardIds","ActivityName","stringValue","ActivityTaskBody","ActivityTaskDueDate","dateValue","ActivityTaskPriority","ActivityTaskStatus","DEFAULT_TASK_STATUS","getFieldValueFromCrmObject","taskBody","ownerId","setValue","dirty","push","fullName","firstName","lastName","trim","length","validate","markAllAsTouched","ɵɵdirectiveInject","CrmFieldService","selectors","viewQuery","rf","ctx","coerceBooleanProperty","outputs","standalone","features","ɵɵInputTransformsFeature","ɵɵStandaloneFeature","ngContentSelectors","_c3","decls","vars","consts","template","ɵɵelement","CrmActivityLoggerTaskComponent_ng_container_8_Template","ɵɵprojection","CrmActivityLoggerTaskComponent_ng_container_21_Template","CrmActivityLoggerTaskComponent_mat_option_25_Template","CrmActivityLoggerTaskComponent_ng_container_26_Template","CrmActivityLoggerTaskComponent_mat_option_31_Template","CrmActivityLoggerTaskComponent_ng_container_32_Template","ɵɵclassProp","ɵɵtextInterpolate","CommonModule","NgForOf","NgIf","TranslateModule","TranslatePipe","TranslationModule","GalaxyFormFieldModule","FormFieldComponent","FormRowComponent","ErrorDirective","MatInputModule","MatInput","CdkTextareaAutosize","ReactiveFormsModule","ɵNgNoValidate","DefaultValueAccessor","NgControlStatus","NgControlStatusGroup","FormGroupDirective","FormControlName","TextFieldModule","MatDatepickerModule","MatDatepicker","MatSelectModule","MatSelect","MatOption","styles","_CrmActivityLoggerTaskComponent","ɵɵelementStart","ɵɵtext","ɵɵelementEnd","ɵɵlistener","ɵɵrestoreView","_r2","association_r3","ɵɵnextContext","$implicit","ctx_r3","ɵɵresetView","handleRemoveOption","$event","i0","preventDefault","ɵɵtemplate","CrmActivityLoggerAssociationComponent_ng_container_2_mat_chip_row_1_button_3_Template","ɵɵpropertyInterpolate","name","ɵɵadvance","ɵɵtextInterpolate1","ɵɵpipeBind1","ɵɵproperty","crmObjectId","fixedId","ɵɵelementContainerStart","CrmActivityLoggerAssociationComponent_ng_container_2_mat_chip_row_1_Template","first_r5","showAdditionalChips","associations","length","option_r6","ɵɵtextInterpolate","associationInfo","CrmActivityLoggerAssociationComponent","init_association_component","__esmMin","init_text_field","init_common","init_core","init_forms","init_autocomplete","init_chips","init_icon","init_input","init_tooltip","init_truncate_pipe","init_coercion","init_rxjs_interop","constructor","mobile","options","placeholder","add","EventEmitter","remove","searchTermChange","separatorKeyCodes","ENTER","COMMA","searchCtrl","FormControl","valueChanges","pipe","takeUntilDestroyed","subscribe","searchTerm","emit","option","removeAssociation","handleSelectOption","event","value","addAssociation","setValue","association","crmObjectType","find","a","selectors","inputs","ɵɵInputFlags","HasDecoratorInputTransform","coerceBooleanProperty","outputs","standalone","features","ɵɵInputTransformsFeature","ɵɵStandaloneFeature","decls","vars","consts","template","rf","ctx","CrmActivityLoggerAssociationComponent_ng_container_2_Template","CrmActivityLoggerAssociationComponent_mat_chip_3_Template","_r1","CrmActivityLoggerAssociationComponent_mat_option_7_Template","associationGrid_r7","auto_r8","CommonModule","NgForOf","NgIf","MatIconModule","MatIcon","MatChipsModule","MatChip","MatChipGrid","MatChipInput","MatChipRemove","MatChipRow","MatInputModule","ReactiveFormsModule","DefaultValueAccessor","NgControlStatus","FormControlDirective","TextFieldModule","MatAutocompleteModule","MatAutocomplete","MatOption","MatAutocompleteTrigger","MatTooltipModule","MatTooltip","CrmTruncatePipe","styles","_CrmActivityLoggerAssociationComponent","CrmActivityLoggerAssociationField","CrmActivityLoggerObjectAssociationField","init_association_field_component","__esmMin","init_core","init_esm","init_tokens_and_interfaces","init_shared_services","constructor","config","inject","CrmInjectionToken","crmObjectService","CrmObjectService","associationsList","signal","searchTerm$$","BehaviorSubject","options$","setupSearchTerm","setAssociations","associations","__async","existingAssociations","filter","association","name","forEach","existing","find","item","crmObjectId","objectsToFetch","map","length","fetchObjects","object","set","updateSearchTerm","searchTerm","next","trim","objectIds","firstValueFrom","getMultiObject","crmObjectType","crmObjects","obj","customizationService","getRowFullName","asObservable","pipe","debounceTime","distinctUntilChanged","withLatestFrom","namespace$","namespace","search","pagingOptions","cursor","pageSize","switchMap","r","listObjects","filteredOptions","option","associationInfo","getAssociationInfo","contactContains","contact","search","name","toLowerCase","includes","associationInfo","contactIncludes","array","searchElement","fromIndex","len","length","startIndex","Math","max","i","currentElement","crmObjectId","CrmActivityLoggerContactAssociationComponent","init_contact_association_component","__esmMin","init_common","init_core","init_association_component","init_coercion","init_association_field_component","init_shared_services","init_esm","CrmActivityLoggerObjectAssociationField","constructor","fixedId","mobile","placeholder","associationsChange","EventEmitter","customizationService","inject","ContactTableCustomizationService","crmObjectType","companyContactCacheService","CompanyContactCacheService","crmAssociationService","CrmAssociationService","associations","value","setAssociations","handleAdd","association","associationsList","find","a","newAssociations","set","emit","handleRemove","filter","handleSearchTermChange","searchTerm","updateSearchTerm","setupSearchTerm","pipe","withLatestFrom","searchTerm$$","asObservable","switchMap","values","allAssociations","getCachedContactAssociationsForCompany$","map","contacts","associatedContacts","getRowFullName","associatedObject","getAssociationInfo","c","slice","concat","t","selectors","inputs","ɵɵInputFlags","HasDecoratorInputTransform","coerceBooleanProperty","outputs","standalone","features","ɵɵInputTransformsFeature","ɵɵInheritDefinitionFeature","ɵɵStandaloneFeature","decls","vars","consts","template","rf","ctx","ɵɵelementStart","ɵɵlistener","$event","ɵɵelementEnd","ɵɵproperty","tmp_3_0","ɵɵpipeBind1","options$","undefined","ɵɵpureFunction0","_c0","CommonModule","AsyncPipe","CrmActivityLoggerAssociationComponent","encapsulation","_CrmActivityLoggerContactAssociationComponent","CrmActivityLoggerCompanyAssociationComponent","init_company_association_component","__esmMin","init_common","init_core","init_association_component","init_coercion","init_association_field_component","init_company_table_customization_service","CrmActivityLoggerObjectAssociationField","constructor","fixedId","mobile","placeholder","associationsChange","EventEmitter","customizationService","inject","CompanyTableCustomizationService","crmObjectType","associations","value","setAssociations","handleAdd","association","associationsList","find","a","crmObjectId","newAssociations","set","emit","handleRemove","filter","handleSearchTermChange","searchTerm","updateSearchTerm","t","selectors","inputs","ɵɵInputFlags","HasDecoratorInputTransform","coerceBooleanProperty","outputs","standalone","features","ɵɵInputTransformsFeature","ɵɵInheritDefinitionFeature","ɵɵStandaloneFeature","decls","vars","consts","template","rf","ctx","ɵɵelementStart","ɵɵlistener","$event","ɵɵelementEnd","ɵɵproperty","tmp_3_0","ɵɵpipeBind1","options$","undefined","ɵɵpureFunction0","_c0","CommonModule","AsyncPipe","CrmActivityLoggerAssociationComponent","encapsulation","_CrmActivityLoggerCompanyAssociationComponent","CrmCoreModule","init_crm_core_module","__esmMin","init_tokens_and_interfaces","forRoot","config","ngModule","providers","provide","CrmInjectionToken","useExisting","deps","_CrmCoreModule","ɵɵelement","ɵɵproperty","ctx_r0","cardData","avatar","type","ɵɵelementStart","ɵɵtext","ɵɵelementEnd","ɵɵadvance","profileButtonUrl","ɵɵtextInterpolate1","userName","ɵɵlistener","ɵɵrestoreView","_r2","ɵɵnextContext","ɵɵresetView","openMailWindow","copyToClipboard","email","ɵɵpropertyInterpolate1","ɵɵsanitizeUrl","businessName","businessWebsite","accountGroupCompanyId","ɵɵtemplate","AssociationCardComponent_mat_card_title_7_Conditional_1_Template","AssociationCardComponent_mat_card_title_7_Conditional_2_Template","ɵɵconditional","ɵɵtextInterpolate","tmp_2_0","accountGroupCompanyName","undefined","menu_r3","_r4","onEditTags","ɵɵpipeBind1","_r5","onRemove","ɵɵelementContainerStart","action_r7","_r6","$implicit","callback","label","AssociationCardComponent","init_association_card_component","__esmMin","init_common","init_core","init_button","init_card","init_icon","init_menu","init_tooltip","init_router","init_avatar","init_translation_module","constructor","clipboard","snackbarService","window","showActionsMenu","showEditTagButton","showRemoveButton","actions","removeClick","EventEmitter","editTagsClick","emit","copy","openSuccessSnack","action","open","ɵɵdirectiveInject","Clipboard","SnackbarService","Window","selectors","inputs","outputs","standalone","features","ɵɵProvidersFeature","provide","useValue","ɵɵStandaloneFeature","ngContentSelectors","_c0","decls","vars","consts","template","rf","ctx","AssociationCardComponent_glxy_avatar_2_Template","AssociationCardComponent_mat_card_title_3_Template","AssociationCardComponent_mat_card_subtitle_4_Template","AssociationCardComponent_mat_card_title_5_Template","AssociationCardComponent_mat_card_subtitle_6_Template","AssociationCardComponent_mat_card_title_7_Template","AssociationCardComponent_mat_card_subtitle_8_Template","AssociationCardComponent_button_9_Template","AssociationCardComponent_button_12_Template","AssociationCardComponent_button_13_Template","AssociationCardComponent_ng_container_14_Template","ɵɵprojection","hideAvatar","CommonModule","NgForOf","NgIf","MatCardModule","MatCard","MatCardAvatar","MatCardContent","MatCardHeader","MatCardSubtitle","MatCardTitle","GalaxyAvatarModule","AvatarComponent","MatIconModule","MatIcon","MatMenuModule","MatMenu","MatMenuItem","MatMenuTrigger","MatButtonModule","MatIconButton","MatTooltipModule","MatTooltip","TranslationModule","TranslatePipe","RouterLink","styles","_AssociationCardComponent","ɵɵelementContainerStart","ɵɵelementStart","ɵɵtext","ɵɵelementEnd","ɵɵadvance","ɵɵproperty","ɵɵtextInterpolate","ctx_r0","tags","ɵɵtemplate","TagsComponent_ng_container_0_ng_container_3_Template","length","ɵɵelementContainer","TagsComponent_ng_container_1_ng_container_1_Template","noPrimaryTagsAlt_r2","TagsComponent_ng_container_2_ng_container_1_Template","hasPrimaryTag_r3","TagsComponent_ng_template_3_ng_container_0_Template","TagsComponent_ng_template_3_ng_container_1_Template","slice","join","ɵɵtextInterpolate1","TagsComponent_ng_template_5_glxy_badge_0_Template","TagsComponent_ng_template_7_glxy_badge_0_Template","TagsComponent","init_tags_component","__esmMin","init_common","init_icon","init_badge","init_tooltip","constructor","selectors","inputs","standalone","features","ɵɵStandaloneFeature","decls","vars","consts","template","rf","ctx","TagsComponent_ng_container_0_Template","TagsComponent_ng_container_1_Template","TagsComponent_ng_container_2_Template","TagsComponent_ng_template_3_Template","ɵɵtemplateRefExtractor","TagsComponent_ng_template_5_Template","TagsComponent_ng_template_7_Template","includes","noPrimaryTags_r4","CommonModule","NgIf","NgTemplateOutlet","MatIconModule","GalaxyBadgeModule","BadgeComponent","GalaxyTooltipModule","GalaxyTooltipDirective","styles","_TagsComponent","LinkedinIconSVG","init_linkedin_icon_svg","__esmMin","ɵɵelementContainerStart","ɵɵelementStart","ɵɵelement","ɵɵelementEnd","ɵɵadvance","ɵɵpropertyInterpolate","ctx_r0","iconName","ɵɵtext","ɵɵtextInterpolate","CommonAssociationCardContentComponent","init_common_association_card_content_component","__esmMin","init_common","init_icon","init_linkedin_icon_svg","constructor","matIconRegistry","sanitizer","addSvgIconLiteral","bypassSecurityTrustHtml","LinkedinIconSVG","ɵɵdirectiveInject","MatIconRegistry","DomSanitizer","selectors","inputs","isSvgIcon","standalone","features","ɵɵStandaloneFeature","ngContentSelectors","_c0","decls","vars","consts","template","rf","ctx","ɵɵtemplate","CommonAssociationCardContentComponent_ng_container_1_Template","CommonAssociationCardContentComponent_ng_template_2_Template","ɵɵtemplateRefExtractor","ɵɵprojection","ɵɵproperty","normalIcon_r2","CommonModule","NgIf","MatIconModule","MatIcon","styles","_CommonAssociationCardContentComponent","init_association_card","__esmMin","init_association_card_component","init_tags_component","init_common_association_card_content_component","init_linkedin_icon_svg","enumStringToValue$1","enumRef","value","enumStringToValue","DateDefault","FilterGroupOperator","FilterOperator","AsyncWorkStatus","CampaignScheduleStatus","CampaignState","CampaignStepEventType","CampaignStepSendStatusType","CampaignStepType","ContactType","DaysOfTheWeek","DeletedTagsPolicy","DuplicateCampaignStepStatus","Feature","Focuses","RecipientCampaignStatus","RecipientType","SenderType","SortDirection","SortField","Statuses","TemplateStatus","FieldMask","Filter","FilterGroup","FilterValue","RecipientClickStatsAccount","ActivateProductForSenderRequest","AddContactToCampaignRequest","AddContactToCampaignResponse","AddStepToCampaignRequest","AddTagToCampaignRequest","BulkAddContactsToCampaignRequest","CampaignDetailStats","CampaignRecipient","CampaignStepEvent","CampaignStepInterface","CampaignStepStats","CampaignTag","CheckDuplicateCampaignStatusRequest","CheckDuplicateCampaignStatusResponse","CheckDuplicateCampaignStepStatusRequest","CheckDuplicateCampaignStepStatusResponse","Contact","CreateCampaignRequest","CreateCampaignResponse","CreateEmailTemplateRequest","CreateTagRequest","CreateTagResponse","DateFilter","DeactivateProductForSenderRequest","DeleteCampaignRequest","DeleteTagRequest","DuplicateAndRecommendCampaignRequest","DuplicateCampaignDetails","DuplicateCampaignRequest","DuplicateCampaignRequestV2","DuplicateCampaignResponse","DuplicateCampaignStepRequest","DuplicateCampaignStepResponse","EmailTemplateStruct","ExecuteStepRequest","ExportRecipientLinkClickStatsRequest","ExtractLinkTrackingDataForTemplateRequest","ExtractLinkTrackingDataForTemplateResponse","GetAggregatedCampaignStatsRequest","GetAggregatedCampaignStatsResponse","GetAvailableStepTypesForSenderRequest","GetAvailableStepTypesForSenderResponse","GetCampaignDetailsStatsRequest","GetCampaignDetailsStatsResponse","GetCampaignRequest","GetCampaignResponse","GetCampaignStepContentRequest","GetCampaignStepContentResponse","GetCampaignStepStatsRequest","GetCampaignStepStatsResponse","GetConfigRequest","GetConfigResponse","GetEmailTemplateRequest","GetEmailTemplateResponse","GetEmailTemplatesRequest","GetEmailTemplatesResponse","GetLinkStatsRequest","GetLinkStatsResponse","GetMultiCampaignsRequest","GetMultiCampaignsResponse","GetRecipientCampaignRequest","GetRecipientCampaignResponse","GetRecipientLinkClickStatsRequest","GetRecipientLinkClickStatsResponse","GetterCampaignData","IsFeatureActiveForSenderRequest","IsFeatureActiveForSenderResponse","IsProductActiveForSenderRequest","IsProductActiveForSenderResponse","LegacyAddAccountGroupToCampaignRequest","LegacyGetRecipientCampaignsByAgidRequest","LegacyGetRecipientCampaignsByAgidResponse","LegacyPauseAccountGroupOnCampaignRequest","LegacyRateLimitedAddToCampaignRequest","LegacyRateLimitedAddToCampaignResponse","LegacyUpdateRecipientCampaignStatusRequest","LinkStats","LinkTrackingData","ListCampaignStatsForSenderRequest","ListCampaignStatsForSenderResponse","ListCampaignStatsRequest","ListCampaignStatsResponse","ListCampaignStatsStruct","ListCampaignTagDetails","ListCampaignsRequest","ListCampaignsResponse","ListCampaignsV2Request","ListCampaignsV2Response","ListLinksInTemplateRequest","ListLinksInTemplateResponse","ListRecipientCampaignsRequest","ListRecipientCampaignsResponse","ListRecommendedCampaignsRequest","ListTagsForCampaignRequest","ListTagsForCampaignResponse","ListTagsForSenderRequest","ListTagsForSenderResponse","LookupRecipientCampaignRequest","LookupRecipientCampaignResponse","LookupRecipientCampaignsRequest","LookupRecipientCampaignsResponse","GetRecipientLinkClickStatsRequestPagedRequestOptions","PagedRequestOptions","PagedResponseMetadata","PauseCampaignRequest","PreviewEmailTemplateRequest","PreviewEmailTemplateResponse","RecipientClickStatsRecipient","RecipientCampaignPair","RecipientCampaignStruct","RecipientClickStats","RecipientCriteria","RecipientV2","RemoveTagFromCampaignRequest","ScheduledCampaignStepInterface","SendCampaignStepTestEmailRequest","SendCampaignStepTestEmailResponse","SendRecipientCampaignStepEmailRequest","Sender","SortOptions","StepDataResponse","UnpauseCampaignRequest","UpdateCampaignNameRequest","UpdateConfigRequest","UpdateConfigResponse","UpdateEmailTemplateRequest","UpdateStepOnCampaignRequest","UpsertCampaignRequest","UpsertConfigRequest","UpsertRecipientCampaignRequest","environment","hostMap","HostService","ActivationsApiService","CampaignConfigApiService","CampaignStatsApiService","CampaignTaggingApiService","CampaignsApiService","EmailTemplateApiService","LegacyAppengineAPIApiService","RecipientCampaignApiService","AllDates","CampaignService","RecipientCampaignService","EmailTemplateService","CampaignStatsService","CampaignTaggingService","LegacyAppengineService","ConfigService","ActivationService","init_vendasta_campaigns","__esmMin","init_core","init_http","init_operators","_FieldMask","proto","m","kwargs","toReturn","_Filter","_FilterGroup","_FilterValue","_RecipientClickStatsAccount","_ActivateProductForSenderRequest","_AddContactToCampaignRequest","_AddContactToCampaignResponse","_AddStepToCampaignRequest","_AddTagToCampaignRequest","_BulkAddContactsToCampaignRequest","_CampaignDetailStats","_CampaignRecipient","_CampaignStepEvent","_CampaignStepInterface","_CampaignStepStats","_CampaignTag","_CheckDuplicateCampaignStatusRequest","_CheckDuplicateCampaignStatusResponse","_CheckDuplicateCampaignStepStatusRequest","_CheckDuplicateCampaignStepStatusResponse","_Contact","_CreateCampaignRequest","_CreateCampaignResponse","_CreateEmailTemplateRequest","_CreateTagRequest","_CreateTagResponse","_DateFilter","_DeactivateProductForSenderRequest","_DeleteCampaignRequest","_DeleteTagRequest","_DuplicateAndRecommendCampaignRequest","_DuplicateCampaignDetails","_DuplicateCampaignRequest","_DuplicateCampaignRequestV2","_DuplicateCampaignResponse","_DuplicateCampaignStepRequest","_DuplicateCampaignStepResponse","_EmailTemplateStruct","_ExecuteStepRequest","_ExportRecipientLinkClickStatsRequest","_ExtractLinkTrackingDataForTemplateRequest","_ExtractLinkTrackingDataForTemplateResponse","_GetAggregatedCampaignStatsRequest","v","_GetAggregatedCampaignStatsResponse","_GetAvailableStepTypesForSenderRequest","_GetAvailableStepTypesForSenderResponse","_GetCampaignDetailsStatsRequest","_GetCampaignDetailsStatsResponse","_GetCampaignRequest","_GetCampaignResponse","_GetCampaignStepContentRequest","obj","k","_GetCampaignStepContentResponse","_GetCampaignStepStatsRequest","_GetCampaignStepStatsResponse","_GetConfigRequest","_GetConfigResponse","_GetEmailTemplateRequest","_GetEmailTemplateResponse","_GetEmailTemplatesRequest","_GetEmailTemplatesResponse","_GetLinkStatsRequest","_GetLinkStatsResponse","_GetMultiCampaignsRequest","_GetMultiCampaignsResponse","_GetRecipientCampaignRequest","_GetRecipientCampaignResponse","_GetRecipientLinkClickStatsRequest","_GetRecipientLinkClickStatsResponse","_GetterCampaignData","_IsFeatureActiveForSenderRequest","_IsFeatureActiveForSenderResponse","_IsProductActiveForSenderRequest","_IsProductActiveForSenderResponse","_LegacyAddAccountGroupToCampaignRequest","_LegacyGetRecipientCampaignsByAgidRequest","_LegacyGetRecipientCampaignsByAgidResponse","_LegacyPauseAccountGroupOnCampaignRequest","_LegacyRateLimitedAddToCampaignRequest","_LegacyRateLimitedAddToCampaignResponse","_LegacyUpdateRecipientCampaignStatusRequest","_LinkStats","_LinkTrackingData","_ListCampaignStatsForSenderRequest","_ListCampaignStatsForSenderResponse","_ListCampaignStatsRequest","_ListCampaignStatsResponse","_ListCampaignStatsStruct","_ListCampaignTagDetails","_ListCampaignsRequest","_ListCampaignsResponse","_ListCampaignsV2Request","_ListCampaignsV2Response","_ListLinksInTemplateRequest","_ListLinksInTemplateResponse","_ListRecipientCampaignsRequest","_ListRecipientCampaignsResponse","_ListRecommendedCampaignsRequest","_ListTagsForCampaignRequest","_ListTagsForCampaignResponse","_ListTagsForSenderRequest","_ListTagsForSenderResponse","_LookupRecipientCampaignRequest","_LookupRecipientCampaignResponse","_LookupRecipientCampaignsRequest","_LookupRecipientCampaignsResponse","_GetRecipientLinkClickStatsRequestPagedRequestOptions","_PagedRequestOptions","_PagedResponseMetadata","_PauseCampaignRequest","_PreviewEmailTemplateRequest","_PreviewEmailTemplateResponse","_RecipientClickStatsRecipient","_RecipientCampaignPair","_RecipientCampaignStruct","_RecipientClickStats","_RecipientCriteria","_RecipientV2","_RemoveTagFromCampaignRequest","_ScheduledCampaignStepInterface","_SendCampaignStepTestEmailRequest","_SendCampaignStepTestEmailResponse","_SendRecipientCampaignStepEmailRequest","_Sender","_SortOptions","_StepDataResponse","_UnpauseCampaignRequest","_UpdateCampaignNameRequest","_UpdateConfigRequest","_UpdateConfigResponse","_UpdateEmailTemplateRequest","_UpdateStepOnCampaignRequest","_UpsertCampaignRequest","_UpsertConfigRequest","_UpsertRecipientCampaignRequest","ɵɵdefineInjectable","http","hostService","HttpHeaders","r","request","__spreadProps","__spreadValues","map","resp","ɵɵinject","HttpClient","api","sender","name","campaignId","stepType","contentId","req","campaignStepId","secondsAfterLastStep","fm","campaignID","campaign","campaignIDs","partnerID","focuses","statuses","pagingOptions","vv","data","stepId","workflowStatusId","targetPartnerId","sendToUserId","status","mapTo","campaignSchedule","locale","searchTerm","sortOptions","accountGroupID","recipient","date","filterGroup","recipients","recipientCampaignId","templateID","templateIDs","templateId","accountGroupId","partnerId","marketId","userId","stat","senderType","senderId","text","colour","cursor","pageSize","tagId","timeZoneForEmailsSent","daysEmailsCanBeSent","recipientsAddedRateLimitEnabled","recipientsAddedRateLimit","emailsCanbeSent","feature","ɵɵelementStart","ɵɵelement","ɵɵelementEnd","StartCampaignDialogComponent","init_start_campaign_dialog_component","__esmMin","init_common","init_button","init_ngx_translate_core","init_loading_spinner","init_dialog","init_empty_state","init_icon","init_form_field","init_radio","init_forms","init_src","init_input","init_button_loading_indicator","init_progress_spinner","init_infinite_scroll_trigger","init_tooltip","init_alert","init_vendasta_campaigns","init_field_service","init_tokens_and_interfaces","init_datepicker","init_esm","init_operators","init_add_campaign_dialog_component","init_rxjs_interop","constructor","destroyRef","modalData","dialog","translate","objectService","config","ref","snackbarService","recipientCampaignService","crmFieldService","formGroup","FormBuilder","nonNullable","group","selectFormControl","dateFormControl","formatDate","Date","nowDate","now","loading$$","BehaviorSubject","crmObject$","getMultiObject","id","pipe","map","resp","object","crmObjects","length","ngOnInit","selectedCampaign","campaign","sendCampaign","undefined","openErrorSnack","sender","combineLatest","namespace$","parentNamespace$","take","subscribe","namespace","parentNamespace","senderType","SenderType","SENDER_TYPE_PARTNER","SENDER_TYPE_BUSINESS","type","recipient","crmObjectId","RecipientType","RECIPIENT_TYPE_CRM_CONTACT","contact","ContactType","CONTACT_TYPE_EMAIL","value","getFieldValueFromCrmObject","StandardExternalIds","Email","stringValue","emailAddress","phoneNumber","PhoneNumber","next","takeUntilDestroyed","switchMap","rec","formValues","getRawValue","campaignStartTime","addToCampaign","catchError","of","instant","openSuccessSnack","title","close","back","open","AddCampaignDialogComponent","width","data","ɵɵdirectiveInject","DestroyRef","MAT_DIALOG_DATA","MatDialog","TranslateService","CrmObjectService","CrmInjectionToken","MatDialogRef","SnackbarService","RecipientCampaignService","CrmFieldService","selectors","standalone","features","ɵɵProvidersFeature","provide","PageAnalyticsInjectionToken","useFactory","pageAnalyticsInjectionTokenGenerator","ɵɵStandaloneFeature","decls","vars","consts","template","rf","ctx","ɵɵtext","ɵɵtemplate","StartCampaignDialogComponent_glxy_form_field_24_Template","ɵɵelementContainerStart","ɵɵlistener","ɵɵadvance","ɵɵtextInterpolate","ɵɵpipeBind1","ɵɵproperty","ɵɵtextInterpolate1","ɵɵtextInterpolate2","ɵɵpipeBind2","controls","CommonModule","NgIf","DatePipe","MatButtonModule","MatButton","TranslateModule","TranslatePipe","GalaxyLoadingSpinnerModule","MatDialogModule","MatDialogTitle","MatDialogActions","MatDialogContent","GalaxyEmptyStateModule","MatIconModule","GalaxyFormFieldModule","FormFieldComponent","ExtendedDirective","MatRadioModule","MatRadioGroup","MatRadioButton","FormsModule","ɵNgNoValidate","DefaultValueAccessor","NgControlStatus","NgControlStatusGroup","VaFormsModule","MatInputModule","MatInput","GalaxyButtonLoadingIndicatorModule","ButtonLoadingIndicatorComponent","MatProgressSpinnerModule","VaFilterModule","GalaxyInfiniteScrollTriggerModule","ReactiveFormsModule","FormGroupDirective","FormControlName","GalaxyTooltipModule","GalaxyAlertModule","GalaxyDatepickerModule","MatDatepickerModule","MatDatepicker","styles","_StartCampaignDialogComponent","ɵɵelementStart","ɵɵlistener","campaign_r2","ɵɵrestoreView","_r1","$implicit","ctx_r2","ɵɵnextContext","ɵɵresetView","onItemChange","ɵɵtext","ɵɵelementEnd","ɵɵadvance","ɵɵproperty","id","ɵɵtextInterpolate1","title","ɵɵtextInterpolate2","ɵɵpipeBind1","ɵɵpipeBind2","updated","ɵɵtextInterpolate","AddCampaignDialogComponent","init_add_campaign_dialog_component","__esmMin","init_common","init_forms","init_button","init_dialog","init_icon","init_input","init_progress_spinner","init_radio","init_field_service","init_tokens_and_interfaces","init_ngx_translate_core","init_alert","init_vendasta_campaigns","init_src","init_button_loading_indicator","init_empty_state","init_form_field","init_infinite_scroll_trigger","init_loading_spinner","init_tooltip","init_esm","init_operators","init_start_campaign_dialog_component","init_expansion","constructor","translate","objectService","config","ref","campaignService","dialog","modalData","searchControl","UntypedFormControl","campaigns$$","BehaviorSubject","campaigns$","asObservable","criteria$","valueChanges","pipe","startWith","distinctUntilChanged","debounceTime","loading$$","placeholder","crmObject$","getMultiObject","map","resp","object","crmObjects","length","ngOnInit","combineLatest","namespace$","parentNamespace$","take","subscribe","namespace","parentNamespace","senderType","SenderType","SENDER_TYPE_PARTNER","SENDER_TYPE_BUSINESS","scrollable","getScrollableList","items$","instant","close","loadNext","loadMore","campaign","selectedCampaign","senderId","Scrollable","criteria","cursor","next","listCampaignsV2","type","Statuses","STATUSES_ACTIVE","STATUSES_PUBLISHED","pageSize","field","SortField","SORT_FIELDS_UPDATED_AT","direction","SortDirection","SORT_ORDER_DESCENDING","response","items","campaigns","campaignId","name","toISOString","metadata","nextCursor","hasMore","catchError","of","openStartCampaignDialog","open","StartCampaignDialogComponent","data","width","ɵɵdirectiveInject","TranslateService","CrmObjectService","CrmInjectionToken","MatDialogRef","CampaignService","MatDialog","MAT_DIALOG_DATA","selectors","standalone","features","ɵɵProvidersFeature","RecipientCampaignService","CrmFieldService","provide","PageAnalyticsInjectionToken","useFactory","pageAnalyticsInjectionTokenGenerator","ɵɵStandaloneFeature","decls","vars","consts","template","rf","ctx","ɵɵelementContainerStart","ɵɵelement","ɵɵtemplate","AddCampaignDialogComponent_div_11_Template","AddCampaignDialogComponent_glxy_empty_state_13_Template","ɵɵpropertyInterpolate","tmp_5_0","CommonModule","NgForOf","NgIf","AsyncPipe","DatePipe","MatButtonModule","MatButton","TranslateModule","TranslatePipe","GalaxyLoadingSpinnerModule","MatDialogModule","MatDialogTitle","MatDialogActions","MatDialogContent","GalaxyEmptyStateModule","EmptyStateComponent","EmptyStateHeroDirective","MatIconModule","MatIcon","GalaxyFormFieldModule","FormFieldComponent","ExtendedDirective","MatRadioModule","MatRadioGroup","MatRadioButton","FormsModule","DefaultValueAccessor","NgControlStatus","VaFormsModule","MatInputModule","MatInput","GalaxyButtonLoadingIndicatorModule","ButtonLoadingIndicatorComponent","MatProgressSpinnerModule","VaFilterModule","GalaxyInfiniteScrollTriggerModule","InfiniteScrollTriggerComponent","ReactiveFormsModule","FormControlDirective","GalaxyTooltipModule","GalaxyAlertModule","MatExpansionModule","styles","_AddCampaignDialogComponent","ɵɵelement","ɵɵproperty","ɵɵelementStart","ɵɵelementEnd","ɵɵtext","ɵɵadvance","ɵɵpipeBind2","ctx_r0","objectType","ɵɵtextInterpolate1","ɵɵtextInterpolate","ɵɵelementContainerStart","ɵɵtemplate","SelectObjectTypeModalComponent_glxy_table_container_7_th_10_ng_container_1_Template","data","singleSelection","row_r3","preSelectedLockedRow","newSelection","ɵɵlistener","$event","ɵɵrestoreView","_r2","ɵɵnextContext","ɵɵresetView","selectionChanged","updateFilters","SelectObjectTypeModalComponent_glxy_table_container_7_tr_8_Template","SelectObjectTypeModalComponent_glxy_table_container_7_th_10_Template","SelectObjectTypeModalComponent_glxy_table_container_7_td_11_Template","SelectObjectTypeModalComponent_glxy_table_container_7_tr_12_Template","ɵɵpipeBind1","columns$","dataSource","pageSizeOptions","pageSize","isMobile$","tmp_15_0","showFiltersApplied$","undefined","ɵɵpureFunction0","_c0","_r6","createContactModal","SelectObjectTypeModalComponent_ng_container_10_ng_template_8_div_0_Template","selectedRows","length","selectMultiple_r7","ɵɵpipeBind3","ɵɵpureFunction1","_c1","SelectObjectTypeModalComponent_ng_container_10_button_2_Template","_r5","cancel","saveCompanies","SelectObjectTypeModalComponent_ng_container_10_ng_container_7_Template","SelectObjectTypeModalComponent_ng_container_10_ng_template_8_Template","ɵɵtemplateRefExtractor","SelectObjectTypeModalComponent_ng_container_10_ng_template_10_Template","hideCreateButton","selectedRecipients_r8","_r10","selectContacts","SelectObjectTypeModalComponent_ng_container_11_ng_container_4_ng_container_2_Template","selectedRecipients_r11","_r12","save","SelectObjectTypeModalComponent_ng_container_11_ng_template_5_ng_container_1_Template","_r9","SelectObjectTypeModalComponent_ng_container_11_ng_container_4_Template","SelectObjectTypeModalComponent_ng_container_11_ng_template_5_Template","hasAssociations","saveAction_r13","SelectObjectTypeModalComponent_ng_template_12_div_0_Template","selectMultiple_r14","SelectObjectTypeModalComponent","init_select_object_type_modal_component","__esmMin","init_layout","init_common","init_button","init_dialog","init_table","init_state","init_empty_state","init_chips","init_loading_spinner","init_operators","init_constants","init_translation_module","init_list_objects_table_service","init_translate_by_object_type_pipe","constructor","service","dialogRef","snackService","translateService","breakpointObserver","translateByObjectTypeService","initialLoading$","showObjects$","showEmptyState$","filtersApplied$","newSelectedRow","id","enablePreselectedRows","enableMultiplePreSelectedRows","preSelectedRows","newSelectionIDs","map","shouldOpenSelectModal","LIST_OBJECTS_PAGE_SIZE_OPTIONS","LIST_OBJECTS_DEFAULT_PAGE_SIZE","associations","association","associatedObject","crmObjectId","setObjectType","setShowActions","setBaseColumns","baseColumnIds","observe","Breakpoints","XSmall","pipe","startWith","matches","breakpoints","breakpoint","filters","setFilters","rows","filteredData","filter","some","item","close","translatedString","getTranslationByObjectType","openWithOptions","instant","duration","SNACKBAR_DURATION","clickedCreate","ɵɵdirectiveInject","MAT_DIALOG_DATA","ListObjectsTableService","MatDialogRef","SnackbarService","TranslateService","BreakpointObserver","TranslateByObjectTypeService","selectors","standalone","features","ɵɵProvidersFeature","RxState","ɵɵStandaloneFeature","decls","vars","consts","template","rf","ctx","SelectObjectTypeModalComponent_glxy_loading_spinner_3_Template","SelectObjectTypeModalComponent_glxy_empty_state_5_Template","SelectObjectTypeModalComponent_glxy_table_container_7_Template","SelectObjectTypeModalComponent_ng_container_10_Template","SelectObjectTypeModalComponent_ng_container_11_Template","SelectObjectTypeModalComponent_ng_template_12_Template","SelectObjectTypeModalComponent_ng_template_14_Template","modalTitle","CommonModule","NgIf","AsyncPipe","MatButtonModule","MatButton","TranslationModule","TranslatePipe","MatDialogModule","MatDialogTitle","MatDialogActions","MatDialogContent","GalaxyLoadingSpinnerModule","LoadingSpinnerComponent","GalaxyEmptyStateModule","EmptyStateComponent","EmptyStateHeroDirective","EmptyStateTitleDirective","GalaxyTableModule","TableContainerComponent","TableContentHeaderComponent","GalaxySelectionComponent","MatTableModule","MatTable","MatHeaderCellDef","MatHeaderRowDef","MatColumnDef","MatCellDef","MatRowDef","MatHeaderCell","MatCell","MatHeaderRow","MatRow","GalaxyFilterChipsModule","GalaxyFilterChipsComponent","TranslateByObjectTypePipe","styles","_SelectObjectTypeModalComponent","RemoveAssociationDialogComponent","init_remove_association_dialog_component","__esmMin","init_common","init_button","init_dialog","init_ngx_translate_core","constructor","dialogRef","data","crmAssociationService","snackService","remove","removeAssociation","associationID","subscribe","next","openSuccessSnack","duration","SNACKBAR_DURATION","close","error","openErrorSnack","cancel","ɵɵdirectiveInject","MatDialogRef","MAT_DIALOG_DATA","CrmAssociationService","SnackbarService","selectors","standalone","features","ɵɵStandaloneFeature","decls","vars","consts","template","rf","ctx","ɵɵelementStart","ɵɵtext","ɵɵelementEnd","ɵɵlistener","ɵɵadvance","ɵɵtextInterpolate1","ɵɵpipeBind1","ɵɵpipeBind2","ɵɵpureFunction2","_c0","fromName","removeName","CommonModule","TranslateModule","TranslatePipe","MatDialogModule","MatDialogTitle","MatDialogActions","MatDialogContent","MatButtonModule","MatButton","styles","_RemoveAssociationDialogComponent","ɵɵelementContainerStart","ɵɵelementStart","ɵɵlistener","parent_r3","ɵɵrestoreView","_r2","ngIf","ctx_r3","ɵɵnextContext","ɵɵresetView","removeParentAssociation","ɵɵelementEnd","ɵɵadvance","ɵɵproperty","_r5","openSetParentModal","ɵɵtext","ɵɵtextInterpolate1","ɵɵpipeBind1","_r6","child_r7","$implicit","removeChildAssociation","ɵɵtemplate","ParentChildCompanyAssociationsCardComponent_ng_container_15_crm_association_card_1_Template","businessName","ParentChildCompanyAssociationsCardComponent","init_parent_child_company_associations_card_component","__esmMin","init_common","init_core","init_button","init_dialog","init_expansion","init_icon","init_menu","init_tooltip","init_alert","init_chips","init_esm","init_operators","init_field_service","init_translation_module","init_association_card_component","init_select_object_type_modal_component","init_remove_association_dialog_component","init_card","init_default_association_actions_service","init_tokens_and_interfaces","init_constants","constructor","config","objectService","fieldService","associationService","dialog","translateService","companyCustomizationService","crmAssociationService","snackService","defaultAssociationActionsService","data","inject","COMPANY_PROFILE_CARD_DATA_TOKEN","loadAssociations$$","BehaviorSubject","preSelectedRows$$","canOpenModal","removedAssociationIds$$","removedParentAssociationIds$$","setParentAssociation$$","undefined","newCompany$$","changedAssociations$$","injector","Injector","setCrmObjectIdToAssociate","company_id","fullName$","getMultiObject","pipe","map","resp","object","crmObjects","length","getRowFullName","getAssociations$","getChildCompanyAssociationsForCompany$","latestCompanies$","switchMap","combineLatest","routePrefix$","tap","next","associations","routePrefix","copyCrmObject","changed","fullName","associatedObjects","association","associationId","associationType","tags","associatedObject","combinedData","existingAssociationsCombined","combineAssociationsWithChanges","filter","index","array","findIndex","a","parentCompanyName","getFieldValueFromCrmObject","StandardIds","CompanyName","stringValue","businessWebsite","CompanyWebsite","type","tag","id","crmObjectId","profileButtonUrl","PAGE_ROUTES","COMPANY","ROOT","SUBROUTES","PROFILE","replace","childCompanies$","asObservable","companies","removed","company","includes","latestParentCompany$","getParentCompanyAssociationsForCompany$","parentCompany$","parentCompany","setParentAssociation","splice","childCompanyName","modalData$","objectIdAndName","newContact","modalTitle","primarySelect","description","selectedRows","selectedCompanyNames","fromId","copyCrmObjects","newSelection","openAddChildModal","take","open","SelectObjectTypeModalComponent","baseColumnIds","objectType","instant","companyName","hideCreateButton","create","providers","provide","PageAnalyticsInjectionToken","useFactory","pageAnalyticsInjectionTokenGenerator","GalaxyFilterChipInjectionToken","tableFiltersInjectionTokenGenerator","parent","afterClosed","modalResponse","clickedCreate","Array","selectedIDs","row","objects","name","selectedObjects","updatedObjects","setCopyCrmObjects","mergeMap","createAssociation$","subscribe","respCount","error","openSuccessSnack","duration","SNACKBAR_DURATION","interpolateTranslateParams","createdCount","totalCount","copyCrmObjectsUpdated","singleSelection","cardData","RemoveAssociationDialogComponent","width","associationID","fromName","removeName","success","removeAssociation","value","getValue","ɵɵdirectiveInject","CrmInjectionToken","CrmObjectService","CrmFieldService","CrmAssociationService","MatDialog","TranslateService","CompanyTableCustomizationService","SnackbarService","DefaultAssociationActionsService","selectors","standalone","features","ɵɵProvidersFeature","ɵɵStandaloneFeature","decls","vars","consts","template","rf","ctx","ParentChildCompanyAssociationsCardComponent_ng_container_8_Template","ParentChildCompanyAssociationsCardComponent_ng_template_10_Template","ɵɵtemplateRefExtractor","ParentChildCompanyAssociationsCardComponent_ng_container_15_Template","i0","_r1","ɵɵtextInterpolate","setParentButton_r8","CommonModule","NgForOf","NgIf","AsyncPipe","TranslationModule","TranslatePipe","MatExpansionModule","MatExpansionPanel","MatExpansionPanelHeader","MatExpansionPanelTitle","AssociationCardComponent","GalaxyAlertModule","MatIconModule","MatIcon","MatButtonModule","MatButton","MatTooltipModule","MatMenuModule","MatDialogModule","MatCardModule","styles","_ParentChildCompanyAssociationsCardComponent","ɵɵelementContainerStart","ɵɵelementStart","ɵɵtext","ɵɵelementEnd","ɵɵlistener","i_r2","ɵɵrestoreView","_r1","index","ctx_r2","ɵɵnextContext","ɵɵresetView","setPrimaryAssociation","$event","tagsChanged","ɵɵadvance","ɵɵtextInterpolate","association_r4","tmp_3_0","get","value","ɵɵproperty","tmp_4_0","tmp_5_0","ɵɵtextInterpolate1","data","primarySelect","description","tmp_8_0","undefined","ɵɵpureFunction0","_c0","associationType","SelectAssociationsModalComponent","init_select_associations_modal_component","__esmMin","init_common","init_forms","init_button","init_dialog","init_radio","init_form_field","init_esm","init_constants","init_translation_module","init_edit_association_tags_component","init_shared_services","constructor","dialogRef","dialog","crmAssociationService","fb","destroy$","Subject","associationsFormGroup","group","associations","array","ngOnInit","selectedRows","forEach","row","association","id","FormControl","tags","name","isPrimary","associationFormArray","push","valueChanges","pipe","takeUntil","subscribe","includes","PRIMARY_TAG","updatedTags","filter","tag","setValue","emitEvent","ngOnDestroy","next","complete","associationTags","tagsMap","Map","controls","control","tagsArray","length","set","primaryAssociation","find","cancel","close","save","createContactCompanyAssociation$","take","copyCrmObjects","selectedIndex","ɵɵdirectiveInject","MAT_DIALOG_DATA","MatDialogRef","MatDialog","CrmAssociationService","FormBuilder","selectors","standalone","features","ɵɵProvidersFeature","provide","CompanyTableCustomizationService","ɵɵStandaloneFeature","decls","vars","consts","template","rf","ctx","ɵɵtemplate","SelectAssociationsModalComponent_ng_container_5_Template","modalTitle","ɵɵpipeBind1","CommonModule","NgForOf","TranslationModule","TranslatePipe","MatDialogModule","MatDialogTitle","MatDialogActions","MatDialogContent","MatButtonModule","MatButton","GalaxyFormFieldModule","FormFieldComponent","LabelDirective","ExtendedDirective","MatRadioModule","MatRadioGroup","MatRadioButton","ReactiveFormsModule","EditAssociationTagsComponent","styles","_SelectAssociationsModalComponent","ContactCardStateService","init_contact_info_on_hover_directive","__esmMin","constructor","currentPopover","factory","ɵfac","providedIn","_ContactCardStateService","ɵɵelementStart","ɵɵtext","ɵɵelementEnd","ɵɵadvance","ɵɵtextInterpolate1","ctx_r0","cardData","userName","email","businessName","ɵɵproperty","businessWebsite","ɵɵsanitizeUrl","ɵɵtextInterpolate","ɵɵlistener","ɵɵrestoreView","_r2","ɵɵnextContext","ɵɵresetView","copyClicked","id","ɵɵclassProp","isCopied","fullBusinessAddress","ɵɵelementContainer","ɵɵelementContainerStart","ɵɵtemplate","ContactInfoCardComponent_ng_container_12_ng_container_1_Template","actionsRef","_r3","handleProfileButtonClick","tmp_5_0","profileButtonLabel","undefined","phoneMenu_r4","phone","ɵɵpropertyInterpolate1","tmp_8_0","emailMenu_r5","ContactInfoCardComponent_ng_template_13_ng_container_0_ng_container_1_Template","ContactInfoCardComponent_ng_template_13_ng_container_0_ng_container_2_Template","ContactInfoCardComponent_ng_template_13_ng_container_0_ng_container_3_Template","profileButtonUrl","profileButtonAction","ContactInfoCardComponent_ng_template_13_ng_container_0_Template","ɵɵprojection","showDefaultActions","ContactInfoCardComponent","init_contact_info_card_component","__esmMin","init_overlay","init_common","init_core","init_router","init_clipboard","init_menu","init_tooltip","init_button","init_icon","init_card","init_avatar","init_contact_info_on_hover_directive","constructor","class","cardIsPopover","router","inject","Router","cardType","popoverIsHovered","stateService","ContactCardStateService","ngOnInit","generateAddressString","onMouseEnter","onMouseLeave","profileButtonUrlUseRouterLink","Array","isArray","navigate","businessAddress","addy","address1","address2","city","state","country","zip","trim","endsWith","slice","window","setTimeout","selectors","hostVars","hostBindings","rf","ctx","ɵɵclassMap","ɵɵelement","ContactInfoCardComponent_mat_card_title_3_Template","ContactInfoCardComponent_mat_card_subtitle_4_Template","ContactInfoCardComponent_mat_card_title_5_Template","ContactInfoCardComponent_mat_card_subtitle_6_Template","ContactInfoCardComponent_div_8_Template","ContactInfoCardComponent_div_9_Template","ContactInfoCardComponent_div_10_Template","ContactInfoCardComponent_ng_container_12_Template","ContactInfoCardComponent_ng_template_13_Template","ɵɵtemplateRefExtractor","avatar","type","defaultActions_r6","CommonModule","NgIf","NgTemplateOutlet","RouterModule","OverlayModule","GalaxyAvatarModule","AvatarComponent","MatButtonModule","MatAnchor","MatIconButton","MatIconModule","MatIcon","MatTooltipModule","MatMenuModule","MatMenu","MatMenuItem","MatMenuTrigger","MatCardModule","MatCard","MatCardActions","MatCardAvatar","MatCardContent","MatCardHeader","MatCardSubtitle","MatCardTitle","ClipboardModule","CdkCopyToClipboard","GalaxyTooltipModule","GalaxyTooltipDirective","styles","changeDetection","_ContactInfoCardComponent","GalaxyContactInfoCardModule","init_contact_info_card_module","__esmMin","init_common","init_contact_info_card_component","CommonModule","ContactInfoCardComponent","_GalaxyContactInfoCardModule","init_public_api","__esmMin","init_contact_info_card_module","init_contact_info_card","__esmMin","init_public_api","FieldValidation","init_field_validation","__esmMin","constructor","errorCodeMap","addValidationError","codeMapEntries","__spreadValues","getAsyncValidators","asyncValidators","errorValue","Object","values","asyncValidationFn","severity","push","getValidators","validators","validationFn","getWarningValidators","InlineEditService","init_inline_edit_service","__esmMin","init_core","init_rxjs_interop","init_esm","constructor","crmFormService","snackService","trackingService","translateByObjectTypeService","crmObjectId","isInlineEdit","signal","isInlineEdit$","toObservable","setObjectId","objectId","setInlineEdit","inlineEdit","set","saveInlineEdit","objectType","value","validateAndUpdateCrmObjectField$","pipe","take","subscribe","next","updatedValue","trackEvent","translatedString","getTranslationByObjectType","openSuccessSnack","duration","SNACKBAR_DURATION","error","errorSnackbar","defaultMessage","message","openErrorSnack","ɵɵinject","CrmFormService","SnackbarService","CRMTrackingService","TranslateByObjectTypeService","factory","ɵfac","_InlineEditService","RendererSelectorComponent","init_renderer_selector_component","__esmMin","constructor","viewContainerRef","ngOnInit","handler","render","ngOnChanges","ɵɵdirectiveInject","ViewContainerRef","selectors","inputs","standalone","features","ɵɵNgOnChangesFeature","ɵɵStandaloneFeature","decls","vars","template","rf","ctx","ɵɵelementContainer","_RendererSelectorComponent","FieldWarningService","init_field_warning_service","__esmMin","init_esm","init_operators","validateWarning","control","validatorFns","results$","validatorFn","push","forkJoin","pipe","defaultIfEmpty","map","results","validationErrors","err","__spreadValues","factory","ɵfac","_FieldWarningService","uniquenessInvalidValidatorFn","uniquenessWarningValidatorFn","ValidatorFactoryService","init_validator_factory_service","__esmMin","init_esm","init_operators","validationChanges$","fieldId","pipe","take","map","validationErrors","errors","find","e","ruleId","details","uniquenessCheck","uniqueness_enforced","uniquenessErrorForField","existingCrmObjectIds","length","uniqueness_warning","constructor","formService","existingObjectId","valueChanges$","of","renderableFields","latestValidationErrors$$","BehaviorSubject","initialize","objectType","v","debounceTime","switchMap","fields","r","fieldValue","validateCrmObject$","crmObjectId","shareReplay","bufferSize","refCount","tap","next","buildUniquenessValidatorCodeMappings","severity","message","validationFn","asyncValidationFn","ɵɵinject","CrmFormService","factory","ɵfac","_ValidatorFactoryService","ɵɵelementContainerStart","ɵɵelement","ɵɵadvance","ɵɵproperty","cardInfo_r1","ɵɵelementStart","ɵɵtemplate","CrmUniquenessSuggestionCardComponent_div_0_ng_container_1_Template","CrmUniquenessSuggestionCardComponent_div_0_ng_template_3_Template","ɵɵtemplateRefExtractor","ɵɵelementEnd","ɵɵpipeBind1","ctx_r2","objectCardInfo$","loading_r2","CrmUniquenessSuggestionCardComponent","init_uniqueness_suggestion_card_component","__esmMin","init_common","init_forms","init_button","init_icon","init_ngx_translate_core","init_form_field","init_loading_spinner","init_esm","init_operators","init_tokens_and_interfaces","init_constants","init_field_service","init_association_card_component","constructor","config","validatorFactory","objectService","crmFieldService","customization","snackbar","uniquenessDetailsForField$","latestValidationErrors$$","pipe","map","validation","uniquenessDetailsFound","errors","filter","e","details","uniquenessCheck","fieldId","length","crmObject$","uniquenessDetails","existingObjectIds","existingCrmObjectIds","switchMap","objectId","getMultiObject","objectType","response","crmObjects","fields","catchError","error","console","openErrorSnack","of","crmObject","objectCardLink$","link","buildCardForContact","warn","withLatestFrom","routePrefix$","crmObjectId","routePrefix","templateLink","PAGE_ROUTES","CONTACT","ROOT","SUBROUTES","PROFILE","replace","profileButtonUrl","email","getFieldId","StandardExternalIds","Email","emailValue","find","f","stringValue","type","userName","getRowFullName","ɵɵdirectiveInject","CrmInjectionToken","ValidatorFactoryService","CrmObjectService","CrmFieldService","TableCustomizationService","SnackbarService","selectors","inputs","displayCard","standalone","features","ɵɵStandaloneFeature","decls","vars","consts","template","rf","ctx","CrmUniquenessSuggestionCardComponent_div_0_Template","CommonModule","NgIf","AsyncPipe","FormsModule","ReactiveFormsModule","TranslateModule","GalaxyFormFieldModule","GalaxyLoadingSpinnerModule","LoadingSpinnerComponent","MatButtonModule","MatIconModule","AssociationCardComponent","styles","_CrmUniquenessSuggestionCardComponent","ɵɵelementStart","ɵɵtext","ɵɵelementEnd","ɵɵadvance","ɵɵtextInterpolate1","ɵɵpipeBind3","ctx_r1","validation","errorCodeMap","errorCode_r1","message","objectType","ɵɵpureFunction1","_c0","label","toLowerCase","ɵɵelementContainerStart","ɵɵtemplate","CrmModelDrivenFormErrorComponent_ng_container_0_glxy_error_1_Template","ɵɵelement","ɵɵproperty","control","hasError","severity","fieldId","warningCode_r3","CrmModelDrivenFormErrorComponent_glxy_hint_1_span_1_Template","status","CrmModelDrivenFormErrorComponent","init_model_driven_form_error_component","__esmMin","init_common","init_forms","init_ngx_translate_core","init_form_field","init_operators","init_uniqueness_suggestion_card_component","init_translate_by_object_type_pipe","constructor","warningService","errorCodes","ngOnInit","Object","keys","warningCode$","valueChanges","pipe","switchMap","validateWarning","getWarningValidators","map","warnings","length","ɵɵdirectiveInject","FieldWarningService","selectors","inputs","standalone","features","ɵɵStandaloneFeature","decls","vars","consts","template","rf","ctx","CrmModelDrivenFormErrorComponent_ng_container_0_Template","CrmModelDrivenFormErrorComponent_glxy_hint_1_Template","ɵɵpipeBind1","CommonModule","NgForOf","NgIf","AsyncPipe","FormsModule","ReactiveFormsModule","TranslateModule","GalaxyFormFieldModule","HintDirective","ErrorDirective","TranslateByObjectTypePipe","CrmUniquenessSuggestionCardComponent","styles","_CrmModelDrivenFormErrorComponent","ɵɵelementContainerStart","ɵɵtext","ɵɵadvance","ɵɵtextInterpolate1","ctx_r0","control","value","ɵɵelementStart","ɵɵelementEnd","ɵɵtemplate","BooleanRendererComponent_div_0_ng_container_5_Template","ɵɵpipeBind1","label","ɵɵproperty","ɵɵtextInterpolate","BooleanRendererComponent_ng_template_1_glxy_label_1_Template","ɵɵlistener","ɵɵrestoreView","_r2","ɵɵnextContext","ɵɵresetView","saveField","ɵɵpipeBind2","ɵɵpureFunction1","_c0","toLowerCase","BooleanFieldHandler","BooleanRendererComponent","init_boolean","__esmMin","init_forms","init_common","init_ngx_translate_core","init_form_field","init_input","init_field_validation","init_field_warning_service","init_select","constructor","objectType","fieldId","name","description","readOnly","validation","FieldValidation","formControl","UntypedFormControl","setValidation","setValidators","getValidators","setAsyncValidators","getAsyncValidators","fieldValue","booleanValue","hasModification","dirty","render","viewContainerRef","clear","component","createComponent","instance","inlineEditService","saveInlineEdit","ɵɵdirectiveInject","InlineEditService","selectors","standalone","features","ɵɵProvidersFeature","FieldWarningService","ɵɵStandaloneFeature","decls","vars","consts","template","rf","ctx","BooleanRendererComponent_div_0_Template","BooleanRendererComponent_ng_template_1_Template","ɵɵtemplateRefExtractor","formField_r3","CommonModule","NgIf","MatInputModule","ReactiveFormsModule","NgControlStatus","FormControlDirective","TranslateModule","TranslatePipe","GalaxyFormFieldModule","FormFieldComponent","LabelDirective","MatSelectModule","MatSelect","MatOption","styles","encapsulation","_BooleanRendererComponent","stopChromeAutofill","Math","random","toString","substring","init_stop_chrome_autofill","__esmMin","ɵɵelementContainerStart","ɵɵtext","ɵɵadvance","ɵɵtextInterpolate1","ɵɵpipeBind2","ctx_r0","control","value","ɵɵelementStart","ɵɵelementEnd","ɵɵtemplate","DateRendererComponent_div_0_ng_container_5_Template","ɵɵpipeBind1","label","ɵɵproperty","ɵɵtextInterpolate","DateRendererComponent_ng_template_1_glxy_label_1_Template","ɵɵlistener","ɵɵrestoreView","_r2","ɵɵnextContext","ɵɵresetView","saveField","ɵɵelement","ɵɵpropertyInterpolate","disableAutoComplete","datepicker_r3","ɵɵpureFunction1","_c0","toLowerCase","objectType","fieldId","validation","DateFieldHandler","DateRendererComponent","init_date","__esmMin","init_common","init_forms","init_datepicker","init_core","init_ngx_translate_core","init_form_field","init_stop_chrome_autofill","init_model_driven_form_error_component","init_field_validation","init_field_warning_service","init_locale","init_material_date_fns_adapter","constructor","name","description","readOnly","FieldValidation","formControl","UntypedFormControl","setValidation","setValidators","getValidators","setAsyncValidators","getAsyncValidators","render","viewContainerRef","clear","component","createComponent","instance","hasModification","dirty","fieldValue","dateValue","inlineEditService","stopChromeAutofill","saveInlineEdit","ɵɵdirectiveInject","InlineEditService","selectors","standalone","features","ɵɵProvidersFeature","provide","MAT_DATE_LOCALE","useValue","getLocale","DateAdapter","useClass","DateFnsAdapter","MAT_DATE_FORMATS","MAT_DATE_FNS_FORMATS","FieldWarningService","ɵɵStandaloneFeature","decls","vars","consts","template","rf","ctx","DateRendererComponent_div_0_Template","DateRendererComponent_ng_template_1_Template","ɵɵtemplateRefExtractor","formField_r4","CommonModule","NgIf","DatePipe","ReactiveFormsModule","DefaultValueAccessor","NgControlStatus","FormControlDirective","MatDatepickerModule","MatDatepicker","MatDatepickerInput","MatDatepickerToggle","TranslateModule","TranslatePipe","GalaxyFormFieldModule","FormFieldComponent","LabelDirective","CrmModelDrivenFormErrorComponent","styles","encapsulation","_DateRendererComponent","expr","emailRegex","emailValidatorFn","emailValidatorCodeMapping","init_email_validator","__esmMin","RegExp","control","value","exec","invalid_email","severity","message","validationFn","asyncValidationFn","ɵɵelementContainerStart","ɵɵtext","ɵɵadvance","ɵɵtextInterpolate1","ctx_r0","control","value","ɵɵelementStart","ɵɵelementEnd","ɵɵtemplate","IntegerRendererComponent_div_0_ng_container_5_Template","ɵɵpipeBind1","label","ɵɵproperty","ɵɵtextInterpolate","IntegerRendererComponent_ng_template_1_glxy_label_1_Template","ɵɵlistener","ɵɵrestoreView","_r2","ɵɵnextContext","ɵɵresetView","saveField","ɵɵelement","ɵɵpropertyInterpolate","disableAutoComplete","ɵɵpipeBind2","ɵɵpureFunction1","_c0","toLowerCase","objectType","fieldId","validation","IntegerFieldHandler","IntegerRendererComponent","init_integer","__esmMin","init_common","init_forms","init_input","init_ngx_translate_core","init_uiowa_digit_only","init_form_field","init_stop_chrome_autofill","init_model_driven_form_error_component","init_field_validation","init_field_warning_service","constructor","name","description","readOnly","FieldValidation","formControl","UntypedFormControl","setValidation","setValidators","getValidators","setAsyncValidators","getAsyncValidators","render","viewContainerRef","clear","component","createComponent","instance","hasModification","dirty","fieldValue","integerValue","inlineEditService","stopChromeAutofill","saveInlineEdit","ɵɵdirectiveInject","InlineEditService","selectors","standalone","features","ɵɵProvidersFeature","FieldWarningService","ɵɵStandaloneFeature","decls","vars","consts","template","rf","ctx","IntegerRendererComponent_div_0_Template","IntegerRendererComponent_ng_template_1_Template","ɵɵtemplateRefExtractor","formField_r3","CommonModule","NgIf","MatInputModule","MatInput","ReactiveFormsModule","DefaultValueAccessor","NumberValueAccessor","NgControlStatus","PatternValidator","FormControlDirective","DigitOnlyModule","DigitOnlyDirective","TranslateModule","TranslatePipe","GalaxyFormFieldModule","FormFieldComponent","LabelDirective","CrmModelDrivenFormErrorComponent","styles","encapsulation","_IntegerRendererComponent","ɵɵelementContainerStart","ɵɵtext","ɵɵadvance","ɵɵtextInterpolate1","ctx_r0","control","value","ɵɵelementStart","ɵɵelementEnd","ɵɵtemplate","FloatRendererComponent_div_0_ng_container_5_Template","ɵɵtextInterpolate","ɵɵpipeBind1","label","ɵɵproperty","FloatRendererComponent_ng_template_1_glxy_label_1_Template","ɵɵlistener","ɵɵrestoreView","_r2","ɵɵnextContext","ɵɵresetView","saveField","ɵɵelement","ɵɵpropertyInterpolate","disableAutoComplete","ɵɵpipeBind2","ɵɵpureFunction1","_c0","toLowerCase","objectType","fieldId","validation","FloatRendererComponent","init_float","__esmMin","init_common","init_input","init_forms","init_uiowa_digit_only","init_ngx_translate_core","init_form_field","init_model_driven_form_error_component","init_field_warning_service","init_stop_chrome_autofill","constructor","inlineEditService","stopChromeAutofill","saveInlineEdit","floatValue","ɵɵdirectiveInject","InlineEditService","selectors","standalone","features","ɵɵProvidersFeature","FieldWarningService","ɵɵStandaloneFeature","decls","vars","consts","template","rf","ctx","FloatRendererComponent_div_0_Template","FloatRendererComponent_ng_template_1_Template","ɵɵtemplateRefExtractor","readOnly","formField_r3","CommonModule","NgIf","MatInputModule","MatInput","ReactiveFormsModule","DefaultValueAccessor","NumberValueAccessor","NgControlStatus","FormControlDirective","DigitOnlyModule","DigitOnlyDirective","TranslateModule","TranslatePipe","GalaxyFormFieldModule","FormFieldComponent","LabelDirective","CrmModelDrivenFormErrorComponent","styles","encapsulation","_FloatRendererComponent","FloatFieldHandler","init_float_field_handler","__esmMin","init_forms","init_field_validation","init_float","constructor","objectType","fieldId","name","label","value","description","readOnly","validation","FieldValidation","formControl","FormControl","setValidation","setValidators","getValidators","setAsyncValidators","getAsyncValidators","render","viewContainerRef","clear","component","createComponent","FloatRendererComponent","instance","control","hasModification","dirty","fieldValue","floatValue","MatSelectSearchComponent_mat_checkbox_4_Template","rf","ctx","_r2","ɵɵgetCurrentView","ɵɵelementStart","ɵɵlistener","$event","ɵɵrestoreView","ctx_r2","ɵɵnextContext","ɵɵresetView","ɵɵelementEnd","ɵɵproperty","MatSelectSearchComponent_mat_spinner_7_Template","ɵɵelement","MatSelectSearchComponent_button_8_ng_content_1_Template","ɵɵprojection","MatSelectSearchComponent_button_8_ng_template_2_Template","ɵɵtext","ɵɵadvance","ɵɵtextInterpolate1","MatSelectSearchComponent_button_8_Template","_r4","ɵɵtemplate","ɵɵtemplateRefExtractor","defaultIcon_r5","ɵɵreference","MatSelectSearchComponent_div_11_ng_content_1_Template","MatSelectSearchComponent_div_11_ng_template_2_Template","ɵɵtextInterpolate","MatSelectSearchComponent_div_11_Template","defaultNoEntriesFound_r6","_c0","_c1","_c2","_c3","_c4","MatSelectSearchClearDirective","configurableDefaultOptions","MAT_SELECTSEARCH_DEFAULT_OPTIONS","MatSelectNoEntriesFoundDirective","MatSelectSearchComponent","NgxMatSelectSearchModule","init_ngx_mat_select_search","__esmMin","init_core","init_forms","init_form_field","init_select","init_esm","init_operators","init_scrolling","init_common","init_button","init_checkbox","init_icon","init_progress_spinner","init_tooltip","init_divider","a0","a1","ɵɵdefineDirective","InjectionToken","matSelect","changeDetectorRef","_viewportRuler","matOption","matFormField","defaultOptions","EventEmitter","_","BehaviorSubject","switchMap","_options","map","options","startWith","of","FormControl","combineLatest","value","optionsLength","Subject","key","delay","takeUntil","opened","take","previousFirstOption","tap","currentFirstOption","keyManager","option","showNoEntriesFound","state","event","ariaActiveDescendantId","index","item","fn","filter","panel","scrollTop","focus","values","restoreSelectedValues","optionValues","previousValue","v","element","panelElement","ɵɵdirectiveInject","MatSelect","ChangeDetectorRef","ViewportRuler","MatOption","MatFormField","ɵɵdefineComponent","dirIndex","ɵɵcontentQuery","_t","ɵɵqueryRefresh","ɵɵloadQuery","ɵɵviewQuery","ElementRef","ɵɵProvidersFeature","NG_VALUE_ACCESSOR","forwardRef","_r1","ɵɵprojectionDef","ɵɵpipe","ɵɵpureFunction2","ɵɵattribute","ɵɵpipeBind1","NgClass","NgIf","DefaultValueAccessor","NgControlStatus","FormControlDirective","MatIconButton","MatCheckbox","MatIcon","MatProgressSpinner","MatTooltip","MatDivider","AsyncPipe","ɵɵdefineNgModule","ɵɵdefineInjector","CommonModule","ReactiveFormsModule","MatButtonModule","MatCheckboxModule","MatIconModule","MatProgressSpinnerModule","MatTooltipModule","MatDividerModule","CrmFieldWarningDirective","init_field_warning_directive","__esmMin","init_esm","init_operators","hasWarningsClass","hasWarnings","constructor","formFieldComponent","warningService","cd","destroyed$$","Subject","ngAfterViewInit","combineLatest","warningControl","valueChanges","statusChanges","pipe","takeUntil","switchMap","of","validateWarning","fieldValidation","getWarningValidators","tap","warnings","Object","keys","length","prefixIcon","markForCheck","subscribe","ngOnDestroy","next","unsubscribe","ɵɵdirectiveInject","FormFieldComponent","FieldWarningService","ChangeDetectorRef","selectors","hostVars","hostBindings","rf","ctx","ɵɵclassProp","_CrmFieldWarningDirective","CrmFormButtonGroupComponent","init_form_button_group_component","__esmMin","init_common","init_core","init_icon","init_ngx_translate_core","init_empty_state","init_loading_spinner","init_button_loading_indicator","init_button","init_tokens_and_interfaces","constructor","submitButtonText","cancelButtonText","clickedOnSubmit","EventEmitter","clickedOnCancel","SavingStatus","selectors","inputs","savingStatus","outputs","standalone","features","ɵɵStandaloneFeature","decls","vars","consts","template","rf","ctx","ɵɵelementStart","ɵɵlistener","emit","ɵɵtext","ɵɵelementEnd","ɵɵadvance","ɵɵproperty","SAVING","ɵɵtextInterpolate1","ɵɵpipeBind1","CommonModule","TranslateModule","TranslatePipe","GalaxyEmptyStateModule","MatIconModule","GalaxyLoadingSpinnerModule","GalaxyButtonLoadingIndicatorModule","ButtonLoadingIndicatorComponent","MatButtonModule","MatButton","styles","_CrmFormButtonGroupComponent","ɵɵelementStart","ɵɵtext","ɵɵelementEnd","ɵɵadvance","ɵɵtextInterpolate","ɵɵpipeBind1","ctx_r1","label","CrmModelDrivenPopoverComponent","init_model_driven_popover_component","__esmMin","init_common","init_core","init_forms","init_input","init_ngx_translate_core","init_form_field","init_popover","init_button","init_overlay","init_form_button_group_component","constructor","save","EventEmitter","renderedValue","openedPopover","popoverPositions","PopoverPositions","Right","Bottom","openPopover","closePopover","saveModification","control","invalid","displayValue","emit","ngOnInit","selectors","inputs","outputs","standalone","features","ɵɵProvidersFeature","ɵɵStandaloneFeature","ngContentSelectors","_c0","decls","vars","consts","template","rf","ctx","ɵɵlistener","i0","ɵɵrestoreView","_r1","ɵɵresetView","ɵɵtemplate","CrmModelDrivenPopoverComponent_glxy_label_2_Template","ɵɵtwoWayListener","$event","ɵɵtwoWayBindingSet","ɵɵprojection","ɵɵproperty","ɵɵpipeBind2","ɵɵpureFunction1","_c1","toLowerCase","popOverOrigin_r3","ɵɵtwoWayProperty","CommonModule","NgIf","MatInputModule","MatInput","ReactiveFormsModule","DefaultValueAccessor","NgControlStatus","TranslateModule","TranslatePipe","GalaxyFormFieldModule","FormFieldComponent","LabelDirective","GalaxyPopoverModule","PopoverComponent","PopoverTitleDirective","PopoverActionsDirective","MatButtonModule","OverlayModule","CdkOverlayOrigin","FormsModule","NgModel","CrmFormButtonGroupComponent","styles","encapsulation","_CrmModelDrivenPopoverComponent","UpdaterService","init_updater_service","__esmMin","init_esm","init_vendasta_crm","constructor","updatedField","BehaviorSubject","FieldValue","updateStringField","fieldId","value","next","stringValue","updateGeopointField","lat","lon","geopointValue","factory","ɵfac","providedIn","_UpdaterService","getCountryOptions","language","countries","getCountries","lang","regionNames","Intl","DisplayNames","type","map","countryCode","configureCountry","alphaToFlagAlpha","a","toUpperCase","codePointAt","String","fromCodePoint","countryFlag","slice","split","join","callingCode","getCountryCallingCode","toString","__spreadProps","__spreadValues","CountryOption","flag","countryName","of","displayValue","PHONE_COUNTRY_OPTIONS_TOKEN","countryOptionsFactoryProvider","init_country_options","__esmMin","init_ngx_translate_core","init_libphonenumber_js","init_operators","constructor","provide","useFactory","translate","onLangChange","pipe","startWith","currentLang","event","shareReplay","refCount","bufferSize","deps","TranslateService","USED_COUNTRY_CODES","CountryCodeService","init_country_code_service","__esmMin","init_esm","init_operators","init_country_options","constructor","_countryOptions$","countryOptions$$","BehaviorSubject","subscribe","countryOptions$","pipe","map","options","sortCountryOptions","getCountryOption","countryCode","getValue","find","option","countryOptions","cc","getUsedCountryCodes","sort","a","b","aUsed","includes","bUsed","bothUsed","neitherUsed","indexOf","countryName","countryCodeUsed","usedCountryCodes","push","localStorage","setItem","JSON","stringify","newOptions","next","index","splice","unshift","getItem","parse","ɵɵinject","PHONE_COUNTRY_OPTIONS_TOKEN","factory","ɵfac","providedIn","_CountryCodeService","parsePhoneNumber","formatAsReadonlyPhone","formatAsRFC3966Phone","validatePhone","validatePhoneNumber","validateBasedOnPhoneFormGroup","init_utils","__esmMin","init_libphonenumber_js","phoneValue","parseNumber","defaultCountry","parsedNumber","phone","format","country","isValidNumber","Object","keys","length","invalidPhoneNumber","control","parsedPhoneNumber","value","phoneNumber","ext","extension","phoneGroup","updateValueAndValidity","invalid","ɵɵelementContainer","ɵɵelementStart","ɵɵtext","ɵɵelementEnd","ɵɵtemplate","PhoneRendererComponent_div_0_ng_container_5_Template","ɵɵadvance","ɵɵtextInterpolate","ɵɵpipeBind1","ctx_r0","label","ɵɵproperty","crmFieldValue_r2","ɵɵlistener","ɵɵrestoreView","_r3","ɵɵnextContext","ɵɵresetView","saveField","PhoneRendererComponent_div_1_ng_container_2_Template","readonlyPhoneNumber","control","formField_r4","ɵɵelementContainerStart","PhoneRendererComponent_ng_container_3_ng_container_1_Template","ɵɵtextInterpolate1","selectedCountry_r5","flag","option_r6","countryCode","callingCode","ɵɵtextInterpolate2","countryName","ɵɵelement","PhoneRendererComponent_ng_template_5_glxy_label_1_Template","PhoneRendererComponent_ng_template_5_p_7_Template","PhoneRendererComponent_ng_template_5_ng_template_8_Template","ɵɵtemplateRefExtractor","PhoneRendererComponent_ng_template_5_mat_option_14_Template","PhoneRendererComponent_ng_template_5_glxy_error_16_Template","PhoneRendererComponent_ng_template_5_glxy_error_21_Template","PhoneRendererComponent_ng_template_5_glxy_error_25_Template","PhoneRendererComponent_ng_template_5_glxy_error_26_Template","phone","selectedCountry","invalidCountryTrigger_r7","searchCountryControl","filteredCountryOptions$","hasError","validation","selectedCountryCallingCode","objectType","fieldId","initialValue","RFC3966PhoneNumber","ɵɵsanitizeUrl","readonlyPhoneNumber_r8","PhoneRendererComponent_ng_template_7_ng_template_1_a_0_Template","PhoneRendererComponent_ng_template_7_ng_container_0_Template","PhoneRendererComponent_ng_template_7_ng_template_1_Template","invalid","phoneLink_r9","PhoneRendererComponent","init_phone","__esmMin","init_animations","init_layout","init_common","init_core","init_rxjs_interop","init_forms","init_input","init_select","init_ngx_translate_core","init_state","init_uiowa_digit_only","init_form_field","init_ngx_mat_select_search","init_esm","init_operators","init_field_warning_directive","init_field_warning_service","init_model_driven_form_error_component","init_model_driven_popover_component","init_stop_chrome_autofill","init_country_code_service","init_country_options","init_utils","constructor","countryCodeService","changeDetRef","updaterService","inlineEditService","FormControl","countryControl","phoneNumberControl","extensionControl","FormGroup","country","phoneNumber","extension","isInlineEdit$","parsedPhoneNumber","signal","computed","formatAsReadonlyPhone","formatAsRFC3966Phone","RFC3966PhoneNumber$","toObservable","destroyed$$","Subject","disableAutoComplete","stopChromeAutofill","countryOptions$","pipe","distinctUntilChanged","shareReplay","refCount","bufferSize","valueChanges","startWith","withLatestFrom","map","filterValue","countryOptions","filter","c","includes","toLowerCase","getCountryOption","autoFillState","addValidators","validatePhoneNumber","countryCodeUsed","ngOnInit","value","setupPhoneFormGroup","setupControlValuesForForm","updatedField","takeUntil","tap","data","stringValue","setTimeout","detectChanges","setPhoneValue","subscribe","ngOnDestroy","next","complete","phoneValue","startingCountry","startingPhoneNumber","startingExtension","parsePhoneNumber","ext","set","setValue","countryValue$","phoneNumberValue$","extensionValue$","combineLatest","parsedNumber","validateBasedOnPhoneFormGroup","markAsDirty","markAsPristine","saveInlineEdit","ɵɵdirectiveInject","CountryCodeService","ChangeDetectorRef","UpdaterService","InlineEditService","selectors","standalone","features","ɵɵProvidersFeature","RxState","countryOptionsFactoryProvider","provide","MAT_SELECT_CONFIG","useValue","overlayPanelClass","FieldWarningService","ɵɵStandaloneFeature","decls","vars","consts","template","rf","ctx","PhoneRendererComponent_div_0_Template","PhoneRendererComponent_div_1_Template","PhoneRendererComponent_ng_container_3_Template","PhoneRendererComponent_ng_template_5_Template","PhoneRendererComponent_ng_template_7_Template","readOnly","CommonModule","NgForOf","NgIf","NgTemplateOutlet","AsyncPipe","MatInputModule","MatInput","MatPrefix","ReactiveFormsModule","DefaultValueAccessor","NgControlStatus","NgControlStatusGroup","FormControlDirective","FormGroupDirective","FormControlName","TranslateModule","TranslatePipe","GalaxyFormFieldModule","FormFieldComponent","FormRowComponent","LabelDirective","ErrorDirective","LayoutModule","DigitOnlyModule","DigitOnlyDirective","MatSelectModule","MatSelect","MatSelectTrigger","MatOption","NgxMatSelectSearchModule","MatSelectSearchComponent","CrmModelDrivenFormErrorComponent","CrmFieldWarningDirective","CrmModelDrivenPopoverComponent","styles","encapsulation","animation","trigger","state","style","backgroundColor","transition","animate","_PhoneRendererComponent","PhoneFieldHandler","init_phone_field_handler","__esmMin","init_forms","init_phone","init_field_validation","constructor","objectType","fieldId","name","label","value","description","readOnly","validation","FieldValidation","formControl","UntypedFormControl","setValidation","setValidators","getValidators","setAsyncValidators","getAsyncValidators","hasModification","dirty","fieldValue","stringValue","render","viewContainerRef","clear","component","createComponent","PhoneRendererComponent","instance","control","ɵɵelementStart","ɵɵtext","ɵɵelementEnd","ɵɵadvance","ɵɵtextInterpolate","tag_r1","ɵɵtemplate","TagsRendererComponent_div_0_mat_chip_listbox_5_mat_chip_1_Template","ɵɵproperty","ctx_r1","control","value","TagsRendererComponent_div_0_mat_chip_listbox_5_Template","ɵɵpipeBind1","label","ɵɵlistener","ɵɵrestoreView","_r4","tagIndex_r5","ɵɵnextContext","index","removeTag","ɵɵresetView","saveField","ɵɵtextInterpolate1","tag_r6","ɵɵelementContainerStart","TagsRendererComponent_ng_template_1_ng_container_4_mat_chip_row_1_Template","TagsRendererComponent_ng_template_1_ng_container_4_ng_template_2_Template","ɵɵtemplateRefExtractor","readOnly","readonlyTags_r7","ɵɵpipeBind2","ɵɵpureFunction1","_c1","newTagControl","length","maximumTagsError","_c2","$event","i0","_r8","preventDefault","tag_r9","TagsRendererComponent_ng_template_1_glxy_label_1_Template","TagsRendererComponent_ng_template_1_ng_container_4_Template","_r3","addNewTag","isInputActive","initializeField","TagsRendererComponent_ng_template_1_glxy_error_8_Template","TagsRendererComponent_ng_template_1_glxy_error_9_Template","selectExistingTag","TagsRendererComponent_ng_template_1_mat_option_12_Template","ɵɵelement","ɵɵpropertyInterpolate","maxTagLength","maxTags","addTagPrompt","auto_r11","tagChips_r10","separatorKeysCodes","availableTags$","objectType","fieldId","validation","TagsFieldHandler","TagsRendererComponent","init_tags","__esmMin","init_common","init_forms","init_autocomplete","init_chips","init_icon","init_input","init_ngx_translate_core","init_state","init_badge","init_form_field","init_tooltip","init_esm","init_operators","init_field_validation","init_field_warning_service","init_model_driven_form_error_component","init_tokens_and_interfaces","constructor","name","description","FieldValidation","formControl","FormControl","nonNullable","setValue","setValidation","setValidators","getValidators","setAsyncValidators","getAsyncValidators","hasModification","dirty","fieldValue","stringValues","values","render","viewContainerRef","clear","component","createComponent","instance","getTagOptions","fieldOptionsDependencies","state","inlineEditService","ENTER","COMMA","initialized$","BehaviorSubject","zeros","existingTags","addedTags","availableTags","set","select","pipe","distinctUntilChanged","tagControlChanges$","valueChanges","startWith","existingTags$","combineLatest","skipWhile","initialized","map","search","trim","debounceTime","SEARCH_DEBOUNCE_MS","switchMap","getFieldOptions","tags","sort","connect","addedTags$","a","b","JSON","stringify","usedTags","existing","filter","t","includes","addTag","tag","touchControls","markAsDirty","markAsTouched","updateValueAndValidity","event","chipInput","tagIndex","splice","tagInput","nativeElement","option","viewValue","next","saveInlineEdit","ɵɵdirectiveInject","FieldOptionsInjectionToken","RxState","InlineEditService","selectors","viewQuery","rf","ctx","FieldWarningService","ɵɵStandaloneFeature","decls","vars","consts","template","TagsRendererComponent_div_0_Template","TagsRendererComponent_ng_template_1_Template","formField_r12","CommonModule","NgForOf","NgIf","AsyncPipe","MatAutocompleteModule","MatAutocomplete","MatOption","MatAutocompleteTrigger","MatChipsModule","MatChip","MatChipGrid","MatChipInput","MatChipListbox","MatChipRemove","MatChipRow","MatIconModule","MatIcon","MatInputModule","ReactiveFormsModule","DefaultValueAccessor","NgControlStatus","MaxLengthValidator","FormControlDirective","TranslateModule","TranslatePipe","GalaxyBadgeModule","BadgeComponent","GalaxyFormFieldModule","FormFieldComponent","LabelDirective","ErrorDirective","GalaxyTooltipModule","GalaxyTooltipDirective","CrmModelDrivenFormErrorComponent","styles","encapsulation","_TagsRendererComponent","invalidTimingValue","exp","RuntimeError","negativeStepValue","negativeDelayValue","invalidStyleParams","varName","invalidParamValue","invalidNodeType","nodeType","invalidCssUnitValue","userProvidedProperty","value","invalidTrigger","invalidDefinition","invalidState","metadataName","missingSubs","invalidStyleValue","invalidParallelAnimation","prop","firstStart","firstEnd","secondStart","secondEnd","invalidKeyframes","invalidOffset","keyframeOffsetsOutOfOrder","keyframesMissingOffsets","invalidStagger","invalidQuery","selector","invalidExpression","expr","invalidTransitionAlias","alias","triggerBuildFailed","name","errors","animationFailed","registerFailed","missingOrDestroyedAnimation","createAnimationFailed","missingPlayer","id","missingTrigger","phase","missingEvent","unsupportedTriggerEvent","unregisteredTrigger","triggerTransitionsFailed","transitionFailed","optimizeGroupPlayer","players","NoopAnimationPlayer","AnimationGroupPlayer","normalizeKeyframes$1","normalizer","keyframes","preStyles","postStyles","normalizedKeyframes","previousOffset","previousKeyframe","kf","offset","isSameOffset","normalizedKeyframe","val","normalizedProp","normalizedValue","ɵPRE_STYLE","AUTO_STYLE","listenOnPlayer","player","eventName","event","callback","copyAnimationEvent","e","phaseName","totalTime","disabled","makeAnimationEvent","data","element","triggerName","fromState","toState","getOrSetDefaultValue","map","key","defaultValue","parseTimelineCommand","command","separatorPos","action","getParentElement","parent","documentElement","containsVendorPrefix","validateStyleProperty","_CACHED_BODY","getBodyNode","_IS_WEBKIT","result","containsElement","elm1","elm2","invokeQuery","multi","elem","resolveTimingValue","matches","_convertTimeValueToMS","unit","ONE_SECOND","resolveTiming","timings","allowNegativeValues","parseTimeExpression","regex","duration","delay","easing","delayMatch","easingVal","containsErrors","startIndex","normalizeKeyframes","setStyles","styles","formerStyles","camelProp","dashCaseToCamelCase","eraseStyles","_","normalizeAnimationEntry","steps","sequence","validateStyleParams","options","params","extractStyleParams","match","PARAM_REGEX","interpolateParams","original","str","localVal","input","DASH_CASE_REGEXP","m","allowPreviousPlayerStylesMerge","balancePreviousStylesIntoKeyframes","previousStyles","startingKeyframe","missingStyleProps","i","computeStyle","visitDslNode","visitor","node","context","AnimationMetadataType","parseTransitionExpr","transitionValue","expressions","parseInnerTransitionStr","eventStr","parseAnimationAlias","separator","makeLambdaFromStates","isFullAnyStateExpr","ANY_STATE","lhs","rhs","LHS_MATCH_BOOLEAN","TRUE_BOOLEAN_VALUES","FALSE_BOOLEAN_VALUES","RHS_MATCH_BOOLEAN","lhsMatch","rhsMatch","buildAnimationAst","driver","metadata","warnings","AnimationAstBuilderVisitor","normalizeSelector","hasAmpersand","token","SELF_TOKEN","SELF_TOKEN_REGEX","NG_TRIGGER_SELECTOR","NG_ANIMATING_SELECTOR","normalizeParams","obj","__spreadValues","consumeOffset","styleTuple","constructTimingAst","makeTimingAst","strValue","v","ast","normalizeAnimationOptions","createTimelineInstruction","preStyleProps","postStyleProps","subTimeline","buildAnimationTimelines","rootElement","enterClassName","leaveClassName","startingStyles","finalStyles","subInstructions","AnimationTimelineBuilderVisitor","roundOffset","decimalPoints","mult","flattenStyles","allStyles","allProperties","createTransitionInstruction","isRemovalTransition","fromStyles","toStyles","timelines","queriedElements","oneOrMoreTransitionsMatch","matchFns","currentState","nextState","fn","applyParamDefaults","userParams","defaults","buildTrigger","AnimationTrigger","createFallbackTransition","states","matchers","animation","transition","AnimationTransitionFactory","balanceProperties","stateMap","key1","key2","deleteOrUnsetInMap","currentValues","index","normalizeTriggerValue","isElementNode","isTriggerEventValid","cloakElement","oldValue","cloakAndComputeStyles","valuesMap","elements","elementPropsMap","defaultStyle","cloakVals","failedElements","props","REMOVAL_FLAG","NULL_REMOVED_QUERIED_STATE","buildRootMap","roots","nodes","rootMap","root","NULL_NODE","nodeSet","localRootMap","getRoot","addClass","className","removeClass","removeNodesAfterAnimationDone","engine","flattenGroupPlayers","finalPlayers","_flattenGroupPlayersRecur","objEquals","a","b","k1","k2","replacePostStylesAsPre","allPreStyleElements","allPostStyleElements","postEntry","preEntry","packageNonAnimatableStyles","startStyles","endStyles","filterNonAnimatableStyles","SpecialCasedStyles","isNonAnimatableStyle","resolveElementFromTarget","target","parseTriggerCallbackName","dotIndex","trigger","NoopAnimationDriver","_AnimationDriver","AnimationDriver","AnimationStyleNormalizer","SUBSTITUTION_EXPR_START","SUBSTITUTION_EXPR_END","ENTER_CLASSNAME","LEAVE_CLASSNAME","NG_TRIGGER_CLASSNAME","NG_ANIMATING_CLASSNAME","DIMENSIONAL_PROP_SET","WebAnimationsStyleNormalizer","ROOT_SELECTOR","AnimationAstBuilderContext","ElementInstructionMap","ONE_FRAME_IN_MILLISECONDS","ENTER_TOKEN","ENTER_TOKEN_REGEX","LEAVE_TOKEN","LEAVE_TOKEN_REGEX","DEFAULT_NOOP_PREVIOUS_NODE","AnimationTimelineContext","TimelineBuilder","SubTimelineBuilder","EMPTY_OBJECT","AnimationStateStyles","EMPTY_INSTRUCTION_MAP","TimelineAnimationEngine","QUEUED_CLASSNAME","QUEUED_SELECTOR","DISABLED_CLASSNAME","DISABLED_SELECTOR","STAR_CLASSNAME","STAR_SELECTOR","EMPTY_PLAYER_ARRAY","NULL_REMOVAL_STATE","StateValue","VOID_VALUE","DEFAULT_STATE_VALUE","AnimationTransitionNamespace","TransitionAnimationEngine","TransitionAnimationPlayer","AnimationEngine","_SpecialCasedStyles","WebAnimationsPlayer","WebAnimationsDriver","ANIMATION_PREFIX","DISABLE_ANIMATIONS_FLAG","BaseAnimationRenderer","AnimationRenderer","AnimationRendererFactory","init_browser","__esmMin","init_animations","init_core","_NoopAnimationDriver","_element","_selector","previousPlayers","scrubberAccessRequested","t","ɵɵdefineInjectable","propertyName","normalizedProperty","strVal","valAndSuffixMatch","_driver","queryCount","depCount","transitions","def","stateDef","n","styleAst","astParams","style","sub","s","currentTime","furthestTime","step","innerAst","timingAst","styleMetadata","isEmpty","newStyleData","_styleAst","metadataStyles","containsDynamicStyles","collectedEasing","styleData","endTime","startTime","tuple","collectedStyles","collectedEntry","updateCollectedStyle","MAX_KEYFRAME_OFFSET","totalKeyframesWithOffsets","offsets","offsetsOutOfOrder","keyframesOutOfRange","offsetVal","length","generatedOffset","limit","currentAnimateTimings","animateDuration","durationUpToThisFrame","parentSelector","includeSelf","instructions","existingInstructions","timeline","lastRootTimeline","elementInstructions","innerContext","animationsRefsOptions","animationRefOptions","animationDelay","animationDelayValue","instruction","instructionTimings","subContextCount","ctx","innerTimelines","timingValue","innerTimeline","elms","sameElementTimeline","parentContext","tl","maxTime","startingTime","_AnimationTimelineContext","_enterClassName","_leaveClassName","initialTimeline","skipIfExists","newOptions","optionsToUpdate","newParams","paramsToUpdate","oldParams","newTime","updatedTimings","builder","time","originalSelector","optional","results","_TimelineBuilder","_elementTimelineStylesLookup","hasPreStyleStep","properties","details1","details0","finalKeyframes","keyframe","finalKeyframe","preProps","postProps","kf0","kf1","_stretchStartingKeyframe","newKeyframes","startingGap","newFirstKeyframe","oldFirstKeyframe","oldOffset","timeAtKeyframe","_triggerName","_stateStyles","stateName","styler","currentOptions","nextOptions","skipAstBuild","transitionAnimationParams","currentAnimationParams","currentStateStyles","nextAnimationParams","nextStateStyles","preStyleMap","postStyleMap","isRemoval","animationOptions","elm","defaultParams","combinedParams","_normalizer","f","bodyNode","autoStylesMap","inst","baseEvent","args","namespaceId","isObj","_a","__objRest","hostElement","_engine","listeners","triggersWithStates","defaultToFallback","playersOnElement","isFallbackTransition","entry","elementPlayers","namespaces","ns","destroyAfterComplete","triggerStates","previousTriggersValues","state","elementStates","visitedTriggers","listener","containsPotentialParentTransition","currentPlayers","removalFlag","microtaskId","d0","d1","p","scheduler","namespaceList","namespacesByHostElement","found","ancestor","ancestorNs","stateValue","insertBefore","details","hostNS","hasAnimation","subTimelines","skipBuildAst","containerElement","resolve","cleanupFns","quietFns","skippedPlayers","skippedPlayersMap","queuedInstructions","disabledElementsSet","nodesThatAreDisabled","allTriggerElements","enterNodeMap","enterNodeMapIds","allLeaveNodes","mergedLeaveNodes","leaveNodesWithoutAnimations","leaveNodeMapIds","leaveNodeMap","allPlayers","erroneousTransitions","previousValue","nodeIsOrphaned","stringMap","setVal","allPreviousPlayersMap","animationElementMap","prevPlayer","replaceNodes","postStylesMap","preStylesMap","post","pre","rootPlayers","subPlayers","NO_PARENT_ANIMATION_ELEMENT_DETECTED","parentWithAnimation","parentsToAdd","detectedParent","innerPlayer","parentPlayers","playersForElement","queriedPlayerResults","queriedInnerElements","j","queriedPlayers","activePlayers","isQueriedElement","toStateValue","queriedElementPlayers","isRemovalAnimation","targetNameSpaceId","targetTriggerName","timelineInstruction","realPlayer","allQueriedPlayers","allConsumedElements","allSubElements","allNewPlayers","pp","wrappedPlayer","callbacks","doc","componentId","cacheKey","disable","property","eventPhase","cb","_startStyles","_endStyles","initialStyles","_specialStyles","onFinish","kfs","frame","methods","fill","playerOptions","previousWebAnimationPlayers","_keyframes","specialStyles","delegate","_onDestroy","namespace","newChild","refChild","isMove","oldChild","isHostElement","selectorOrNode","preserveContent","el","flags","factory","onDestroy","countId","_zone","parentNode","type","EMPTY_NAMESPACE_ID","cache","renderer","onRendererDestroy","registerTrigger","count","animationCallbacksBuffer","instantiateDefaultStyleNormalizer","WebAnimationsStyleNormalizer","instantiateRendererFactory","renderer","engine","zone","AnimationRendererFactory","provideAnimations","performanceMarkFeature","BROWSER_ANIMATIONS_PROVIDERS","InjectableAnimationEngine","SHARED_ANIMATION_PROVIDERS","BROWSER_NOOP_ANIMATIONS_PROVIDERS","BrowserAnimationsModule","init_animations","__esmMin","init_core","init_platform_browser","init_browser","init_common","_InjectableAnimationEngine","AnimationEngine","doc","driver","normalizer","inject","ChangeDetectionScheduler","t","ɵɵinject","DOCUMENT","AnimationDriver","AnimationStyleNormalizer","ɵɵdefineInjectable","RendererFactory2","DomRendererFactory2","NgZone","WebAnimationsDriver","ANIMATION_MODULE_TYPE","NoopAnimationDriver","_BrowserAnimationsModule","config","ɵɵdefineNgModule","ɵɵdefineInjector","BrowserModule","ɵɵelementContainerStart","ɵɵtext","ɵɵadvance","ɵɵtextInterpolate1","ctx_r0","control","value","ɵɵelementStart","ɵɵelementEnd","ɵɵtemplate","TextRendererComponent_div_0_ng_container_5_Template","ɵɵpipeBind1","label","ɵɵproperty","ɵɵtextInterpolate","ɵɵlistener","$event","i0","ɵɵrestoreView","_r3","ɵɵresetView","preventDefault","option_r4","ɵɵpipeBind2","ɵɵpureFunction1","_c1","length","TextRendererComponent_ng_template_1_glxy_label_1_Template","_r2","ɵɵnextContext","initializeField","saveField","TextRendererComponent_ng_template_1_mat_option_7_Template","TextRendererComponent_ng_template_1_glxy_error_9_Template","ɵɵelement","validation","ɵɵpropertyInterpolate","disableAutoComplete","auto_r5","_c0","toLowerCase","autoFillState","filteredOptions$","objectType","fieldId","TextFieldHandler","EXCLUDED_FROM_AUTOCOMPLETE","TextRendererComponent","init_text","__esmMin","init_animations","init_common","init_rxjs_interop","init_forms","init_autocomplete","init_input","init_ngx_translate_core","init_form_field","init_esm","init_tokens_and_interfaces","init_field_validation","init_field_warning_directive","init_field_warning_service","init_model_driven_form_error_component","init_stop_chrome_autofill","init_field_service","constructor","name","description","readOnly","FieldValidation","formControl","UntypedFormControl","setValidation","setValidators","getValidators","setAsyncValidators","getAsyncValidators","hasModification","dirty","fieldValue","stringValue","render","viewContainerRef","clear","component","createComponent","instance","StandardExternalIds","FirstName","LastName","_control","fieldOptionsDependencies","destroyRef","changeDetRef","updaterService","inlineEditService","fieldService","__privateAdd","of","initialized$","BehaviorSubject","stopChromeAutofill","updatedField","pipe","takeUntilDestroyed","tap","data","setTimeout","detectChanges","setValue","markAsDirty","subscribe","__privateSet","controlChanges$","__privateGet","valueChanges","startWith","debounceTime","SEARCH_DEBOUNCE_MS","distinctUntilChanged","combineLatest","skipWhile","initialized","switchMap","id","getFieldId","getFieldOptions","next","saveInlineEdit","ɵɵdirectiveInject","FieldOptionsInjectionToken","DestroyRef","ChangeDetectorRef","UpdaterService","InlineEditService","CrmFieldService","selectors","standalone","features","ɵɵProvidersFeature","FieldWarningService","provideAnimations","ɵɵStandaloneFeature","decls","vars","consts","template","rf","ctx","TextRendererComponent_div_0_Template","TextRendererComponent_ng_template_1_Template","ɵɵtemplateRefExtractor","formField_r6","CommonModule","NgForOf","NgIf","AsyncPipe","MatInputModule","MatInput","ReactiveFormsModule","DefaultValueAccessor","NgControlStatus","MaxLengthValidator","FormControlDirective","TranslateModule","TranslatePipe","GalaxyFormFieldModule","FormFieldComponent","LabelDirective","ErrorDirective","CrmModelDrivenFormErrorComponent","CrmFieldWarningDirective","MatAutocompleteModule","MatAutocomplete","MatOption","MatAutocompleteTrigger","styles","encapsulation","animation","trigger","state","style","backgroundColor","transition","animate","_TextRendererComponent","ɵɵelementStart","ɵɵtext","ɵɵelementEnd","ɵɵadvance","ɵɵtextInterpolate1","ctx_r0","control","value","ɵɵtemplate","ScoreRendererComponent_Conditional_0_Conditional_4_Template","ɵɵtextInterpolate","ɵɵpipeBind1","label","ɵɵconditional","ScoreRendererComponent","init_score","__esmMin","init_common","init_input","init_forms","init_uiowa_digit_only","init_ngx_translate_core","init_form_field","init_field_warning_service","constructor","scoreService","ngOnInit","getScoreForProfile$","fieldId","subscribe","score","setValue","ɵɵdirectiveInject","ScoreService","selectors","standalone","features","ɵɵProvidersFeature","FieldWarningService","ɵɵStandaloneFeature","decls","vars","consts","template","rf","ctx","ScoreRendererComponent_Conditional_0_Template","readOnly","CommonModule","MatInputModule","ReactiveFormsModule","DigitOnlyModule","TranslateModule","TranslatePipe","GalaxyFormFieldModule","styles","encapsulation","_ScoreRendererComponent","ScoreFieldHandler","init_score_field_handler","__esmMin","init_forms","init_field_validation","init_score","constructor","objectType","fieldId","name","label","value","description","readOnly","validation","FieldValidation","formControl","FormControl","setValidation","setValidators","getValidators","setAsyncValidators","getAsyncValidators","render","viewContainerRef","clear","component","createComponent","ScoreRendererComponent","instance","control","hasModification","fieldValue","floatValue","CustomFieldHandler","init_custom","__esmMin","init_forms","constructor","customFormInput","objectType","fieldId","label","value","readOnly","formControl","UntypedFormControl","setValidation","validation","fieldValue","component","instance","hasModification","render","viewContainerRef","clear","createComponent","control","lifecycleStages","init_lifecycle_stage","__esmMin","id","translationKey","LifecycleStageNamePipe","init_lifecycle_stage_pipe","__esmMin","init_lifecycle_stage","constructor","translate","transform","id","key","lifecycleStages","find","val","translationKey","stream","ɵɵdirectiveInject","TranslateService","pure","_LifecycleStageNamePipe","LifecycleStagePipeModule","init_lifecycle_stage_pipe_module","__esmMin","init_ngx_translate_core","TranslateModule","_LifecycleStagePipeModule","ɵɵelementContainerStart","ɵɵelementStart","ɵɵtext","ɵɵelementEnd","ɵɵadvance","ɵɵtextInterpolate1","ctx_r0","label","ɵɵpipeBind1","control","value","ɵɵlistener","$event","i0","ɵɵrestoreView","_r3","ɵɵresetView","preventDefault","ɵɵproperty","stage_r4","id","translateKey","translationKey","_r2","ɵɵnextContext","saveField","ɵɵtemplate","LifecycleStageSelectorComponent_ng_template_1_mat_option_4_Template","ɵɵtextInterpolate","lifecycleStages","LifecycleStageSelectorComponent","init_lifecycle_stage_selector_component","__esmMin","init_common","init_forms","init_select","init_form_field","init_ngx_translate_core","init_lifecycle_stage","init_lifecycle_stage_pipe_module","constructor","translate","inlineEditService","key","instant","saveInlineEdit","objectType","fieldId","stringValue","ɵɵdirectiveInject","TranslateService","InlineEditService","selectors","standalone","features","ɵɵStandaloneFeature","decls","vars","consts","template","rf","ctx","LifecycleStageSelectorComponent_ng_container_0_Template","LifecycleStageSelectorComponent_ng_template_1_Template","ɵɵtemplateRefExtractor","readOnly","selectStage_r5","CommonModule","NgForOf","NgIf","AsyncPipe","ReactiveFormsModule","NgControlStatus","FormControlDirective","MatSelectModule","MatSelect","MatOption","GalaxyFormFieldModule","FormFieldComponent","LabelDirective","TranslateModule","LifecycleStagePipeModule","LifecycleStageNamePipe","encapsulation","_LifecycleStageSelectorComponent","LifecycleStageSelectorHandler","init_lifecycle_stage_handler","__esmMin","init_forms","init_field_validation","init_lifecycle_stage_selector_component","constructor","objectType","fieldId","name","label","value","description","readOnly","validation","FieldValidation","formControl","FormControl","nonNullable","render","viewContainerRef","clear","component","createComponent","LifecycleStageSelectorComponent","instance","control","setValidation","setValidators","getValidators","setAsyncValidators","getAsyncValidators","fieldValue","stringValue","hasModification","dirty","ɵɵelementContainerStart","ɵɵtext","ɵɵadvance","ɵɵtextInterpolate1","ctx_r0","control","value","ɵɵelementStart","ɵɵelementEnd","ɵɵtemplate","EmailRendererComponent_div_0_ng_container_5_Template","ɵɵpipeBind1","label","ɵɵproperty","ɵɵelementContainer","ɵɵlistener","ɵɵrestoreView","_r2","ɵɵnextContext","ɵɵresetView","saveField","EmailRendererComponent_div_1_ng_container_2_Template","formField_r3","EmailRendererComponent_ng_container_3_ng_container_1_Template","ɵɵtextInterpolate","ɵɵpipeBind2","ɵɵpureFunction1","_c1","length","EmailRendererComponent_ng_template_5_glxy_label_1_Template","ɵɵelement","EmailRendererComponent_ng_template_5_glxy_error_5_Template","validation","ɵɵpropertyInterpolate","disableAutoComplete","_c0","toLowerCase","objectType","fieldId","EmailFieldHandler","EmailRendererComponent","init_email","__esmMin","init_common","init_forms","init_input","init_ngx_translate_core","init_form_field","init_field_validation","init_field_warning_directive","init_field_warning_service","init_model_driven_form_error_component","init_model_driven_popover_component","init_stop_chrome_autofill","constructor","name","description","readOnly","FieldValidation","formControl","UntypedFormControl","setValidation","setValidators","getValidators","setAsyncValidators","getAsyncValidators","hasModification","dirty","fieldValue","stringValue","render","viewContainerRef","clear","component","createComponent","instance","inlineEditService","isInlineEdit$","stopChromeAutofill","saveInlineEdit","ɵɵdirectiveInject","InlineEditService","selectors","standalone","features","ɵɵProvidersFeature","FieldWarningService","ɵɵStandaloneFeature","decls","vars","consts","template","rf","ctx","EmailRendererComponent_div_0_Template","EmailRendererComponent_div_1_Template","EmailRendererComponent_ng_container_3_Template","EmailRendererComponent_ng_template_5_Template","ɵɵtemplateRefExtractor","CommonModule","NgIf","NgTemplateOutlet","AsyncPipe","MatInputModule","MatInput","ReactiveFormsModule","DefaultValueAccessor","NgControlStatus","MaxLengthValidator","FormControlDirective","TranslateModule","TranslatePipe","GalaxyFormFieldModule","FormFieldComponent","LabelDirective","ErrorDirective","CrmModelDrivenFormErrorComponent","CrmFieldWarningDirective","CrmModelDrivenPopoverComponent","styles","encapsulation","_EmailRendererComponent","GeopointFieldHandler","GeopointRendererComponent","init_geopoint","__esmMin","init_forms","init_field_validation","init_rxjs_interop","init_esm","constructor","objectType","fieldId","name","label","value","description","readOnly","validation","FieldValidation","formControl","FormControl","fieldValue","geopointValue","hasModification","dirty","setValidation","setValidators","getValidators","setAsyncValidators","getAsyncValidators","render","viewContainerRef","clear","component","createComponent","instance","control","updaterService","changeDetRef","destroyRef","updatedField","pipe","takeUntilDestroyed","tap","data","lat","undefined","lon","setValue","markAsDirty","detectChanges","subscribe","ɵɵdirectiveInject","UpdaterService","ChangeDetectorRef","DestroyRef","selectors","standalone","features","ɵɵStandaloneFeature","decls","vars","template","rf","ctx","styles","encapsulation","_GeopointRendererComponent","NONE_FOUND_SINGLE_TEXT","NONE_FOUND_MULTIPLE_TEXT","AutocompleteService","init_autocomplete_service","__esmMin","init_operators","constructor","http","parseAutoCompleteResponse","responses","term","choices","i","length","drop_down","convertToDropDown","push","createNoChoiceOption","noBusinessChoice","secondaryText","search_term","no_business_choice","mainText","description","response","structured_formatting","main_text","secondary_text","placeId","place_id","init","googleMap","delegate","map","post","pipe","tap","location","currentPosition","take","subscribe","autocompleteSessionToken","google","maps","places","AutocompleteSessionToken","onSelect","NO_BUSINESS_FOUND","placeService","PlacesService","callback","place","getTimeZone","timeZone","setBusinessSelectedDetailsCallback","getDetails","fields","sessionToken","clearSelectedBusiness","getChoices","suggest","service","result","termStr","request","input","toLowerCase","types","locationBias","north","lat","east","lng","south","west","getPlacePredictions","e","console","error","timeZoneApiUrl","paramKey","paramLat","geometry","paramLng","params","timestamp","Math","floor","Date","now","toString","key","get","_AutocompleteService","ɵɵinject","HttpClient","factory","ɵfac","providedIn","ɵɵelementContainerStart","ɵɵtext","ɵɵadvance","ɵɵtextInterpolate1","Name_r1","ɵɵtemplate","GooglePlaceSelectorComponent_div_0_ng_container_4_ng_container_1_Template","ɵɵproperty","ctx_r1","NO_VALUE_FOR_NAME","ɵɵelement","ɵɵelementStart","ɵɵelementEnd","GooglePlaceSelectorComponent_div_0_ng_container_4_Template","GooglePlaceSelectorComponent_div_0_ng_template_5_Template","ɵɵtemplateRefExtractor","ɵɵtextInterpolate","label","value","loading_r3","ɵɵpipeBind1","ɵɵpureFunction1","_c1","isLast_r6","location_r5","mainText","secondaryText","ɵɵlistener","$event","ɵɵrestoreView","_r4","ɵɵnextContext","ɵɵresetView","onMapReady","companyOnFieldChange","GooglePlaceSelectorComponent_ng_template_1_mat_error_5_Template","companyOnSelected","option","GooglePlaceSelectorComponent_ng_template_1_mat_option_8_Template","ɵɵpureFunction0","_c0","control","auto_r7","dirty","hasError","companyDisplayValue","locations","GooglePlaceSelectorComponent","init_google_place_selector_component","__esmMin","init_common","init_core","init_rxjs_interop","init_forms","init_google_maps","init_autocomplete","init_input","init_progress_spinner","init_ngx_translate_core","init_form_field","init_esm","init_operators","init_field_service","init_tokens_and_interfaces","init_autocomplete_service","FormInputComponent","_control","markAsPristine","isNew","fieldId","_fieldId","set","hasModification","companyName","stringValue","constructor","autocompleteService","updaterService","zone","destroyRef","readOnly","companyAddressDetails","txtQueryChanged","Subject","signal","ngOnInit","pipe","takeUntilDestroyed","debounceTime","distinctUntilChanged","subscribe","model","getChoices","choices","run","googleMap","init","setBusinessSelectedDetailsCallback","place_id","place","timeZone","street_number","extractFromAddress","address_components","address","country","countryCode","name","city","zip","country_short","region","region_short","updateStringField","StandardIds","CompanyPrimaryAddressLine1","CompanyPrimaryAddressLine2","CompanyPrimaryAddressCity","CompanyPrimaryAddressState","CompanyPrimaryAddressPostalCode","CompanyPrimaryAddressCountry","CompanyPrimaryAddressGooglePlaceID","CompanyWebsite","website","CompanyPhoneNumber","formatted_phone_number","CompanyTimezone","timeZoneId","lat","geometry","location","lng","undefined","updateGeopointField","CompanyPrimaryAddressLatitudeLongitude","components","type","name_type","filter","component","types","indexOf","map","item","pop","clearSelectedBusiness","event","code","next","onSelect","placeId","ɵɵdirectiveInject","AutocompleteService","UpdaterService","NgZone","DestroyRef","selectors","standalone","features","ɵɵProvidersFeature","ɵɵInheritDefinitionFeature","ɵɵStandaloneFeature","decls","vars","consts","template","rf","ctx","GooglePlaceSelectorComponent_div_0_Template","GooglePlaceSelectorComponent_ng_template_1_Template","formField_r8","CommonModule","NgClass","NgForOf","NgIf","ReactiveFormsModule","DefaultValueAccessor","NgControlStatus","RequiredValidator","FormControlDirective","TranslateModule","TranslatePipe","GalaxyFormFieldModule","FormFieldComponent","LabelDirective","MatInputModule","MatInput","MatError","MatAutocompleteModule","MatAutocomplete","MatOption","MatAutocompleteTrigger","MatProgressSpinnerModule","GoogleMapsModule","GoogleMap","styles","encapsulation","_GooglePlaceSelectorComponent","RendererSelectorService","init_renderer_selector_service","__esmMin","init_boolean","init_date","init_email_validator","init_integer","init_float_field_handler","init_phone_field_handler","init_tags","init_text","init_field_validation","init_score_field_handler","init_custom","init_lifecycle_stage_handler","init_email","init_geopoint","init_google_place_selector_component","init_tokens_and_interfaces","init_field_service","constructor","config","validatorFactory","defaultCustomInputs","fieldId","StandardIds","CompanyName","component","GooglePlaceSelectorComponent","chooseHandler","objectType","fieldSchema","fieldData","showLabel","readOnly","label","fieldName","customForms","toLowerCase","formCustomInputs","push","customForm","find","f","CustomFieldHandler","CompanyLifecycleStage","ContactLifecycleStage","LifecycleStageSelectorHandler","fieldDescription","CompanyPrimaryAddressLatitudeLongitude","GeopointFieldHandler","CompanyLeadScore","ScoreFieldHandler","fieldType","FieldType","FIELD_TYPE_PHONE","PhoneFieldHandler","FIELD_TYPE_STRING","TextFieldHandler","FIELD_TYPE_INTEGER","IntegerFieldHandler","FIELD_TYPE_FLOAT","FloatFieldHandler","FIELD_TYPE_DATE","DateFieldHandler","FIELD_TYPE_BOOLEAN","BooleanFieldHandler","FIELD_TYPE_EMAIL","EmailFieldHandler","FIELD_TYPE_TAG","TagsFieldHandler","FIELD_TYPE_STRING_LIST","console","warn","setupFieldValidators","field","forExistingObjectId","fieldSchemaMap","schema","get","validation","FieldValidation","addValidationError","emailValidatorCodeMapping","buildUniquenessValidatorCodeMappings","setValidation","ɵɵinject","CrmInjectionToken","ValidatorFactoryService","factory","ɵfac","_RendererSelectorService","StickyFooterComponent","init_sticky_footer_component","__esmMin","constructor","class","rightAligned","selectors","hostVars","hostBindings","rf","ctx","ɵɵclassMap","ɵɵclassProp","ɵɵelementStart","ɵɵprojection","ɵɵelementEnd","_StickyFooterComponent","MODULE_IMPORTS","GalaxyStickyFooterModule","init_sticky_footer_module","__esmMin","init_common","CommonModule","_GalaxyStickyFooterModule","init_public_api","__esmMin","init_sticky_footer_module","init_sticky_footer","__esmMin","init_public_api","SNACKBAR_DURATION","BaseCrmModelDrivenFormComponent","init_base_model_driven_form_component","__esmMin","init_core","init_forms","init_tokens_and_interfaces","constructor","config","snackService","rendererSelector","validatorFactory","inlineEditService","crmFieldService","scoreService","existingObjectId","fieldConfig","submitButtonText","cancelButtonText","readOnly","inlineEdit","formSubmit","EventEmitter","formCancel","formGroup","UntypedFormGroup","readOnlyFields","renderableFields","renderableFieldGroups","readonlyRenderableFieldGroups","ngOnChanges","changes","initialize","fieldSchemas","fieldGroups","setObjectId","setInlineEdit","setupValidation","objectType","valueChanges","fieldSchemaMap","Map","schema","set","fieldId","field","setupFieldValidators","length","forEach","group","renderableFieldGroup","description","fields","readOnlyRenderableFieldGroup","fieldIds","fieldSchema","find","undefined","console","warn","renderableField","chooseHandler","value","setControl","formControl","hasDefaultValue","markAsDirty","push","shouldRenderReadonlyField","onSubmit","pristine","openErrorSnack","duration","invalid","emit","onCancel","ɵɵdirectiveInject","CrmInjectionToken","SnackbarService","RendererSelectorService","ValidatorFactoryService","InlineEditService","CrmFieldService","ScoreService","selectors","inputs","loadingStatus","savingStatus","outputs","features","ɵɵNgOnChangesFeature","decls","vars","template","rf","ctx","ɵɵelementContainer","_BaseCrmModelDrivenFormComponent","ɵɵelementContainerStart","ɵɵprojection","ɵɵelement","ɵɵelementStart","ɵɵtext","ɵɵelementEnd","ɵɵadvance","ɵɵtextInterpolate1","ɵɵpipeBind1","ɵɵtextInterpolate","ɵɵtemplate","CrmFormLoadingIndicatorComponent_ng_template_1_ng_container_0_Template","CrmFormLoadingIndicatorComponent_ng_template_1_glxy_empty_state_1_Template","ɵɵproperty","ctx_r0","loadingStatus","LoadingStatus","LOADING","ERROR","CrmFormLoadingIndicatorComponent","init_form_loading_indicator_component","__esmMin","init_common","init_icon","init_ngx_translate_core","init_empty_state","init_loading_spinner","init_tokens_and_interfaces","constructor","selectors","inputs","standalone","features","ɵɵStandaloneFeature","ngContentSelectors","_c1","decls","vars","consts","template","rf","ctx","CrmFormLoadingIndicatorComponent_ng_container_0_Template","CrmFormLoadingIndicatorComponent_ng_template_1_Template","ɵɵtemplateRefExtractor","OK","loadingState_r2","CommonModule","NgIf","TranslateModule","TranslatePipe","GalaxyEmptyStateModule","EmptyStateComponent","EmptyStateHeroDirective","EmptyStateTitleDirective","EmptyStateActionsDirective","MatIconModule","MatIcon","GalaxyLoadingSpinnerModule","LoadingSpinnerComponent","encapsulation","_CrmFormLoadingIndicatorComponent","require_strings","__commonJSMin","exports","STRING_DASHERIZE_REGEXP","STRING_DECAMELIZE_REGEXP","STRING_CAMELIZE_REGEXP","STRING_UNDERSCORE_REGEXP_1","STRING_UNDERSCORE_REGEXP_2","decamelize","str","dasherize","camelize","_match","_separator","chr","match","classify","part","capitalize","underscore","levenshtein","a","b","matrix","i","j","ɵɵelementContainerStart","ɵɵelementStart","ɵɵprojection","ɵɵelementEnd","import_strings","VerticalNavCardComponent","init_vertical_nav_card_component","__esmMin","init_common","constructor","label","active","class","id","ngOnInit","dasherize","selectors","hostVars","hostBindings","rf","ctx","ɵɵclassMap","ɵɵtemplate","VerticalNavCardComponent_ng_container_0_Template","ɵɵproperty","CommonModule","NgIf","encapsulation","_VerticalNavCardComponent","ɵɵelementContainerStart","ɵɵelementStart","ɵɵlistener","tab_r3","ɵɵrestoreView","_r2","$implicit","ctx_r3","ɵɵnextContext","scrollTarget_r5","ɵɵreference","selectTab","ɵɵresetView","addQueryString","id","$event","i0","click","preventDefault","ɵɵtext","ɵɵelementEnd","ɵɵadvance","ɵɵclassProp","active","ɵɵtextInterpolate","label","ɵɵtemplate","VerticalNavTabComponent_ul_2_ng_container_1_Template","ɵɵproperty","tabs","tab_r8","_r7","ɵɵtextInterpolate1","ɵɵrepeaterCreate","VerticalNavTabComponent_mat_select_4_For_2_Template","ɵɵrepeaterTrackByIdentity","mobileSelectValue","ɵɵrepeater","VerticalNavTabComponent","init_vertical_nav_tab_component","__esmMin","init_common","init_http","init_core","init_router","init_select","init_observers","init_layout","init_vertical_nav_card_component","init_form_field","constructor","responsive","class","useQueryParams","location","inject","Location","activatedRoute","ActivatedRoute","tabActivated","isMobile","ngOnInit","observe","Breakpoints","Handset","subscribe","result","matches","ngAfterContentInit","setActiveTab","queryParamHasMappedToATab","activeTabParam","snapshot","queryParams","activeTabs","filter","tab","some","push","length","first","tabTitle","params","HttpParams","set","replaceState","path","split","toString","scrolltarget","forEach","thisTab","getClientRects","top","window","setTimeout","scrollIntoView","behavior","ɵɵdirectiveInject","BreakpointObserver","selectors","contentQueries","rf","ctx","dirIndex","VerticalNavCardComponent","ɵɵclassMap","ɵɵelement","VerticalNavTabComponent_ul_2_Template","VerticalNavTabComponent_mat_select_4_Template","_r1","ɵɵprojection","CommonModule","NgForOf","NgIf","ObserversModule","CdkObserveContent","MatSelectModule","MatSelect","MatOption","GalaxyFormFieldModule","FormFieldComponent","styles","_VerticalNavTabComponent","init_vertical_nav_tab","__esmMin","init_vertical_nav_tab_component","init_vertical_nav_card_component","ɵɵelementContainerStart","ɵɵelement","ɵɵadvance","ɵɵproperty","renderableField_r1","ɵɵelementStart","ɵɵtemplate","CrmCardGroupDrivenFormComponent_ng_container_3_ng_container_6_Template","ɵɵelementEnd","fieldGroup_r2","description","ɵɵpipeBind1","fields","CrmCardGroupDrivenFormComponent_glxy_sticky_footer_4_ng_template_1_Template","formButtons_r3","ɵɵlistener","ɵɵrestoreView","_r4","ctx_r4","ɵɵnextContext","ɵɵresetView","onSubmit","onCancel","submitButtonText","cancelButtonText","savingStatus","CrmCardGroupDrivenFormComponent","init_card_group_driven_form_component","__esmMin","init_common","init_forms","init_card","init_icon","init_ngx_translate_core","init_empty_state","init_sticky_footer","init_base_model_driven_form_component","init_form_button_group_component","init_form_loading_indicator_component","init_renderer_selector_component","init_vertical_nav_tab","BaseCrmModelDrivenFormComponent","t","selectors","standalone","features","ɵɵInheritDefinitionFeature","ɵɵStandaloneFeature","decls","vars","consts","template","rf","ctx","CrmCardGroupDrivenFormComponent_ng_container_3_Template","CrmCardGroupDrivenFormComponent_glxy_sticky_footer_4_Template","CrmCardGroupDrivenFormComponent_ng_template_5_Template","ɵɵtemplateRefExtractor","loadingStatus","formGroup","renderableFieldGroups","readOnly","CommonModule","NgForOf","NgIf","NgTemplateOutlet","FormsModule","ɵNgNoValidate","NgControlStatusGroup","MatCardModule","MatCard","MatCardContent","MatIconModule","ReactiveFormsModule","FormGroupDirective","TranslateModule","TranslatePipe","GalaxyEmptyStateModule","GalaxyStickyFooterModule","StickyFooterComponent","CrmFormButtonGroupComponent","CrmFormLoadingIndicatorComponent","RendererSelectorComponent","VerticalNavTabComponent","VerticalNavCardComponent","styles","encapsulation","_CrmCardGroupDrivenFormComponent","ɵɵelementContainerStart","ɵɵelement","ɵɵadvance","ɵɵproperty","renderableField_r1","ɵɵtemplate","CrmPanelDrivenFormComponent_ng_container_2_ng_container_1_Template","renderableFieldGroup_r2","fields","readOnlyrenderableField_r3","CrmPanelDrivenFormComponent_ng_container_4_ng_container_1_Template","readOnlyrenderableFieldGroup_r4","ɵɵelementStart","ɵɵlistener","ɵɵrestoreView","_r5","ctx_r5","ɵɵnextContext","ɵɵresetView","onSubmit","onCancel","ɵɵelementEnd","ɵɵpipeBind1","submitButtonText","cancelButtonText","savingStatus","CrmPanelDrivenFormComponent","init_panel_driven_form_component","__esmMin","init_common","init_forms","init_ngx_translate_core","init_renderer_selector_component","init_base_model_driven_form_component","init_form_button_group_component","init_form_loading_indicator_component","init_divider","BaseCrmModelDrivenFormComponent","t","selectors","standalone","features","ɵɵInheritDefinitionFeature","ɵɵStandaloneFeature","decls","vars","consts","template","rf","ctx","CrmPanelDrivenFormComponent_ng_container_2_Template","CrmPanelDrivenFormComponent_mat_divider_3_Template","CrmPanelDrivenFormComponent_ng_container_4_Template","CrmPanelDrivenFormComponent_div_5_Template","loadingStatus","formGroup","renderableFieldGroups","readonlyRenderableFieldGroups","length","readOnly","inlineEdit","CommonModule","NgForOf","NgIf","FormsModule","ɵNgNoValidate","NgControlStatusGroup","ReactiveFormsModule","FormGroupDirective","TranslateModule","TranslatePipe","RendererSelectorComponent","CrmFormLoadingIndicatorComponent","CrmFormButtonGroupComponent","MatDividerModule","MatDivider","styles","encapsulation","_CrmPanelDrivenFormComponent","ɵɵelement","ɵɵproperty","renderableField_r1","ɵɵelementContainerStart","ɵɵtemplate","CrmBasicFieldGroupFormComponent_ng_container_8_ng_container_1_crm_renderer_selector_1_Template","ɵɵadvance","ctx_r1","basicGroupFieldsMap","get","objectType","includes","fieldId","CrmBasicFieldGroupFormComponent_ng_container_8_ng_container_1_Template","renderableFieldGroup_r3","fields","ɵɵelementStart","CrmBasicFieldGroupFormComponent_mat_card_actions_9_ng_template_1_Template","ɵɵelementEnd","formButtons_r4","ɵɵlistener","ɵɵrestoreView","_r5","ɵɵnextContext","ɵɵresetView","onCancel","ɵɵtext","onSubmit","ɵɵtextInterpolate1","ɵɵpipeBind1","CrmBasicFieldGroupFormComponent","init_basic_field_group_form_component","__esmMin","init_common","init_forms","init_icon","init_card","init_ngx_translate_core","init_empty_state","init_renderer_selector_component","init_base_model_driven_form_component","init_form_loading_indicator_component","init_button","init_dialog","init_tokens_and_interfaces","init_translate_by_object_type_pipe","init_field_service","BaseCrmModelDrivenFormComponent","constructor","config","snackService","rendererSelector","validatorFactory","inlineEditService","fieldService","scoreService","Map","set","getFieldId","StandardExternalIds","FirstName","LastName","PhoneNumber","Email","Tags","StandardIds","ContactLinkedInURL","ContactJobTitle","CompanyName","CompanyWebsite","CompanyPrimaryAddressLine1","CompanyPrimaryAddressLine2","CompanyPrimaryAddressCity","CompanyPrimaryAddressState","CompanyPrimaryAddressPostalCode","CompanyPrimaryAddressCountry","CompanyPhoneNumber","CompanyTags","ɵɵdirectiveInject","CrmInjectionToken","SnackbarService","RendererSelectorService","ValidatorFactoryService","InlineEditService","CrmFieldService","ScoreService","selectors","standalone","features","ɵɵInheritDefinitionFeature","ɵɵStandaloneFeature","decls","vars","consts","template","rf","ctx","CrmBasicFieldGroupFormComponent_ng_container_8_Template","CrmBasicFieldGroupFormComponent_mat_card_actions_9_Template","CrmBasicFieldGroupFormComponent_ng_template_10_Template","CrmBasicFieldGroupFormComponent_ng_template_11_Template","ɵɵtemplateRefExtractor","loadingStatus","formGroup","ɵɵtextInterpolate","ɵɵpipeBind2","renderableFieldGroups","length","readOnly","CommonModule","NgForOf","NgIf","NgTemplateOutlet","FormsModule","ɵNgNoValidate","NgControlStatusGroup","ReactiveFormsModule","FormGroupDirective","TranslateModule","TranslatePipe","TranslateByObjectTypePipe","GalaxyEmptyStateModule","MatIconModule","RendererSelectorComponent","MatCardModule","MatCard","MatCardActions","MatCardContent","CrmFormLoadingIndicatorComponent","MatButtonModule","MatButton","MatDialogModule","MatDialogTitle","MatDialogActions","MatDialogContent","styles","encapsulation","_CrmBasicFieldGroupFormComponent","ɵɵelementContainerStart","ɵɵelementStart","ɵɵlistener","$event","ɵɵrestoreView","_r1","ctx_r1","ɵɵnextContext","ɵɵresetView","onSubmit","onCancel","ɵɵelementEnd","ɵɵadvance","ɵɵproperty","objectType","existingObjectId","ɵɵpipeBind1","submitButtonText","cancelButtonText","loadingStatus","savingStatus","fieldConfig","readOnly","_r3","_r4","CrmModelDrivenFormComponent","init_model_driven_form_component","__esmMin","init_core","init_card_group_driven_form_component","init_panel_driven_form_component","init_common","init_ngx_translate_core","init_basic_field_group_form_component","init_shared_services","init_inline_edit_service","constructor","mode","formSubmit","EventEmitter","formCancel","fields","emit","selectors","inputs","outputs","standalone","features","ɵɵProvidersFeature","InlineEditService","ScoreService","ɵɵStandaloneFeature","decls","vars","consts","template","rf","ctx","ɵɵtemplate","CrmModelDrivenFormComponent_ng_container_1_Template","CrmModelDrivenFormComponent_ng_container_2_Template","CrmModelDrivenFormComponent_ng_container_3_Template","CommonModule","NgSwitch","NgSwitchCase","NgSwitchDefault","TranslateModule","TranslatePipe","CrmCardGroupDrivenFormComponent","CrmPanelDrivenFormComponent","CrmBasicFieldGroupFormComponent","styles","_CrmModelDrivenFormComponent","init_model_driven_form","__esmMin","init_field_validation","init_inline_edit_service","init_renderer_selector_component","init_renderer_selector_service","init_validator_factory_service","init_model_driven_form_component","init_autocomplete_service","init_updater_service","init_utils","CreateContactModalComponent","init_create_modal_component","__esmMin","init_common","init_button","init_dialog","init_icon","init_router","init_page","init_esm","init_operators","init_model_driven_form_component","init_tokens_and_interfaces","init_constants","init_translation_module","constructor","dialogRef","config","crmFormService","snackService","route","previewObjectService","trackingService","translateByObjectTypeService","LoadingStatus","SavingStatus","loadingStatus$$","BehaviorSubject","LOADING","savingStatus$$","NOT_SAVING","routePrefix$","fieldConfig$","of","PAGE_ROUTES","crmObjectId$","params","pipe","map","shareReplay","ngOnInit","fieldSchemas$","listAllFormFields$","objectType","fieldGroups$","listAllObjectFormFieldGroups$","tap","next","switchMap","forkJoin","fieldSchemas","fieldGroups","empty","length","EMPTY","OK","catchError","error","ERROR","errorSnackbar","onSave","fields","take","SAVING","validateAndCreateCrmObject$","err","previewCrmObject","setPreviewCrmObject","close","subscribe","trackEvent","defaultMessage","message","translatedDefaultMessage","getTranslationByObjectType","openErrorSnack","duration","SNACKBAR_DURATION","onCancel","ɵɵdirectiveInject","MatDialogRef","CrmInjectionToken","CrmFormService","SnackbarService","ActivatedRoute","PreviewObjectService","CRMTrackingService","TranslateByObjectTypeService","selectors","inputs","standalone","features","ɵɵStandaloneFeature","decls","vars","consts","template","rf","ctx","ɵɵelementStart","ɵɵlistener","$event","ɵɵelementEnd","ɵɵproperty","ɵɵpipeBind1","ɵɵpureFunction0","_c0","CommonModule","AsyncPipe","GalaxyPageModule","MatButtonModule","MatIconModule","RouterModule","TranslationModule","TranslatePipe","CrmModelDrivenFormComponent","MatDialogModule","encapsulation","_CreateContactModalComponent","CrmCreateModalContactComponent","init_create_crm_contact_modal_component","__esmMin","init_create_modal_component","init_tokens_and_interfaces","constructor","objectType","selectors","standalone","features","ɵɵProvidersFeature","provide","ModelDrivenFormFieldOptionsInjectionToken","useFactory","modelDrivenFormFieldOptionsInjectionTokenGenerator","PageAnalyticsInjectionToken","pageAnalyticsInjectionTokenGenerator","ɵɵStandaloneFeature","decls","vars","consts","template","rf","ctx","ɵɵelement","ɵɵproperty","CreateContactModalComponent","encapsulation","_CrmCreateModalContactComponent","init_create_crm_object_modal","__esmMin","init_create_crm_contact_modal_component","init_create_modal_component","ɵɵelementContainerStart","ɵɵelementStart","ɵɵtext","ɵɵelementEnd","ɵɵadvance","ɵɵproperty","ɵɵtextInterpolate1","contact_r2","jobTitle","ɵɵpropertyInterpolate1","phone","ɵɵsanitizeUrl","ɵɵpropertyInterpolate","linkedInUrl","ɵɵelement","tags","ɵɵlistener","ɵɵrestoreView","_r1","ɵɵnextContext","$implicit","ctx_r2","ɵɵresetView","removeAssociation","editTags","ɵɵtemplate","CompanyToContactAssociationsCardComponent_ng_container_10_crm_association_card_1_ng_container_1_Template","CompanyToContactAssociationsCardComponent_ng_container_10_crm_association_card_1_ng_container_2_Template","CompanyToContactAssociationsCardComponent_ng_container_10_crm_association_card_1_ng_container_3_Template","CompanyToContactAssociationsCardComponent_ng_container_10_crm_association_card_1_ng_container_4_Template","campaignAction","length","CompanyToContactAssociationsCardComponent_ng_container_10_crm_association_card_1_Template","userName","_r4","showMore","ɵɵpipeBind2","ɵɵpureFunction1","_c0","pageSize","CompanyToContactAssociationsCardComponent","init_company_to_contact_associations_card_component","__esmMin","init_common","init_core","init_button","init_card","init_dialog","init_expansion","init_icon","init_menu","init_tooltip","init_alert","init_contact_info_card","init_chips","init_esm","init_operators","init_model_driven_form","init_tokens_and_interfaces","init_constants","init_i18n","init_create_crm_object_modal","init_shared_services","init_association_card","init_select_object_type_modal_component","init_remove_association_dialog_component","init_add_campaign_dialog_component","constructor","config","objectService","fieldService","associationService","dialog","translateService","contactCustomizationService","companyCustomizationService","crmAssociationService","snackService","defaultAssociationActionsService","data","inject","COMPANY_PROFILE_CARD_DATA_TOKEN","loadAssociations$$","BehaviorSubject","preSelectedRows$$","canOpenModal","removedAssociationIds$$","openCreateContactModal$$","ReplaySubject","openCreateContactModal$","asObservable","newContact$$","changedAssociations$$","visibleContactsCount$$","injector","Injector","label","instant","callback","openCampaignDialog","id","setCrmObjectIdToAssociate","company_id","fullName$","getMultiObject","pipe","map","resp","object","crmObjects","getRowFullName","existingAssociations$","getCachedContactAssociationsForCompany$","hasMore$","combineLatest","existing","visibleContactsCount","latestContacts$","routePrefix$","routePrefix","copyCrmObject","changed","associations","slice","associatedObjects","association","associationId","associationType","associatedObject","combinedData","existingAssociationsCombined","next","combineAssociationsWithChanges","filter","index","array","findIndex","a","fullName","phoneParsed","parsePhoneNumber","getFieldValueFromCrmObject","StandardExternalIds","PhoneNumber","stringValue","companyName","name","type","tag","formatAsReadonlyPhone","email","Email","StandardIds","ContactJobTitle","ContactLinkedInURL","crmObjectId","profileButtonUrl","PAGE_ROUTES","CONTACT","ROOT","SUBROUTES","PROFILE","replace","contacts$","contacts","removed","contact","includes","modalData$","objectIdAndName","newContact","modalTitle","primarySelect","description","selectedRows","selectedCompanyNames","fromId","copyCrmObjects","newSelection","ngOnInit","switchMap","shouldOpen","open","CrmCreateModalContactComponent","width","afterClosed","of","subscribe","openModal","take","tap","SelectObjectTypeModalComponent","baseColumnIds","objectType","hideCreateButton","create","providers","provide","PageAnalyticsInjectionToken","useFactory","pageAnalyticsInjectionTokenGenerator","GalaxyFilterChipInjectionToken","tableFiltersInjectionTokenGenerator","parent","modalResponse","clickedCreate","Array","selectedContactsIDs","row","objects","selectedObjects","updatedObjects","setCopyCrmObjects","mergeMap","createAssociation$","respCount","error","openSuccessSnack","duration","SNACKBAR_DURATION","interpolateTranslateParams","createdCount","totalCount","copyCrmObjectsUpdated","cardData","RemoveAssociationDialogComponent","associationID","fromName","removeName","success","value","getValue","editTagsAction","edited","AddCampaignDialogComponent","ɵɵdirectiveInject","CrmInjectionToken","CrmObjectService","CrmFieldService","CrmAssociationService","MatDialog","TranslateService","ContactTableCustomizationService","CompanyTableCustomizationService","SnackbarService","DefaultAssociationActionsService","selectors","standalone","features","ɵɵProvidersFeature","ɵɵStandaloneFeature","decls","vars","consts","template","rf","ctx","CompanyToContactAssociationsCardComponent_ng_container_10_Template","CompanyToContactAssociationsCardComponent_button_12_Template","ɵɵtextInterpolate","ɵɵpipeBind1","CommonModule","NgForOf","NgIf","AsyncPipe","TranslationModule","TranslatePipe","MatExpansionModule","MatExpansionPanel","MatExpansionPanelHeader","MatExpansionPanelTitle","AssociationCardComponent","CommonAssociationCardContentComponent","TagsComponent","GalaxyAlertModule","MatIconModule","MatIcon","MatButtonModule","MatButton","MatTooltipModule","MatMenuModule","GalaxyContactInfoCardModule","MatDialogModule","MatCardModule","MatCardSubtitle","styles","_CompanyToContactAssociationsCardComponent","ɵɵelementContainerStart","ɵɵelementStart","ɵɵelement","ɵɵelementEnd","ɵɵadvance","ɵɵproperty","company_r2","tags","ɵɵlistener","ɵɵrestoreView","_r1","ɵɵnextContext","$implicit","ctx_r2","ɵɵresetView","removeAssociation","editTags","ɵɵtemplate","ContactToCompanyAssociationsCardComponent_ng_container_10_crm_association_card_1_ng_container_1_Template","length","ContactToCompanyAssociationsCardComponent_ng_container_10_crm_association_card_1_Template","businessName","ContactToCompanyAssociationsCardComponent","init_contact_to_company_associations_card_component","__esmMin","init_common","init_core","init_button","init_dialog","init_expansion","init_icon","init_esm","init_operators","init_menu","init_tooltip","init_chips","init_tokens_and_interfaces","init_constants","init_translation_module","init_association_card","init_shared_services","init_select_object_type_modal_component","init_common_association_card_content_component","init_remove_association_dialog_component","init_select_associations_modal_component","constructor","config","objectService","fieldService","associationService","dialog","translateService","contactCustomizationService","companyCustomizationService","crmAssociationService","snackService","defaultAssociationActionsService","data","inject","CONTACT_PROFILE_CARD_DATA_TOKEN","loadAssociations$$","BehaviorSubject","preSelectedRows$$","canOpenModal","removedAssociationIds$$","hasAssociation","changedAssociations$$","injector","Injector","setCrmObjectIdToAssociate","id","fullName$","getMultiObject","pipe","map","resp","object","crmObjects","getRowFullName","getAssociations$","getCompanyAssociationsForContact$","existingAssociations$","getRemainingCompanyAssociationsForContacts$","latestCompanies$","switchMap","combineLatest","routePrefix$","tap","next","associations","routePrefix","copyCrmObject","existing","changed","associatedObjects","association","associationId","associationType","associatedObject","combinedData","existingAssociationsCombined","combineAssociationsWithChanges","filter","index","array","findIndex","a","contactName","name","type","getFieldValueFromCrmObject","SystemFieldIds","CompanyID","stringValue","StandardIds","CompanyName","businessAddress","address1","CompanyPrimaryAddressLine1","address2","CompanyPrimaryAddressLine2","city","CompanyPrimaryAddressCity","state","CompanyPrimaryAddressState","country","CompanyPrimaryAddressCountry","zip","CompanyPrimaryAddressPostalCode","businessWebsite","CompanyWebsite","phone","CompanyPhoneNumber","profileButtonUrl","PAGE_ROUTES","COMPANY","ROOT","SUBROUTES","PROFILE","replace","crmObjectId","companies$","asObservable","companies","removed","company","includes","modalData$","fullName","preSelectedRows","modalTitle","primarySelect","description","selectedRows","newSelection","openModal","take","open","SelectObjectTypeModalComponent","baseColumnIds","objectType","instant","contactFullName","hideCreateButton","create","providers","provide","PageAnalyticsInjectionToken","useFactory","pageAnalyticsInjectionTokenGenerator","GalaxyFilterChipInjectionToken","tableFiltersInjectionTokenGenerator","parent","afterClosed","result","Array","selectedCompaniesIDs","row","copyCrmObjects","objects","selectedObjects","updatedObjects","setCopyCrmObjects","mergeMap","createContactCompanyAssociation$","SelectAssociationsModalComponent","subscribe","respCount","error","openSuccessSnack","duration","SNACKBAR_DURATION","interpolateTranslateParams","createdCount","totalCount","copyCrmObjectsUpdated","cardData","RemoveAssociationDialogComponent","width","associationID","fromName","removeName","success","value","getValue","editTagsAction","edited","ɵɵdirectiveInject","CrmInjectionToken","CrmObjectService","CrmFieldService","CrmAssociationService","MatDialog","TranslateService","ContactTableCustomizationService","CompanyTableCustomizationService","SnackbarService","DefaultAssociationActionsService","selectors","standalone","features","ɵɵProvidersFeature","ɵɵStandaloneFeature","decls","vars","consts","template","rf","ctx","ɵɵtext","ContactToCompanyAssociationsCardComponent_ng_container_10_Template","ɵɵtextInterpolate","ɵɵpipeBind1","ɵɵtextInterpolate1","CommonModule","NgForOf","NgIf","AsyncPipe","TranslationModule","TranslatePipe","MatExpansionModule","MatExpansionPanel","MatExpansionPanelHeader","MatExpansionPanelTitle","AssociationCardComponent","CommonAssociationCardContentComponent","TagsComponent","MatButtonModule","MatButton","MatIconModule","MatIcon","MatTooltipModule","MatMenuModule","MatDialogModule","styles","_ContactToCompanyAssociationsCardComponent","init_association_panel_components","__esmMin","init_association_card","init_parent_child_company_associations_card_component","init_remove_association_dialog_component","init_select_associations_modal_component","init_company_to_contact_associations_card_component","init_contact_to_company_associations_card_component","ɵɵelementStart","ɵɵtext","ɵɵelementEnd","ɵɵadvance","ɵɵtextInterpolate","ctx_r0","userName","ɵɵelementContainerStart","ɵɵtemplate","UserCellComponent_ng_container_0_div_1_Template","ɵɵproperty","user_r2","NO_VALUE_FOR_USER","blank_r3","ɵɵelement","UserCellComponent","init_user_component","__esmMin","init_core","init_operators","init_esm","init_common","init_table","init_rxjs_interop","init_shared_services","CustomCellComponent","value","newValues","fieldValues","set","constructor","userService","signal","user","computed","displayName","toObservable","pipe","switchMap","userId","find","fieldValue","fieldId","SystemFieldIds","ActivityOwnerID","stringValue","of","getMultiUsers","takeUntilDestroyed","subscribe","result","length","ɵɵdirectiveInject","ActivityAssigneeService","selectors","standalone","features","ɵɵInheritDefinitionFeature","ɵɵStandaloneFeature","decls","vars","consts","template","rf","ctx","UserCellComponent_ng_container_0_Template","UserCellComponent_ng_template_1_Template","ɵɵtemplateRefExtractor","UserCellComponent_ng_template_3_Template","loading_r4","CommonModule","NgIf","BlankValueComponent","encapsulation","_UserCellComponent","ɵɵelementStart","ɵɵtext","ɵɵelementEnd","ɵɵadvance","ɵɵtextInterpolate1","ɵɵpipeBind2","ɵɵpureFunction1","_c0","ctx_r0","daysOverdue","hoursOverdue","ɵɵtemplate","DueDateCellComponent_ng_container_0_div_1_span_4_Template","DueDateCellComponent_ng_container_0_div_1_ng_template_5_Template","ɵɵtemplateRefExtractor","ɵɵtextInterpolate","date","dateFormat","ɵɵproperty","showInHours_r2","ɵɵelementContainerStart","DueDateCellComponent_ng_container_0_div_1_Template","DueDateCellComponent_ng_container_0_ng_template_2_Template","isOverdue","notOverdue_r3","ɵɵelement","DueDateCellComponent","init_due_date_component","__esmMin","init_common","init_ngx_translate_core","init_pipes","init_table","init_date_utils","init_shared_services","init_tokens_and_interfaces","CustomCellComponent","value","newValues","dueDateField","filter","Boolean","find","field","fieldId","StandardIds","ActivityTaskDueDate","dateValue","undefined","statusField","ActivityTaskStatus","timeOverdue","getTimeOverdue","stringValue","Open","days","hours","dueDate","todayHours","Date","now","milisecToHours","dueDateHours","getTime","Math","floor","constructor","DateFormat","medium","selectors","standalone","features","ɵɵInheritDefinitionFeature","ɵɵStandaloneFeature","decls","vars","consts","template","rf","ctx","DueDateCellComponent_ng_container_0_Template","DueDateCellComponent_ng_template_1_Template","blank_r4","CommonModule","NgIf","BlankValueComponent","GalaxyPipesModule","GalaxyDatePipe","TranslateModule","TranslatePipe","styles","_DueDateCellComponent","init_custom_table_cells","__esmMin","init_user_component","init_due_date_component","init_list_objects","__esmMin","init_list_objects_page_component","init_list_objects_table_service","init_list_objects_table_component","init_content_directive","init_page_actions_directive","init_delete_modal_component","OnResizeDirective","init_on_resize_directive","__esmMin","init_core","onWindowResize","resizeDetected","emit","constructor","element","EventEmitter","window","ResizeObserver","resizeObserver","observe","nativeElement","ɵɵdirectiveInject","ElementRef","selectors","hostBindings","rf","ctx","ɵɵlistener","ɵɵresolveWindow","_OnResizeDirective","ɵɵelement","ɵɵstyleProp","ctx_r1","maxHeightPx","ɵɵelementStart","ɵɵlistener","ɵɵrestoreView","_r3","ɵɵnextContext","ɵɵresetView","toggleCollapsed","ɵɵtext","ɵɵelementEnd","ɵɵproperty","ɵɵpureFunction1","_c3","collapsed","ɵɵadvance","ɵɵtextInterpolate1","ɵɵpipeBind1","CollapsibleSectionComponent","init_collapsible_section_component","__esmMin","init_common","init_core","init_ngx_translate_core","init_translation_module","init_on_resize_directive","init_observers","constructor","showBorderWhenCollapsed","signal","collapsible","update","value","checkForOverflow","element","collapsibleContentContainer","nativeElement","isOverflow","scrollHeight","offsetHeight","set","selectors","viewQuery","rf","ctx","i0","_r1","ɵɵprojection","ɵɵtemplate","CollapsibleSectionComponent_div_4_Template","CollapsibleSectionComponent_p_5_Template","undefined","ɵɵpureFunction2","_c2","CommonModule","NgClass","NgIf","TranslateModule","TranslatePipe","TranslationModule","ObserversModule","CdkObserveContent","OnResizeDirective","styles","_CollapsibleSectionComponent","CrmUnknownUserAvatarComponent","init_unknown_user_avatar_component","__esmMin","init_common","init_avatar","init_constants","constructor","width","AVATAR_WIDTH","selectors","inputs","standalone","features","ɵɵProvidersFeature","ɵɵStandaloneFeature","decls","vars","consts","template","rf","ctx","ɵɵelement","ɵɵproperty","CommonModule","GalaxyAvatarModule","AvatarComponent","encapsulation","_CrmUnknownUserAvatarComponent","getActivityUrl","activityUrl","urlToCheck","startsWith","url","URL","host","toString","test","window","location","protocol","pathname","init_activity_url_builder","__esmMin","ɵɵelementStart","ɵɵelement","ɵɵelementEnd","ɵɵadvance","ɵɵproperty","ctx_r0","AVATAR_WIDTH","ɵɵtext","ɵɵtextInterpolate1","ɵɵpipeBind2","effectiveDate","dateFormat","ɵɵtextInterpolate","body","activityUrl","ɵɵsanitizeUrl","activityUrlName","CrmActivityCommunicationComponent","init_activity_communication_component","__esmMin","init_ngx_translate_core","init_constants","init_translation_module","init_collapsible_section_component","init_common","init_field_service","init_card","init_date_utils","init_avatar","init_activity_url_builder","activity","setActivityData","constructor","fieldService","showAvatar","DateFormat","medium","sourceName","getStringFieldData","StandardIds","ActivityCommunicationBody","getFieldValueFromCrmObject","SystemFieldIds","ActivityEffectiveDate","dateValue","ActivitySourceName","getActivityUrl","ActivityUrl","ActivityUrlName","fieldId","stringValue","ɵɵdirectiveInject","CrmFieldService","selectors","inputs","standalone","features","ɵɵStandaloneFeature","decls","vars","consts","template","rf","ctx","ɵɵtemplate","CrmActivityCommunicationComponent_div_2_Template","CrmActivityCommunicationComponent_p_8_Template","CrmActivityCommunicationComponent_div_10_Template","CrmActivityCommunicationComponent_div_11_Template","ɵɵstyleProp","toString","ɵɵtextInterpolate2","ɵɵpipeBind1","CommonModule","NgIf","DatePipe","TranslateModule","TranslatePipe","TranslationModule","CollapsibleSectionComponent","MatCardModule","MatCard","MatCardAvatar","MatCardContent","MatCardHeader","MatCardSubtitle","MatCardTitle","GalaxyAvatarModule","AvatarComponent","styles","_CrmActivityCommunicationComponent","DefaultChipStyling","init_interfaces","__esmMin","selectedChipColor","unselectedChipColor","ɵɵelementStart","ɵɵtext","ɵɵelementEnd","ɵɵproperty","ctx_r1","size","ɵɵadvance","ɵɵtextInterpolate1","chipIcon_r1","SelectedChipIcon","ChipComponent","init_chip_component","__esmMin","init_core","init_icon","init_badge","init_coercion","init_interfaces","init_common","init_ngx_translate_core","constructor","_icon","signal","undefined","_selected","_hideLabelWhenSelected","label","color","computed","DefaultChipStyling","selectedChipColor","unselectedChipColor","chipIcon","hideLabel","hideLabelWhenSelected","value","set","icon","selected","selectors","inputs","ɵɵInputFlags","HasDecoratorInputTransform","coerceBooleanProperty","standalone","features","ɵɵInputTransformsFeature","ɵɵStandaloneFeature","decls","vars","consts","template","rf","ctx","ɵɵelement","ɵɵtemplate","ChipComponent_mat_icon_3_Template","ɵɵclassProp","ɵɵpipeBind1","CommonModule","NgClass","NgIf","GalaxyBadgeModule","BadgeComponent","MatIconModule","MatIcon","MatRippleModule","MatRipple","TranslateModule","TranslatePipe","styles","changeDetection","_ChipComponent","ɵɵelement","ɵɵclassProp","index_r4","ctx_r2","focusedIndex","ɵɵelementStart","ɵɵlistener","item_r2","ɵɵrestoreView","_r1","$implicit","ɵɵnextContext","ɵɵresetView","handleChipClick","value","ɵɵelementEnd","ɵɵtemplate","ChipListComponent_div_2_div_2_Template","ɵɵadvance","ɵɵproperty","hideLabelWhenSelected","label","icon","selected","size","captureFocus","ChipListComponent","init_chip_list_component","__esmMin","init_core","init_chip_component","init_common","init_coercion","constructor","items","selectedChange","EventEmitter","onFocusIn","findIndex","item","onFocusOut","setSelected","handleKeyDown","event","code","length","target","HTMLElement","nextElementSibling","focus","preventDefault","emit","selectors","hostBindings","rf","ctx","coerceBooleanProperty","outputs","standalone","features","ɵɵInputTransformsFeature","ɵɵStandaloneFeature","decls","vars","consts","template","$event","ChipListComponent_div_2_Template","ChipComponent","CommonModule","NgClass","NgForOf","NgIf","styles","changeDetection","_ChipListComponent","init_chip_list","__esmMin","init_chip_list_component","ActivityLoggerService","init_activity_logger_service","__esmMin","init_vendasta_iamv2","init_esm","init_operators","init_tokens_and_interfaces","constructor","config","activityService","iamService","user$","Observable","currentUserId$","pipe","distinctUntilChanged","switchMap","currentUserId","getUser","UserIdentifier","userId","map","user","__spreadProps","__spreadValues","fullName","firstName","lastName","trim","shareReplay","addActivity","activityType","fields","associations","ownerId","cleanAssociations","association","crmObjectId","crmObjectType","activity","crmObjectSubtype","createActivity","getActivity","activityId","getMultiActivities","activities","updateActivity","fieldMask","forEach","push","length","includes","filter","path","paths","of","ɵɵinject","CrmInjectionToken","ActivityService","IAMService","factory","ɵfac","_ActivityLoggerService","init_interfaces","__esmMin","CrmLoggerContentDirective","init_logger_content_directive","__esmMin","crmLoggerContent","value","placement","selectors","inputs","standalone","_CrmLoggerContentDirective","ɵɵelementStart","ɵɵtext","ɵɵelementEnd","ɵɵadvance","ɵɵtextInterpolate1","ɵɵpipeBind1","ɵɵelementContainerStart","ɵɵtemplate","CrmActivityLoggerCallComponent_ng_container_8_glxy_error_1_Template","ɵɵproperty","ctx_r0","formGroup","controls","loggedCallNote","hasError","CrmActivityLoggerCallComponent_ng_container_17_glxy_error_1_Template","loggedCallDate","CrmActivityLoggerCallComponent_ng_container_27_glxy_error_1_Template","loggedCallDirection","CrmActivityLoggerCallComponent","init_call_component","__esmMin","init_text_field","init_common","init_core","init_forms","init_datepicker","init_input","init_select","init_ngx_translate_core","init_form_field","init_esm","init_field_service","init_translation_module","init_activity_interface","init_validators","init_coercion","init_rxjs_interop","activity","value","setValues","description","patchValue","emitEvent","constructor","fieldsService","mobile","descriptionChange","EventEmitter","showErrors","ActivityDirection","CallStatus","ActivityOutcome","textRows","FormBuilder","nonNullable","group","formatDate","Date","loggedCallStatus","loggedCallOutcome","validators","requiredFormGroupFieldsIf","valueChanges","pipe","takeUntilDestroyed","distinctUntilChanged","subscribe","emit","ngAfterViewInit","defaultInput","nativeElement","focus","validate","markAllAsTouched","updateValueAndValidity","callDate","getFieldValueFromCrmObject","StandardIds","ActivityCallDate","callBody","ActivityCallBody","callDirection","ActivityCallDirection","callStatus","ActivityCallStatus","callOutcome","ActivityCallOutcome","setValue","stringValue","dateValue","dirty","resetForm","getValues","formValues","getRawValue","fieldId","undefined","reset","ɵɵdirectiveInject","CrmFieldService","selectors","viewQuery","rf","ctx","coerceBooleanProperty","outputs","standalone","features","ɵɵInputTransformsFeature","ɵɵStandaloneFeature","ngContentSelectors","_c3","decls","vars","consts","template","ɵɵelement","CrmActivityLoggerCallComponent_ng_container_8_Template","ɵɵprojection","CrmActivityLoggerCallComponent_ng_container_17_Template","CrmActivityLoggerCallComponent_ng_container_27_Template","ɵɵpropertyInterpolate","ɵɵclassProp","Outbound","ɵɵtextInterpolate","Inbound","Connected","Busy","Rejected","Voicemail","NoAnswer","NotInService","WrongNumber","NoInterest","Interested","QualityConnect","Demo","Timeline","Rescheduling","Referred","CommonModule","NgIf","TranslateModule","TranslatePipe","TranslationModule","GalaxyFormFieldModule","FormFieldComponent","FormRowComponent","ErrorDirective","MatSelectModule","MatSelect","MatOption","MatDatepickerModule","MatDatepicker","MatInputModule","MatInput","CdkTextareaAutosize","ReactiveFormsModule","ɵNgNoValidate","DefaultValueAccessor","NgControlStatus","NgControlStatusGroup","FormGroupDirective","FormControlName","TextFieldModule","styles","_CrmActivityLoggerCallComponent","ɵɵelementStart","ɵɵtext","ɵɵelementEnd","ɵɵadvance","ɵɵtextInterpolate1","ɵɵpipeBind1","ɵɵelementContainerStart","ɵɵtemplate","CrmActivityLoggerEmailComponent_ng_container_8_glxy_error_1_Template","ɵɵproperty","ctx_r0","formGroup","controls","loggedEmailDescription","hasError","CrmActivityLoggerEmailComponent_ng_container_17_glxy_error_1_Template","loggedEmailDate","CrmActivityLoggerEmailComponent_ng_container_30_glxy_error_1_Template","loggedEmailDirection","CrmActivityLoggerEmailComponent","init_email_component","__esmMin","init_text_field","init_common","init_core","init_forms","init_datepicker","init_icon","init_input","init_select","init_ngx_translate_core","init_form_field","init_esm","init_shared_services","init_translation_module","init_activity_interface","init_validators","init_coercion","init_rxjs_interop","activity","value","setValues","description","patchValue","emitEvent","constructor","fieldsService","mobile","descriptionChange","EventEmitter","showErrors","ActivityDirection","textRows","FormBuilder","nonNullable","group","formatDate","Date","validators","requiredFormGroupFieldsIf","valueChanges","pipe","takeUntilDestroyed","distinctUntilChanged","subscribe","emit","ngAfterViewInit","defaultInput","nativeElement","focus","validate","markAllAsTouched","updateValueAndValidity","emailDate","getFieldValueFromCrmObject","StandardIds","ActivityEmailDate","emailBody","ActivityEmailBody","emailDirection","ActivityEmailDirection","setValue","stringValue","dateValue","dirty","resetForm","getValues","formValues","getRawValue","fieldId","undefined","reset","ɵɵdirectiveInject","CrmFieldService","selectors","viewQuery","rf","ctx","coerceBooleanProperty","outputs","standalone","features","ɵɵInputTransformsFeature","ɵɵStandaloneFeature","ngContentSelectors","_c3","decls","vars","consts","template","ɵɵelement","CrmActivityLoggerEmailComponent_ng_container_8_Template","ɵɵprojection","CrmActivityLoggerEmailComponent_ng_container_17_Template","CrmActivityLoggerEmailComponent_ng_container_30_Template","ɵɵpropertyInterpolate","ɵɵclassProp","Outbound","ɵɵtextInterpolate","Inbound","Forwarded","CommonModule","NgIf","TranslateModule","TranslatePipe","TranslationModule","MatIconModule","GalaxyFormFieldModule","FormFieldComponent","FormRowComponent","ErrorDirective","MatSelectModule","MatSelect","MatOption","MatDatepickerModule","MatDatepicker","MatInputModule","MatInput","CdkTextareaAutosize","ReactiveFormsModule","ɵNgNoValidate","DefaultValueAccessor","NgControlStatus","NgControlStatusGroup","FormGroupDirective","FormControlName","TextFieldModule","styles","_CrmActivityLoggerEmailComponent","ɵɵelementStart","ɵɵtext","ɵɵelementEnd","ɵɵadvance","ɵɵtextInterpolate1","ɵɵpipeBind1","ɵɵelementContainerStart","ɵɵtemplate","CrmActivityLoggerMeetingComponent_ng_container_8_glxy_error_1_Template","ɵɵproperty","ctx_r0","formGroup","controls","loggedMeetingNote","hasError","CrmActivityLoggerMeetingComponent_ng_container_17_glxy_error_1_Template","loggedMeetingDate","CrmActivityLoggerMeetingComponent_ng_container_58_glxy_error_1_Template","loggedMeetingStatus","CrmActivityLoggerMeetingComponent","init_meeting_component","__esmMin","init_text_field","init_common","init_core","init_forms","init_input","init_ngx_translate_core","init_form_field","init_field_service","init_translation_module","init_esm","init_datepicker","init_select","init_activity_interface","init_validators","init_coercion","init_rxjs_interop","activity","value","setValues","description","patchValue","emitEvent","constructor","fieldsService","mobile","descriptionChange","EventEmitter","showErrors","ActivityOutcome","MeetingDuration","MeetingStatus","textRows","FormBuilder","nonNullable","group","loggedMeetingOutcome","loggedMeetingDuration","formatDate","Date","validators","requiredFormGroupFieldsIf","valueChanges","pipe","takeUntilDestroyed","distinctUntilChanged","subscribe","emit","ngAfterViewInit","defaultInput","nativeElement","focus","resetForm","reset","updateValueAndValidity","getValues","formValues","getRawValue","fieldId","StandardIds","ActivityMeetingStartTime","dateValue","undefined","ActivityMeetingBody","stringValue","ActivityMeetingStatus","ActivityMeetingOutcome","ActivityMeetingDuration","integerValue","meetingDate","getFieldValueFromCrmObject","meetingBody","meetingStatus","meetingOutcome","meetingDuration","setValue","dirty","validate","markAllAsTouched","ɵɵdirectiveInject","CrmFieldService","selectors","viewQuery","rf","ctx","coerceBooleanProperty","outputs","standalone","features","ɵɵInputTransformsFeature","ɵɵStandaloneFeature","ngContentSelectors","_c3","decls","vars","consts","template","ɵɵelement","CrmActivityLoggerMeetingComponent_ng_container_8_Template","ɵɵprojection","CrmActivityLoggerMeetingComponent_ng_container_17_Template","CrmActivityLoggerMeetingComponent_ng_container_58_Template","ɵɵpropertyInterpolate","ɵɵclassProp","FiveMin","FifteenMin","ThirtyMin","OneHour","OneHourThirtyMin","TwoHoursPlus","Scheduled","Rescheduled","Completed","Cancelled","NoShow","ɵɵtextInterpolate","NoInterest","Interested","QualityConnect","Demo","Timeline","Rescheduling","Referred","CommonModule","NgIf","TranslateModule","TranslatePipe","TranslationModule","GalaxyFormFieldModule","FormFieldComponent","FormRowComponent","ErrorDirective","MatInputModule","MatInput","CdkTextareaAutosize","ReactiveFormsModule","ɵNgNoValidate","DefaultValueAccessor","NgControlStatus","NgControlStatusGroup","FormGroupDirective","FormControlName","TextFieldModule","MatDatepickerModule","MatDatepicker","MatSelectModule","MatSelect","MatOption","styles","_CrmActivityLoggerMeetingComponent","ɵɵelementStart","ɵɵtext","ɵɵelementEnd","ɵɵadvance","ɵɵtextInterpolate1","ɵɵpipeBind1","ɵɵelementContainerStart","ɵɵtemplate","CrmActivityLoggerNoteComponent_ng_container_8_glxy_error_1_Template","ɵɵproperty","ctx_r0","formGroup","controls","noteBody","hasError","CrmActivityLoggerNoteComponent","init_note_component","__esmMin","init_text_field","init_common","init_core","init_forms","init_autocomplete","init_chips","init_icon","init_input","init_tooltip","init_ngx_translate_core","init_form_field","init_field_service","init_translation_module","init_validators","init_coercion","init_rxjs_interop","init_esm","init_tokens_and_interfaces","activity","value","setValues","description","patchValue","emitEvent","constructor","config","fieldsService","mobile","descriptionChange","EventEmitter","showErrors","textRows","FormBuilder","nonNullable","group","validators","requiredFormGroupFieldsIf","separatorKeyCodes","ENTER","COMMA","valueChanges","pipe","takeUntilDestroyed","distinctUntilChanged","subscribe","emit","ngAfterViewInit","defaultInput","nativeElement","focus","resetForm","reset","updateValueAndValidity","getValues","formValues","getRawValue","fieldId","StandardIds","ActivityNoteBody","stringValue","getFieldValueFromCrmObject","setValue","dirty","validate","markAllAsTouched","ɵɵdirectiveInject","CrmInjectionToken","CrmFieldService","selectors","viewQuery","rf","ctx","coerceBooleanProperty","outputs","standalone","features","ɵɵInputTransformsFeature","ɵɵStandaloneFeature","ngContentSelectors","_c3","decls","vars","consts","template","ɵɵelement","CrmActivityLoggerNoteComponent_ng_container_8_Template","ɵɵprojection","ɵɵpropertyInterpolate","CommonModule","NgIf","TranslateModule","TranslatePipe","TranslationModule","MatIconModule","MatChipsModule","GalaxyFormFieldModule","FormFieldComponent","FormRowComponent","ErrorDirective","MatInputModule","MatInput","CdkTextareaAutosize","ReactiveFormsModule","ɵNgNoValidate","DefaultValueAccessor","NgControlStatus","NgControlStatusGroup","FormGroupDirective","FormControlName","TextFieldModule","MatAutocompleteModule","MatTooltipModule","styles","_CrmActivityLoggerNoteComponent","CrmActivityLoggerTeamAssociationComponent","init_team_association_component","__esmMin","init_common","init_core","init_association_component","init_coercion","init_association_field_component","init_esm","init_shared_services","CrmActivityLoggerAssociationField","constructor","fixedId","mobile","placeholder","associationsChange","EventEmitter","customizationService","inject","CompanyTableCustomizationService","crmObjectType","userService","config","services","filteredAssociationsList","computed","associationsList","filter","association","crmObjectId","associations","value","setAssociations","fetchObjects","objectIds","__async","users","firstValueFrom","getMultiUsers","mapAssociations","setupSearchTerm","searchTerm$$","asObservable","pipe","debounceTime","distinctUntilChanged","switchMap","search","searchUsers","of","map","filteredOptions","o","option","name","displayName","userId","handleAdd","find","a","newAssociations","set","emit","handleRemove","handleSearchTermChange","searchTerm","updateSearchTerm","t","selectors","inputs","ɵɵInputFlags","HasDecoratorInputTransform","coerceBooleanProperty","outputs","standalone","features","ɵɵInputTransformsFeature","ɵɵInheritDefinitionFeature","ɵɵStandaloneFeature","decls","vars","consts","template","rf","ctx","ɵɵelementStart","ɵɵlistener","$event","ɵɵelementEnd","ɵɵproperty","tmp_3_0","ɵɵpipeBind1","options$","undefined","ɵɵpureFunction0","_c0","CommonModule","AsyncPipe","CrmActivityLoggerAssociationComponent","encapsulation","_CrmActivityLoggerTeamAssociationComponent","CrmActivityLoggerOpportunityAssociationComponent","init_opportunity_association_component","__esmMin","init_common","init_core","init_association_component","init_coercion","init_association_field_component","init_esm","init_shared_services","CrmActivityLoggerAssociationField","constructor","mobile","placeholder","associationsChange","EventEmitter","customizationService","inject","CompanyTableCustomizationService","crmObjectType","opportunityService","config","services","accountGroupId","value","setAccountGroupId","associations","setAssociations","fetchObjects","objectIds","__async","opportunities","firstValueFrom","getMultiOpportunity","mapAssociations","setupSearchTerm","searchTerm$$","asObservable","pipe","debounceTime","distinctUntilChanged","switchMap","search","searchOpportunities","of","map","filteredOptions","option","name","crmObjectId","opportunityId","handleAdd","association","associationsList","find","a","newAssociations","set","emit","handleRemove","filter","handleSearchTermChange","searchTerm","updateSearchTerm","t","selectors","inputs","ɵɵInputFlags","HasDecoratorInputTransform","coerceBooleanProperty","outputs","standalone","features","ɵɵInputTransformsFeature","ɵɵInheritDefinitionFeature","ɵɵStandaloneFeature","decls","vars","consts","template","rf","ctx","ɵɵelementStart","ɵɵlistener","$event","ɵɵelementEnd","ɵɵproperty","tmp_2_0","ɵɵpipeBind1","options$","undefined","ɵɵpureFunction0","_c0","CommonModule","AsyncPipe","CrmActivityLoggerAssociationComponent","encapsulation","_CrmActivityLoggerOpportunityAssociationComponent","ɵɵelementContainerStart","ɵɵelementStart","ɵɵlistener","$event","ɵɵrestoreView","_r2","ctx_r2","ɵɵnextContext","ɵɵresetView","removeTag","ɵɵtext","ɵɵelementEnd","ɵɵadvance","ɵɵpropertyInterpolate","tag_r4","ɵɵtextInterpolate1","ɵɵproperty","tag_r5","ɵɵtemplate","CrmActivityLoggerTagsComponent_ng_container_7_mat_option_1_Template","tags_r6","CrmActivityLoggerTagsComponent","init_tags_component","__esmMin","init_coercion","init_common","init_core","init_forms","init_autocomplete","init_chips","init_icon","init_tooltip","init_form_field","init_esm","init_operators","init_tokens_and_interfaces","init_translation_module","init_shared_services","tags","value","activityTags","set","constructor","config","crmObjectService","mobile","tagsChanged","EventEmitter","showErrors","noteTagsCtrl","FormControl","formGroup","FormGroup","loggedNoteTags","separatorKeyCodes","ENTER","COMMA","tagsCtrl","signal","tagTextSearch$","valueChanges","pipe","startWith","filteredTags$","combineLatest","namespace$","debounceTime","switchMap","searchTerm","namespace","listFieldOptions","fieldId","StandardIds","ActivityTags","pageSize","map","resp","options","addNewTag","event","addTag","setValue","selectedTag","tag","option","includes","push","markAsDirty","emit","chip","filter","t","ɵɵdirectiveInject","CrmInjectionToken","CrmObjectService","selectors","inputs","ɵɵInputFlags","HasDecoratorInputTransform","coerceBooleanProperty","outputs","standalone","features","ɵɵInputTransformsFeature","ɵɵStandaloneFeature","decls","vars","consts","template","rf","ctx","CrmActivityLoggerTagsComponent_ng_container_2_Template","i0","_r1","CrmActivityLoggerTagsComponent_ng_container_7_Template","ɵɵpipeBind1","tagGrid_r7","tagAutocomplete_r8","CommonModule","NgForOf","NgIf","AsyncPipe","GalaxyFormFieldModule","ReactiveFormsModule","DefaultValueAccessor","NgControlStatus","FormControlDirective","MatChipsModule","MatChipGrid","MatChipInput","MatChipRemove","MatChipRow","MatIconModule","MatIcon","TranslationModule","TranslatePipe","MatAutocompleteModule","MatAutocomplete","MatOption","MatAutocompleteTrigger","MatTooltipModule","MatTooltip","encapsulation","_CrmActivityLoggerTagsComponent","ɵɵelementStart","ɵɵlistener","ɵɵrestoreView","_r1","ctx_r1","ɵɵnextContext","ɵɵresetView","toggleExpanded","ɵɵtext","ɵɵelementEnd","ɵɵadvance","ɵɵtextInterpolate1","ɵɵpipeBind1","ɵɵproperty","type_r4","value","nameKey","ɵɵelement","ɵɵtemplate","CrmActivityLoggerFollowUpTaskComponent_ng_template_2_mat_option_13_Template","_r3","CrmActivityLoggerFollowUpTaskComponent_ng_template_2_ng_template_17_Template","ɵɵtextInterpolate","formGroup","ɵɵclassProp","mobile","ɵɵpropertyInterpolate","taskTypes","CrmActivityLoggerFollowUpTaskComponent","init_follow_up_task_component","__esmMin","init_core","init_common","init_esm","init_form_field","init_datepicker","init_coercion","init_forms","init_activity_interface","init_input","init_ngx_translate_core","init_text_field","init_select","init_button","init_icon","init_shared_services","init_constants","init_i18n","constructor","fieldsService","translateService","expandedChanged","EventEmitter","isExpanded$$","BehaviorSubject","isExpanded$","asObservable","pipe","tap","isExpanded","emit","today","Date","FormBuilder","nonNullable","group","taskDueDate","formatDate","setDate","getDate","STANDARD_DATE_FORMAT","taskType","ActivityTaskType","ToDo","ActivityTaskTypeTranslationKeys","next","getValues","crmObjectName","formValues","getRawValue","followUpWith","instant","fieldId","getFieldId","StandardIds","ActivityName","stringValue","ActivityTaskDueDate","dateValue","undefined","ActivityTaskStatus","DEFAULT_TASK_STATUS","ngOnDestroy","ɵɵdirectiveInject","CrmFieldService","TranslateService","selectors","viewQuery","rf","ctx","coerceBooleanProperty","outputs","standalone","features","ɵɵInputTransformsFeature","ɵɵStandaloneFeature","decls","vars","consts","template","CrmActivityLoggerFollowUpTaskComponent_button_0_Template","CrmActivityLoggerFollowUpTaskComponent_ng_template_2_Template","ɵɵtemplateRefExtractor","addFollowUp_r5","CommonModule","NgForOf","NgIf","AsyncPipe","TranslateModule","TranslatePipe","TranslationModule","GalaxyFormFieldModule","FormFieldComponent","FormRowComponent","MatInputModule","MatInput","ReactiveFormsModule","ɵNgNoValidate","DefaultValueAccessor","NgControlStatus","NgControlStatusGroup","FormGroupDirective","FormControlName","TextFieldModule","MatDatepickerModule","MatDatepicker","MatSelectModule","MatSelect","MatOption","MatButtonModule","MatButton","MatIconButton","MatIconModule","MatIcon","styles","_CrmActivityLoggerFollowUpTaskComponent","init_logger","__esmMin","init_interfaces","init_logger_content_directive","init_call_component","init_email_component","init_meeting_component","init_note_component","init_task_component","init_contact_association_component","init_company_association_component","init_team_association_component","init_opportunity_association_component","init_tags_component","init_follow_up_task_component","ɵɵelementStart","ɵɵtext","ɵɵelementEnd","ɵɵadvance","ɵɵtextInterpolate1","ɵɵpipeBind1","ɵɵelementContainerStart","ɵɵtemplate","CrmActivityLoggerCommunicationComponent_ng_container_8_glxy_error_1_Template","ɵɵproperty","ctx_r0","formGroup","controls","loggedCommunicationBody","hasError","CrmActivityLoggerCommunicationComponent_ng_container_17_glxy_error_1_Template","loggedCommunicationDate","CrmActivityLoggerCommunicationComponent_ng_container_39_glxy_error_1_Template","loggedCommunicationOutcome","CrmActivityLoggerCommunicationComponent","init_communication_component","__esmMin","init_core","init_common","init_ngx_translate_core","init_translation_module","init_icon","init_form_field","init_select","init_datepicker","init_input","init_forms","init_text_field","init_coercion","init_validators","init_activity_interface","init_esm","init_field_service","init_rxjs_interop","communicationType","value","patchValue","loggedCommunicationChannel","activity","setValues","description","emitEvent","constructor","fieldsService","mobile","descriptionChange","EventEmitter","showErrors","textRows","ActivityOutcome","FormBuilder","nonNullable","group","loggedCommunicationFromId","loggedCommunicationToId","formatDate","Date","validators","requiredFormGroupFieldsIf","valueChanges","pipe","takeUntilDestroyed","distinctUntilChanged","subscribe","emit","ngAfterViewInit","defaultInput","nativeElement","focus","validate","markAllAsTouched","updateValueAndValidity","communicationChannel","getFieldValueFromCrmObject","StandardIds","ActivityCommunicationChannel","communicationOutcome","ActivityCommunicationOutcome","communicationFromId","ActivityCommunicationFromId","communicationToId","ActivityCommunicationToId","communicationBody","ActivityCommunicationBody","communicationDate","ActivityCommunicationDate","setValue","stringValue","dateValue","dirty","resetForm","getValues","formValues","getRawValue","fieldId","undefined","reset","ɵɵdirectiveInject","CrmFieldService","selectors","viewQuery","rf","ctx","coerceBooleanProperty","outputs","standalone","features","ɵɵInputTransformsFeature","ɵɵStandaloneFeature","ngContentSelectors","_c3","decls","vars","consts","template","ɵɵelement","CrmActivityLoggerCommunicationComponent_ng_container_8_Template","ɵɵprojection","CrmActivityLoggerCommunicationComponent_ng_container_17_Template","CrmActivityLoggerCommunicationComponent_ng_container_39_Template","ɵɵpropertyInterpolate","ɵɵclassProp","NoInterest","Interested","QualityConnect","Demo","Timeline","Referred","CommonModule","NgIf","TranslateModule","TranslatePipe","TranslationModule","MatIconModule","GalaxyFormFieldModule","FormFieldComponent","FormRowComponent","ErrorDirective","MatSelectModule","MatSelect","MatOption","MatDatepickerModule","MatDatepicker","MatInputModule","MatInput","CdkTextareaAutosize","ReactiveFormsModule","ɵNgNoValidate","DefaultValueAccessor","NgControlStatus","NgControlStatusGroup","FormGroupDirective","FormControlName","TextFieldModule","styles","_CrmActivityLoggerCommunicationComponent","ɵɵelementContainer","ɵɵelementStart","ɵɵtwoWayListener","$event","ɵɵrestoreView","_r1","ctx_r1","ɵɵnextContext","i0","ɵɵtwoWayBindingSet","sharedDescription","ɵɵresetView","ɵɵtemplate","CrmActivityLoggerComponent_ng_container_0_crm_activity_logger_note_4_ng_container_2_Template","ɵɵelementContainerStart","CrmActivityLoggerComponent_ng_container_0_crm_activity_logger_note_4_ng_container_4_Template","ɵɵelementEnd","ɵɵproperty","ɵɵpipeBind1","activity$","layout_r3","mobile","ɵɵtwoWayProperty","ɵɵadvance","activitySelector_r4","associationFormRow_r5","ɵɵclassProp","addTeamMembers_r6","addOpportunities_r7","addTags_r8","addFollowUpTask_r9","_r10","CrmActivityLoggerComponent_ng_container_0_crm_activity_logger_email_5_ng_container_2_Template","CrmActivityLoggerComponent_ng_container_0_crm_activity_logger_email_5_ng_container_4_Template","_r11","CrmActivityLoggerComponent_ng_container_0_crm_activity_logger_call_6_ng_container_2_Template","CrmActivityLoggerComponent_ng_container_0_crm_activity_logger_call_6_ng_container_4_Template","_r12","CrmActivityLoggerComponent_ng_container_0_crm_activity_logger_meeting_7_ng_container_2_Template","CrmActivityLoggerComponent_ng_container_0_crm_activity_logger_meeting_7_ng_container_4_Template","_r13","CrmActivityLoggerComponent_ng_container_0_crm_activity_logger_task_8_ng_container_3_Template","CrmActivityLoggerComponent_ng_container_0_crm_activity_logger_task_8_ng_container_5_Template","activityOwner","user$","_r14","CrmActivityLoggerComponent_ng_container_0_crm_activity_logger_communication_9_ng_container_2_Template","CrmActivityLoggerComponent_ng_container_0_crm_activity_logger_communication_9_ng_container_4_Template","communicationSubTypeSelected","ɵɵlistener","_r15","handleDefaultStateFocus","ɵɵpropertyInterpolate","ɵɵpureFunction0","_c1","CrmActivityLoggerComponent_ng_container_0_ng_container_11_ng_container_1_Template","formButtons_r16","ɵɵelement","tmp_14_0","user_r17","fullName","undefined","AVATAR_WIDTH","profileImageUrl","CrmActivityLoggerComponent_ng_container_0_ng_template_12_glxy_avatar_1_Template","CrmActivityLoggerComponent_ng_container_0_ng_template_12_ng_template_3_Template","ɵɵtemplateRefExtractor","editing","unknownUserAvatar_r18","communicationType_r21","_r20","$implicit","onCommunicationTypeChanged","value","ɵɵtext","ɵɵtextInterpolate1","label","_r19","onActivityTypeChanged","CrmActivityLoggerComponent_ng_container_0_ng_template_14_div_0_button_12_Template","noMargins_r23","SELECTABLE_ACTIVITY_TYPES","activityTypeSelected","communicationMenu_r22","getTranslatedCommunicationType","SELECTABLE_COMMUNICATION_TYPES","CrmActivityLoggerComponent_ng_container_0_ng_template_14_div_0_Template","_r24","contactAssociations","companyAssociations","crmObjectId$","CrmActivityLoggerComponent_ng_container_0_ng_template_16_glxy_form_row_0_Template","hideAssociations","CrmActivityLoggerComponent_ng_container_0_ng_template_18_ng_template_7_ng_container_0_Template","CrmActivityLoggerComponent_ng_container_0_ng_template_18_ng_template_7_ng_template_1_Template","logActivity_r26","_r25","upsertActivity","CrmActivityLoggerComponent_ng_container_0_ng_template_18_ng_container_6_Template","CrmActivityLoggerComponent_ng_container_0_ng_template_18_ng_template_7_Template","handleCancelClicked","ɵɵstyleProp","upsertActivityButtonLoading$","createActivity_r27","_r28","teamAssociations","activityOwnerId$","CrmActivityLoggerComponent_ng_container_0_ng_template_20_glxy_form_field_0_Template","showTeamMemberInput","_r29","opportunityAssociations","primaryAccountGroupId$","CrmActivityLoggerComponent_ng_container_0_ng_template_22_glxy_form_field_0_Template","isCompany$","showOpportunityInput","_r30","updateTags","tags$","_r31","followUpExpandedChanged","CrmActivityLoggerComponent_ng_container_0_ng_template_26_crm_activity_logger_follow_up_task_0_Template","CrmActivityLoggerComponent_ng_container_0_crm_activity_logger_note_4_Template","CrmActivityLoggerComponent_ng_container_0_crm_activity_logger_email_5_Template","CrmActivityLoggerComponent_ng_container_0_crm_activity_logger_call_6_Template","CrmActivityLoggerComponent_ng_container_0_crm_activity_logger_meeting_7_Template","CrmActivityLoggerComponent_ng_container_0_crm_activity_logger_task_8_Template","CrmActivityLoggerComponent_ng_container_0_crm_activity_logger_communication_9_Template","CrmActivityLoggerComponent_ng_container_0_form_10_Template","CrmActivityLoggerComponent_ng_container_0_ng_container_11_Template","CrmActivityLoggerComponent_ng_container_0_ng_template_12_Template","CrmActivityLoggerComponent_ng_container_0_ng_template_14_Template","CrmActivityLoggerComponent_ng_container_0_ng_template_16_Template","CrmActivityLoggerComponent_ng_container_0_ng_template_18_Template","CrmActivityLoggerComponent_ng_container_0_ng_template_20_Template","CrmActivityLoggerComponent_ng_container_0_ng_template_22_Template","CrmActivityLoggerComponent_ng_container_0_ng_template_24_Template","CrmActivityLoggerComponent_ng_container_0_ng_template_26_Template","avatar_r32","DEFAULT_SELECTED_ACTIVITY_TYPE","DEFAULT_MOBILE_BREAKPOINT","manuallyLoggedFieldValue","CrmActivityLoggerComponent","init_activity_logger_component","__esmMin","init_common","init_core","init_rxjs_interop","init_forms","init_autocomplete","init_button","init_card","init_chips","init_icon","init_input","init_menu","init_tooltip","init_ngx_translate_core","init_avatar","init_button_loading_indicator","init_form_field","init_src","init_esm","init_operators","init_chip_list","init_unknown_user_avatar_component","init_tokens_and_interfaces","init_constants","init_translation_module","init_activity_logger_service","init_logger","init_communication_component","init_shared_services","icon","fieldId","StandardIds","ActivityManuallyLogged","booleanValue","objectType","objectType$$","next","crmObjectId","crmObjectId$$","expandAndSelectType","activityType","layout","layout$$","crmActivityId","crmActivityId$$","constructor","config","activityLoggerService","crmObjectService","snackService","fieldsService","associationService","breakpointObserver","collapsed","signal","BehaviorSubject","ReplaySubject","objectType$","asObservable","pipe","map","crmActivityId$","activityCreated","EventEmitter","activityUpdated","cancel","activity$$","associations","tags$$","upsertActivityWorkState$","ObservableWorkState","isLoading$","followUpExpanded$$","takeUntilDestroyed","switchMap","getActivity","of","tap","activity","tags","getFieldValueFromCrmObject","ActivityTags","stringValues","values","subscribe","combineLatest","user","ownerId","userId","distinctUntilChanged","isEditing$","Boolean","services","userService","searchUsers","opportunityService","crmObject$","crmObjectType","getMultiObject","response","crmObjects","filter","shareReplay","crmObjectName$","crmObject","getObjectName","getPrimaryAccountGroupId","mobileLayout$","setupMobileMatcher","workResults$","crmIds","from","mergeMap","crmId","created","getTime","updated","emit","successEvents$","success","__async","isEditing","firstValueFrom","successMsg","errorMsg","openSuccessSnack","duration","SNACKBAR_DURATION","collapse","openErrorSnack","intializeDefaultActivity","toObservable","isCollapsed","withLatestFrom","currentUserId","defaultActivity","getCompanyAssociationObjectIdsForContact$","companyObjectIds","formattedAsc","companyId","crmObjectSubtype","updateValueAndValidity","setAssociationValues","expand","communicationSubType","toUpperCase","validateForm","fieldValues","getSelectedComponent","getValues","work$","crmObjectName","isFollowUpExpanded","tagsField","apiCalls","activityId","fieldMask","getFieldMaskFromFormGroup","formGroup","updateActivity","mergeAssociations","addActivity","followUpFieldValues","loggerFollowUpTaskComponent","push","startWork","loggerNoteComponent","loggerEmailComponent","loggerCallComponent","loggerMeetingComponent","loggerTaskComponent","loggerCommunicationComponent","isFormValid","valid","all","a","set","item","validate","clearFields","isExpanded","resetForm","extraAssociations","PlatformExtensionFieldIds","AccountGroupID","stringValue","companyName","CompanyName","firstName","StandardExternalIds","FirstName","lastName","LastName","trim","mobileMedia$","observe","result","matches","switchWhenFalsy","tagEvent","ɵɵdirectiveInject","CrmInjectionToken","ActivityLoggerService","CrmObjectService","SnackbarService","CrmFieldService","CrmAssociationService","BreakpointObserver","selectors","viewQuery","rf","ctx","CrmActivityLoggerNoteComponent","CrmActivityLoggerEmailComponent","CrmActivityLoggerCallComponent","CrmActivityLoggerMeetingComponent","CrmActivityLoggerTaskComponent","CrmActivityLoggerCommunicationComponent","CrmActivityLoggerFollowUpTaskComponent","ɵɵStandaloneFeature","decls","vars","consts","template","CrmActivityLoggerComponent_ng_container_0_Template","ɵɵpureFunction2","_c0","CommonModule","NgForOf","NgIf","NgTemplateOutlet","NgSwitch","NgSwitchCase","NgSwitchDefault","AsyncPipe","TranslateModule","TranslatePipe","TranslationModule","MatCardModule","MatCard","MatCardActions","MatCardAvatar","MatCardContent","MatIconModule","MatIcon","MatAutocompleteModule","MatChipsModule","MatButtonModule","MatButton","GalaxyAvatarModule","AvatarComponent","GalaxyFormFieldModule","FormFieldComponent","FormRowComponent","MatInputModule","MatInput","ReactiveFormsModule","ɵNgNoValidate","NgControlStatusGroup","CrmUnknownUserAvatarComponent","MatTooltipModule","GalaxyButtonLoadingIndicatorModule","ButtonLoadingIndicatorComponent","ChipListComponent","CrmLoggerContentDirective","CrmActivityLoggerContactAssociationComponent","CrmActivityLoggerCompanyAssociationComponent","CrmActivityLoggerTeamAssociationComponent","CrmActivityLoggerOpportunityAssociationComponent","MatMenuModule","MatMenu","MatMenuItem","MatMenuTrigger","CrmActivityLoggerTagsComponent","styles","_CrmActivityLoggerComponent","CrmActivityTemplateOptionsDirective","init_activity_template_options_directive","__esmMin","selectors","standalone","_CrmActivityTemplateOptionsDirective","ɵɵelement","ɵɵproperty","fullName_r1","ctx_r1","AVATAR_WIDTH","tmp_9_0","ɵɵpipeBind1","profileImageUrl$","undefined","ɵɵelementStart","ɵɵtemplate","CrmActivityTemplateComponent_mat_card_header_1_div_1_glxy_avatar_1_Template","ɵɵelementEnd","ɵɵadvance","showUnknownAvatar$","unknownUserAvatar_r3","ɵɵtext","ɵɵtextInterpolate","fullName_r4","headerText_r5","ɵɵelementContainer","CrmActivityTemplateComponent_mat_card_header_1_div_1_Template","CrmActivityTemplateComponent_mat_card_header_1_span_4_Template","CrmActivityTemplateComponent_mat_card_header_1_span_6_Template","CrmActivityTemplateComponent_mat_card_header_1_ng_container_9_Template","ɵɵprojection","ɵɵstyleProp","showAvatar","toString","fullName$","headerText$","subtitleTemplate","subtitleCustomTemplate_r7","subtitleDefaultTemplate_r6","ɵɵtextInterpolate1","ɵɵpipeBind2","effectiveDate_r8","dateFormat","CrmActivityTemplateComponent_ng_template_7_p_0_Template","effectiveDate$","CrmActivityTemplateComponent_ng_template_9_ng_container_1_Template","CrmActivityTemplateComponent","init_activity_template_component","__esmMin","init_common","init_ngx_translate_core","init_constants","init_translation_module","init_card","init_icon","init_state","init_avatar","init_esm","init_field_service","init_date_utils","init_unknown_user_avatar_component","activity","state","set","get","ownerUser","isOwnedByServiceAccount","headerText","text","_showAvatar","constructor","fieldService","translateService","DateFormat","medium","showFullName","unknownNamePlaceholder","instant","select","pipe","map","headerTextFromActivityType","crmObjectSubtype","combineLatest","isUnknownUser","user","profileImageUrl","fullName","effectiveDate","connect","filter","firstName","lastName","trim","tap","getFieldValueFromCrmObject","SystemFieldIds","ActivityEffectiveDate","dateValue","activityType","ɵɵdirectiveInject","RxState","CrmFieldService","TranslateService","selectors","inputs","standalone","features","ɵɵProvidersFeature","ɵɵStandaloneFeature","ngContentSelectors","_c1","decls","vars","consts","template","rf","ctx","CrmActivityTemplateComponent_mat_card_header_1_Template","CrmActivityTemplateComponent_ng_template_5_Template","ɵɵtemplateRefExtractor","CrmActivityTemplateComponent_ng_template_7_Template","CrmActivityTemplateComponent_ng_template_9_Template","CommonModule","NgIf","NgTemplateOutlet","AsyncPipe","DatePipe","TranslateModule","TranslatePipe","TranslationModule","MatCardModule","MatCard","MatCardAvatar","MatCardContent","MatCardHeader","MatCardSubtitle","MatCardTitle","MatIconModule","GalaxyAvatarModule","AvatarComponent","CrmUnknownUserAvatarComponent","styles","_CrmActivityTemplateComponent","ɵɵelementStart","ɵɵelement","ɵɵelementEnd","ɵɵadvance","ɵɵproperty","ctx_r0","AVATAR_WIDTH","ɵɵtext","ɵɵtextInterpolate","headerText_r2","ɵɵpipeBind1","ɵɵtextInterpolate1","ɵɵpipeBind2","cardInfo_r3","effectiveDate","dateFormat","ownerName_r4","ɵɵtemplate","CrmActivityEmailComponent_div_0_ng_container_12_span_7_div_1_Template","ownerName","CrmActivityEmailComponent_div_0_ng_container_12_span_8_span_3_Template","ɵɵpropertyInterpolate1","contact_r5","ɵɵsanitizeUrl","lastContact_r6","emailBody","ɵɵsanitizeHtml","ɵɵelementContainerStart","CrmActivityEmailComponent_div_0_ng_container_12_span_7_Template","CrmActivityEmailComponent_div_0_ng_container_12_span_8_Template","CrmActivityEmailComponent_div_0_ng_container_12_div_9_Template","emailSubject","ɵɵstyleProp","toString","emailDirection","contactEmails","ɵɵpropertyInterpolate","campaignLink","campaignName","CrmActivityEmailComponent_div_0_div_3_Template","CrmActivityEmailComponent_div_0_div_4_Template","CrmActivityEmailComponent_div_0_span_6_Template","CrmActivityEmailComponent_div_0_ng_template_7_Template","ɵɵtemplateRefExtractor","CrmActivityEmailComponent_div_0_p_10_Template","CrmActivityEmailComponent_div_0_ng_container_12_Template","CrmActivityEmailComponent_div_0_ng_template_13_Template","showAvatar","isCampaign","headerText","unknown_r7","campaign_r8","CrmActivityEmailComponent","init_email_component","__esmMin","init_common","init_core","init_rxjs_interop","init_card","init_icon","init_ngx_translate_core","init_state","init_avatar","init_pipes","init_date_utils","init_esm","init_operators","init_constants","init_i18n","init_shared_services","init_tokens_and_interfaces","init_collapsible_section_component","activity","_activity","set","objectType","_objectType","associatedObjectId","crmObjectId","_associatedObjectId","_showAvatar","constructor","config","fieldService","campaignService","recipientCampaignService","crmObjectService","translateService","sanitizer","unknownNamePlaceholder","instant","signal","DateFormat","medium","associatedCrmObjectName$","toObservable","pipe","switchMap","getAssociatedObjectName","associatedCrmObjectName","toSignal","contactEmails$","getContactEmails","campaignId$","getCampaignId","campaignId","campaignName$","getCampaign","accountGroupId$","getAccountGroupId","accountGroupId","cardInfo","computed","sanitize","SecurityContext","HTML","getStringFieldData","StandardIds","ActivityEmailBody","ActivityEmailSubject","emailStatus","ActivityEmailStatus","ActivityEmailDirection","toLowerCase","emailType","ActivityEmailType","emailHeaders","ActivityEmailHeaders","sourceName","ActivitySourceName","getDateFieldData","SystemFieldIds","ActivityEffectiveDate","owner","ownerUser","firstName","lastName","trim","baseText","nameText","directionText","useBusinessCenterCampaignLink","parentNamespace$","map","parentNamespace","fieldId","getFieldValueFromCrmObject","stringValue","getCampaignName","id","get","campaignData","name","of","dateValue","recipientId","ActivityCampaignID","getRecipientCampaign","recipientCampaign","parts","partnerId","split","length","getMultiObject","data","crmObject","crmObjects","StandardExternalIds","FirstName","LastName","CompanyName","crmObjectIds","associations","forEach","association","crmObjectType","push","resp","contact","Email","ɵɵdirectiveInject","CrmInjectionToken","CrmFieldService","CampaignService","RecipientCampaignService","CrmObjectService","TranslateService","DomSanitizer","selectors","inputs","standalone","features","ɵɵProvidersFeature","RxState","ɵɵStandaloneFeature","decls","vars","consts","template","rf","ctx","CrmActivityEmailComponent_div_0_Template","CommonModule","NgForOf","NgIf","DatePipe","TranslateModule","TranslatePipe","TranslationModule","CollapsibleSectionComponent","MatCardModule","MatCard","MatCardAvatar","MatCardContent","MatCardHeader","MatCardSubtitle","MatCardTitle","GalaxyAvatarModule","AvatarComponent","MatIconModule","GalaxyPipesModule","GalaxyITrustThisHtmlPipe","styles","_CrmActivityEmailComponent","ɵɵelementContainerStart","ɵɵelementStart","ɵɵtext","ɵɵelementEnd","ɵɵadvance","ɵɵpropertyInterpolate","callUrl_r1","ɵɵsanitizeUrl","ɵɵtemplate","CrmActivityLoggedCallComponent_div_0_ng_container_4_Template","ɵɵelementContainer","ɵɵproperty","ɵɵtextInterpolate","cardInfo_r2","note","ɵɵpipeBind1","ctx_r2","callRecordingSource$","activityData_r4","ɵɵpureFunction1","_c0","direction","_c1","status","_c2","outcome","_c3","ɵɵpipeBind2","date","dateFormat","ɵɵtextInterpolate1","value_r5","CrmActivityLoggedCallComponent_ng_template_1_ng_container_5_Template","label_r6","CrmActivityLoggedCallComponent","init_logged_call_component","__esmMin","init_common","init_core","init_rxjs_interop","init_ngx_translate_core","init_date_utils","init_esm","init_operators","init_collapsible_section_component","init_field_service","init_translation_module","activity","_activity","set","getFieldData","fieldId","fieldService","getFieldValueFromCrmObject","stringValue","constructor","http","DateFormat","mediumDateShortTime","signal","cardInfo","computed","StandardIds","ActivityCallBody","ActivityCallDirection","ActivityCallStatus","ActivityCallOutcome","SystemFieldIds","ActivityEffectiveDate","dateValue","callRecordingUrl","ActivityCallRecordingUrl","toObservable","pipe","switchMap","get","responseType","withCredentials","of","ɵɵdirectiveInject","HttpClient","CrmFieldService","selectors","inputs","standalone","features","ɵɵProvidersFeature","ɵɵStandaloneFeature","decls","vars","consts","template","rf","ctx","CrmActivityLoggedCallComponent_div_0_Template","CrmActivityLoggedCallComponent_ng_template_1_Template","ɵɵtemplateRefExtractor","CommonModule","NgIf","NgTemplateOutlet","AsyncPipe","DatePipe","TranslateModule","TranslatePipe","TranslationModule","CollapsibleSectionComponent","styles","_CrmActivityLoggedCallComponent","ɵɵelementStart","ɵɵtext","ɵɵelementEnd","ɵɵelementContainer","ɵɵadvance","ɵɵproperty","ɵɵtextInterpolate","cardInfo_r1","body","activityData_r3","ɵɵpureFunction1","_c0","channel","_c1","outcome","_c2","ɵɵpipeBind2","date","ctx_r1","dateFormat","ɵɵelementContainerStart","ɵɵtextInterpolate1","value_r4","ɵɵtemplate","CrmActivityLoggedCommunicationComponent_ng_template_1_ng_container_5_Template","ɵɵpipeBind1","label_r5","CrmActivityLoggedCommunicationComponent","init_logged_communication_component","__esmMin","init_common","init_core","init_ngx_translate_core","init_translation_module","init_field_service","init_collapsible_section_component","init_date_utils","init_pipes","activity","_activity","set","getFieldData","fieldId","fieldService","getFieldValueFromCrmObject","stringValue","constructor","signal","DateFormat","mediumDateShortTime","cardInfo","computed","StandardIds","ActivityCommunicationBody","ActivityCommunicationChannel","ActivityCommunicationOutcome","SystemFieldIds","ActivityEffectiveDate","dateValue","ɵɵdirectiveInject","CrmFieldService","selectors","inputs","standalone","features","ɵɵProvidersFeature","ɵɵStandaloneFeature","decls","vars","consts","template","rf","ctx","CrmActivityLoggedCommunicationComponent_div_0_Template","CrmActivityLoggedCommunicationComponent_ng_template_1_Template","ɵɵtemplateRefExtractor","CommonModule","NgIf","NgTemplateOutlet","DatePipe","TranslateModule","TranslatePipe","TranslationModule","CollapsibleSectionComponent","GalaxyPipesModule","styles","_CrmActivityLoggedCommunicationComponent","ɵɵelementStart","ɵɵtext","ɵɵelementEnd","ɵɵadvance","ɵɵtextInterpolate1","ɵɵpipeBind1","direction_r1","ɵɵtemplate","CrmActivityLoggedEmailComponent_div_0_div_4_Template","ɵɵproperty","ɵɵtextInterpolate","description_r2","ctx_r2","direction$","CrmActivityLoggedEmailComponent","init_logged_email_component","__esmMin","init_common","init_ngx_translate_core","init_state","init_esm","init_collapsible_section_component","init_field_service","init_translation_module","activity","state","set","get","constructor","fieldService","description$","select","undefined","description","direction","connect","pipe","map","getFieldValueFromCrmObject","StandardIds","ActivityEmailBody","stringValue","ActivityEmailDirection","ɵɵdirectiveInject","RxState","CrmFieldService","selectors","inputs","standalone","features","ɵɵProvidersFeature","ɵɵStandaloneFeature","decls","vars","consts","template","rf","ctx","CrmActivityLoggedEmailComponent_div_0_Template","CommonModule","NgIf","AsyncPipe","TranslateModule","TranslatePipe","TranslationModule","CollapsibleSectionComponent","styles","_CrmActivityLoggedEmailComponent","ɵɵelementStart","ɵɵelement","ɵɵelementEnd","ɵɵelementContainer","ɵɵadvance","ɵɵproperty","ɵɵpipeBind1","cardInfo_r1","note","ɵɵsanitizeHtml","activityData_r3","ɵɵpureFunction1","_c0","status","_c1","outcome","_c2","ɵɵpipeBind2","date","ctx_r1","dateFormat","_c3","duration","ɵɵelementContainerStart","ɵɵtext","ɵɵtextInterpolate1","value_r4","ɵɵtemplate","CrmActivityLoggedMeetingComponent_ng_template_1_ng_container_5_Template","label_r5","import_dompurify","CrmActivityLoggedMeetingComponent","init_logged_meeting_component","__esmMin","init_common","init_core","init_ngx_translate_core","init_translation_module","init_field_service","init_collapsible_section_component","init_esm","init_pipes","init_date_utils","activity","_activity","set","getStringFieldData","fieldId","fieldService","getFieldValueFromCrmObject","stringValue","getIntegerFieldData","integerValue","convertMillisecondsToHoursAndMinutes","convertedDuration","intervalToDuration","start","end","hours","minutes","constructor","DateFormat","mediumDateShortTime","signal","cardInfo","computed","StandardIds","ActivityMeetingDuration","DOMPurify","sanitize","ActivityMeetingBody","ActivityMeetingStatus","ActivityMeetingOutcome","SystemFieldIds","ActivityEffectiveDate","dateValue","ɵɵdirectiveInject","CrmFieldService","selectors","inputs","standalone","features","ɵɵProvidersFeature","ɵɵStandaloneFeature","decls","vars","consts","template","rf","ctx","CrmActivityLoggedMeetingComponent_div_0_Template","CrmActivityLoggedMeetingComponent_ng_template_1_Template","ɵɵtemplateRefExtractor","CommonModule","NgIf","NgTemplateOutlet","DatePipe","TranslateModule","TranslatePipe","TranslationModule","CollapsibleSectionComponent","GalaxyPipesModule","GalaxyITrustThisHtmlPipe","styles","_CrmActivityLoggedMeetingComponent","ɵɵelementStart","ɵɵtext","ɵɵelementEnd","ɵɵadvance","ɵɵproperty","ɵɵtextInterpolate","noteBody_r1","CrmActivityLoggedNoteComponent","init_logged_note_component","__esmMin","init_common","init_ngx_translate_core","init_translation_module","init_state","init_esm","init_field_service","init_collapsible_section_component","activity","state","set","get","constructor","fieldService","noteBody$","select","undefined","noteBody","connect","pipe","map","getFieldValueFromCrmObject","StandardIds","ActivityNoteBody","stringValue","ɵɵdirectiveInject","RxState","CrmFieldService","selectors","inputs","standalone","features","ɵɵProvidersFeature","ɵɵStandaloneFeature","decls","vars","consts","template","rf","ctx","ɵɵtemplate","CrmActivityLoggedNoteComponent_div_0_Template","ɵɵpipeBind1","CommonModule","NgIf","AsyncPipe","TranslateModule","TranslationModule","CollapsibleSectionComponent","styles","_CrmActivityLoggedNoteComponent","ɵɵelementStart","ɵɵelement","ɵɵelementEnd","ɵɵadvance","ɵɵproperty","ctx_r0","AVATAR_WIDTH","ɵɵtext","ɵɵtextInterpolate","headerText","ɵɵpipeBind1","ɵɵtextInterpolate1","ɵɵpipeBind2","cardInfo_r2","effectiveDate","dateFormat","noteBody","ɵɵtemplate","CrmActivityNoteComponent_div_0_div_3_Template","CrmActivityNoteComponent_div_0_span_5_Template","CrmActivityNoteComponent_div_0_ng_template_6_Template","ɵɵtemplateRefExtractor","CrmActivityNoteComponent_div_0_p_9_Template","CrmActivityNoteComponent_div_0_div_11_Template","ɵɵstyleProp","showAvatar","toString","unknown_r3","CrmActivityNoteComponent","init_note_component","__esmMin","init_state","init_ngx_translate_core","init_constants","init_translation_module","init_collapsible_section_component","init_common","init_core","init_field_service","init_card","init_date_utils","init_avatar","activity","_activity","set","_showAvatar","getStringFieldData","fieldId","fieldService","getFieldValueFromCrmObject","stringValue","getDateFieldData","dateValue","constructor","signal","DateFormat","medium","cardInfo","computed","StandardIds","ActivityNoteBody","noteTitle","ActivityNoteTitle","sourceName","ActivitySourceName","SystemFieldIds","ActivityEffectiveDate","trim","ɵɵdirectiveInject","CrmFieldService","selectors","inputs","standalone","features","ɵɵProvidersFeature","RxState","ɵɵStandaloneFeature","decls","vars","consts","template","rf","ctx","CrmActivityNoteComponent_div_0_Template","CommonModule","NgIf","DatePipe","TranslateModule","TranslatePipe","TranslationModule","CollapsibleSectionComponent","MatCardModule","MatCard","MatCardAvatar","MatCardContent","MatCardHeader","MatCardSubtitle","MatCardTitle","GalaxyAvatarModule","AvatarComponent","styles","_CrmActivityNoteComponent","enumStringToValue$2","enumRef","value","CriteriaMatchType","TagMatchType","Salesperson","SalesTeam","AutoAssignCriteriaAccountOriginCriteria","AddContactToCampaignRequest","AutoAssignRuleAppKey","AutoAssignCriteria","AutoAssignRule","AutoAssignCriteriaCategoryCriteria","AutoAssignCriteriaConversionPointCriteria","CreateOrUpdateAutoAssignConfigRequest","GetAssignedSalespersonForPartnerRequest","GetAssignedSalespersonForPartnerResponse","GetAutoAssignConfigRequest","GetAutoAssignConfigResponse","GetMembersRequest","GetMembersResponse","GetMultiCampaignsRequest","GetMultiCampaignsResponse","GetMultiSalesTeamRequest","GetMultiSalesTeamResponse","GetMultiSalespersonRequest","GetMultiSalespersonResponse","GetSalespersonRequest","GetTeamsBySalespersonsRequest","GetTeamsBySalespersonsResponse","ListSalesTeamsRequestListSalesTeamsFilters","ListSalesTeamsRequest","ListSalesTeamsResponse","ListSalespersonsRequestListSalespersonsFilters","ListSalespersonsRequest","ListSalespersonsResponse","AutoAssignCriteriaLocationCriteria","LookupCampaignsRequest","LookupCampaignsResponse","LookupSalespersonsRequest","LookupSalespersonsResponse","PagedRequestOptions","PagedResponseMetadata","AddContactToCampaignRequestRecipient","SalesCampaign","ScheduleStep","SendResetPasswordEmailRequest","AddContactToCampaignRequestSender","AutoAssignCriteriaTagCriteria","GetTeamsBySalespersonsResponseTeamsForSalesperson","UpdateTeamNameRequest","environment","hostMap","HostService","CampaignApiService","SalesApiService","SalesTeamApiService","SalespersonService","SalesTeamService","CampaignSDKService","init_vendasta_sales","__esmMin","init_core","init_http","init_operators","_Salesperson","proto","m","kwargs","toReturn","_SalesTeam","_AutoAssignCriteriaAccountOriginCriteria","_AddContactToCampaignRequest","_AutoAssignRuleAppKey","_AutoAssignCriteria","_AutoAssignRule","_AutoAssignCriteriaCategoryCriteria","_AutoAssignCriteriaConversionPointCriteria","_CreateOrUpdateAutoAssignConfigRequest","_GetAssignedSalespersonForPartnerRequest","_GetAssignedSalespersonForPartnerResponse","_GetAutoAssignConfigRequest","_GetAutoAssignConfigResponse","_GetMembersRequest","_GetMembersResponse","_GetMultiCampaignsRequest","_GetMultiCampaignsResponse","_GetMultiSalesTeamRequest","_GetMultiSalesTeamResponse","_GetMultiSalespersonRequest","_GetMultiSalespersonResponse","_GetSalespersonRequest","_GetTeamsBySalespersonsRequest","_GetTeamsBySalespersonsResponse","_ListSalesTeamsRequestListSalesTeamsFilters","_ListSalesTeamsRequest","_ListSalesTeamsResponse","_ListSalespersonsRequestListSalespersonsFilters","_ListSalespersonsRequest","_ListSalespersonsResponse","_AutoAssignCriteriaLocationCriteria","_LookupCampaignsRequest","_LookupCampaignsResponse","_LookupSalespersonsRequest","_LookupSalespersonsResponse","_PagedRequestOptions","_PagedResponseMetadata","_AddContactToCampaignRequestRecipient","_SalesCampaign","_ScheduleStep","_SendResetPasswordEmailRequest","_AddContactToCampaignRequestSender","_AutoAssignCriteriaTagCriteria","_GetTeamsBySalespersonsResponseTeamsForSalesperson","_UpdateTeamNameRequest","ɵɵdefineInjectable","http","hostService","HttpHeaders","r","request","map","resp","__spreadProps","__spreadValues","ɵɵinject","HttpClient","_api","partnerId","salespersonId","userId","markets","options","params","filters","cursor","pageSize","marketId","salespersonIds","groupId","newTeamName","mapTo","salesTeams","mapping","groupIds","campaignApiService","accountGroupId","campaignIds","searchTerm","ɵɵelementStart","ɵɵelement","ɵɵelementEnd","ɵɵadvance","ɵɵproperty","ctx_r0","AVATAR_WIDTH","ɵɵtext","ɵɵtextInterpolate1","ɵɵpipeBind2","cardInfo_r2","effectiveDate","dateFormat","ɵɵtemplate","CrmActivityRecordChangeComponent_ng_container_0_mat_card_1_div_2_Template","CrmActivityRecordChangeComponent_ng_container_0_mat_card_1_div_3_Template","CrmActivityRecordChangeComponent_ng_container_0_mat_card_1_p_8_Template","ɵɵstyleProp","showAvatar","toString","isUpdatedRecordChange","ɵɵtextInterpolate","headerText","contentText","ɵɵelementContainerStart","CrmActivityRecordChangeComponent_ng_container_0_mat_card_1_Template","isReady","CrmActivityRecordChangeComponent","init_record_change_component","__esmMin","init_common","init_core","init_rxjs_interop","init_card","init_ngx_translate_core","init_avatar","init_pipes","init_date_utils","init_vendasta_sales","init_esm","init_operators","init_tokens_and_interfaces","init_translation_module","init_constants","init_shared_services","_activity","constructor","fieldService","translateByObjectTypeService","changeLogService","config","salespersonService","__privateAdd","DateFormat","medium","__privateSet","signal","namespace","toSignal","namespace$","_showAvatar","recordChangeType","computed","getFieldValueFromCrmObject","__privateGet","StandardExternalIds","ActivityRecordChangeType","stringValue","objectType","activity","associations","undefined","length","console","warn","crmObjectId","crmObjectType","sourceName","StandardIds","ActivitySourceName","cardInfo","effectResult","partialKey","computedObjectType","createdVia","getTranslationByObjectType","updatedField","changeLogUser","displayName","trim","SystemFieldIds","ActivityEffectiveDate","dateValue","changeLogSalesPerson","changeLogSalespersonId","salespersonUnknownPartialKey","salespersonFullName","firstName","lastName","map","name","join","changeLog","crmChangeSubtype","effect","set","companyId","find","association","changeId","RecordChangeReferenceFieldID","getMultiChangeLog","crmChangelogIdentifiers","crmChangeId","pipe","switchMap","res","object","changeLogs","salesPersonSubId","CompanyPrimarySalespersonID","createdByUserId","combineLatest","of","getSalespersonBySubjectId","catchError","services","userService","getMultiUsers","EMPTY","take","subscribe","salesPerson","simplifiedUser","allowSignalWrites","ɵɵdirectiveInject","CrmFieldService","TranslateByObjectTypeService","CRMChangeLogApiService","CrmInjectionToken","SalespersonService","selectors","inputs","standalone","features","ɵɵStandaloneFeature","decls","vars","consts","template","rf","ctx","CrmActivityRecordChangeComponent_ng_container_0_Template","CommonModule","NgIf","DatePipe","TranslateModule","TranslationModule","MatCardModule","MatCard","MatCardAvatar","MatCardContent","MatCardHeader","MatCardSubtitle","MatCardTitle","GalaxyPipesModule","GalaxyAvatarModule","AvatarComponent","styles","_CrmActivityRecordChangeComponent","ɵɵelementStart","ɵɵlistener","ɵɵrestoreView","_r1","ctx_r1","ɵɵnextContext","ɵɵresetView","updateTaskCompletionStatus","ɵɵtext","ɵɵelementEnd","ɵɵelementContainer","ɵɵadvance","ɵɵproperty","completedTaskControl","ɵɵtextInterpolate1","cardInfo_r3","title","ɵɵtextInterpolate","body","activityData_r4","ɵɵpureFunction1","_c0","ɵɵpipeBind2","dueDate","dateFormat","_c1","ɵɵpipeBind1","assignee","_c2","type","_c3","priority","ɵɵelementContainerStart","value_r5","ɵɵtemplate","CrmActivityTaskComponent_ng_template_1_ng_container_5_Template","label_r6","CrmActivityTaskComponent","init_task_component","__esmMin","init_common","init_core","init_ngx_translate_core","init_tokens_and_interfaces","init_translation_module","init_shared_services","init_date_utils","init_checkbox","init_icon","init_esm","init_forms","init_form_field","init_input","init_collapsible_section_component","activity","_activity","set","ngOnInit","taskIsCompleted","fields","find","field","fieldId","StandardIds","ActivityTaskStatus","stringValue","Completed","setValue","emitEvent","getFieldData","fieldService","getFieldValueFromCrmObject","getAssigneeName","ownerId","user","users","userId","firstName","lastName","map","name","trim","filter","join","unknownNamePlaceholder","getTaskCompletionStatus","value","Open","getAssociations","associations","emitStatusChange","status","push","activityChange","emit","__async","crmObjectId","crmObjectSubtype","mask","paths","firstValueFrom","activityService","updateActivity","snack","openSuccessSnack","openErrorSnack","constructor","FormControl","DateFormat","mediumDateShortTime","signal","EventEmitter","cardInfo","computed","ActivityName","ActivityTaskBody","ActivityTaskType","ActivityTaskPriority","ActivityTaskDueDate","dateValue","ɵɵdirectiveInject","CrmFieldService","ActivityService","SnackbarService","selectors","inputs","associatedObject","outputs","standalone","features","ɵɵProvidersFeature","ɵɵStandaloneFeature","decls","vars","consts","template","rf","ctx","CrmActivityTaskComponent_div_0_Template","CrmActivityTaskComponent_ng_template_1_Template","ɵɵtemplateRefExtractor","CommonModule","NgIf","NgTemplateOutlet","DatePipe","TranslateModule","TranslatePipe","TranslationModule","MatCheckboxModule","MatCheckbox","ReactiveFormsModule","NgControlStatus","FormControlDirective","GalaxyFormFieldModule","FormFieldComponent","ExtendedDirective","MatInputModule","MatIconModule","CollapsibleSectionComponent","styles","_CrmActivityTaskComponent","init_activities","__esmMin","init_activity_interface","init_activity_communication_component","init_activity_logger_component","init_activity_logger_service","init_activity_template_component","init_activity_template_options_directive","init_activity_url_builder","init_email_component","init_logged_call_component","init_logged_communication_component","init_logged_email_component","init_logged_meeting_component","init_logged_note_component","init_note_component","init_record_change_component","init_task_component","init_logger","OpenOverdueTaskFilters","ActivitiesTimelineService","init_timeline_service","__esmMin","init_core","init_rxjs_interop","init_vendasta_crm","init_vendasta_iamv2","init_esm","init_operators","init_constants","init_tokens_and_interfaces","init_shared_services","operator","FilterGroupOperator","FILTER_GROUP_OPERATOR_AND","filters","fieldId","StandardIds","ActivityTaskStatus","FilterOperator","FILTER_OPERATOR_IS","values","string","Open","ActivityTaskDueDate","FILTER_OPERATOR_IS_BEFORE","dateDefault","DateDefault","DATE_DEFAULT_TODAY","constructor","state","activityService","fieldService","translateService","iamService","crmObjectService","upcomingSectionName","instant","crmObjectId$$","ReplaySubject","objectType$$","destroyRef","inject","DestroyRef","set","activitiesLoading","activitiesLoadMore","activitiesChanged","activitiesPagedResponseMetadata","activities","activitySections","uniqueUserIds","searchTerm","lockedActivityEffectiveDate","Map","initialized","setupReloadActivities","setupLoadMore","setupUniqueUsers","getActivitySections","activitiesWithEffectiveDate","map","activity","atv","toActivityWithEffectiveDate","crmObjectId","effectiveDate","get","overdueTasks","filter","getFieldValueFromCrmObject","stringValue","getTime","Date","now","sort","a","b","upcomingActivities","overdueTasksAndUpcomingActivities","pastActivities","find","item","length","push","name","pastSectionsMap","startOfMonth","getFullYear","getMonth","startOfMonthTime","has","toLocaleString","month","date","pastSections","crmActivity","SystemFieldIds","ActivityEffectiveDate","dateValue","isLoggedActivity","ActivityManuallyLogged","booleanValue","Error","__spreadProps","__spreadValues","initializeState","combineLatest","select","asObservable","pipe","takeUntilDestroyed","skipWhile","debounceTime","tap","switchMap","objectType","hasMore","of","crmFilters","convertFilters","activities$","listActivities","crmObjectType","pagingOptions","pageSize","ACTIVITIES_TIMELINE_PAGE_SIZE","cursor","nextCursor","search","filtersV2","addPredefinedFilters","overdueTasks$","response","allActivities","pagingMetadata","filterActivities","subscribe","connect","ownerId","includes","userId","UserIdentifier","uniqueUserIdentifiers","getMultiUsers","distinctUntilChanged","reloadActivities","loadMoreActivities","activitiesWithEffectiveDateMap","lockActivityEffectiveDate","created","predefFilter","ɵɵinject","RxState","ActivityService","CrmFieldService","TranslateService","IAMService","CrmObjectService","factory","ɵfac","_ActivitiesTimelineService","ɵɵelementStart","ɵɵtext","ɵɵelementEnd","ɵɵadvance","ɵɵproperty","ctx_r1","routePrefix","contact_r1","linkUrl","ɵɵtextInterpolate1","name","ɵɵtemplate","CrmActivityAssociationPopoverComponent_div_0_div_4_Template","ɵɵtextInterpolate","ɵɵpipeBind1","contacts","company_r3","CrmActivityAssociationPopoverComponent_div_1_div_4_Template","companies","opportunity_r4","CrmActivityAssociationPopoverComponent_div_2_div_4_Template","opportunities","member_r5","CrmActivityAssociationPopoverComponent_div_3_div_4_Template","teamMembers","CrmActivityAssociationPopoverComponent","init_association_popover_component","__esmMin","init_common","init_core","init_translation_module","init_esm","init_shared_services","init_tokens_and_interfaces","init_constants","init_rxjs_interop","init_operators","init_router","activity","_activity","set","associatedObject","a","objectType$$","next","objectType","crmObjectId$$","crmObjectId","constructor","fieldService","activityService","snack","objectService","signal","ReplaySubject","objectType$","asObservable","crmObjectId$","config","inject","CrmInjectionToken","opportunityService","services","userService","toSignal","routePrefix$","primaryAccountGroupId$","combineLatest","pipe","switchMap","v","crmObjectType","getMultiObject","map","response","crmObjects","crmObject","getFieldValueFromCrmObject","PlatformExtensionFieldIds","AccountGroupID","stringValue","filter","Boolean","shareReplay","companies$","toObservable","ids","associations","length","of","o","newTaskPopoverAssociation","StandardIds","CompanyName","PAGE_ROUTES","COMPANY","ROOT","SUBROUTES","PROFILE","replace","contacts$","displayName","StandardExternalIds","FirstName","LastName","CONTACT","opportunities$","accountGroupId","setAccountGroupId","getMultiOpportunity","userIds$","getMultiUsers","link","ɵɵdirectiveInject","CrmFieldService","ActivityService","SnackbarService","CrmObjectService","selectors","inputs","standalone","features","ɵɵProvidersFeature","ɵɵStandaloneFeature","decls","vars","consts","template","rf","ctx","CrmActivityAssociationPopoverComponent_div_0_Template","CrmActivityAssociationPopoverComponent_div_1_Template","CrmActivityAssociationPopoverComponent_div_2_Template","CrmActivityAssociationPopoverComponent_div_3_Template","tmp_0_0","tmp_1_0","tmp_2_0","tmp_3_0","CommonModule","NgForOf","NgIf","TranslationModule","TranslatePipe","RouterLink","styles","_CrmActivityAssociationPopoverComponent","CrmTimelineAssociatedObjectPipe","init_timeline_associated_object_pipe","__esmMin","init_tokens_and_interfaces","transform","activity","crmObject","isObjectType","objectType","crmObjectId","associations","length","asc","crmObjectType","ObjectTypes","includes","pure","standalone","_CrmTimelineAssociatedObjectPipe","ɵɵelementStart","ɵɵelement","ɵɵelementEnd","ɵɵadvance","ɵɵproperty","ctx_r0","AVATAR_WIDTH","ɵɵtext","ɵɵtextInterpolate","headerText_r2","ɵɵpipeBind1","ɵɵtextInterpolate1","ɵɵpipeBind2","cardInfo_r3","date","dateFormat","cardTitle_r4","ownerName_r5","from","ɵɵtemplate","CrmActivityCallComponent_div_0_span_16_ng_template_2_div_0_Template","ownerName","to","CrmActivityCallComponent_div_0_span_16_div_4_span_2_Template","associatedObject_r6","CrmActivityCallComponent_div_0_span_16_div_1_Template","CrmActivityCallComponent_div_0_span_16_ng_template_2_Template","ɵɵtemplateRefExtractor","CrmActivityCallComponent_div_0_span_16_div_4_Template","unknownOwner_r7","associatedCrmObject","CrmActivityCallComponent_div_0_span_17_div_1_span_2_Template","associatedObject_r8","CrmActivityCallComponent_div_0_span_17_div_1_Template","ɵɵelementContainerStart","ɵɵpropertyInterpolate","callUrl_r9","ɵɵsanitizeUrl","CrmActivityCallComponent_div_0_div_3_Template","CrmActivityCallComponent_div_0_span_5_Template","CrmActivityCallComponent_div_0_ng_template_6_Template","CrmActivityCallComponent_div_0_p_9_Template","CrmActivityCallComponent_div_0_span_13_Template","CrmActivityCallComponent_div_0_span_16_Template","CrmActivityCallComponent_div_0_span_17_Template","CrmActivityCallComponent_div_0_ng_container_18_Template","ɵɵstyleProp","showAvatar","toString","headerText","unknown_r10","cardTitle","direction","callRecordingSource$","CrmActivityCallComponent","init_call_component","__esmMin","init_common","init_core","init_rxjs_interop","init_card","init_ngx_translate_core","init_state","init_avatar","init_pipes","init_date_utils","init_esm","init_operators","init_constants","init_translation_module","init_field_service","activity","_activity","set","objectType","_objectType","associatedObjectId","crmObjectId","_associatedObjectId","_showAvatar","getAssociatedObjectName","crmObjectService","getMultiObject","pipe","map","data","crmObject","crmObjects","firstName","fieldService","getFieldValueFromCrmObject","StandardExternalIds","FirstName","stringValue","lastName","LastName","StandardIds","CompanyName","of","getStringFieldData","fieldId","constructor","http","DateFormat","mediumDateShortTime","signal","associatedCrmObject$","toObservable","switchMap","toSignal","computed","cardInfo","directionText","status","duration","minutes","Math","floor","seconds","toFixed","owner","ownerUser","trim","ActivityCallStatus","ActivityCallDirection","SystemFieldIds","ActivityEffectiveDate","dateValue","ActivityCallToNumber","ActivityCallFromNumber","ActivityCallDuration","integerValue","callRecordingUrl","ActivityCallRecordingUrl","get","responseType","withCredentials","ɵɵdirectiveInject","CrmFieldService","HttpClient","CrmObjectService","selectors","inputs","standalone","features","ɵɵProvidersFeature","RxState","ɵɵStandaloneFeature","decls","vars","consts","template","rf","ctx","CrmActivityCallComponent_div_0_Template","CommonModule","NgIf","AsyncPipe","DatePipe","TranslateModule","TranslatePipe","TranslationModule","MatCardModule","MatCard","MatCardAvatar","MatCardContent","MatCardHeader","MatCardSubtitle","MatCardTitle","GalaxyAvatarModule","AvatarComponent","GalaxyPipesModule","styles","_CrmActivityCallComponent","enumStringToValue$8","enumRef","value","enumStringToValue$7","enumStringToValue$5","enumStringToValue","Currency","DurationPeriod","RevenuePeriod","MEDDICSection","ClientOrigin","ClosedLostReasonOption","OpportunityRevenuePeriod","SortDirection","ListOpportunitiesRequestSortField","LineItemAppKey","BillingPeriod","Cost","CustomPriceMapping","Duration","LineItem","Revenue","RevenueComponent","ScoringScore","Scoring","Forecasting","RevenueInMonth","Attachment","CSVExports","CSVFormatOptions","ClosedLostReason","CurrentOpportunityPoint","DateRangeFilter","ListOpportunitiesRequestFilters","InitiateOpportunityExportRequest","ListOpportunitiesRequest","Opportunity","OpportunityCount","OpportunityValue","Package","PipelineClosePoint","PipelineCreationPoint","ProbabilityRangeFilter","RevenuePeriodFilter","ListOpportunitiesRequestSortOption","Pipeline","Stage","AddAttachmentToOpportunityRequest","AddOpportunityPackagesRequest","AddOpportunityPackagesResponse","AddPipelineStagesRequestAddPipelineStage","AddPipelineStagesRequest","AddPipelineStagesResponse","CloseAsLostOpportunityRequest","CloseAsLostOpportunityResponse","CloseAsWonOpportunityRequest","CloseAsWonOpportunityResponse","CreateOpportunityRequestCreateOpportunityPackage","CreateOpportunityRequest","CreateOpportunityResponse","CreatePipelineRequest","CreatePipelineResponse","CreatePipelineRequestCreatePipelineStage","DeleteOpportunityRequest","DeletePipelineRequest","DeletePipelineResponse","GetOpportunityByIdempotencyKeyRequest","GetOpportunityCountByAccountGroupsRequest","GetOpportunityCountByAccountGroupsResponse","GetOpportunityRequest","GetOpportunityResponse","GetOpportunityValueByAccountGroupsRequest","GetOpportunityValueByAccountGroupsResponse","GetTagsForOpportunitiesRequest","GetTagsForOpportunitiesResponse","InitiateOpportunityExportResponse","ListOpportunitiesResponse","ListPipelinesRequest","ListPipelinesResponse","PagedRequestOptions","PagedResponseMetadata","RemoveOpportunityPackagesRequest","RemoveOpportunityPackagesResponse","RemovePipelineStagesRequest","RemovePipelineStagesResponse","ReopenClosedOpportunityRequest","SalespersonStatsRequest","SalespersonStatsResponse","SetPipelineStagesRequest","SetPipelineStagesResponse","UpdateClosedDateRequest","UpdateLastActivityDateRequest","UpdateLastActivityDateResponse","UpdateLastConnectedDateRequest","UpdateLastConnectedDateResponse","UpdateLineItemsRequest","UpdateLineItemsResponse","UpdateOpportunityDurationRequest","UpdateOpportunityDurationResponse","UpdateOpportunityExpectedCloseDateRequest","UpdateOpportunityExpectedCloseDateResponse","UpdateOpportunityMarketRequest","UpdateOpportunityMarketResponse","UpdateOpportunityNameRequest","UpdateOpportunityNameResponse","UpdateOpportunityNotesRequest","UpdateOpportunityNotesResponse","UpdateOpportunityPackageRequest","UpdateOpportunityPackageResponse","UpdateOpportunityPackageRevenueRequest","UpdateOpportunityPackageRevenueResponse","UpdateOpportunityPipelineRequest","UpdateOpportunityProbabilityRequest","UpdateOpportunityProbabilityResponse","UpdateOpportunitySalespersonRequest","UpdateOpportunitySalespersonResponse","UpdateOpportunityTagsRequest","UpdateOpportunityTagsResponse","UpdateOpportunityTypeRequest","UpdateOpportunityTypeResponse","UpdatePipelineNameRequest","UpdatePipelineNameResponse","UpdatePipelineStageNameRequest","UpdatePipelineStageNameResponse","UpdatePipelineStageProbabilityRequest","UpdatePipelineStageProbabilityResponse","UpdateSubscriberUserIDsRequest","environment","hostMap","HostService","SalesOpportunitiesApiService","SalesPipelinesApiService","DEFAULT_PIPELINE_ID","SalesOpportunitiesService","SalesPipelinesService","init_vendasta_sales_opportunities","__esmMin","init_core","init_http","init_operators","_LineItemAppKey","proto","m","kwargs","toReturn","_BillingPeriod","_Cost","_CustomPriceMapping","_Duration","_LineItem","_Revenue","_RevenueComponent","_ScoringScore","_Scoring","_Forecasting","_RevenueInMonth","_Attachment","_CSVExports","_CSVFormatOptions","_ClosedLostReason","_CurrentOpportunityPoint","_DateRangeFilter","_ListOpportunitiesRequestFilters","_InitiateOpportunityExportRequest","_ListOpportunitiesRequest","_Opportunity","_OpportunityCount","_OpportunityValue","_Package","_PipelineClosePoint","_PipelineCreationPoint","_ProbabilityRangeFilter","_RevenuePeriodFilter","_ListOpportunitiesRequestSortOption","_Pipeline","_Stage","_AddAttachmentToOpportunityRequest","_AddOpportunityPackagesRequest","_AddOpportunityPackagesResponse","_AddPipelineStagesRequestAddPipelineStage","_AddPipelineStagesRequest","_AddPipelineStagesResponse","_CloseAsLostOpportunityRequest","_CloseAsLostOpportunityResponse","_CloseAsWonOpportunityRequest","_CloseAsWonOpportunityResponse","_CreateOpportunityRequestCreateOpportunityPackage","_CreateOpportunityRequest","_CreateOpportunityResponse","_CreatePipelineRequest","_CreatePipelineResponse","_CreatePipelineRequestCreatePipelineStage","_DeleteOpportunityRequest","_DeletePipelineRequest","_DeletePipelineResponse","_GetOpportunityByIdempotencyKeyRequest","_GetOpportunityCountByAccountGroupsRequest","_GetOpportunityCountByAccountGroupsResponse","_GetOpportunityRequest","_GetOpportunityResponse","_GetOpportunityValueByAccountGroupsRequest","_GetOpportunityValueByAccountGroupsResponse","_GetTagsForOpportunitiesRequest","_GetTagsForOpportunitiesResponse","_InitiateOpportunityExportResponse","_ListOpportunitiesResponse","_ListPipelinesRequest","_ListPipelinesResponse","_PagedRequestOptions","_PagedResponseMetadata","_RemoveOpportunityPackagesRequest","_RemoveOpportunityPackagesResponse","_RemovePipelineStagesRequest","_RemovePipelineStagesResponse","_ReopenClosedOpportunityRequest","_SalespersonStatsRequest","_SalespersonStatsResponse","_SetPipelineStagesRequest","_SetPipelineStagesResponse","_UpdateClosedDateRequest","_UpdateLastActivityDateRequest","_UpdateLastActivityDateResponse","_UpdateLastConnectedDateRequest","_UpdateLastConnectedDateResponse","_UpdateLineItemsRequest","_UpdateLineItemsResponse","_UpdateOpportunityDurationRequest","_UpdateOpportunityDurationResponse","_UpdateOpportunityExpectedCloseDateRequest","_UpdateOpportunityExpectedCloseDateResponse","_UpdateOpportunityMarketRequest","_UpdateOpportunityMarketResponse","_UpdateOpportunityNameRequest","_UpdateOpportunityNameResponse","_UpdateOpportunityNotesRequest","_UpdateOpportunityNotesResponse","_UpdateOpportunityPackageRequest","_UpdateOpportunityPackageResponse","_UpdateOpportunityPackageRevenueRequest","_UpdateOpportunityPackageRevenueResponse","_UpdateOpportunityPipelineRequest","_UpdateOpportunityProbabilityRequest","_UpdateOpportunityProbabilityResponse","_UpdateOpportunitySalespersonRequest","_UpdateOpportunitySalespersonResponse","_UpdateOpportunityTagsRequest","_UpdateOpportunityTagsResponse","_UpdateOpportunityTypeRequest","_UpdateOpportunityTypeResponse","_UpdatePipelineNameRequest","_UpdatePipelineNameResponse","_UpdatePipelineStageNameRequest","_UpdatePipelineStageNameResponse","_UpdatePipelineStageProbabilityRequest","_UpdatePipelineStageProbabilityResponse","_UpdateSubscriberUserIDsRequest","ɵɵdefineInjectable","http","hostService","HttpHeaders","r","request","map","resp","__spreadProps","__spreadValues","ɵɵinject","HttpClient","_api","accountGroupId","opportunityId","editSalesPersonId","expectedCloseDate","createSalesActivity","req","salesPersonId","name","url","marketId","partnerId","probability","pipelineId","packages","notes","tags","expectedContractDuration","lineItems","subscriberUserIds","opportunityType","opportunityID","accountGroupID","editSalespersonID","accountGroupIds","onlyOpen","requestParams","filters","sortOption","searchTerm","pageSize","cursor","reason","response","csvExports","csvOptions","clientOrigin","stages","stageId","stageName","stageIds","ɵɵelementStart","ɵɵtext","ɵɵelementEnd","ɵɵadvance","ɵɵtextInterpolate1","ɵɵpipeBind2","cardInfo_r1","effectiveDate","ctx_r1","dateFormat","ɵɵpipeBind1","ɵɵproperty","ɵɵpureFunction2","_c0","activityInfo_r3","status","ɵɵtextInterpolate","lostReason","ɵɵtemplate","CrmActivityOpportunityUpdatedComponent_ng_container_0_div_11_div_4_div_1_Template","notes","CrmActivityOpportunityUpdatedComponent_ng_container_0_div_11_div_3_Template","CrmActivityOpportunityUpdatedComponent_ng_container_0_div_11_div_4_Template","CrmActivityOpportunityUpdatedComponent_ng_container_0_div_11_div_5_Template","opportunityName","isClosedWon","ɵɵelementContainerStart","ɵɵelement","CrmActivityOpportunityUpdatedComponent_ng_container_0_p_9_Template","CrmActivityOpportunityUpdatedComponent_ng_container_0_div_11_Template","ɵɵstyleProp","showAvatar","AVATAR_WIDTH","toString","headerText","activityInfo","CrmActivityOpportunityUpdatedComponent","init_opportunity_change_component","__esmMin","init_core","init_common","init_ngx_translate_core","init_field_service","init_tokens_and_interfaces","init_card","init_pipes","init_avatar","init_date_utils","init_constants","init_state","init_vendasta_sales","init_operators","init_esm","init_rxjs_interop","init_vendasta_sales_opportunities","init_platform_api_service","_activity","constructor","fieldService","translateService","crmPlatformApiService","salespersonService","config","opportunityApi","__privateAdd","__privateSet","signal","_showAvatar","DateFormat","medium","salespersonId","computed","getFieldValueFromCrmObject","activity","StandardIds","ActivityOpportunityChangeSalespersonID","stringValue","namespace","toSignal","namespace$","effectResult","undefined","instant","opportunityUpdatedBy","cardInfo","updatedBy","opportunityChangeStatus","__privateGet","ActivityOpportunityChangePipelineStage","opportunityChangeLostReason","ActivityOpportunityChangeLostReason","opportunityChangeNotes","getStringFieldData","ActivityOpportunityChangeNotes","formattedStatus","charAt","toUpperCase","slice","toLowerCase","formattedLostReason","SystemFieldIds","ActivityEffectiveDate","dateValue","accountGroupId$","toObservable","pipe","map","associations","find","association","crmObjectType","crmObjectId","filter","companyId","switchMap","getAccountGroupForCompany","combineLatest","accountGroupId","opportunityId","ActivityOpportunityChangeID","get","opportunity","name","catchError","of","effect","getSalespersonBySubjectId","salesperson","firstName","lastName","take","subscribe","set","allowSignalWrites","checkClosedWon","ngOnInit","fieldId","ɵɵdirectiveInject","CrmFieldService","TranslateService","CrmPlatformApiService","SalespersonService","CrmInjectionToken","SalesOpportunitiesService","selectors","inputs","standalone","features","ɵɵProvidersFeature","RxState","ɵɵStandaloneFeature","decls","vars","consts","template","rf","ctx","CrmActivityOpportunityUpdatedComponent_ng_container_0_Template","CommonModule","NgClass","NgIf","DatePipe","TranslateModule","TranslatePipe","MatCardModule","MatCard","MatCardAvatar","MatCardContent","MatCardHeader","MatCardSubtitle","MatCardTitle","GalaxyPipesModule","GalaxyAvatarModule","AvatarComponent","styles","_CrmActivityOpportunityUpdatedComponent","ɵɵelementContainer","ɵɵtemplate","CrmTimelineComponent_ng_container_1_ng_container_1_ng_container_1_div_1_ng_container_5_ng_container_1_ng_container_1_div_1_ng_template_1_ng_container_0_Template","ɵɵproperty","ɵɵpipeBind1","activity_r2","taskOverdueSubtitle_r4","taskDueSubtitle_r3","ɵɵpureFunction1","_c2","ɵɵelement","ɵɵelementStart","ɵɵlistener","$event","ɵɵrestoreView","_r5","ctx_r5","ɵɵnextContext","ɵɵresetView","updateActivity","ɵɵelementEnd","crmIdentifier_r7","uniqueUsers$","ɵɵelementContainerStart","CrmTimelineComponent_ng_container_1_ng_container_1_ng_container_1_div_1_ng_container_5_ng_container_1_ng_container_1_div_1_ng_container_4_crm_activity_logged_note_2_Template","CrmTimelineComponent_ng_container_1_ng_container_1_ng_container_1_div_1_ng_container_5_ng_container_1_ng_container_1_div_1_ng_container_4_crm_activity_logged_email_3_Template","CrmTimelineComponent_ng_container_1_ng_container_1_ng_container_1_div_1_ng_container_5_ng_container_1_ng_container_1_div_1_ng_container_4_crm_activity_logged_call_4_Template","CrmTimelineComponent_ng_container_1_ng_container_1_ng_container_1_div_1_ng_container_5_ng_container_1_ng_container_1_div_1_ng_container_4_crm_activity_logged_meeting_5_Template","CrmTimelineComponent_ng_container_1_ng_container_1_ng_container_1_div_1_ng_container_5_ng_container_1_ng_container_1_div_1_ng_container_4_crm_activity_task_6_Template","CrmTimelineComponent_ng_container_1_ng_container_1_ng_container_1_div_1_ng_container_5_ng_container_1_ng_container_1_div_1_ng_container_4_crm_activity_logged_communication_7_Template","ɵɵadvance","crmObjectSubtype","_r8","$implicit","editingActivities","crmObjectId","crmActivity_r9","objectType","ownerUser","CrmTimelineComponent_ng_container_1_ng_container_1_ng_container_1_div_1_ng_container_5_ng_container_1_ng_container_1_div_1_ng_container_5_crm_activity_logger_1_Template","ɵɵpipeBind2","_r10","openPopover","ɵɵtext","associations_r11","ɵɵtextInterpolate2","associations","length","_r12","ɵɵtextInterpolate1","activityOptionsMenu_r13","CrmTimelineComponent_ng_container_1_ng_container_1_ng_container_1_div_1_ng_container_5_ng_container_1_ng_container_1_div_1_ng_template_1_Template","ɵɵtemplateRefExtractor","CrmTimelineComponent_ng_container_1_ng_container_1_ng_container_1_div_1_ng_container_5_ng_container_1_ng_container_1_div_1_ng_container_4_Template","CrmTimelineComponent_ng_container_1_ng_container_1_ng_container_1_div_1_ng_container_5_ng_container_1_ng_container_1_div_1_ng_container_5_Template","CrmTimelineComponent_ng_container_1_ng_container_1_ng_container_1_div_1_ng_container_5_ng_container_1_ng_container_1_div_1_div_6_Template","ɵɵtwoWayListener","_r1","i0","ɵɵtwoWayBindingSet","popupOpen","CrmTimelineComponent_ng_container_1_ng_container_1_ng_container_1_div_1_ng_container_5_ng_container_1_ng_container_1_div_1_div_10_Template","_c0","last_r16","ownerId","taskSubtitle_r14","undefined","ɵɵtwoWayProperty","ɵɵpureFunction2","_c1","PopoverPositions","Bottom","Top","CrmTimelineComponent_ng_container_1_ng_container_1_ng_container_1_div_1_ng_container_5_ng_container_1_ng_container_1_div_1_Template","isActivityValid","CrmTimelineComponent_ng_container_1_ng_container_1_ng_container_1_div_1_ng_container_5_ng_container_1_ng_template_2_div_0_crm_activity_record_change_1_Template","CrmTimelineComponent_ng_container_1_ng_container_1_ng_container_1_div_1_ng_container_5_ng_container_1_ng_template_2_div_0_crm_activity_note_2_Template","CrmTimelineComponent_ng_container_1_ng_container_1_ng_container_1_div_1_ng_container_5_ng_container_1_ng_template_2_div_0_crm_activity_email_3_Template","CrmTimelineComponent_ng_container_1_ng_container_1_ng_container_1_div_1_ng_container_5_ng_container_1_ng_template_2_div_0_crm_activity_call_4_Template","CrmTimelineComponent_ng_container_1_ng_container_1_ng_container_1_div_1_ng_container_5_ng_container_1_ng_template_2_div_0_crm_activity_communication_5_Template","CrmTimelineComponent_ng_container_1_ng_container_1_ng_container_1_div_1_ng_container_5_ng_container_1_ng_template_2_div_0_crm_activity_opportunity_updated_6_Template","CrmTimelineComponent_ng_container_1_ng_container_1_ng_container_1_div_1_ng_container_5_ng_container_1_ng_template_2_div_0_Template","CrmTimelineComponent_ng_container_1_ng_container_1_ng_container_1_div_1_ng_container_5_ng_container_1_ng_container_1_Template","CrmTimelineComponent_ng_container_1_ng_container_1_ng_container_1_div_1_ng_container_5_ng_container_1_ng_template_2_Template","isLoggedActivity","systemActivity_r17","CrmTimelineComponent_ng_container_1_ng_container_1_ng_container_1_div_1_ng_container_5_ng_container_1_Template","section_r18","activities","trackActivitiesBy","CrmTimelineComponent_ng_container_1_ng_container_1_ng_container_1_div_1_ng_container_5_Template","ɵɵtextInterpolate","name","crmIdentifiers$","CrmTimelineComponent_ng_container_1_ng_container_1_ng_container_1_div_1_Template","activitySections_r19","trackActivitySectionsBy","CrmTimelineComponent_ng_container_1_ng_container_1_ng_container_1_Template","CrmTimelineComponent_ng_container_1_ng_container_1_ng_container_2_Template","emptyActivities_r20","showLoadingAfterActivities$","CrmTimelineComponent_ng_container_1_ng_container_1_Template","activitySections$","CrmTimelineComponent_ng_template_5_ng_container_0_ng_container_1_ng_container_5_Template","CrmTimelineComponent_ng_template_5_ng_container_0_ng_container_1_ng_template_6_Template","filtersPristineObj_r22","filtersPristine","emptyActivitiesSearchText_r21","CrmTimelineComponent_ng_template_5_ng_container_0_ng_container_1_Template","loading$","CrmTimelineComponent_ng_template_5_ng_container_0_Template","_c3","filtersPristine$","activity_r23","dateFormat","activity_r24","CrmTimelineComponent","init_timeline_component","__esmMin","init_common","init_core","init_observers","init_ngx_translate_core","init_translation_module","init_constants","init_empty_state","init_loading_spinner","init_icon","init_activity_template_component","init_logged_note_component","init_state","init_esm","init_record_change_component","init_field_service","init_is_task_overdue_pipe","init_logged_email_component","init_form_field","init_input","init_forms","init_logged_call_component","init_logged_meeting_component","init_note_component","init_email_component","init_src","init_task_component","init_association_popover_component","init_date_utils","init_activity_effective_date_pipe","init_activity_logger_component","init_activity_template_options_directive","init_menu","init_button","init_timeline_associated_object_pipe","init_logged_communication_component","init_activity_communication_component","init_call_component","init_opportunity_change_component","init_popover","activitiesTimelineService","crmObjectId$$","next","objectType$$","constructor","fieldService","activitiesChanged","EventEmitter","DateFormat","medium","now","Date","combineLatest","asObservable","pipe","map","state","select","filters$","showInfiniteScroll$","activitiesLoading","activitiesLoadMore","searchTerm","filters","loading","showLoadingReplacingActivities$","subscriptions","SubscriptionList","new","ngOnInit","setupSplitActivitiesIntoSections","connect","distinctUntilChanged","filter","Boolean","subscribe","set","emit","get","ngOnDestroy","destroy","activity","getFieldValueFromCrmObject","StandardIds","ActivityNoteTitle","stringValue","ActivityNoteBody","VALID_RECORD_CHANGE_TYPES","includes","StandardExternalIds","ActivityRecordChangeType","console","error","setFilters","reloadActivities","setSearchTerm","uniqueUsers","__spreadProps","__spreadValues","find","user","userId","ActivityManuallyLogged","booleanValue","activitiesWithOwnerUser","getActivitySections","addActivity","index","findIndex","a","lockActivityEffectiveDate","loadMoreActivities","section","ɵɵdirectiveInject","ActivitiesTimelineService","CrmFieldService","selectors","inputs","outputs","standalone","features","ɵɵProvidersFeature","RxState","ɵɵStandaloneFeature","decls","vars","consts","template","rf","ctx","CrmTimelineComponent_ng_container_1_Template","CrmTimelineComponent_ng_template_3_Template","CrmTimelineComponent_ng_template_5_Template","CrmTimelineComponent_ng_template_7_Template","CrmTimelineComponent_ng_template_9_Template","loading_r25","CommonModule","NgClass","NgForOf","NgIf","NgTemplateOutlet","NgSwitch","NgSwitchCase","AsyncPipe","DatePipe","TranslateModule","TranslatePipe","TranslationModule","GalaxyEmptyStateModule","EmptyStateComponent","EmptyStateHeroDirective","EmptyStateTitleDirective","GalaxyLoadingSpinnerModule","LoadingSpinnerComponent","GalaxyPopoverModule","PopoverComponent","GalaxyPopoverDirective","MatIconModule","MatIcon","CrmActivityTemplateComponent","CrmActivityLoggedNoteComponent","ObserversModule","CrmActivityRecordChangeComponent","CrmActivityOpportunityUpdatedComponent","CrmActivityLoggedEmailComponent","CrmActivityLoggedCallComponent","CrmActivityLoggedMeetingComponent","CrmActivityEmailComponent","CrmActivityLoggedCommunicationComponent","GalaxyFormFieldModule","MatInputModule","ReactiveFormsModule","CrmActivityNoteComponent","CrmActivityTaskComponent","CrmActivityEffectiveDatePipe","CrmIsTaskOverduePipe","CrmActivityLoggerComponent","CrmActivityTemplateOptionsDirective","MatMenuModule","MatMenu","MatMenuItem","MatMenuTrigger","MatButtonModule","MatIconButton","CrmTimelineAssociatedObjectPipe","CrmActivityCommunicationComponent","CrmActivityCallComponent","CrmActivityAssociationPopoverComponent","styles","_CrmTimelineComponent","init_timeline","__esmMin","init_timeline_component","init_timeline_associated_object_pipe","init_timeline_service","ActivitiesTimelineFilterService","init_activity_timeline_filter_service","__esmMin","init_esm","constructor","crmFieldOptionsService","crmFiltersService","initialFilters$$","BehaviorSubject","initialFilters$","asObservable","getFieldOptions","fieldId","search","getInitialAppliedFilters","firstValueFrom","setInitialAppliedFilters","filters","next","listObjectFilters","searchTerm","listObjectFilters$","ɵɵinject","CrmFieldOptionsService","CrmFiltersService","factory","ɵfac","_ActivitiesTimelineFilterService","ɵɵelement","ɵɵelementStart","ɵɵlistener","ɵɵrestoreView","_r2","ctx_r2","ɵɵnextContext","ɵɵresetView","loadMoreActivities","ɵɵelementEnd","ɵɵproperty","CrmActivitiesTimelineComponent","init_activities_timeline_component","__esmMin","init_common","init_core","init_ngx_translate_core","init_translation_module","init_esm","init_activity_logger_component","init_form_field","init_input","init_forms","init_timeline_component","init_button","init_galaxy_filter_chips_component","init_chips","init_animations","init_icon","init_activity_timeline_filter_service","init_infinite_scroll_trigger","init_state","init_rxjs_interop","init_utils","init_timeline_service","init_tokens_and_interfaces","init_filter_view_component","_crmObjectId","_activityObjectType","constructor","config","activitiesTimelineService","activitiesTimelineFilterService","router","activatedRoute","__privateAdd","showFiltersOpen","objectType","translateService","inject","TranslateService","destroyRef","DestroyRef","filters","signal","filtersApplied","computed","length","presetFilters","name","instant","fieldId","operator","GalaxyFilterOperator","FILTER_OPERATOR_IS","values","string","searchControl","FormControl","subscriptions","showLoadMore","scrollTop","initialSearchTerm","initialSearchTermSet","initialFilters","filterParam","snapshot","queryParamMap","get","f","decodeFilters","validateFilters","setInitialAppliedFilters","keys","appID","push","crmObjectId","__privateSet","__privateGet","activityObjectType","ngOnInit","searchParam","decodeURI","initializeState","valueChanges","pipe","skipWhile","term","debounceTime","SEARCH_DEBOUNCE_MS","map","value","trim","tap","searchTerm","encodeURI","navigate","relativeTo","queryParams","search","queryParamsHandling","timeline","setSearchTerm","subscribe","ngAfterViewChecked","setValue","updateValueAndValidity","ngAfterContentInit","filters$","takeUntilDestroyed","set","addActivity","activity","handleActivitiesChanged","activities","scrollableContainer","nativeElement","ngOnDestroy","forEach","subscription","unsubscribe","toggleFilterBar","updateFilters","$event","updateChipList","encodeFilters","filter","setFilters","filterChipRef","ɵɵdirectiveInject","CrmInjectionToken","ActivitiesTimelineService","ActivitiesTimelineFilterService","Router","ActivatedRoute","selectors","viewQuery","rf","ctx","RxState","provide","GalaxyFilterChipInjectionToken","useExisting","ɵɵStandaloneFeature","decls","vars","consts","template","i0","_r1","ɵɵtext","ɵɵtemplate","CrmActivitiesTimelineComponent_span_9_Template","CrmActivitiesTimelineComponent_glxy_infinite_scroll_trigger_24_Template","ɵɵadvance","ɵɵpureFunction1","_c3","ɵɵtextInterpolate","ɵɵpipeBind1","CommonModule","NgClass","NgIf","TranslateModule","TranslatePipe","TranslationModule","CrmActivityLoggerComponent","CrmTimelineComponent","GalaxyFormFieldModule","FormFieldComponent","MatInputModule","MatInput","ReactiveFormsModule","DefaultValueAccessor","NgControlStatus","FormControlDirective","MatButtonModule","MatButton","GalaxyFilterChipsComponent","MatIconModule","MatIcon","GalaxyInfiniteScrollTriggerModule","InfiniteScrollTriggerComponent","FilterViewComponent","styles","data","animation","trigger","state","style","height","opacity","transition","animate","_CrmActivitiesTimelineComponent","init_activities_timeline","__esmMin","init_activities","init_timeline","init_activities_timeline_component","init_activity_timeline_filter_service","ɵɵelementContainerStart","ɵɵtext","ɵɵadvance","ɵɵtextInterpolate1","ctx_r0","selectedCompanyText","ɵɵelement","CompanyCustomFilterChipComponent","init_company_custom_filter_chip_component","__esmMin","init_core","init_common","init_ngx_translate_core","init_rxjs_interop","init_operators","initialValue","value","length","string","selectedCompanyId","set","constructor","companyFiltersService","signal","selectedCompany","computed","displayName","toObservable","pipe","switchMap","companyIds","getMultiCompany","takeUntilDestroyed","subscribe","result","ɵɵdirectiveInject","CompanyFiltersService","selectors","inputs","standalone","features","ɵɵProvidersFeature","ɵɵStandaloneFeature","decls","vars","consts","template","rf","ctx","ɵɵtemplate","CompanyCustomFilterChipComponent_ng_container_0_Template","CompanyCustomFilterChipComponent_ng_template_1_Template","ɵɵtemplateRefExtractor","ɵɵproperty","loading_r2","CommonModule","NgIf","TranslateModule","styles","_CompanyCustomFilterChipComponent","ɵɵelementStart","ɵɵtext","ɵɵelementEnd","ɵɵproperty","option_r1","ɵɵadvance","ɵɵtextInterpolate1","displayName","ɵɵelement","ɵɵtemplate","CompanyCustomFilterInputComponent_glxy_form_field_0_mat_option_5_Template","ɵɵpipeBind1","ctx_r3","formControl","auto_r3","displayFn","companyDetails_r2","availableOptions","CompanyCustomFilterInputComponent","init_company_custom_filter_input_component","__esmMin","init_core","init_chips","init_common","init_ngx_translate_core","init_forms","init_input","init_form_field","init_autocomplete","init_rxjs_interop","init_esm","init_operators","fieldId","value","_fieldId","set","initialValue","length","string","setValue","clearValue","constructor","companyFiltersService","valueChanges","EventEmitter","FormControl","nonNullable","searchTerm","toSignal","signal","availableOptions$","toObservable","pipe","takeUntilDestroyed","switchMap","filterTerm","crmObjectId","listReadableCompanies","companyDetails$","getMultiCompany","of","effect","emit","allowSignalWrites","company","find","ɵɵdirectiveInject","CompanyFiltersService","selectors","inputs","outputs","standalone","features","ɵɵProvidersFeature","provide","GalaxyAbstractFilterInput","useExisting","forwardRef","ɵɵStandaloneFeature","decls","vars","consts","template","rf","ctx","CompanyCustomFilterInputComponent_glxy_form_field_0_Template","CompanyCustomFilterInputComponent_ng_template_2_Template","ɵɵtemplateRefExtractor","loading_r5","CommonModule","NgForOf","NgIf","AsyncPipe","TranslateModule","TranslatePipe","ReactiveFormsModule","DefaultValueAccessor","NgControlStatus","FormControlDirective","MatInputModule","MatInput","GalaxyFormFieldModule","FormFieldComponent","MatAutocompleteModule","MatAutocomplete","MatOption","MatAutocompleteTrigger","encapsulation","_CompanyCustomFilterInputComponent","AbstractAssigneeFilterChipComponent","init_abstract_assignee_filter_chip_component","__esmMin","init_common","init_core","init_ngx_translate_core","constructor","selectedAssigneeIds","signal","selectedAssignees","selectedAssigneesText","computed","length","firstAssigneeName","getDisplayName","initialValue","value","set","map","v","string","filter","Boolean","selectors","inputs","standalone","features","ɵɵStandaloneFeature","decls","vars","template","rf","ctx","dependencies","CommonModule","TranslateModule","encapsulation","_AbstractAssigneeFilterChipComponent","ɵɵelementContainerStart","ɵɵelementStart","ɵɵtext","ɵɵelementEnd","ɵɵadvance","ɵɵtextInterpolate1","ctx_r0","selectedAssigneesText","ɵɵelement","UserFilterChipComponent","init_user_filter_chip_component","__esmMin","init_core","init_rxjs_interop","init_operators","init_common","init_ngx_translate_core","init_abstract_assignee_filter_chip_component","init_activity_assignee_service","AbstractAssigneeFilterChipComponent","getDisplayName","user","displayName","constructor","userService","inject","ActivityAssigneeService","toObservable","selectedAssigneeIds","pipe","switchMap","userIds","getMultiUsers","takeUntilDestroyed","subscribe","result","selectedAssignees","set","selectors","standalone","features","ɵɵProvidersFeature","ɵɵInheritDefinitionFeature","ɵɵStandaloneFeature","decls","vars","consts","template","rf","ctx","ɵɵtemplate","UserFilterChipComponent_ng_container_0_Template","UserFilterChipComponent_ng_template_1_Template","ɵɵtemplateRefExtractor","ɵɵproperty","loading_r2","CommonModule","NgIf","TranslateModule","styles","_UserFilterChipComponent","AbstractAssigneeFilterInputComponent","init_abstract_assignee_filter_input_component","__esmMin","init_core","init_chips","init_common","init_ngx_translate_core","init_forms","init_input","init_form_field","init_autocomplete","init_rxjs_interop","fieldId","value","_fieldId","set","initialValue","length","string","formControl","setValue","constructor","valueChanges","EventEmitter","FormControl","nonNullable","searchTerm","toSignal","signal","availableOptions","filteredOptions","computed","filterTerm","extractFilterTerm","filter","assignee","filterFn","effect","emit","getId","allowSignalWrites","clearValue","displayFn","foundOption","find","o","getDisplayName","selectors","inputs","outputs","standalone","features","ɵɵProvidersFeature","provide","GalaxyAbstractFilterInput","useExisting","forwardRef","ɵɵStandaloneFeature","decls","vars","template","rf","ctx","dependencies","CommonModule","TranslateModule","ReactiveFormsModule","MatInputModule","GalaxyFormFieldModule","MatAutocompleteModule","encapsulation","_AbstractAssigneeFilterInputComponent","ɵɵelementStart","ɵɵtext","ɵɵelementEnd","ɵɵproperty","option_r1","ɵɵadvance","ɵɵtextInterpolate1","displayName","UserFilterInputComponent","init_user_filter_input_component","__esmMin","init_common","init_forms","init_input","init_ngx_translate_core","init_form_field","init_autocomplete","init_rxjs_interop","init_abstract_assignee_filter_input_component","init_utils","AbstractAssigneeFilterInputComponent","filterFn","user","searchTerm","userFilterFn","extractFilterTerm","userId","getId","getDisplayName","setAvailableOptions","userService","allUsers$","pipe","takeUntilDestroyed","subscribe","allUsers","availableOptions","set","constructor","ɵɵdirectiveInject","ActivityAssigneeService","selectors","standalone","features","ɵɵInheritDefinitionFeature","ɵɵStandaloneFeature","decls","vars","consts","template","rf","ctx","ɵɵelement","ɵɵtemplate","UserFilterInputComponent_mat_option_5_Template","ɵɵpipeBind1","formControl","auto_r2","displayFn","filteredOptions","CommonModule","NgForOf","TranslateModule","TranslatePipe","ReactiveFormsModule","DefaultValueAccessor","NgControlStatus","FormControlDirective","MatInputModule","MatInput","GalaxyFormFieldModule","FormFieldComponent","MatAutocompleteModule","MatAutocomplete","MatOption","MatAutocompleteTrigger","encapsulation","_UserFilterInputComponent","init_custom_filters","__esmMin","init_company_custom_filter_chip_component","init_company_custom_filter_input_component","init_user_filter_chip_component","init_user_filter_input_component","init_abstract_custom_filters","__esmMin","init_shared_components","__esmMin","init_association_panel_components","init_custom_table_cells","init_filter_view","init_list_objects","init_select_object_type_modal_component","init_create_crm_object_modal","init_side_panel","init_model_driven_form","init_activities_timeline","init_custom_filters","init_abstract_custom_filters","init_src","__esmMin","init_shared_services","init_shared_components","init_shared_pipes","init_crm_core_module","init_tokens_and_interfaces","init_constants","init_i18n","init_utils"],"x_google_ignoreList":[53,57,107,108,109,110,111,112,113,114,115,116,117,118,119,120,121,122,123,124,125,126,127,128,129,130,131,132,133,134,135,136,137,138,139,140,141,142,143,144,145,146,147,148,149,150,151,152,173,209,223,224,248,328,340]}