@posiwise/shared-components 0.0.148 → 0.0.150
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"posiwise-shared-components.mjs","sources":["../../../../libs/shared-components/src/lib/authenticator/authenticator.component.ts","../../../../libs/shared-components/src/lib/authenticator/authenticator.component.html","../../../../libs/shared-components/src/lib/clearbit-icon/clearbit-icon.component.ts","../../../../libs/shared-components/src/lib/clearbit-icon/clearbit-icon.component.html","../../../../libs/shared-components/src/lib/coming-soon/coming-soon.component.ts","../../../../libs/shared-components/src/lib/header/header.component.ts","../../../../libs/shared-components/src/lib/header/header.component.html","../../../../libs/shared-components/src/lib/no-data/no-data.component.ts","../../../../libs/shared-components/src/lib/label-management/entity-group/entity-group.component.ts","../../../../libs/shared-components/src/lib/label-management/entity-group/entity-group.component.html","../../../../libs/shared-components/src/lib/label-management/group-definition/group-definition.component.ts","../../../../libs/shared-components/src/lib/label-management/group-definition/group-definition.component.html","../../../../libs/shared-components/src/lib/label-management/groups/groups.component.ts","../../../../libs/shared-components/src/lib/label-management/groups/groups.component.html","../../../../libs/shared-components/src/lib/landing-page-footer-b/landing-page-footer-b.component.ts","../../../../libs/shared-components/src/lib/landing-page-footer-b/landing-page-footer-b.component.html","../../../../libs/shared-components/src/lib/number-picker/number-picker.component.ts","../../../../libs/shared-components/src/lib/number-picker/number-picker.component.html","../../../../libs/shared-components/src/lib/password-validation/password-validation.component.ts","../../../../libs/shared-components/src/lib/password-validation/password-validation.component.html","../../../../libs/shared-components/src/lib/permission-tree/permission-tree.component.ts","../../../../libs/shared-components/src/lib/privacy-and-tos/privacy-and-tos.component.ts","../../../../libs/shared-components/src/lib/privacy-and-tos/privacy-and-tos.component.html","../../../../libs/shared-components/src/lib/privacy-policy/privacy-policy.component.ts","../../../../libs/shared-components/src/lib/privacy-policy/privacy-policy.component.html","../../../../libs/shared-components/src/lib/pw-tabs/pw-tabs.component.ts","../../../../libs/shared-components/src/lib/pw-tabs/pw-tabs.component.html","../../../../libs/shared-components/src/lib/range-date-picker/date-range-picker.component.ts","../../../../libs/shared-components/src/lib/range-date-picker/date-range-picker.component.html","../../../../libs/shared-components/src/lib/input-container/input-container.component.ts","../../../../libs/shared-components/src/lib/input-container/input-container.component.html","../../../../libs/shared-components/src/lib/resource-shared-components.module.ts","../../../../libs/shared-components/src/lib/splash/splash.component.ts","../../../../libs/shared-components/src/lib/splash/splash.component.html","../../../../libs/shared-components/src/lib/terms-conditions/terms-conditions.component.ts","../../../../libs/shared-components/src/lib/terms-conditions/terms-conditions.component.html","../../../../libs/shared-components/src/lib/shared-components.module.ts","../../../../libs/shared-components/src/posiwise-shared-components.ts"],"sourcesContent":["import { Component, Injector, OnInit } from '@angular/core';\n\nimport { AppBaseComponent } from '@posiwise/app-base-component';\nimport { AuthService } from '@posiwise/common-services';\n\n@Component({\n selector: 'pw-authenticator',\n templateUrl: './authenticator.component.html',\n\n standalone: false\n})\nexport class AuthenticatorComponent extends AppBaseComponent implements OnInit {\n token = '';\n\n constructor(\n private readonly authService: AuthService,\n injector: Injector\n ) {\n super(injector);\n }\n\n ngOnInit() {\n this.route.queryParams.subscribe(params => {\n if (!params['token']) {\n window.location.href = '/login';\n } else {\n this.authService.storePlatform('app').subscribe(() => {\n this.authService.setHeaderKey();\n this.authService.storeToken(params['token']).subscribe({\n next: () => {\n this.router.navigate(['home']);\n },\n error: () => {\n window.location.href = '/login';\n }\n });\n });\n }\n });\n }\n}\n","<!--Auth Page Starts-->\n<section>\n <div class=\"container-fluid\">\n <div class=\"row full-height-vh\">\n <div class=\"col-12 d-flex align-items-center justify-content-center\">\n <h2>Logging...</h2>\n </div>\n </div>\n </div>\n</section>\n<!--Auth Page Ends-->\n","import { Component, Input, OnChanges, SimpleChanges } from '@angular/core';\n\nimport { HelperService } from '@posiwise/helper-service';\n\n@Component({\n selector: 'pw-clearbit-icon',\n templateUrl: './clearbit-icon.component.html',\n styleUrls: ['./clearbit-icon.component.scss'],\n\n standalone: false\n})\nexport class ClearBitIconComponent implements OnChanges {\n @Input() src = null;\n @Input() altText = 'Logo';\n @Input() dummyPath = 'assets/img/icons/company.png';\n\n clearBitSrc = null;\n\n ngOnChanges(simple: SimpleChanges) {\n if (\n simple['src']?.currentValue &&\n simple['src']?.currentValue !== simple['src']?.previousValue\n ) {\n this.clearBitSrc = HelperService.getLogoByUrl(this.src);\n } else {\n this.clearBitSrc = this.dummyPath;\n }\n }\n}\n","<img [src]=\"clearBitSrc\"\n [alt]=\"altText\"\n class=\"img-fluid company-logo me-2 mt-1\" />\n","import { Component, Input } from '@angular/core';\n\n@Component({\n selector: 'pw-coming-soon',\n template: `\n <div class=\"coming-soon\">\n <h2 class=\"card-title\">{{ message }}</h2>\n <p>... this section is under construction.</p>\n </div>\n `,\n standalone: false\n})\nexport class ComingSoonComponent {\n @Input()\n message = 'Coming soon';\n}\n","import { Component, Injector, Input } from '@angular/core';\n\nimport { AppBaseComponent } from '@posiwise/app-base-component';\nimport { AuthService } from '@posiwise/common-services';\n\n@Component({\n selector: 'pw-header',\n templateUrl: './header.component.html',\n styleUrls: ['./header.component.scss'],\n\n standalone: false\n})\nexport class HeaderComponent extends AppBaseComponent {\n loggedIn: boolean;\n isMenuCollapsed = true;\n\n constructor(\n injector: Injector,\n private readonly authService: AuthService\n ) {\n super(injector);\n this.authService\n .getToken$()\n .pipe()\n .subscribe(res => {\n this.loggedIn = !!res;\n });\n }\n\n @Input() landing = false;\n\n navigateToLogin() {\n window.location.href = '/login';\n }\n\n toggleMenu() {\n this.isMenuCollapsed = !this.isMenuCollapsed;\n }\n\n logo = this.appConfig?.company?.logos?.main_contrast?.url;\n}\n","<div class=\"navbar navbar-expand-lg fixed-top-nav fixed-top\"\n [ngClass]=\"{ 'navbar-blue': !landing }\">\n <div class=\"container d-block\">\n <div class=\"row m-0\">\n <div class=\"col-lg-2 float-start\">\n <a href=\"/\">\n <img [src]=\"logo\"\n class=\"header-logo\"\n alt=\"site-logo\" />\n </a>\n <button type=\"button\"\n class=\"navbar-toggle\"\n (click)=\"toggleMenu()\"\n [attr.aria-expanded]=\"!isMenuCollapsed\">\n <span class=\"icon-bar\"></span> <span class=\"icon-bar\"></span>\n <span class=\"icon-bar\"></span>\n </button>\n </div>\n <div class=\"col-lg-10 nav-outer mt-2\">\n <div class=\"navbar-collapse float-end\"\n [class.collapse]=\"isMenuCollapsed\"\n [class.show]=\"!isMenuCollapsed\"\n id=\"myNavbar\">\n <nav class=\"navbar navbar-expand-sm bg-light\">\n <ul class=\"navbar-nav\">\n <li class=\"nav-item contact-button\">\n <a href=\"/\"\n class=\"\">{{ 'Button.Home' | transloco }}</a>\n </li>\n <li *ngIf=\"!loggedIn\" class=\"nav-item login-button\">\n <a class=\"\"\n (click)=\"navigateToLogin()\"> log in</a>\n </li>\n </ul>\n </nav>\n </div>\n </div>\n </div>\n </div>\n</div>\n","import { AfterContentInit, Component, ContentChild, Input } from '@angular/core';\n\n@Component({\n selector: 'pw-no-data',\n template: `\n <div class=\"no-data\" [ngClass]=\"{ 'has-content': !this.isContentEmpty }\">\n <img\n *ngIf=\"withImage\"\n src=\"/assets/img/icons/nothing_found.webp\"\n class=\"nothing-found-image\"\n alt=\"No data found\"\n loading=\"lazy\"\n fetchpriority=\"low\"\n />\n <span\n class=\"h5 message\"\n [ngClass]=\"{\n 'mt-2': description || !this.isContentEmpty,\n 'my-3': !description && this.isContentEmpty\n }\"\n >\n {{ message || 'Nothing found' }}\n </span>\n <span *ngIf=\"description\" class=\"pb-4\">{{ description }}</span>\n <ng-content></ng-content>\n </div>\n `,\n styleUrls: ['./no-data.component.scss'],\n standalone: false\n})\nexport class NoDataComponent implements AfterContentInit {\n @ContentChild('content', { static: false }) content: { nativeElement: { innerHTML: string } };\n @Input() message: string | null = null;\n @Input() description: string | null = null;\n @Input() withImage = false;\n\n isContentEmpty = false;\n\n ngAfterContentInit() {\n this.isContentEmpty = !this.content?.nativeElement.innerHTML.trim();\n }\n}\n","import { Component, Injector, OnDestroy, OnInit, TemplateRef, ViewChild } from '@angular/core';\n\nimport { AppBaseComponent } from '@posiwise/app-base-component';\nimport { GroupService, PermissionService, SubscriptionService } from '@posiwise/common-services';\nimport { Subscription, TAG_ENTITY, User } from '@posiwise/common-utilities';\nimport { HelperService } from '@posiwise/helper-service';\n\nimport { NgbModal } from '@ng-bootstrap/ng-bootstrap';\n\nimport { EnrolledUser, SharedModalContext } from '../../shared/shared-component.interface';\n\n@Component({\n selector: 'pw-entity-group',\n templateUrl: './entity-group.component.html',\n styleUrls: ['./entity-group.component.scss'],\n\n standalone: false\n})\nexport class EntityGroupComponent extends AppBaseComponent implements OnInit, OnDestroy {\n @ViewChild('content', { static: true }) content: TemplateRef<SharedModalContext>;\n\n subscription: Subscription;\n subscriptionId: number;\n\n user: User;\n userId: number;\n\n entityId: number;\n selectedGroup: { name: string };\n\n subscriptionMembers = []; // Holds all the members\n subscribedMembers = []; // Holds all the members\n filteredMembers = []; // Populates in the autocomplete\n selectedMembers = []; // Selected in the autocomplete\n\n enrolledUsers: EnrolledUser[];\n\n admins = [];\n subscriptionInfo = [];\n subscriptionOwner: number;\n\n chatPermission: string;\n\n isLoaded = false;\n\n hasAccess: boolean;\n\n constructor(\n private readonly groupService: GroupService,\n private readonly subscriptionService: SubscriptionService,\n private readonly modalService: NgbModal,\n injector: Injector\n ) {\n super(injector);\n }\n\n ngOnInit() {\n this.getUserSubscription().subscribe(response => {\n this.subscription = response;\n if (this.subscription?.id) {\n this.getSubscribedUsers();\n }\n });\n this.route.params.subscribe(params => {\n this.entityId = Number(params['groupId']);\n this.getEntity();\n });\n this.userStore().subscribe(user => {\n this.user = user;\n if (this.user) {\n this.userId = this.user.id;\n }\n });\n this.chatPermission = `${PermissionService.selectedProduct?.permission}.${PermissionService.selectedProduct?.feature_key}`;\n }\n\n search(event) {\n let data = [];\n if (event.query) {\n data = this.subscriptionMembers.filter((x: { displayName: string }) => {\n return x.displayName.toLowerCase().includes(event.query.toLowerCase());\n });\n } else {\n this.subscriptionMembers.forEach(element => {\n data.push(element);\n });\n }\n this.filteredMembers = data;\n }\n\n open() {\n this.groupService.getSubscriptionMembers(this.subscription?.id).subscribe(response => {\n response.members.forEach(member => {\n member.displayName = `${member.first_name ?? ''} ${member.last_name ?? ''} ${\n member.email\n }`.trim();\n });\n this.subscriptionMembers = response.members;\n });\n\n this.modalService.open(this.content, { centered: true, windowClass: 'modal-holder' });\n }\n\n closeModal(modal) {\n modal.close();\n this.filteredMembers = [];\n }\n\n getEntity() {\n this.groupService.getEntityGroup(this.entityId).subscribe(response => {\n response.members.forEach(member => {\n member.displayName = `${member.first_name ?? ''} ${member.last_name ?? ''} ${\n member.email\n }`.trim();\n });\n this.isLoaded = true;\n this.subscribedMembers = response.members;\n this.selectedGroup = response;\n });\n }\n\n onSave() {\n const data = {\n entity_groups: [\n {\n related_entity_id: this.selectedMembers.map(x => x.id),\n related_entity_type: TAG_ENTITY.USER\n }\n ]\n };\n\n this.groupService.addEntityGroup(this.entityId, data).subscribe(() => {\n this.modalService.dismissAll();\n this.toast.success(this.translation.translate('Admin.Shared.Entity.AddedMessage'));\n\n this.getEntity();\n });\n }\n\n private getSubscribedUsers() {\n this.subscriptionService\n .getEnrolledSubscription(this.subscription?.id)\n .subscribe(response => {\n this.subscriptionOwner = response.owner_id;\n this.admins = response.admins;\n this.enrolledUsers = response.members;\n this.enrolledUsers.forEach(element => {\n element.is_owner = element?.id === this.user?.id;\n });\n this.hasAccess =\n this.admins.includes(this.user?.id) ||\n this.user?.id === this.subscriptionOwner ||\n this.permissionService.isSuperAdmin();\n });\n }\n\n onDelete(memberId) {\n HelperService.raiseDeletePopup()\n .then(resp => {\n if (resp.value) {\n const data = JSON.stringify([memberId]);\n this.groupService\n .deleteEntityGroup(this.entityId, data, 'User')\n .subscribe(() => {\n this.toast.success(\n this.translation.translate('Admin.Shared.Entity.DeletedMessage')\n );\n this.getEntity();\n });\n }\n })\n .catch(error => this.toast.showToast(error));\n }\n\n navigateToCommunications() {\n this.router.navigate([`/${this.subscription?.slug}/enterprise/communications`], {\n queryParams: { entity_id: this.entityId }\n });\n }\n\n override ngOnDestroy() {\n super.ngOnDestroy();\n }\n}\n","<div>\n <div class=\"row\">\n <div class=\"col-12 mb-3\">\n <h2>Team View</h2>\n\n <p>\n In this section, based on your permissions, you can add/remove members from your\n teams.\n <br />\n Then, you'll be able to see powerful insight on the activities performed by your\n team's members.\n </p>\n </div>\n </div>\n\n <div class=\"row\">\n <div class=\"col-md-6 col-xs-12 d-flex align-items-sm-center align-items-top text-start pe-0\">\n <a aria-label=\"Navigate to Target\"\n (click)=\"back()\"\n class=\"previous\"><i class=\"fa fa-arrow-alt-circle-left\" aria-hidden=\"true\"></i></a>\n <h3 class=\"ms-sm-2 d-inline mt-0 card-title mb-3 mb-sm-0\">\n Team view: {{ selectedGroup?.name }}\n </h3>\n </div>\n <div class=\"col-md-6 col-xs-12 text-end justify-content-end\">\n <button *ngIf=\"hasAccess\"\n class=\"btn btn-sm btn-outline-primary\"\n (click)=\"open()\">\n <i class=\"fa fa-plus-circle\" aria-hidden=\"true\"></i> Add Members\n </button>\n <button *ngIf=\"hasAccess\"\n class=\"btn btn-sm btn-outline-primary ms-2\"\n (click)=\"navigateToCommunications()\">\n <i class=\"fa fa-plus-circle\" aria-hidden=\"true\"></i> See Communications\n </button>\n </div>\n </div>\n\n <div class=\"w-100 text-center mt-3\"\n *ngIf=\"!isLoaded\">\n <p-progressSpinner strokeWidth=\"2\"> </p-progressSpinner>\n </div>\n\n <div class=\"primeng-datatable-container table-responsive\"\n [class.hideTable]=\"subscribedMembers?.length === 0\">\n <p-table #dt\n [value]=\"subscribedMembers\"\n [paginator]=\"true\"\n [rows]=\"PAGE_SIZE\">\n <ng-template pTemplate=\"header\">\n <tr>\n <th scope=\"true\">{{ 'Label.FirstName' | transloco }}</th>\n <th scope=\"true\">{{ 'Label.LastName' | transloco }}</th>\n <th scope=\"true\">{{ 'Label.Email' | transloco }}</th>\n <th scope=\"true\">{{ 'Label.Actions' | transloco }}</th>\n </tr>\n </ng-template>\n <ng-template pTemplate=\"body\"\n let-member>\n <tr class=\"table-row\">\n <td data-head=\"First Name\">\n <a [routerLink]=\"['/members', member.slug]\">{{ member.first_name || null }}\n </a>\n </td>\n <td data-head=\"Last Name\">{{ member.last_name || null }}</td>\n <td data-head=\"Email\">{{ member.email }}</td>\n <td data-head=\"Action\">\n <ul class=\"list-unstyled list-inline list-action\">\n <li ngbTooltip=\"Message\"\n class=\"me-2 me-sm-3\"\n *ngIf=\"member.id !== userId\"\n [routerLink]=\"['/message']\"\n [fragment]=\"member.slug\">\n <i\n class=\"fa fa-comments cta1-icon\"\n *rbacAllow=\"chatPermission\"\n aria-hidden=\"true\"\n ></i>\n </li>\n <li ngbTooltip=\"Remove\"\n class=\"me-2 me-sm-3\"\n (click)=\"onDelete(member.id)\"\n (keydown.enter)=\"onDelete(member.id)\"\n (keydown.space)=\"onDelete(member.id)\"\n *ngIf=\"hasAccess\">\n <i class=\"fa fa-trash delete-icon\" aria-hidden=\"true\"></i>\n </li>\n </ul>\n </td>\n </tr>\n </ng-template>\n </p-table>\n </div>\n <pw-no-data [withImage]=\"true\" message=\"There are no members in this team yet.\"\n *ngIf=\"subscribedMembers?.length === 0 && isLoaded\">\n </pw-no-data>\n</div>\n\n<ng-template #content\n let-modal>\n <div class=\"modal-header\">\n <h4 class=\"modal-title\"\n id=\"modal-basic-title\">Add Members</h4>\n <button type=\"button\"\n class=\"btn-close float-end\"\n aria-label=\"Close\"\n (click)=\"modal.dismiss()\">\n\n </button>\n </div>\n <div class=\"modal-body\">\n <p>Please start typing to select the members to add to this team.</p>\n <div class=\"ui-fluid skills-modal\">\n <p-autoComplete [suggestions]=\"filteredMembers\"\n [(ngModel)]=\"selectedMembers\"\n dataKey=\"id\"\n field=\"displayName\"\n (completeMethod)=\"search($event)\"\n styleClass=\"w-100\"\n placeholder=\"Member\"\n [multiple]=\"true\">\n </p-autoComplete>\n </div>\n </div>\n <div class=\"modal-footer\">\n <button type=\"button\"\n class=\"btn btn-outline-default\"\n (click)=\"closeModal(modal)\">\n {{ 'Button.Cancel' | transloco }}\n </button>\n <button type=\"button\"\n class=\"btn btn-primary\"\n (click)=\"onSave()\">\n {{ 'Button.Save' | transloco }}\n </button>\n </div>\n</ng-template>\n","import { Component, Injector, OnDestroy, OnInit } from '@angular/core';\nimport {\n UntypedFormBuilder,\n UntypedFormControl,\n UntypedFormGroup,\n Validators\n} from '@angular/forms';\n\nimport { AppBaseComponent } from '@posiwise/app-base-component';\nimport { DataService, GroupService, SubscriptionService } from '@posiwise/common-services';\nimport { TAG_ENTITY, User } from '@posiwise/common-utilities';\nimport { ValidateForm } from '@posiwise/utils';\n\nimport swal from 'sweetalert2';\n\nimport { EnrolledUser, GroupDefinition } from '../../shared/shared-component.interface';\n\n@Component({\n selector: 'pw-group-definition',\n templateUrl: './group-definition.component.html',\n styleUrls: ['./group-definition.component.scss'],\n\n standalone: false\n})\nexport class GroupDefinitionComponent extends AppBaseComponent implements OnInit, OnDestroy {\n subscriptions = [];\n\n message: number;\n\n groupDefinition: object[];\n\n form: UntypedFormGroup;\n\n id: number;\n\n viewDefinition: boolean;\n\n viewEdit: boolean;\n\n private groupDefId: number;\n\n private groupDefinitionDetails: GroupDefinition;\n\n hasAccess: boolean;\n\n admins = [];\n\n subscriptionInfo = [];\n\n subscriptionOwner: number;\n\n enrolledUsers: EnrolledUser[];\n\n user: User;\n\n isLoaded = false;\n categoryBusyButton = false;\n\n constructor(\n private readonly groupService: GroupService,\n private readonly fb: UntypedFormBuilder,\n private readonly subscriptionService: SubscriptionService,\n private readonly data: DataService,\n injector: Injector\n ) {\n super(injector);\n this.form = this.fb.group({\n name: new UntypedFormControl('', [Validators.required]),\n description: new UntypedFormControl(''),\n is_private: [true]\n });\n }\n\n ngOnInit() {\n this.getUserSubscriptionId().subscribe(id => {\n this.id = id;\n });\n this.getAllGroupDefinition();\n this.getSubscribedUsers();\n this.userStore().subscribe(user => {\n this.user = user;\n });\n this.data.currentMessage.subscribe(message => {\n this.message = message;\n });\n }\n\n private getAllGroupDefinition() {\n this.groupService\n .groupDefinitionGetAll(this.id, 'Subscription')\n .subscribe(response => {\n if (response.group_definitions.length > 0) {\n this.groupDefinition = response.group_definitions;\n } else {\n this.groupDefinition = [];\n }\n })\n .add(() => {\n this.isLoaded = true;\n });\n }\n\n private getSubscribedUsers() {\n this.subscriptionService.getEnrolledSubscription(this.id).subscribe(response => {\n this.subscriptionOwner = response.owner_id;\n this.admins = response.admins;\n this.enrolledUsers = response.members;\n this.enrolledUsers.forEach(element => {\n element.is_owner = element?.id === this.user?.id;\n });\n this.hasAccess =\n this.admins.includes(this.user?.id) ||\n this.user?.id === this.subscriptionOwner ||\n this.permissionService.isSuperAdmin();\n });\n }\n\n updateDetails() {\n this.categoryBusyButton = true;\n const formValue = this.form.value;\n const data = {\n name: formValue.name,\n description: formValue.description,\n is_private: formValue.is_private\n };\n this.groupService\n .groupDefinitionsUpdate(this.groupDefId, data)\n .subscribe(() => {\n this.toast.success(\n this.translation.translate('Admin.Shared.Definition.UpdatedMessage')\n );\n\n this.form.reset();\n this.viewDefinition = false;\n this.getAllGroupDefinition();\n })\n .add(() => {\n this.categoryBusyButton = false;\n });\n }\n\n onGroupDefinitionEdit(id: number) {\n this.viewEdit = true;\n this.viewDefinition = true;\n this.groupDefId = id;\n this.getSubscriptionDetails();\n }\n\n getSubscriptionDetails() {\n this.groupService.getGroupDefinitionById(this.groupDefId).subscribe(response => {\n this.groupDefinitionDetails = response;\n this.form.patchValue({\n description: this.groupDefinitionDetails.description,\n name: this.groupDefinitionDetails.name\n });\n });\n }\n\n @ValidateForm('form')\n saveGroupDefinition() {\n this.categoryBusyButton = true;\n const data = {\n name: this.form.value.name,\n description: this.form.value.description,\n related_entity_id: this.id,\n related_entity_type: TAG_ENTITY.SUBSCRIPTION,\n is_private: this.form.value.is_private\n };\n this.groupService\n .groupDefinitions(data)\n .subscribe(() => {\n this.toast.success(\n this.translation.translate('Admin.Shared.Definition.AddedMessage')\n );\n this.form.reset();\n this.getAllGroupDefinition();\n this.viewDefinition = false;\n })\n .add(() => {\n this.categoryBusyButton = false;\n });\n }\n\n onDelete(id: number) {\n swal.fire({\n title: 'Delete',\n text: 'Are you sure you want to delete this label?',\n showCancelButton: true,\n reverseButtons: true,\n icon: 'warning'\n }).then(rep => {\n if (rep.value) {\n this.groupService.groupDefinitionsDelete(id).subscribe(_ => {\n this.toast.success(\n this.translation.translate('Admin.Shared.Definition.DeletedMessage')\n );\n this.getAllGroupDefinition();\n });\n }\n });\n }\n\n viewDefinitions() {\n this.viewDefinition = true;\n this.viewEdit = false;\n }\n\n previous() {\n this.location.back();\n this.data.changeMessage(1);\n }\n\n onCancel() {\n this.form.reset();\n this.viewDefinition = !this.viewDefinition;\n }\n\n override ngOnDestroy() {\n super.ngOnDestroy();\n }\n}\n","<section>\n <div class=\"row\">\n <div class=\"col-12 mb-3\">\n <h2>Enterprise Teams Categories</h2>\n\n <p>\n Here you can define the categories for your enterprise's groups. For example \"Sales\n Department\", \"Development Department\", etc.\n <br />\n Once the category created, you'll be able to add teams to them and see useful\n insight based on the members activity in the corresponding team.\n </p>\n </div>\n </div>\n\n <div class=\"row\"\n *ngIf=\"!viewDefinition\">\n <div class=\"col-6 d-flex align-items-center text-start mb-sm-3 mb-lg-0\">\n <a aria-label=\"Navigate to Target\"\n (click)=\"previous()\"\n class=\"previous\"><i class=\"fa fa-arrow-alt-circle-left\" aria-hidden=\"true\"></i></a>\n </div>\n <div class=\"col-6\"\n *ngIf=\"hasAccess\">\n <button class=\"float-end btn btn-sm btn-outline-primary me-2\"\n (click)=\"viewDefinitions()\">\n <i class=\"fa fa-plus-circle\" aria-hidden=\"true\"></i> Create Team Category\n </button>\n </div>\n </div>\n\n <div *ngIf=\"viewDefinition\">\n <h4 class=\"card-title d-inline mb-5\">\n {{ viewEdit ? 'Update the' : 'Create a new' }} category\n </h4>\n\n <div class=\"mt-4\"\n *ngIf=\"!viewEdit\">\n <form [formGroup]=\"form\"\n (ngSubmit)=\"saveGroupDefinition()\">\n <div class=\"row\">\n <div class=\"mb-3 col-xs-12 col-sm-6 col-md-3\">\n <label for=\"name\">{{ 'Label.Name' | transloco }}</label>\n <input type=\"text\"\n class=\"form-control\"\n formControlName=\"name\" />\n </div>\n <div class=\"mb-3 col-xs-12 col-sm-6 col-md-3\">\n <label for=\"description\">{{ 'Enterprise.Teams.Description' | transloco }}</label>\n <input type=\"text\"\n class=\"form-control\"\n formControlName=\"description\" />\n </div>\n <div class=\"mb-3 col-xs-12 col-sm-6 col-md-3\">\n <label for=\"is_private\">{{ 'Enterprise.Teams.IsPrivate' | transloco }}</label>\n <div class=\"display-block\">\n <ui-switch size=\"small\"\n checkedLabel=\"True\"\n uncheckedLabel=\"false\"\n formControlName=\"is_private\">\n </ui-switch>\n </div>\n </div>\n </div>\n <div class=\"row text-end mt-4\">\n <div class=\"col-12\">\n <button type=\"button\"\n class=\"btn btn-outline-default me-2\"\n (click)=\"onCancel()\"\n (keydown.enter)=\"onCancel()\" >\n {{ 'Button.Cancel' | transloco }}\n </button>\n <button type=\"submit\"\n [buttonBusy]=\"categoryBusyButton\"\n class=\"btn btn-primary\">Add Category</button>\n </div>\n </div>\n </form>\n </div>\n\n <div class=\"mt-4\"\n *ngIf=\"viewEdit\">\n <form [formGroup]=\"form\"\n (ngSubmit)=\"updateDetails()\">\n <div class=\"row\">\n <div class=\"mb-3 col-xs-12 col-sm-6 col-md-3\">\n <label for=\"name\">{{ 'Label.Name' | transloco }}: </label>\n <input type=\"text\"\n class=\"form-control\"\n formControlName=\"name\" />\n </div>\n <div class=\"mb-3 col-xs-12 col-sm-6 col-md-3\">\n <label for=\"description\">{{ 'Enterprise.Teams.Description' | transloco }}:</label>\n <input type=\"text\"\n class=\"form-control\"\n formControlName=\"description\" />\n </div>\n <div class=\"mb-3 col-xs-12 col-sm-6 col-md-3\">\n <label for=\"is_private\">{{ 'Enterprise.Teams.IsPrivate' | transloco }}</label>\n <div class=\"display-block\">\n <ui-switch size=\"small\"\n checkedLabel=\"True\"\n uncheckedLabel=\"false\"\n formControlName=\"is_private\">\n </ui-switch>\n </div>\n </div>\n </div>\n <div class=\"row text-end mt-4\">\n <div class=\"col-12\">\n <button type=\"button\"\n class=\"btn btn-outline-default me-2\"\n (click)=\"onCancel()\"\n (keydown.enter)=\"onCancel()\" >\n {{ 'Button.Cancel' | transloco }}\n </button>\n <button type=\"submit\"\n [buttonBusy]=\"categoryBusyButton\"\n class=\"btn btn-primary\">\n {{ 'Button.Update' | transloco }}\n </button>\n </div>\n </div>\n </form>\n </div>\n </div>\n\n <div class=\"w-100 text-center mt-3\"\n *ngIf=\"!isLoaded\">\n <p-progressSpinner strokeWidth=\"2\"> </p-progressSpinner>\n </div>\n\n <ng-container *ngIf=\"groupDefinition?.length !== 0\">\n <div class=\"row mb-last-3 group-definitions-wrapper\"\n *ngIf=\"!viewDefinition\">\n <div class=\"col-12 col-md-6 col-xl-4 mt-3\"\n *ngFor=\"let group of groupDefinition\">\n <div class=\"card\">\n <div class=\"card-content\">\n <div class=\"card-header\">\n <h5 class=\"mb-3\">{{ group.name }}</h5>\n <p>{{ group.description | slice: 0:200 }}</p>\n </div>\n <div class=\"card-footer\">\n <div class=\"float-end px-2\">\n <a class=\"btn btn-sm btn-outline-danger me-2\"\n *ngIf=\"hasAccess\"\n (click)=\"onDelete(group.id)\">{{ 'Button.Delete' | transloco }}</a>\n <a class=\"btn btn-sm btn-outline-primary me-2\"\n *ngIf=\"hasAccess\"\n (click)=\"onGroupDefinitionEdit(group.id)\">{{ 'Button.Edit' | transloco }}</a>\n </div>\n </div>\n </div>\n </div>\n </div>\n </div>\n </ng-container>\n <div *ngIf=\"groupDefinition?.length === 0 && hasAccess && !viewDefinition && isLoaded\">\n <pw-no-data [withImage]=\"true\" [message]=\"'Enterprise.Teams.NoLabelsMessage' | transloco\"> </pw-no-data>\n </div>\n <div *ngIf=\"groupDefinition?.length === 0 && !hasAccess && isLoaded\">\n <pw-no-data [withImage]=\"true\" [message]=\"'Enterprise.Teams.NoLabelsUserMessage' | transloco\"> </pw-no-data>\n </div>\n</section>\n","import { Component, Injector, OnDestroy, OnInit } from '@angular/core';\nimport {\n UntypedFormBuilder,\n UntypedFormControl,\n UntypedFormGroup,\n Validators\n} from '@angular/forms';\n\nimport { AppBaseComponent } from '@posiwise/app-base-component';\nimport { DataService, GroupService, SubscriptionService } from '@posiwise/common-services';\nimport { Subscription, User } from '@posiwise/common-utilities';\nimport { ValidateForm } from '@posiwise/utils';\n\nimport swal from 'sweetalert2';\n\nimport { Group } from '../../shared/shared-component.interface';\n\n@Component({\n selector: 'pw-groups',\n templateUrl: './groups.component.html',\n styleUrls: ['./groups.component.scss'],\n\n standalone: false\n})\nexport class GroupsComponent extends AppBaseComponent implements OnInit, OnDestroy {\n private groupsData: Group[] = [];\n\n subscription: Subscription;\n\n message: number;\n id: number;\n group_id: number;\n\n form: UntypedFormGroup;\n\n description: string;\n name: string;\n\n allGroups: Group[] = [];\n groupDefinition: {\n name: string;\n groups: IterableIterator<object>;\n }[] = [];\n\n domainGroupDefinition = [];\n\n admins = [];\n subscriptionInfo = [];\n subscriptionOwner: number;\n enrolledUsers: { is_owner: boolean; id: number }[];\n\n user: User;\n\n submitted = false;\n viewEdit = false;\n buttonBusy = false;\n isGroupOperations = false;\n isGroupEdit = false;\n hasAccess = false;\n isLoaded = false;\n\n constructor(\n private readonly fb: UntypedFormBuilder,\n private readonly groupService: GroupService,\n private readonly subscriptionService: SubscriptionService,\n private readonly dataService: DataService,\n injector: Injector\n ) {\n super(injector);\n this.getUserSubscription().subscribe(response => {\n this.subscription = response;\n if (this.subscription?.id) {\n this.id = this.subscription?.id;\n }\n });\n\n this.form = this.fb.group({\n name: new UntypedFormControl('', [Validators.required]),\n description: new UntypedFormControl(''),\n group_definition_id: new UntypedFormControl('', [Validators.required])\n });\n }\n\n ngOnInit() {\n this.dataService.currentMessage.subscribe(message => {\n this.message = message;\n });\n this.userStore().subscribe(user => {\n if (user) {\n this.user = user;\n this.getSubscribedUsers();\n }\n });\n this.getAllGroupDefinition();\n }\n\n /** Function to save group */\n @ValidateForm('form')\n saveGroup() {\n this.buttonBusy = true;\n this.submitted = true;\n const formValue = this.form.value;\n const data = {\n name: formValue.name,\n description: formValue.description,\n group_definition_id: formValue.group_definition_id\n };\n this.groupService\n .postGroup(data)\n .subscribe(() => {\n this.toast.success('Saved Successfully', '', {\n extendedTimeOut: 1000000\n });\n this.form.reset();\n this.getAllGroupDefinition();\n this.isGroupOperations = false;\n })\n .add(() => {\n this.submitted = false;\n this.buttonBusy = false;\n });\n }\n\n private getAllGroupDefinition() {\n this.isLoaded = false;\n this.allGroups = [];\n this.groupService.groupDefinitionGetAll(this.id, 'Subscription').subscribe(response => {\n this.isLoaded = true;\n if (response.group_definitions.length > 0) {\n this.groupDefinition = response.group_definitions;\n this.domainGroupDefinition = [\n { id: '0', name: 'All Team Categories', groups: [] },\n ...response.group_definitions\n ];\n this.groupDefinition.forEach(data => {\n const groups = [...data.groups];\n groups.forEach(group => {\n this.allGroups.push({ ...group, group_definition_name: data?.name });\n this.groupsData = this.allGroups;\n });\n });\n } else {\n this.groupDefinition = [];\n }\n });\n }\n\n private getSubscribedUsers() {\n this.getUserSubscription().subscribe(sub => {\n this.subscription = sub;\n if (this.subscription?.id) {\n this.subscriptionService.getEnrolledSubscription(sub?.id).subscribe(response => {\n this.subscriptionOwner = response.owner_id;\n this.admins = response.admins;\n this.enrolledUsers = response.members;\n this.enrolledUsers.forEach(element => {\n element.is_owner = element?.id === this.user?.id;\n });\n this.hasAccess =\n this.admins.includes(this.user?.id) ||\n this.user?.id === this.subscriptionOwner ||\n this.permissionService.isSuperAdmin();\n });\n }\n });\n }\n\n groupOperation() {\n this.form.reset();\n this.viewEdit = false;\n this.isGroupOperations = true;\n this.isGroupEdit = false;\n }\n\n cancelUpdate() {\n this.isGroupOperations = false;\n this.form.reset();\n }\n\n editGroup(group_id: number) {\n this.form.reset();\n this.viewEdit = true;\n this.isGroupOperations = true;\n this.isGroupEdit = true;\n this.group_id = group_id;\n this.getGroupDetails(group_id);\n }\n\n private getGroupDetails(id: number) {\n this.groupService.getGroup(id).subscribe(response => {\n this.form.patchValue({\n name: response.name,\n description: response.description,\n group_definition_id: response.group_definition_id\n });\n });\n }\n\n updateDetails() {\n this.buttonBusy = true;\n const formValue = this.form.value;\n const data = {\n name: formValue.name,\n description: formValue.description,\n group_definition_id: formValue.group_definition_id\n };\n this.groupService\n .updateGroup(this.group_id, data)\n .subscribe(() => {\n this.toast.success(\n this.translation.translate('Admin.Shared.Groups.UpdatedMessage')\n );\n this.form.reset();\n this.getAllGroupDefinition();\n this.isGroupOperations = false;\n })\n .add(() => {\n this.buttonBusy = false;\n });\n }\n\n onDelete(id: number) {\n swal.fire({\n title: 'Delete',\n text: `Are you sure you want to delete this team?`,\n showCancelButton: true,\n reverseButtons: true,\n icon: 'warning'\n }).then(rep => {\n if (rep.value) {\n this.groupService.deleteGroup(id).subscribe(_ => {\n this.toast.success(\n this.translation.translate('Admin.Shared.Groups.DeletedMessage')\n );\n this.isGroupOperations = false;\n this.getAllGroupDefinition();\n });\n }\n });\n }\n\n filterDomainsList(event) {\n if (event !== '0') {\n const searchedList = this.groupsData.filter(\n group => group.group_definition_id === Number(event)\n );\n this.allGroups = searchedList;\n } else {\n this.allGroups = this.groupsData;\n }\n }\n\n previous() {\n this.location.back();\n this.dataService.changeMessage(1);\n }\n\n navigateToCommunications(id: number) {\n this.router.navigate([`/${this.subscription?.slug}/enterprise/communications`], {\n queryParams: { entity_id: id }\n });\n }\n\n navigateToDocumentations(id: number) {\n this.router.navigate([`/${this.subscription?.slug}/enterprise/wiki`], {\n queryParams: { entity_id: id }\n });\n }\n\n trackByGroup(_index: number, item: { id: number }) {\n return item.id;\n }\n\n override ngOnDestroy() {\n super.ngOnDestroy();\n }\n}\n","<div>\n <section>\n <div class=\"row\">\n <div class=\"col-12 mb-3\">\n <h2>Enterprise Teams</h2>\n\n <p>\n Here you can define the teams for your Enterprise members. For example\n \"Corporate Sales Team\", \"Frontend Dev Team\" etc.\n <br />\n Once the teams created, you'll be able to add members to them and see useful\n insight based on the members activity in the corresponding team.\n </p>\n </div>\n </div>\n\n <div class=\"row\"\n *ngIf=\"!isGroupOperations\">\n <div class=\"col-12 d-flex justify-content-end align-items-center text-end mb-3\">\n <button *ngIf=\"hasAccess\"\n class=\"btn btn-sm btn-outline-primary\"\n (click)=\"groupOperation()\">\n <i class=\"fa fa-plus-circle\" aria-hidden=\"true\"></i> Add Team\n </button>\n <button *ngIf=\"hasAccess\"\n class=\"btn btn-sm btn-outline-primary ms-1\"\n [routerLink]=\"['/' + subscription?.slug + '/enterprise', 'groups', 'labels']\">\n <i class=\"fa fa-plus-circle\" aria-hidden=\"true\"></i> Manage Team Categories\n </button>\n </div>\n </div>\n\n <!-- Add Group Template -->\n <div *ngIf=\"isGroupOperations\"\n class=\"mb-4\">\n <h4 class=\"card-title d-inline\">{{ viewEdit ? 'Update the' : 'Create a new' }} team</h4>\n\n <div class=\"mt-4\"\n *ngIf=\"!isGroupEdit\">\n <form [formGroup]=\"form\"\n (ngSubmit)=\"saveGroup()\">\n <div class=\"row\">\n <div class=\"mb-3 col-xs-12 col-sm-6 col-md-3\">\n <label for=\"teamName\">{{ 'Enterprise.Teams.TeamName' | transloco }}</label>\n <input type=\"text\"\n class=\"form-control\"\n formControlName=\"name\" />\n </div>\n <div class=\"mb-3 col-xs-12 col-sm-6 col-md-3\">\n <label for=\"description\">{{ 'Enterprise.Teams.Description' | transloco }}</label>\n <input type=\"text\"\n class=\"form-control\"\n formControlName=\"description\" />\n </div>\n <div class=\"mb-3 col-xs-12 col-sm-6 col-md-3\">\n <label for=\"teamCategory\">{{ 'Enterprise.Teams.TeamCategory' | transloco\n }}<span class=\"text-danger required-icon\">*</span>\n </label>\n <p-dropdown\n [options]=\"groupDefinition\"\n formControlName=\"group_definition_id\"\n [ngClass]=\"{'is-invalid': submitted && form.controls['group_definition_id'].errors}\"\n [placeholder]=\"'Select Team Category'\"\n optionValue=\"id\"\n optionLabel=\"name\">\n </p-dropdown>\n </div>\n </div>\n\n <div class=\"row text-end mt-4\">\n <div class=\"col-12\">\n <button type=\"button\"\n (click)=\"isGroupOperations = !isGroupOperations\"\n class=\"btn btn-outline-default me-2\">\n {{ 'Button.Cancel' | transloco }}\n </button>\n <button type=\"submit\"\n [buttonBusy]=\"buttonBusy\"\n class=\"btn btn-primary\">Add</button>\n </div>\n </div>\n </form>\n </div>\n\n <!-- Edit Group Template -->\n <div class=\"mt-4\"\n *ngIf=\"isGroupEdit\">\n <form [formGroup]=\"form\"\n (ngSubmit)=\"updateDetails()\">\n <div class=\"row\">\n <div class=\"mb-3 col-xs-12 col-sm-6 col-md-3\">\n <label for=\"teamName\">{{ 'Enterprise.Teams.TeamName' | transloco }}</label>\n <input type=\"text\"\n class=\"form-control\"\n formControlName=\"name\"\n required=\"true\" />\n </div>\n <div class=\"mb-3 col-xs-12 col-sm-6 col-md-3\">\n <label for=\"description\">{{ 'Enterprise.Teams.TeamDescription' | transloco }}</label>\n <input type=\"text\"\n value=\"{{ description }}\"\n class=\"form-control\"\n formControlName=\"description\"\n required=\"true\" />\n </div>\n <div class=\"mb-3 col-xs-12 col-sm-6 col-md-3\">\n <label for=\"teamCategory\">{{ 'Enterprise.Teams.TeamCategory' | transloco\n }}<span class=\"text-danger required-icon\">*</span>\n </label>\n <p-dropdown\n [options]=\"groupDefinition\"\n formControlName=\"group_definition_id\"\n [ngClass]=\"{'is-invalid': submitted && form.controls['group_definition_id'].errors}\"\n [placeholder]=\"'Select Team Category'\"\n optionValue=\"id\"\n optionLabel=\"name\">\n </p-dropdown>\n </div>\n </div>\n <div class=\"row text-end mt-4\">\n <div class=\"col-12\">\n <button type=\"button\"\n class=\"btn btn-outline-default me-2\"\n (click)=\"cancelUpdate()\">\n {{ 'Button.Cancel' | transloco }}\n </button>\n <button type=\"submit\"\n [buttonBusy]=\"buttonBusy\"\n class=\"btn btn-primary\">\n {{ 'Button.Update' | transloco }}\n </button>\n </div>\n </div>\n </form>\n </div>\n </div>\n\n <div class=\"row\"\n *ngIf=\"!isGroupOperations\">\n <div class=\"col-4 mt-2 filter\">\n <p-dropdown\n [options]=\"domainGroupDefinition\"\n optionLabel=\"name\"\n optionValue=\"id\"\n [ngModel]=\"'0'\"\n (onChange)=\"filterDomainsList($event.value)\">\n </p-dropdown>\n\n </div>\n </div>\n <div class=\"w-100 text-center mt-3\"\n *ngIf=\"!isLoaded\">\n <p-progressSpinner strokeWidth=\"2\"> </p-progressSpinner>\n </div>\n <div class=\"row group_list my-4\"\n *ngIf=\"!isGroupOperations\">\n <div class=\"col-12 col-md-6 col-xl-4 mt-3\"\n *ngFor=\"let group of allGroups; trackBy: trackByGroup\">\n <div class=\"card\">\n <div class=\"card-content\">\n <div class=\"card-header\">\n <h5 class=\"mb-3\">{{ group.name }}</h5>\n <p>{{ group.description | slice: 0:200 }}</p>\n <span><a class=\"badge bg-primary\">{{\n group?.group_definition_name\n }}</a></span>\n </div>\n <div class=\"card-footer\">\n <div class=\"float-end px-2\">\n <a class=\"me-2 my-1\"\n *ngIf=\"hasAccess\"\n aria-label=\"Delete\"\n (click)=\"onDelete(group.id)\">\n <i class=\"fa fa-trash delete-icon\" aria-hidden=\"true\"></i></a>\n <a class=\"me-2 my-1\"\n aria-label=\"Edit Group\"\n *ngIf=\"hasAccess\"\n (click)=\"editGroup(group.id)\"><i class=\"fa fa-edit edit-icon\" aria-hidden=\"true\"></i></a>\n <a class=\"me-2 my-1\"\n aria-label=\"Members\"\n [routerLink]=\"[group.id, 'members']\"><i class=\"fa fa-tasks cta1-icon\" aria-hidden=\"true\"></i>\n </a>\n <a class=\"communications me-2 my-1\"\n aria-label=\"Communications\"\n (click)=\"navigateToCommunications(group.id)\"><i class=\"fa fa-comments cta2-icon\" aria-hidden=\"true\"></i></a>\n <a class=\"communications my-1\"\n aria-label=\"Documents\"\n (click)=\"navigateToDocumentations(group.id)\"><i class=\"fab fa-wikipedia-w cta1-icon\" aria-hidden=\"true\"></i></a>\n </div>\n </div>\n </div>\n </div>\n </div>\n </div>\n </section>\n</div>\n<div *ngIf=\"allGroups?.length === 0 && hasAccess && !isGroupOperations && isLoaded\"\n class=\"clear-both\">\n <pw-no-data [withImage]=\"true\" [message]=\"'Enterprise.Teams.NoTeamMessage' | transloco\"> </pw-no-data>\n</div>\n<div *ngIf=\"allGroups?.length === 0 && !hasAccess && !isGroupOperations && isLoaded\"\n class=\"clear-both\">\n <pw-no-data [withImage]=\"true\" [message]=\"'Enterprise.Teams.NoTeamMessageIfUser' | transloco\"> </pw-no-data>\n</div>\n","import { Component, OnInit } from '@angular/core';\n\nimport { AuthService } from '@posiwise/common-services';\n\n@Component({\n selector: 'pw-landing-page-footer-b',\n templateUrl: './landing-page-footer-b.component.html',\n styleUrls: ['./landing-page-footer-b.component.scss'],\n\n standalone: false\n})\nexport class LandingPageFooterBComponent implements OnInit {\n isBrowserAccess: boolean;\n\n currentDate: Date = new Date();\n\n constructor(private readonly authService: AuthService) {}\n\n ngOnInit() {\n this.authService.platform$.subscribe(platform => {\n if (platform === 'browser') {\n this.isBrowserAccess = true;\n }\n });\n }\n}\n","<a href=\"javascript:\"\n aria-label=\"Up\"\n id=\"return-to-top\">\n <i class=\"ft-arrow-up\" aria-hidden=\"true\"></i>\n</a>\n<footer class=\"footer-block\">\n <div class=\"container\">\n <h6>Launched in Silence.</h6>\n </div>\n <div *ngIf=\"isBrowserAccess\">\n <span class=\"me-3\">\n <a class=\"white\"\n routerLink=\"/privacy-policy\"> Privacy Policy</a>\n </span>\n <span class=\"ms-3\">\n <a class=\"white\"\n routerLink=\"/terms-conditions\"> Terms & Conditions </a>\n </span>\n </div>\n <div class=\"my-2\">\n <span>\n <a class=\"white\"\n href=\"https://www.linkedin.com/company/posiwise\"\n target=\"blank\">\n Linkedin |</a>\n <a class=\"white\"\n href=\"https://www.facebook.com/posiwise\"\n target=\"blank\"> Facebook |</a>\n <a class=\"white\"\n href=\"https://twitter.com/posiwise\"\n target=\"blank\"> Twitter</a>\n </span>\n </div>\n <p class=\"text-center text-white mb-0 mt-2\">\n Copyright © {{ currentDate | date: 'yyyy' }} PosiWise. All rights reserved.\n </p>\n</footer>\n","import { Component, EventEmitter, Input, OnInit, Output } from '@angular/core';\n\nimport { NumberPickerService } from '@posiwise/common-services';\n\nimport { buttonsOrientationType, CustomClasses, sizeType } from './number-picker.config';\n\n@Component({\n selector: 'pw-number-picker',\n templateUrl: './number-picker.component.html',\n styleUrls: ['./number-picker.component.scss'],\n\n standalone: false\n})\nexport class NumberPickerComponent implements OnInit {\n private precision: number;\n\n private eventHolder = null;\n\n private countInterval = null;\n\n private isInputFocused = false;\n\n @Input() min: number;\n\n @Input() showTooltip: boolean;\n\n @Input() tooltipText: string;\n\n @Input() max: number;\n\n @Input() step: number;\n\n @Input() value: number;\n\n @Input() pickStartAfter: number;\n\n @Input() pickTimer: number;\n\n @Input() prefix: string;\n\n @Input() postfix: string;\n\n @Input() placeholder: string;\n\n @Input() buttonsOrientation: buttonsOrientationType;\n\n @Input() size: sizeType = 'md';\n\n @Input() customClass: CustomClasses = {};\n\n @Input() mouseWheel = false;\n\n @Input() arrowKeys = true;\n\n @Input() inputReadOnly = false;\n\n @Input() showUpButton = true;\n\n @Input() showDownButton = true;\n\n @Output() valueChange: EventEmitter<number> = new EventEmitter();\n\n @Output() minReached: EventEmitter<boolean> = new EventEmitter();\n\n @Output() maxReached: EventEmitter<boolean> = new EventEmitter();\n\n @Output() pickStarted: EventEmitter<boolean> = new EventEmitter();\n\n @Output() pickStopped: EventEmitter<boolean> = new EventEmitter();\n\n @Output() pickUpStarted: EventEmitter<boolean> = new EventEmitter();\n\n @Output() pickUpStopped: EventEmitter<boolean> = new EventEmitter();\n\n @Output() pickDownStarted: EventEmitter<boolean> = new EventEmitter();\n\n @Output() pickDownStopped: EventEmitter<boolean> = new EventEmitter();\n\n constructor(private readonly numberPickerService: NumberPickerService) {}\n\n ngOnInit() {\n this.initPicker();\n }\n\n isHorizontal(): boolean {\n return this.buttonsOrientation !== 'v' && this.buttonsOrientation !== 'vertical';\n }\n\n onFocus(event: FocusEvent) {\n event.preventDefault();\n event.stopPropagation();\n this.isInputFocused = true;\n }\n\n onBlur(event: Event) {\n event.preventDefault();\n event.stopPropagation();\n this.isInputFocused = false;\n }\n\n onMouseWheel(event: WheelEvent) {\n if (this.isInputFocused) {\n event.preventDefault();\n let wheelUp = null;\n let delta = null;\n\n if (event.deltaY) {\n delta = event.deltaY / 60;\n }\n if (event.detail) {\n delta = -event.detail / 2;\n }\n if (delta !== null) {\n wheelUp = delta > 0;\n }\n\n this.afterMouseWheels(wheelUp, event);\n event.stopPropagation();\n }\n }\n\n private afterMouseWheels(wheelUp: boolean, event: WheelEvent) {\n this.onPickStarted(wheelUp);\n if (wheelUp) {\n this.onIncrease(event);\n } else {\n this.onDecrease(event);\n }\n this.onPickStopped(wheelUp);\n }\n\n onValueChange(_event: Event) {\n if (this.value > this.max) {\n this.value = this.max;\n } else if (this.value < this.min) {\n this.value = this.min;\n }\n if (this.parseVal(this.value) === 0 || this.parseVal(this.value)) {\n this.valueChange.emit(this.value);\n }\n }\n\n onDecrease(event: MouseEvent | WheelEvent | KeyboardEvent) {\n event.preventDefault();\n if (this.canDecrease()) {\n this.value = this.round(this.value > this.min ? this.value - this.step : this.value);\n this.valueChange.emit(this.value);\n } else {\n this.minReached.emit(true);\n }\n event.stopPropagation();\n }\n\n onIncrease(event: MouseEvent | WheelEvent | KeyboardEvent) {\n event.preventDefault();\n if (this.canIncrease()) {\n this.value = this.round(this.value < this.max ? this.value + this.step : this.value);\n this.valueChange.emit(this.value);\n } else {\n this.maxReached.emit(true);\n }\n event.stopPropagation();\n }\n\n onMouseDown(event: MouseEvent, increase = true) {\n this.afterMouseDown(increase, event);\n }\n\n private isArrowUpDown(key: string): boolean {\n return key === 'ArrowUp' || key === 'ArrowDown';\n }\n\n private isArrowUp(key: string): boolean {\n return key === 'ArrowUp';\n }\n\n private loopPick(increase: boolean, event: MouseEvent | KeyboardEvent) {\n this.onPickStarted(increase);\n this.eventHolder = setTimeout(() => {\n this.countInterval = setInterval(() => {\n if (increase) {\n this.onIncrease(event);\n } else {\n this.onDecrease(event);\n }\n }, this.pickTimer);\n }, this.pickStartAfter);\n }\n\n onMouseUp(event: MouseEvent, increase = true) {\n this.afterMouseUp(increase, event);\n }\n\n onKeyDown(event: KeyboardEvent) {\n if (this.isArrowUpDown(event.key)) {\n event.preventDefault();\n if (!this.eventHolder) {\n this.loopPick(this.isArrowUp(event.key), event);\n }\n }\n event.stopPropagation();\n }\n\n onKeyUp(event: KeyboardEvent) {\n if (this.isArrowUpDown(event.key)) {\n event.preventDefault();\n this.afterPick(this.isArrowUp(event.key));\n }\n event.stopPropagation();\n }\n\n private afterMouseDown(up: boolean, event: MouseEvent) {\n event.preventDefault();\n if (this.isLeftClick(event)) {\n this.loopPick(up, event);\n }\n event.stopPropagation();\n }\n\n private afterMouseUp(up: boolean, event: MouseEvent) {\n event.preventDefault();\n this.afterPick(up);\n event.stopPropagation();\n }\n\n private afterPick(up: boolean) {\n this.onPickStopped(up);\n this.clearTimers();\n }\n\n private clearTimers() {\n clearTimeout(this.eventHolder);\n clearInterval(this.countInterval);\n this.eventHolder = null;\n this.countInterval = null;\n }\n\n private parseVal(value: string | number) {\n if (typeof value === 'number') {\n return value;\n }\n\n return Number.parseFloat(value);\n }\n\n private getPrecision(step: number): number {\n return /^\\d*$/.exec(String(step))[0].length;\n }\n\n private round(value: number): number {\n // eslint-disable-next-line no-restricted-properties\n return Math.round(value * 10 ** this.precision) / 10 ** this.precision;\n }\n\n private canIncrease(): boolean {\n const canIncrease = this.value <= this.max - this.step;\n if (!canIncrease) {\n this.value = this.max;\n }\n\n return canIncrease;\n }\n\n private canDecrease(): boolean {\n const canDecrease = this.value >= this.min + this.step;\n if (!canDecrease) {\n this.value = this.min;\n }\n\n return canDecrease;\n }\n\n private onPickStarted(increase: boolean) {\n const isIncrease = increase;\n if (isIncrease) {\n // NOSONAR\n if (this.canIncrease()) {\n this.pickStarted.emit(true);\n this.pickUpStarted.emit(true);\n }\n } else if (this.canDecrease()) {\n this.pickStarted.emit(true);\n this.pickDownStarted.emit(true);\n }\n }\n\n private onPickStopped(increase: boolean) {\n const isIncrease = increase;\n if (isIncrease) {\n // NOSONAR\n if (this.canIncrease()) {\n this.pickUpStopped.emit(true);\n this.pickStopped.emit(true);\n }\n } else if (this.canDecrease()) {\n this.pickDownStopped.emit(true);\n this.pickStopped.emit(true);\n }\n }\n\n private isLeftClick(event): boolean {\n return event.button === 0;\n }\n\n private initPicker(): void {\n this.min = this.parseVal(this.min) || this.numberPickerService.min;\n this.max = this.parseVal(this.max) || this.numberPickerService.max;\n this.step = this.parseVal(this.step) || this.numberPickerService.step;\n this.value = this.parseVal(this.value) || this.numberPickerService.value;\n this.pickStartAfter =\n this.parseVal(this.pickStartAfter) || this.numberPickerService.pickStartAfter;\n this.pickTimer = this.parseVal(this.pickTimer) || this.numberPickerService.pickTimer;\n this.precision = this.getPrecision(this.step) || this.numberPickerService.precision;\n this.value = this.round(this.value);\n this.placeholder = this.placeholder ?? '';\n }\n}\n","<div class=\"input-group mb-3 input-{{ size }} {{ customClass.container }}\">\n <!-- Horizontal decrease button orientation -->\n <span *ngIf=\"isHorizontal() && showDownButton\"\n class=\"input-group-text decrease {{ customClass.down }}\"\n (click)=\"onDecrease($event)\"\n (keydown.enter)=\"onDecrease($event)\"\n (mouseup)=\"onMouseUp($event, false)\"\n (mousedown)=\"onMouseDown($event, false)\">-</span>\n <!-- Input prefix -->\n <span *ngIf=\"prefix\"\n class=\"input-group-text {{ customClass.prefix }}\">{{ prefix }}\n </span>\n <input type=\"number\"\n class=\"form-control\"\n name=\"input-spin-val\"\n [(ngModel)]=\"value\"\n [readOnly]=\"inputReadOnly\"\n (blur)=\"onBlur($event)\"\n (focus)=\"onFocus($event)\"\n (wheel)=\"mouseWheel && onMouseWheel($event)\"\n (keyup)=\"arrowKeys && onKeyUp($event)\"\n (keydown.enter)=\"arrowKeys && onKeyDown($event)\"\n (keydown.arrowup)=\"arrowKeys && onIncrease($event)\"\n (keydown.arrowdown)=\"arrowKeys && onDecrease($event)\"\n (change)=\"onValueChange($event)\"\n [placeholder]=\"placeholder\" />\n <!-- Input postfix -->\n\n <span *ngIf=\"postfix\"\n class=\"input-group-text {{ customClass.postfix }}\"\n [style.borderLeft]=\"'0'\">{{postfix}}\n <span class=\"tooltip-wrap ms-1\"\n *ngIf=\"showTooltip && tooltipText\"\n [pTooltip]=\"tooltipText\"\n [appendTo]=\"'body'\"\n [tooltipPosition]=\"tooltipPosition || 'top'\">\n <i class=\"fas fa-info-circle\"></i>\n </span>\n </span>\n\n <!-- Horizontal increase button orientation -->\n <span *ngIf=\"isHorizontal() && showUpButton\"\n class=\"input-group-text increase {{ customClass.up }}\"\n [style.borderLeft]=\"!postfix ? '0' : ''\"\n (click)=\"onIncrease($event)\"\n (keydown.enter)=\"onIncrease($event)\"\n (mouseup)=\"onMouseUp($event)\"\n (mousedown)=\"onMouseDown($event)\">+</span>\n <!-- Vertical buttons orientation -->\n <span *ngIf=\"!isHorizontal()\"\n class=\"input-group-text vertical p-0\">\n <span *ngIf=\"showUpButton\"\n class=\"{{ customClass.up }}\"\n (click)=\"onIncrease($event)\"\n (keydown.enter)=\"onIncrease($event)\"\n (mouseup)=\"onMouseUp($event)\"\n (mousedown)=\"onMouseDown($event)\">+</span>\n <span *ngIf=\"showDownButton\"\n class=\"{{ customClass.down }}\"\n (keydown.enter)=\"onDecrease($event)\"\n (click)=\"onDecrease($event)\"\n (mouseup)=\"onMouseUp($event, false)\"\n (mousedown)=\"onMouseDown($event, false)\">-</span>\n </span>\n</div>\n","import {\n Component,\n EventEmitter,\n Injector,\n Input,\n Output,\n TemplateRef,\n ViewChild\n} from '@angular/core';\n\nimport { AppBaseComponent } from '@posiwise/app-base-component';\n\nimport { StatusCodes } from 'http-status-codes';\n\nimport { NgbModal } from '@ng-bootstrap/ng-bootstrap';\n\nimport { SharedModalContext } from '../shared/shared-component.interface';\n\n@Component({\n selector: 'pw-password-validation',\n templateUrl: './password-validation.component.html',\n\n standalone: false\n})\nexport class PasswordValidationComponent extends AppBaseComponent {\n @ViewChild('content', { static: true }) content: TemplateRef<SharedModalContext>;\n @Input() confirmMessage = 'User.Account.Message.EnterPassword';\n\n @Output()\n successEvent: EventEmitter<boolean> = new EventEmitter();\n\n password: string;\n\n buttonBusy: boolean;\n\n constructor(\n injector: Injector,\n private readonly modal: NgbModal\n ) {\n super(injector);\n }\n\n open() {\n this.modal.open(this.content, { centered: true, windowClass: 'modal-holder' });\n }\n\n validatePassword() {\n if (this.password) {\n this.buttonBusy = true;\n this.userService\n .checkPassword({ password: this.password })\n .subscribe(data => {\n if (data && data?.status === StatusCodes.OK) {\n this.successEvent.emit(true);\n this.modal.dismissAll();\n this.password = null;\n } else {\n this.successEvent.emit(false);\n this.password = null;\n }\n })\n .add(() => {\n this.buttonBusy = false;\n });\n }\n }\n}\n","<ng-template #content\n let-modal>\n <div class=\"modal-header\">\n <h5 class=\"modal-title\">Confirm</h5>\n <button type=\"button\"\n class=\"btn-close float-end\"\n aria-label=\"Close\"\n (click)=\"modal.dismiss()\">\n </button>\n </div>\n <div class=\"modal-body\">\n <strong class=\"p3\">{{ confirmMessage | transloco }}</strong>\n <div>\n <ng-content></ng-content>\n </div>\n <div class=\"row\">\n <div class=\"col-12\">\n <input type=\"password\"\n #passwordRef\n [(ngModel)]=\"password\"\n class=\"form-control\"\n placeholder=\"Current Password\" />\n </div>\n </div>\n <div class=\"row mt-2\">\n <div class=\"col-12\">\n <button [buttonBusy]=\"buttonBusy\"\n class=\"btn btn-primary float-end\"\n type=\"button\"\n (click)=\"validatePassword()\">\n {{ 'Button.Confirm' | transloco }}\n </button>\n </div>\n </div>\n </div>\n</ng-template>\n","import {\n AfterViewInit,\n Component,\n ElementRef,\n Input,\n OnChanges,\n SimpleChanges\n} from '@angular/core';\n\nimport map from 'lodash/map';\n\nimport { PermissionTreeData } from '../shared/shared-component.interface';\n\n@Component({\n // eslint-disable-next-line @angular-eslint/component-selector\n selector: 'permission-tree',\n template: ` <div class=\"permission-tree\"></div> `,\n\n standalone: false\n})\nexport class PermissionTreeComponent implements AfterViewInit, OnChanges {\n @Input() data: PermissionTreeData;\n\n private _$tree;\n private _createdTreeBefore: boolean;\n constructor(private readonly _element: ElementRef) {}\n\n ngOnChanges(simple: SimpleChanges) {\n if (simple['data']?.currentValue?.grantedPermissionNames) {\n this.refreshTree();\n }\n }\n\n ngAfterViewInit(): void {\n this._$tree = $(this._element.nativeElement);\n\n this.refreshTree();\n }\n\n getGrantedPermissionNames(): string[] {\n if (!this._$tree || !this._createdTreeBefore) {\n return [];\n }\n\n const permissionNames = [];\n\n const selectedPermissions = this._$tree.jstree('get_selected', true);\n for (const permission of selectedPermissions) {\n permissionNames.push(permission.original.id);\n }\n\n return permissionNames;\n }\n\n private refreshTree(): void {\n if (this._createdTreeBefore) {\n this._$tree.jstree('destroy');\n }\n\n this._createdTreeBefore = false;\n\n if (!this.data || !this._$tree) {\n return;\n }\n\n const treeData = map(this.data.permissions, item => {\n return {\n id: item.name,\n parent: item.parentName ?? '#',\n text: item.displayName,\n state: {\n opened: true,\n selected: this.data.grantedPermissionNames.includes(item.name)\n }\n };\n });\n\n this._$tree.jstree({\n core: {\n data: treeData\n },\n types: {\n default: {\n icon: 'fa fa-folder-open tree-item-icon-color icon-lg'\n },\n file: {\n icon: 'fa fa-file tree-item-icon-color icon-lg'\n }\n },\n checkbox: {\n keep_selected_style: false,\n three_state: false,\n cascade: ''\n },\n plugins: ['checkbox', 'types']\n });\n\n this._createdTreeBefore = true;\n\n let inTreeChangeEvent = false;\n\n const selectNodeAndAllParents = node => {\n this._$tree.jstree('select_node', node, true);\n const parent = this._$tree.jstree('get_parent', node);\n if (parent) {\n selectNodeAndAllParents(parent);\n }\n };\n\n this._$tree.on('changed.jstree', (_e, data) => {\n if (!data.node) {\n return;\n }\n\n const wasInTreeChangeEvent = inTreeChangeEvent;\n if (!wasInTreeChangeEvent) {\n inTreeChangeEvent = true;\n }\n\n let childrenNodes;\n\n if (data.node.state.selected) {\n selectNodeAndAllParents(this._$tree.jstree('get_parent', data.node));\n\n childrenNodes = $.makeArray(this._$tree.jstree('get_children_dom', data.node));\n this._$tree.jstree('select_node', childrenNodes);\n } else {\n childrenNodes = $.makeArray(this._$tree.jstree('get_children_dom', data.node));\n this._$tree.jstree('deselect_node', childrenNodes);\n }\n\n if (!wasInTreeChangeEvent) {\n inTreeChangeEvent = false;\n }\n });\n }\n}\n","import { DOCUMENT } from '@angular/common';\nimport { Component, Inject, Injector, Input, OnInit } from '@angular/core';\nimport { DomSanitizer } from '@angular/platform-browser';\n\nimport { AdminService } from '@posiwise/admin-module-utils';\nimport { AppBaseComponent } from '@posiwise/app-base-component';\nimport { PermissionService } from '@posiwise/common-services';\nimport { User } from '@posiwise/common-utilities';\n\n@Component({\n selector: 'pw-privacy-and-tos',\n templateUrl: './privacy-and-tos.component.html',\n styleUrls: ['./privacy-and-tos.component.scss'],\n\n standalone: false\n})\nexport class PrivacyAndTosComponent extends AppBaseComponent implements OnInit {\n @Input() productId: number;\n\n private privacyAndTos: number;\n\n id: string;\n\n data: { privacy: '' };\n\n user: User;\n\n subscribedSubscriptions: { products: { id: number }[] }[];\n\n product: string;\n productName: string;\n\n tabId = 'privacy-policy';\n\n isPublic: boolean;\n\n isLoaded: boolean;\n\n constructor(\n private readonly adminService: AdminService,\n injector: Injector,\n @Inject(DOCUMENT) private readonly document: Document,\n private readonly sanitizer: DomSanitizer\n ) {\n super(injector);\n }\n\n ngOnInit() {\n this.privacyAndTos = this.appConfig?.main_tos_id;\n this.product = this.route.snapshot.queryParamMap.get('product');\n this.isLoaded = false;\n this.route.params.subscribe(data => {\n this.id = data['Id'];\n if (this.id) {\n const id = this.id === 'details' ? this.privacyAndTos : this.id;\n this.getTosDetails(Number(id));\n this.isPublic = true;\n } else if (this.productId) {\n this.getSubscribedProduct(this.productId);\n } else {\n this.route.params.subscribe(id => {\n this.tabId = id['data'] ?? 'privacy-policy';\n this.getSubscribedProduct();\n });\n }\n });\n }\n\n private getSubscribedProduct(id?) {\n this.userStore().subscribe(user => {\n this.user = user;\n if (user) {\n this.fetchUserSubscriptions(user.id, id);\n }\n });\n }\n\n fetchUserSubscriptions(userId, id?) {\n this.userService.getUserSubscriptions(userId).subscribe(response => {\n this.subscribedSubscriptions = response.subscriptions;\n const productId = id ?? PermissionService.selectedProduct.id;\n const products = this.findRequiredProducts(productId);\n\n this.productName = products[0]?.name;\n this.getTosDetails(products[0].product_privacy_service_id);\n });\n }\n\n private findRequiredProducts(productId) {\n const products = [];\n this.subscribedSubscriptions.forEach(subscribe => {\n const requiredProduct = subscribe?.products.find(x => x?.id === productId);\n if (requiredProduct) {\n products.push(requiredProduct);\n }\n });\n return products;\n }\n\n private getTosDetails(id: number) {\n this.adminService\n .getTosDetails(id)\n .subscribe(response => {\n const parser = new DOMParser();\n\n let privacyData;\n if (response?.privacy) {\n const privacyDoc = parser.parseFromString(response?.privacy, 'text/html');\n\n // Remove all button elements in privacy\n const privacyButtons = privacyDoc.querySelectorAll('button');\n privacyButtons.forEach(button => button.remove());\n\n // Sanitize and store privacy HTML\n // NOSONAR: Trusted HTML content is handled safely here\n privacyData = this.sanitizer.bypassSecurityTrustHtml(privacyDoc.body.innerHTML); // NOSONAR\n }\n\n let tosData;\n if (response?.tos) {\n const tosDoc = parser.parseFromString(response?.tos, 'text/html');\n\n // Remove all button elements in tos\n const tosButtons = tosDoc.querySelectorAll('button');\n tosButtons.forEach(button => button.remove());\n\n // Sanitize and store tos HTML\n // NOSONAR: Trusted HTML content is handled safely here\n tosData = this.sanitizer.bypassSecurityTrustHtml(tosDoc.body.innerHTML); // NOSONAR\n }\n\n // Assign sanitized data back\n this.data = {\n ...response,\n privacy: privacyData,\n tos: tosData\n };\n })\n .add(() => {\n this.isLoaded = true;\n });\n }\n}\n","<ng-container *ngIf=\"isPublic\">\n <pw-header [landing]=\"false\"></pw-header>\n</ng-container>\n\n<div class=\"col-12 d-flex\"\n *ngIf=\"!isPublic\">\n <a aria-label=\"Navigate to Target\"\n (click)=\"back()\"\n class=\"previous\"><i class=\"fa fa-arrow-alt-circle-left\" aria-hidden=\"true\"></i></a>\n <h3 class=\"mt-3\">{{ productName }}</h3>\n</div>\n\n\n\n\n<div [ngClass]=\"{ 'container pw-tab overflow-hidden': isPublic }\" >\n <div [ngClass]=\"{ dashboard: isPublic }\">\n <div [ngClass]=\"{ 'dashboard-body': isPublic }\">\n <div [ngClass]=\"{ 'mt-5': isPublic }\">\n <h3 *ngIf=\"isPublic\">{{ product }}</h3>\n <div>\n\n <ul ngbNav\n #nav=\"ngbNav\"\n [(activeId)]=\"tabId\"\n class=\"nav-tabs\">\n <li [ngbNavItem]=\"'privacy-policy'\">\n <a ngbNavLink>Privacy policy</a>\n <ng-template ngbNavContent>\n <div class=\"container-fluid pw-tab overflow-hidden\">\n <div class=\"dashboard\">\n <div class=\"dashboard-body pt-1\">\n <div class=\"row\">\n <div class=\"col-12 terms-of-service\">\n <h3>Privacy policy</h3>\n <div class=\"clearfix\"></div>\n <div class=\"ql-container ql-snow body-quill\">\n <div class=\"ql-editor\"\n [innerHTML]=\"data?.privacy\">\n </div>\n </div>\n </div>\n </div>\n </div>\n </div>\n </div>\n </ng-template>\n </li>\n <li [ngbNavItem]=\"'terms-of-service'\">\n <a ngbNavLink>Terms of Services</a>\n <ng-template ngbNavContent>\n <div class=\"container-fluid pw-tab overflow-hidden\">\n <div class=\"dashboard\">\n <div class=\"dashboard-body pt-1\">\n <div class=\"row\">\n <div class=\"col-12 terms-of-service\">\n <h3>Terms of Services</h3>\n <div class=\"clearfix\"></div>\n <div class=\"ql-container ql-snow body-quill\">\n <div class=\"ql-editor\"\n [innerHTML]=\"data?.tos\">\n </div>\n </div>\n </div>\n </div>\n </div>\n </div>\n </div>\n </ng-template>\n </li>\n </ul>\n </div>\n <div class=\"w-100 text-center p-2 mt-5\" *ngIf=\"!isLoaded\">\n <p-progressSpinner strokeWidth=\"2\"></p-progressSpinner>\n </div>\n <div [ngbNavOutlet]=\"nav\" *ngIf=\"isLoaded\"></div>\n </div>\n </div>\n </div>\n</div>\n","import { Component, Input, OnInit } from '@angular/core';\n\nimport { AppBaseComponent } from '@posiwise/app-base-component';\n\n@Component({\n selector: 'pw-privacy-policy',\n templateUrl: './privacy-policy.component.html',\n styleUrls: ['../terms-conditions/terms-conditions.component.scss'],\n\n standalone: false\n})\nexport class PrivacyPolicyComponent extends AppBaseComponent implements OnInit {\n @Input()\n isPublic = window.location.pathname.includes('privacy-policy');\n\n company_name: string;\n company_email: string;\n\n ngOnInit() {\n this.company_name = this.appConfig.company.name;\n this.company_email = this.appConfig.company.email;\n }\n}\n","<ng-container *ngIf=\"isPublic\">\n <pw-landing-page-header [landing]=\"false\"></pw-landing-page-header>\n</ng-container>\n\n<div class=\"container pw-tab overflow-hidden\">\n <div class=\"dashboard\">\n <div class=\"dashboard-body\">\n <div [ngClass]=\"{ 'mt-5': isPublic }\">\n <div class=\"row\">\n <div class=\"col-12 terms-of-service\">\n <h1>Privacy policy</h1>\n <div class=\"clearfix\"></div>\n <h3>Your Content</h3>\n <p>\n If you operate a {{ company_name }} User Account, and/or comment on,\n post material to, post links on or otherwise make (or allow any third\n party to make) material available by means of the Website and or\n Applications (collectively called “Content”), you are entirely\n responsible for that Content and any harm resulting from that Content.\n That is regardless of whether the Content in question constitutes (but\n not limited to) text, graphics, an audio file or computer software. By\n making Content available, you represent and warrant that:\n </p>\n <ol>\n <li>\n the Content is not considered to be obscene, inappropriate,\n defamatory, disparaging, indecent, seditious, offensive,\n pornographic, threatening, abusive, liable to incite racial hatred,\n discriminatory, blasphemous, in breach of confidence or in breach of\n privacy;\n </li>\n <li>\n the downloading, copying and use of the Content will not infringe\n the proprietary rights, including but not limited to the copyright,\n patent, trademark or trade secret rights, of any third party;\n </li>\n <li>\n if your employer has rights to intellectual property you create, you\n have either (i) received permission from your employer to post or\n make available the Content, including but not limited to any\n software, or (ii) secured from your employer a waiver as to all\n rights in or to the Content;\n </li>\n <li>\n you have fully complied with any third-party licenses relating to\n the Content, and have done all things necessary to successfully pass\n through to end users any required terms;\n </li>\n <li>\n the Content does not contain or install any viruses, worms, malware,\n Trojan horses or other harmful or destructive content;\n </li>\n <li>\n the Content is not spam, is not machine or randomly generated and\n does not contain unethical or unwanted commercial content designed\n to drive traffic to third party sites or further unlawful acts;\n </li>\n <li>\n your User Account is not getting advertised via unwanted electronic\n messages such as spam links on newsgroups, email lists, other blogs\n and websites, and similar unsolicited promotional methods;\n </li>\n <li>\n your User Account is not named in a manner that misleads users into\n thinking that you are another person or company;\n </li>\n <li>\n the Content will not cause you or us to breach any law, regulation,\n rule, code or other legal obligation; and\n </li>\n <li>the Content will not bring us, or the Site into disrepute.</li>\n </ol>\n <p></p>\n <p>\n By submitting Content for inclusion in your User Account or to the Site,\n you grant us a worldwide, royalty free, and non-exclusive license to\n use that content in any way (including without limitation, reproducing,\n changing and communicating the Content) and permit us to authorise any\n other person to do the same thing. If you delete any Content, we will\n use reasonable efforts to remove it from the Site, but you acknowledge\n that caching or references to the Content may not be made immediately\n unavailable.\n </p>\n <p>\n Without limiting any of those representations or warranties, we reserve\n the right (though not the obligation) to, in our sole discretion\n </p>\n <ol>\n <li>\n refuse or remove any content that, in our reasonable opinion,\n violates any of our policies or agreements or is in any way harmful\n or objectionable, or\n </li>\n <li>\n terminate or deny access to and use of the Service to any individual\n or entity for any reason, in our sole discretion.\n </li>\n </ol>\n <p></p>\n <h3>Privacy</h3>\n <p>\n We get information about you in a range of ways. We collect your‎\n name,‎ email address and other information you directly give us on\n our Site. We may get information about you from other sources. We may\n add this to information we get from this Site. We may automatically log\n information about you and your computer. We may log information using\n \"cookies.\" Cookies are small data files stored on your hard drive by a\n website. Cookies help us make our Site and your visit better. We use\n cookies to see which parts of our Site people use and like and to count\n visits to our Site. We may store your personal information along with\n your files and data on a third party server such as Amazon Web Services;\n </p>\n <p>\n We use your personal information to operate, maintain, and improve our\n sites, products, and services. We use your personal information to\n respond to comments and questions and provide customer service. We use\n your personal information to provide and deliver products and services\n customers request. We also use your personal information to send you\n notifications about the service and to respond to customer support\n requests. You can access and change your personal information by logging\n in to your account settings page.\n </p>\n <p>\n We may share personal information with your consent. For example, you\n may let us share personal information with others for their own\n marketing uses. Those uses will be subject to their privacy policies. We\n may share personal information when we do a business deal, or negotiate\n a business deal, involving sale or transfer of all or a part of our\n business or assets. These deals can include any merger, financing,\n acquisition, or bankruptcy transaction or proceeding. We may share\n personal information for legal, protection, and safety purposes. We may\n share information to comply with laws. We may share information to\n respond to lawful requests and legal process. We may share information\n to protect the rights, property or safety of the Service, our users,\n customers, and others. This includes enforcing our agreements, policies,\n and terms of use. We may share information in an emergency. We may share\n information with those who need it to do work for us. We may also share\n aggregated and/or anonymized data with others for their own uses.\n </p>\n <p>\n Our marketing emails tell you how to “opt-out.” If you opt out, we may\n still send you non-marketing emails. Non-marketing emails include emails\n about your accounts and our business dealings with you.\n </p>\n <p>\n You can typically remove and reject cookies from our Site with your\n browser settings. Many browsers are set to accept cookies until you\n change your settings. If you remove or reject our cookies, it could\n affect how our Site works for you.\n </p>\n <p>\n If {{ company_name }} sells all or part of its business or makes a sale\n or transfer of its assets or is otherwise involved in a merger or\n transfer of all or a material part of its business,\n {{ company_name }} may transfer your information to the party or parties\n involved in the transaction as part of that transaction.\n </p>\n <p>\n {{ company_name }} uses a range of commercially reasonable measures to\n safeguard Personal Information in its possession against loss, theft and\n unauthorized use, disclosure or modification. However, no one can\n guarantee the complete safety of your information. Please immediately\n notify us if you believe there may be an issue or a problem regarding\n the integrity of your information by contacting us.\n </p>\n <p>\n In some cases, we may use an unaffiliated payment service to allow you\n to purchase a product or make payments (“Payment Service”). If you wish\n to purchase a product or make a payment in such a case, you will be\n directed to a Payment Service webpage. Any information that you provide\n to a Payment Service will be subject to the applicable Payment Service’s\n privacy policy, rather than this Privacy Policy. We have no control\n over, and are not responsible for, any Payment Service’s use of\n information collected through any Payment Service.\n </p>\n <p>\n The {{ company_name }} website may also be linked to sites operated by\n third parties, and may carry advertisements or offer content,\n functionality, games or applications developed and maintained by third\n parties. Some of these third party sites may be co-branded with a\n {{ company_name }} logo, even though they are not operated or maintained\n by us.\n </p>\n <p>\n {{ company_name }} is not responsible for the privacy practices of any\n such third parties, and once you leave the {{ company_name }} website,\n you should check the applicable privacy policy of the other service.\n </p>\n <h3>Questions & Comments</h3>\n <p>\n If you have any questions about our Privacy Policy, please\n <a href=\"mailto:{{ company_email }}\">let us know</a>.\n </p>\n </div>\n </div>\n </div>\n </div>\n </div>\n</div>\n","import { Component, Injector, Input, OnDestroy, OnInit, ViewChild } from '@angular/core';\nimport { NavigationEnd } from '@angular/router';\n\nimport { AppBaseComponent } from '@posiwise/app-base-component';\nimport { PermissionService } from '@posiwise/common-services';\nimport { Subscription } from '@posiwise/common-utilities';\n\nimport { MenuItem } from 'primeng/api';\nimport { TabMenu } from 'primeng/tabmenu';\nimport { Subscription as RxSubscription } from 'rxjs';\n\n@Component({\n selector: 'pw-tabs',\n templateUrl: './pw-tabs.component.html',\n\n standalone: false\n})\nexport class PwTabsComponent extends AppBaseComponent implements OnInit, OnDestroy {\n @Input()\n items: MenuItem[] = [];\n\n @ViewChild('tabMenu', { static: false })\n tabInstance: TabMenu;\n\n @Input()\n withSubscription = false;\n\n activeTab: MenuItem;\n\n private routeEventSubscription: RxSubscription;\n\n constructor(injector: Injector) {\n super(injector);\n }\n\n ngOnInit() {\n if (this.withSubscription) {\n this.getUserSubscription().subscribe((subscription: Subscription) => {\n this.items.forEach(item => {\n // prepends the subscription slug to the route while keeping routerLink as an array\n if (Array.isArray(item.routerLink) && item.routerLink.length > 0) {\n const originalRoute = item.routerLink[0];\n item.routerLink = [`/${subscription?.slug}${originalRoute}`];\n }\n item.visible = item?.state\n ? this.permissionService.evaluatePermissions(\n item.state['permission'],\n PermissionService.selectedProduct?.feature_key,\n PermissionService.selectedProduct?.permission_key\n )\n : item.visible;\n });\n this.updateActiveTab();\n });\n } else {\n // For non-subscription tabs, update active tab after view init\n setTimeout(() => this.updateActiveTab(), 0);\n }\n\n this.routeEventSubscription = this.router.events.subscribe(e => {\n if (e instanceof NavigationEnd) {\n this.updateActiveTab();\n }\n });\n }\n\n private updateActiveTab(): void {\n if (!this.tabInstance || !this.items.length) {\n return;\n }\n\n const currentUrl = this.router.url.split('?')[0];\n const matchedItem = this.items.find(item => {\n if (!item.routerLink || !item.visible) {\n return false;\n }\n const routePath = Array.isArray(item.routerLink) ? item.routerLink[0] : item.routerLink;\n return routePath === currentUrl;\n });\n\n if (matchedItem) {\n // Clear previous activeItem first to ensure only one tab is active\n this.tabInstance.activeItem = null;\n // Then set the new activeItem\n this.tabInstance.activeItem = matchedItem;\n } else {\n // Clear activeItem if no match found\n this.tabInstance.activeItem = null;\n }\n }\n\n override ngOnDestroy() {\n this.routeEventSubscription.unsubscribe();\n }\n}\n","<div class=\"container-fluid pw-tab overflow-hidden\">\n <p-tabMenu [model]=\"items\"\n #tabMenu></p-tabMenu>\n <div class=\"dashboard\">\n <div class=\"dashboard-body\">\n <router-outlet></router-outlet>\n </div>\n </div>\n</div>\n","import { AfterViewInit, Component, EventEmitter, Input, Output, ViewChild } from '@angular/core';\n\nimport moment from 'moment';\nimport { DaterangepickerDirective } from 'ngx-daterangepicker-material';\n\n@Component({\n selector: 'app-date-picker',\n templateUrl: './date-range-picker.component.html',\n styleUrls: ['./date-range-picker.component.scss'],\n\n standalone: false\n})\nexport class DateRangePickerComponent implements AfterViewInit {\n @ViewChild(DaterangepickerDirective, { static: false })\n pickerDirective: DaterangepickerDirective;\n\n private initialized = false;\n\n @Input() selectedDateRange: { startDate: moment.Moment; endDate: moment.Moment };\n @Input() dateRanges;\n @Output() dateRangeChange = new EventEmitter<{\n startDate: moment.Moment;\n endDate: moment.Moment;\n }>();\n\n onDateRangeSelect(event: { startDate: moment.Moment; endDate: moment.Moment }) {\n if (event.startDate && event.endDate) {\n this.dateRangeChange.emit(event);\n }\n }\n ngAfterViewInit() {\n setTimeout(() => {\n this.initialized = true;\n });\n }\n onClearDate() {\n if (!this.initialized) {\n return;\n }\n this.dateRangeChange.emit({ startDate: null, endDate: null });\n }\n openDatepicker() {\n setTimeout(() => {\n this.pickerDirective.open();\n }, 50);\n }\n}\n","<div class=\"my-3\">\n <div class=\"row\">\n <!-- start date -->\n <div class=\"col-6 col-sm-3\">\n <div class=\"\">\n <input ngxDaterangepickerMd\n class=\"form-control\"\n [(ngModel)]=\"selectedDateRange\"\n [ranges]=\"dateRanges\"\n [alwaysShowCalendars]=\"true\"\n [locale]=\"{ format: 'DD-MMM-YYYY' }\"\n [showCustomRangeLabel]=\"true\"\n [linkedCalendars]=\"true\"\n [showClearButton]=\"true\"\n (clearClicked)=\"onClearDate()\"\n placeholder=\"Select a date range (optional)\"\n opens=\"center\"\n (ngModelChange)=\"onDateRangeSelect($event)\"\n />\n </div>\n </div>\n <div class=\"col-6 col-sm-3 pop\">\n\n <div class=\"input-group-append\">\n <button class=\"btn btn-primary ngx-daterangepicker-action\"\n (click)=\"openDatepicker()\"\n type=\"button\">\n <i class=\"fa fa-calendar\" aria-hidden=\"true\"></i>\n </button>\n </div>\n </div>\n </div>\n </div>","import { Component, Host, Input, OnInit, Optional, SkipSelf } from '@angular/core';\nimport { AbstractControl, ControlContainer, NG_VALUE_ACCESSOR } from '@angular/forms';\n\n@Component({\n selector: 'pw-input-container',\n templateUrl: './input-container.component.html',\n styleUrls: ['./input-container.component.scss'],\n providers: [\n {\n provide: NG_VALUE_ACCESSOR,\n // eslint-disable-next-line @typescript-eslint/no-use-before-define\n useExisting: InputContainerComponent,\n multi: true\n }\n ],\n standalone: false\n})\nexport class InputContainerComponent implements OnInit {\n control: AbstractControl;\n\n @Input()\n name: string;\n\n @Input()\n label: string;\n\n @Input()\n labelClass: string;\n\n @Input()\n tooltipPosition: string;\n\n @Input()\n required = false;\n\n @Input()\n errorMsg = 'An error occurred';\n\n @Input()\n isReadOnly = false;\n\n @Input()\n showTooltip: boolean;\n\n @Input()\n tooltipText: string;\n\n @Input()\n showTriangle = false;\n\n @Input()\n afterLabel: string;\n\n @Input()\n showAfterLabel: boolean;\n\n @Input()\n showTriangleText: string;\n\n @Input()\n isLeftTooltip = false;\n\n constructor(\n @Optional()\n @Host()\n @SkipSelf()\n private readonly controlContainer: ControlContainer\n ) {}\n\n ngOnInit() {\n if (this.controlContainer) {\n if (this.name) {\n this.control = this.controlContainer.control.get(this.name);\n if (this.control?.validator) {\n const validator = this.control.validator({} as AbstractControl);\n if (validator?.['required']) {\n this.required = true;\n }\n }\n } else {\n window.console.warn(\n 'Missing FormControlName directive from host element of the component'\n );\n }\n } else {\n window.console.warn(\"Can't find parent FormGroup directive\");\n }\n }\n}\n","<label class=\"mb-2\" for=\"Label\">\n <span [class]=\"labelClass\"\n [ngClass]=\"{ mandatory: required && !control?.disabled }\">\n {{ label }}\n </span>\n <span [ngClass]=\"{ 'left-info-circle': isLeftTooltip }\" class=\"info-circle tooltip-wrap ms-1\" *ngIf=\"showTooltip && tooltipText\">\n <span class=\"tooltiptext gradient-custom-branding\" [ngClass]=\"{ 'left-field-tooltip': isLeftTooltip }\">\n {{ tooltipText }}\n </span>\n </span>\n <span class=\"tooltip-wrap ms-1\"\n *ngIf=\"showTriangle\"\n [pTooltip]=\"'Last month this value was set to ' + showTriangleText\"\n [appendTo]=\"'body'\"\n [tooltipPosition]=\"tooltipPosition || 'top'\">\n <i class=\"fas fa-exclamation-triangle text-warning\"></i>\n </span>\n <!-- after label -->\n <span *ngIf=\"afterLabel && showAfterLabel\"\n [innerHTML]=\"afterLabel\"></span>\n <!-- after label end -->\n</label>\n\n<div class=\"mb-3\">\n <ng-content></ng-content>\n <ng-container *ngIf=\"control?.errors\">\n <pw-field-error-display [displayError]=\"control?.invalid && control?.touched\"\n [errorMsg]=\"errorMsg | transloco\">\n </pw-field-error-display>\n </ng-container>\n</div>\n","import { DragDropModule } from '@angular/cdk/drag-drop';\nimport { CommonModule } from '@angular/common';\nimport { NgModule } from '@angular/core';\nimport { FormsModule, ReactiveFormsModule } from '@angular/forms';\n\nimport { AppLoaderModule } from '@posiwise/app-loader';\nimport { CoreTranslocoModule } from '@posiwise/core-transloco';\nimport { DirectivesModule } from '@posiwise/directives';\nimport {\n FieldErrorDisplayModule,\n ProfileImageCropperModule,\n ResourceHeaderModule\n} from '@posiwise/utils';\n\nimport { AutoCompleteModule } from 'primeng/autocomplete';\nimport { ButtonModule } from 'primeng/button';\nimport { ProgressSpinnerModule } from 'primeng/progressspinner';\nimport { TooltipModule } from 'primeng/tooltip';\n\nimport { NgbTooltipModule } from '@ng-bootstrap/ng-bootstrap';\n\nimport { InputContainerComponent } from './input-container/input-container.component';\nimport { NoDataComponent } from './no-data/no-data.component';\n\n@NgModule({\n declarations: [NoDataComponent, InputContainerComponent],\n imports: [\n CommonModule,\n FormsModule,\n ReactiveFormsModule,\n AppLoaderModule,\n CoreTranslocoModule,\n DirectivesModule,\n ButtonModule,\n NgbTooltipModule,\n TooltipModule,\n ProgressSpinnerModule,\n AutoCompleteModule,\n DragDropModule,\n FieldErrorDisplayModule,\n ProfileImageCropperModule, // ✅ Import the separate module\n ResourceHeaderModule // ✅ Import the separate module\n ],\n exports: [\n ProfileImageCropperModule, // ✅ Re-export module for backward compatibility\n ResourceHeaderModule, // ✅ Re-export module for backward compatibility\n InputContainerComponent,\n NoDataComponent,\n ButtonModule,\n DragDropModule,\n ProgressSpinnerModule,\n AutoCompleteModule,\n TooltipModule,\n FieldErrorDisplayModule\n ]\n})\nexport class ResourceSharedComponentsModule {\n constructor() {\n console.log(\n '🚀 RESOURCE SHARED COMPONENTS MODULE LOADED! - Minimal shared components for resource module'\n );\n }\n}\n","import { Component } from '@angular/core';\n\n@Component({\n templateUrl: './splash.component.html',\n\n standalone: false\n})\nexport class SplashComponent {}\n","<pw-loader [isVisible]=\"true\"></pw-loader>\n","import { Component, Input, OnInit } from '@angular/core';\n\nimport { AppConfigService } from '@posiwise/app-config-service';\n\n@Component({\n selector: 'pw-terms-conditions',\n templateUrl: './terms-conditions.component.html',\n styleUrls: ['./terms-conditions.component.scss'],\n\n standalone: false\n})\nexport class TermsConditionsComponent implements OnInit {\n @Input()\n isPublic = window.location.pathname.includes('terms-conditions');\n\n company_name: string;\n company_number: string;\n company_state: string;\n company_street: string;\n company_email: string;\n company_city: string;\n company_city_code: string;\n\n constructor(private readonly appConfigService: AppConfigService) {}\n\n ngOnInit() {\n this.appConfigService.appConfig$.subscribe(config => {\n this.company_name = config?.['company'].name;\n this.company_number = config?.['company'].number;\n this.company_state = config?.['company'].state;\n this.company_street = config?.['company'].street;\n this.company_email = config?.['company'].email;\n this.company_city = config?.['company'].city;\n this.company_city_code = config?.['company'].city_code;\n });\n }\n}\n","<ng-container *ngIf=\"isPublic\">\n <pw-landing-page-header [landing]=\"false\"></pw-landing-page-header>\n</ng-container>\n\n<div class=\"container pw-tab overflow-hidden\">\n <div class=\"dashboard\">\n <div class=\"dashboard-body\">\n <div [ngClass]=\"{ 'mt-5': isPublic }\">\n <div class=\"row\">\n <div class=\"col-12 terms-of-service\">\n <h1>POSIWISE TERMS AND CONDITIONS</h1>\n <p>Last updated 26/10/2019</p>\n <h2>AGREEMENT TO TERMS</h2>\n <div class=\"clearfix\"></div>\n <p>\n These Terms of Use constitute a legally binding agreement made between\n you, whether personally or on behalf of an entity (“you”) and\n {{ company_name }}, {{ company_street }}, {{ company_city_code }}\n {{ company_city }}\n - {{ company_state }}, {{ company_number }} (“we,” “us” or “our”),\n concerning your access to and use of the {{ company_state }} website as\n well as any other media form, media channel, mobile website or mobile\n application related, linked, or otherwise connected thereto\n (collectively, the “Site”).\n </p>\n <p>\n You agree that by accessing the Site, you have read, understood, and\n agree to be bound by all of these Terms of Use. If you do not agree with\n all of these Terms of Use, then you are expressly prohibited from using\n the Site and you must discontinue use immediately.\n </p>\n <p>\n Supplemental terms and conditions or documents that may be posted on the\n Site from time to time are hereby expressly incorporated herein by\n reference. We reserve the right, in our sole discretion, to make changes\n or modifications to these Terms of Use at any time and for any reason.\n </p>\n <p>\n We will alert you about any changes by updating the “Last updated” date\n of these Terms of Use, and you waive any right to receive specific\n notice of each such change.\n </p>\n <p>\n It is your responsibility to periodically review these Terms of Use to\n stay informed of updates. You will be subject to, and will be deemed to\n have been made aware of and to have accepted, the changes in any revised\n Terms of Use by your continued use of the Site after the date such\n revised Terms of Use are posted.\n </p>\n <p>\n The information provided on the Site is not intended for distribution to\n or use by any person or entity in any jurisdiction or country where such\n distribution or use would be contrary to law or regulation or which\n would subject us to any registration requirement within such\n jurisdiction or country.\n </p>\n <p>\n Accordingly, those persons who choose to access the Site from other\n locations do so on their own initiative and are solely responsible for\n compliance with local laws, if and to the extent local laws are\n applicable.\n </p>\n <p>\n The Site is intended for users who are at least 13 years of age. All\n users who are minors in the jurisdiction in which they reside (generally\n under the age of 18) must have the permission of, and be directly\n supervised by, their parent or guardian to use the Site. If you are a\n minor, you must have your parent or guardian read and agree to these\n Terms of Use prior to you using the Site.\n </p>\n <h2>INTELLECTUAL PROPERTY RIGHTS</h2>\n <p>\n Unless otherwise indicated, the Site is our proprietary property and all\n source code, databases, functionality, software, website designs, audio,\n video, text, photographs, and graphics on the Site (collectively, the\n “Content”) and the trademarks, service marks, and logos contained\n therein (the “Marks”) are owned or controlled by us or licensed to us,\n and are protected by copyright and trademark laws and various other\n intellectual property rights and unfair competition laws of the United\n States, foreign jurisdictions, and international conventions.\n </p>\n <p>\n The Content and the Marks are provided on the Site “AS IS” for your\n information and personal use only. Except as expressly provided in these\n Terms of Use, no part of the Site and no Content or Marks may be copied,\n reproduced, aggregated, republished, uploaded, posted, publicly\n displayed, encoded, translated, transmitted, distributed, sold,\n licensed, or otherwise exploited for any commercial purpose whatsoever,\n without our express prior written permission.\n </p>\n <p>\n Provided that you are eligible to use the Site, you are granted a\n limited license to access and use the Site and to download or print a\n copy of any portion of the Content to which you have properly gained\n access solely for your personal, non-commercial use. We reserve all\n rights not expressly granted to you in and to the Site, the Content and\n the Marks.\n </p>\n <h1>USER REPRESENTATIONS</h1>\n <p>By using the Site, you represent and warrant that:</p>\n <ol>\n <li>\n <p class=\"m-0\">\n all registration information you submit will be true, accurate,\n current, and complete.\n </p>\n </li>\n <li>\n <p class=\"m-0\">\n you will maintain the accuracy of such information and promptly\n update such registration information as necessary.\n </p>\n </li>\n <li>\n <p class=\"m-0\">\n you have the legal capacity and you agree to comply with these\n Terms of Use.\n </p>\n </li>\n <li>\n <p class=\"m-0\">you are not under the age of 13.</p>\n </li>\n <li>\n <p class=\"m-0\">\n not a minor in the jurisdiction in which you reside, or if a\n minor, you have received parental permission to use the Site.\n </p>\n </li>\n <li>\n <p class=\"m-0\">\n you will not access the Site through automated or non-human\n means, whether through a bot, script, or otherwise.\n </p>\n </li>\n <li>\n <p class=\"m-0\">\n you will not use the Site for any illegal or unauthorized\n purpose.\n </p>\n </li>\n <li>\n <p class=\"m-0\">\n your use of the Site will not violate any applicable law or\n regulation.\n </p>\n </li>\n </ol>\n <p>\n If you provide any information that is untrue, inaccurate, not current,\n or incomplete, we have the right to suspend or terminate your account\n and refuse any and all current or future use of the Site (or any portion\n thereof).\n </p>\n <h2>USER REGISTRATION</h2>\n <p>\n You may be required to register with the Site. You agree to keep your\n password confidential and will be responsible for all use of your\n account and password. We reserve the right to remove, reclaim, or change\n a username you select if we determine, in our sole discretion, that such\n username is inappropriate, obscene, or otherwise objectionable.\n </p>\n <h2>PROHIBITED ACTIVITIES</h2>\n <p>\n You may not access or use the Site for any purpose other than that for\n which we make the Site available. The Site may not be used in connection\n with any commercial endeavors except those that are specifically\n endorsed or approved by us.\n </p>\n <p>As a user of the Site, you agree not to:</p>\n\n <ol>\n <li>\n <p class=\"m-0\">\n systematically retrieve data or other content from the Site to\n create or compile, directly or indirectly, a collection,\n compilation, database, or directory without written permission\n from us.\n </p>\n </li>\n <li>\n <p class=\"m-0\">\n make any unauthorized use of the Site, including collecting\n usernames and/or email addresses of users by electronic or other\n means for the purpose of sending unsolicited email, or creating\n user accounts by automated means or under false pretenses.\n </p>\n </li>\n <li>\n <p class=\"m-0\">\n use a buying agent or purchasing agent to make purchases on the\n Site.\n </p>\n </li>\n <li>\n <p class=\"m-0\">\n use the Site to advertise or offer to sell goods and services.\n </p>\n </li>\n <li>\n <p class=\"m-0\">\n circumvent, disable, or otherwise interfere with\n security-related features of the Site, including features that\n prevent or restrict the use or copying of any Content or enforce\n limitations on the use of the Site and/or the Content contained\n therein.\n </p>\n </li>\n <li>\n <p class=\"m-0\">\n engage in unauthorized framing of or linking to the Site.\n </p>\n </li>\n <li>\n <p class=\"m-0\">\n trick, defraud, or mislead us and other users, especially in any\n attempt to learn sensitive account information such as user\n passwords\n </p>\n </li>\n <li>\n <p class=\"m-0\">\n make improper use of our support services or submit false\n reports of abuse or misconduct.\n </p>\n </li>\n <li>\n <p class=\"m-0\">\n engage in any automated use of the system, such as using scripts\n to send comments or messages, or using any data mining, robots,\n or similar data gathering and extraction tools.\n </p>\n </li>\n <li>\n <p class=\"m-0\">\n interfere with, disrupt, or create an undue burden on the Site\n or the networks or services connected to the Site.\n </p>\n </li>\n <li>\n <p class=\"m-0\">\n attempt to impersonate another user or person or use the\n username of another user.\n </p>\n </li>\n <li>\n <p class=\"m-0\">sell or otherwise transfer your profile.</p>\n </li>\n <li>\n <p class=\"m-0\">\n use any information obtained from the Site in order to harass,\n abuse, or harm another person.\n </p>\n </li>\n <li>\n <p class=\"m-0\">\n use the Site as part of any effort to compete with us or\n otherwise use the Site and/or the Content for any\n revenue-generating endeavor or commercial enterprise.\n </p>\n </li>\n <li>\n <p class=\"m-0\">\n decipher, decompile, disassemble, or reverse engineer any of the\n software comprising or in any way making up a part of the Site.\n </p>\n </li>\n <li>\n <p class=\"m-0\">\n attempt to bypass any measures of the Site designed to prevent\n or restrict access to the Site, or any portion of the Site.\n </p>\n </li>\n <li>\n <p class=\"m-0\">\n harass, annoy, intimidate, or threaten any of our employees or\n agents engaged in providing any portion of the Site to you.\n </p>\n </li>\n <li>\n <p class=\"m-0\">\n delete the copyright or other proprietary rights notice from any\n Content.\n </p>\n </li>\n <li>\n <p class=\"m-0\">\n copy or adapt the Site’s software, including but not limited to\n Flash, PHP, HTML, JavaScript, or other code.\n </p>\n </li>\n <li>\n <p class=\"m-0\">\n upload or transmit (or attempt to upload or to transmit)\n viruses, Trojan horses, or other material, including excessive\n use of capital letters and spamming (continuous posting of\n repetitive text), that interferes with any party’s uninterrupted\n use and enjoyment of the Site or modifies, impairs, disrupts,\n alters, or interferes with the use, features, functions,\n operation, or maintenance of the Site.\n </p>\n </li>\n <li>\n <p class=\"m-0\">\n upload or transmit (or attempt to upload or to transmit) any\n material that acts as a passive or active information collection\n or transmission mechanism, including without limitation, clear\n graphics interchange formats (“gifs”), 1×1 pixels, web bugs,\n cookies, or other similar devices (sometimes referred to as\n “spyware” or “passive collection mechanisms” or “pcms”).\n </p>\n </li>\n <li>\n <p class=\"m-0\">\n except as may be the result of standard search engine or\n Internet browser usage, use, launch, develop, or distribute any\n automated system, including without limitation, any spider,\n robot, cheat utility, scraper, or offline reader that accesses\n the Site, or using or launching any unauthorized script or other\n software.\n </p>\n </li>\n <li>\n <p class=\"m-0\">\n disparage, tarnish, or otherwise harm, in our opinion, us and/or\n the Site.\n </p>\n </li>\n <li>\n <p class=\"m-0\">\n use the Site in a manner inconsistent with any applicable laws\n or regulations.\n </p>\n </li>\n </ol>\n\n <h2>USER GENERATED CONTRIBUTIONS</h2>\n\n <p>\n The Site may invite you to chat, contribute to, or participate in blogs,\n message boards, online forums, and other functionality, and may provide\n you with the opportunity to create, submit, post, display, transmit,\n perform, publish, distribute, or broadcast content and materials to us\n or on the Site, including but not limited to text, writings, video,\n audio, photographs, graphics, comments, suggestions, or personal\n information or other material (collectively, \"Contributions\").\n </p>\n <p>\n Contributions may be viewable by other users of the Site and through\n third-party websites. As such, any Contributions you transmit may be\n treated as non-confidential and non-proprietary. When you create or make\n available any Contributions, you thereby represent and warrant that:\n </p>\n\n <ol>\n <li>\n <p class=\"m-0\">\n the creation, distribution, transmission, public display, or\n performance, and the accessing, downloading, or copying of your\n Contributions do not and will not infringe the proprietary\n rights, including but not limited to the copyright, patent,\n trademark, trade secret, or moral rights of any third party.\n </p>\n </li>\n <li>\n <p class=\"m-0\">\n you are the creator and owner of or have the necessary licenses,\n rights, consents, releases, and permissions to use and to\n authorize us, the Site, and other users of the Site to use your\n Contributions in any manner contemplated by the Site and these\n Terms of Use.\n </p>\n </li>\n <li>\n <p class=\"m-0\">\n you have the written consent, release, and/or permission of each\n and every identifiable individual person in your Contributions\n to use the name or likeness of each and every such identifiable\n individual person to enable inclusion and use of your\n Contributions in any manner contemplated by the Site and these\n Terms of Use.\n </p>\n </li>\n <li>\n <p class=\"m-0\">\n your Contributions are not false, inaccurate, or misleading.\n </p>\n </li>\n <li>\n <p class=\"m-0\">\n your Contributions are not unsolicited or unauthorized\n advertising, promotional materials, pyramid schemes, chain\n letters, spam, mass mailings, or other forms of solicitation.\n </p>\n </li>\n <li>\n <p class=\"m-0\">\n your Contributions are not obscene, lewd, lascivious, filthy,\n violent, harassing, libelous, slanderous, or otherwise\n objectionable (as determined by us).\n </p>\n </li>\n <li>\n <p class=\"m-0\">\n your Contributions do not ridicule, mock, disparage, intimidate,\n or abuse anyone.\n </p>\n </li>\n <li>\n <p class=\"m-0\">\n your Contributions do not advocate the violent overthrow of any\n government or incite, encourage, or threaten physical harm\n against another.\n </p>\n </li>\n <li>\n <p class=\"m-0\">\n your Contributions do not violate any applicable law,\n regulation, or rule.\n </p>\n </li>\n <li>\n <p class=\"m-0\">\n your Contributions do not violate the privacy or publicity\n rights of any third party.\n </p>\n </li>\n <li>\n <p class=\"m-0\">\n your Contributions do not contain any material that solicits\n personal information from anyone under the age of 18 or exploits\n people under the age of 18 in a sexual or violent manner.\n </p>\n </li>\n <li>\n <p class=\"m-0\">\n your Contributions do not violate any federal or state law\n concerning child pornography, or otherwise intended to protect\n the health or well-being of minors.\n </p>\n </li>\n <li>\n <p class=\"m-0\">\n your Contributions do not include any offensive comments that\n are connected to race, national origin, gender, sexual\n preference, or physical handicap.\n </p>\n </li>\n <li>\n <p class=\"m-0\">\n your Contributions do not otherwise violate, or link to material\n that violates, any provision of these Terms of Use, or any\n applicable law or regulation.\n </p>\n </li>\n </ol>\n <p>\n Any use of the Site in violation of the foregoing violates these Terms\n of Use and may result in, among other things, termination or suspension\n of your rights to use the Site.\n </p>\n\n <h2>CONTRIBUTION LICENSE</h2>\n\n <p>\n By posting your Contributions to any part of the Site, or making\n Contributions accessible to the Site by linking your account from the\n Site to any of your social networking accounts, you automatically grant,\n and you represent and warrant that you have the right to grant, to us an\n unrestricted, unlimited, irrevocable, perpetual, non-exclusive,\n transferable, royalty-free, fully-paid, worldwide right, and license to\n host, use, copy, reproduce, disclose, sell, resell, publish, broadcast,\n re title, archive, store, cache, publicly perform, publicly display,\n reformat, translate, transmit, excerpt (in whole or in part), and\n distribute such Contributions (including, without limitation, your image\n and voice) for any purpose, commercial, advertising, or otherwise, and\n to prepare derivative works of, or incorporate into other works, such\n Contributions, and grant and authorize sublicense of the foregoing. The\n use and distribution may occur in any media formats and through any\n media channels.\n </p>\n <p>\n This license will apply to any form, media, or technology now known or\n hereafter developed, and includes our use of your name, company name,\n and franchise name, as applicable, and any of the trademarks, service\n marks, trade names, logos, and personal and commercial images you\n provide. You waive all moral rights in your Contributions, and you\n warrant that moral rights have not otherwise been asserted in your\n Contributions.\n </p>\n <p>\n We do not assert any ownership over your Contributions. You retain full\n ownership of all of your Contributions and any intellectual property\n rights or other proprietary rights associated with your Contributions.\n We are not liable for any statements or representations in your\n Contributions provided by you in any area on the Site.\n </p>\n <p>\n You are solely responsible for your Contributions to the Site and you\n expressly agree to exonerate us from any and all responsibility and to\n refrain from any legal action against us regarding your Contributions.\n </p>\n <p>\n We have the right, in our sole and absolute discretion, (1) to edit,\n redact, or otherwise change any Contributions; (2) to re-categorize any\n Contributions to place them in more appropriate locations on the Site;\n and (3) to pre-screen or delete any Contributions at any time and for\n any reason, without notice. We have no obligation to monitor your\n Contributions.\n </p>\n <h2>GUIDELINES FOR REVIEWS</h2>\n <ol>\n <li>\n <p class=\"m-0\">\n We may provide you areas on the Site to leave reviews or\n ratings. When posting a review, you must comply with the\n following criteria:\n </p>\n </li>\n <li>\n <p class=\"m-0\">\n you should have firsthand experience with the person/entity\n being reviewed.\n </p>\n </li>\n <li>\n <p class=\"m-0\">\n your reviews should not contain offensive profanity, or abusive,\n racist, offensive, or hate language.\n </p>\n </li>\n <li>\n <p class=\"m-0\">\n your reviews should not contain discriminatory references based\n on religion, race, gender, national origin, age, marital status,\n sexual orientation, or disability.\n </p>\n </li>\n <li>\n <p class=\"m-0\">\n your reviews should not contain references to illegal activity.\n </p>\n </li>\n <li>\n <p class=\"m-0\">\n you should not be affiliated with competitors if posting\n negative reviews.\n </p>\n </li>\n <li>\n <p class=\"m-0\">\n you should not make any conclusions as to the legality of\n conduct.\n </p>\n </li>\n <li>\n <p class=\"m-0\">\n you may not post any false or misleading statements.\n </p>\n </li>\n <li>\n <p class=\"m-0\">\n you may not organize a campaign encouraging others to post\n reviews, whether positive or negative.\n </p>\n </li>\n </ol>\n <p>\n We may accept, reject, or remove reviews in our sole discretion. We have\n absolutely no obligation to screen reviews or to delete reviews, even if\n anyone considers reviews objectionable or inaccurate. Reviews are not\n endorsed by us, and do not necessarily represent our opinions or the\n views of any of our affiliates or partners.\n </p>\n <p>\n We do not assume liability for any review or for any claims,\n liabilities, or losses resulting from any review. By posting a review,\n you hereby grant to us a perpetual, non-exclusive, worldwide,\n royalty-free, fully-paid, assignable, and sub-licensable right and\n license to reproduce, modify, translate, transmit by any means, display,\n perform, and/or distribute all content relating to reviews.\n </p>\n <h2>MOBILE APPLICATION LICENSE</h2>\n <h3>Use License</h3>\n\n <p>\n If you access the Site via a mobile application, then we grant you a\n revocable, non-exclusive, non-transferable, limited right to install and\n use the mobile application on wireless electronic devices owned or\n controlled by you, and to access and use the mobile application on such\n devices strictly in accordance with the terms and conditions of this\n mobile application license contained in these Terms of Use.\n </p>\n <p>Use License</p>\n <p>\n (1) decompile, reverse engineer, disassemble, attempt to derive the\n source code of, or decrypt the application.\n </p>\n <p>\n (2) make any modification, adaptation, improvement, enhancement,\n translation, or derivative work from the application.\n </p>\n <p>\n (3) violate any applicable laws, rules, or regulations in connection\n with your access or use of the application.\n </p>\n <p>\n (4) remove, alter, or obscure any proprietary notice (including any\n notice of copyright or trademark) posted by us or the licensors of the\n application.\n </p>\n <p>\n (5) use the application for any revenue generating endeavor, commercial\n enterprise, or other purpose for which it is not designed or intended.\n </p>\n <p>\n (6) make the application available over a network or other environment\n permitting access or use by multiple devices or users at the same .\n </p>\n <p>\n (7) use the application for creating a product, service, or software\n that is, directly or indirectly, competitive with or in any way a\n substitute for the application.\n </p>\n <p>\n (8) use the application to send automated queries to any website or to\n send any unsolicited commercial e-mail.\n </p>\n <p>\n (9) use any proprietary information or any of our interfaces or our\n other intellectual property in the design, development, manufacture,\n licensing, or distribution of any applications, accessories, or devices\n for use with the application.\n </p>\n <h3>Apple and Android Devices</h3>\n <p>\n The following terms apply when you use a mobile application obtained\n from either the Apple Store or Google Play (each an “App Distributor”)\n to access the Site:\n </p>\n <p>\n (1) the license granted to you for our mobile application is limited to\n a non-transferable license to use the application on a device that\n utilizes the Apple iOS or Android operating systems, as applicable, and\n in accordance with the usage rules set forth in the applicable\n Distributor’s terms of service\n </p>\n <p>\n (2) we are responsible for providing any maintenance and support\n services with respect to the mobile application as specified in the\n terms and conditions of this mobile application contained in these Terms\n of Use or as otherwise required under applicable law, and you\n acknowledge that each App Distributor has no obligation whatsoever to\n furnish any maintenance and support services with respect to the mobile\n application.\n </p>\n <p>\n (3) in the event of any failure of the mobile application to conform to\n any applicable warranty, you may notify the applicable App Distributor,\n and the App Distributor, in accordance with its terms and policies, may\n refund the purchase price, if any, paid for the mobile application, and\n to the maximum extent permitted by applicable law, the App Distributor\n will have no other warranty obligation whatsoever with respect to the\n mobile application.\n </p>\n <p>\n (4) you represent and warrant that (i) you are not located in a country\n that is subject to a U.S. government embargo, or that has been\n designated by the U.S. government as a “terrorist supporting” country\n and (ii) you are not listed on any U.S. government list of prohibited or\n restricted parties.\n </p>\n <p>\n (5) you must comply with applicable third-party terms of agreement when\n using the mobile application, e.g., if you have a VoIP application, then\n you must not be in violation of their wireless data service agreement\n when using the mobile application.\n </p>\n <p>\n (6) you acknowledge and agree that the App Distributors are third-party\n beneficiaries of the terms and conditions in this mobile application\n license contained in these Terms of Use, and that each App Distributor\n will have the right (and will be deemed to have accepted the right) to\n enforce the terms and conditions in this mobile application license\n contained in these Terms of Use against you as a third-party beneficiary\n thereof.\n </p>\n <h2>SOCIAL MEDIA</h2>\n <p>\n As part of the functionality of the Site, you may link your account with\n online accounts you have with third-party service providers (each such\n account, a “Third-Party Account”) by either:\n </p>\n\n <ol>\n <li>\n <p class=\"m-0\">\n providing your Third-Party Account login information through the\n Site; or\n </p>\n </li>\n <li>\n <p class=\"m-0\">\n allowing us to access your Third-Party Account, as is permitted\n under the applicable terms and conditions that govern your use\n of each Third-Party Account.\n </p>\n </li>\n </ol>\n\n <p>\n You represent and warrant that you are entitled to disclose your\n Third-Party Account login information to us and/or grant us access to\n your Third-Party Account, without breach by you of any of the terms and\n conditions that govern your use of the applicable Third-Party Account,\n and without obligating us to pay any fees or making us subject to any\n usage limitations imposed by the third-party service provider of the\n Third-Party Account.\n </p>\n <p>\n By granting us access to any Third-Party Accounts, you understand that\n (1) we may access, make available, and store (if applicable) any content\n that you have provided to and stored in your Third-Party Account (the\n “Social Network Content”) so that it is available on and through the\n Site via your account, including without limitation any friend lists and\n (2) we may submit to and receive from your Third-Party Account\n additional information to the extent you are notified when you link your\n account with the Third-Party Account.\n </p>\n <p>\n Depending on the Third-Party Accounts you choose and subject to the\n privacy settings that you have set in such Third-Party Accounts,\n personally identifiable information that you post to your Third-Party\n Accounts may be available on and through your account on the Site.\n </p>\n <p>\n Please note that if a Third-Party Account or associated service becomes\n unavailable or our access to such Third-Party Account is terminated by\n the third-party service provider, then Social Network Content may no\n longer be available on and through the Site. You will have the ability\n to disable the connection between your account on the Site and your\n Third-Party Accounts at any time.\n </p>\n\n <p>\n PLEASE NOTE THAT YOUR RELATIONSHIP WITH THE THIRD-PARTY SERVICE\n PROVIDERS ASSOCIATED WITH YOUR THIRD-PARTY ACCOUNTS IS GOVERNED SOLELY\n BY YOUR AGREEMENT(S) WITH SUCH THIRD-PARTY SERVICE PROVIDERS.\n </p>\n <p>\n We make no effort to review any Social Network Content for any purpose,\n including but not limited to, for accuracy, legality, or\n non-infringement, and we are not responsible for any Social Network\n Content.\n </p>\n <p>\n You acknowledge and agree that we may access your email address book\n associated with a Third-Party Account and your contacts list stored on\n your mobile device or tablet computer solely for purposes of identifying\n and informing you of those contacts who have also registered to use the\n Site.\n </p>\n <p>\n You acknowledge and agree that we may access your email address book\n associated with a Third-Party Account and your contacts list stored on\n your mobile device or tablet computer solely for purposes of identifying\n and informing you of those contacts who have also registered to use the\n Site.\n </p>\n <h2>SUBMISSIONS</h2>\n <p>\n You acknowledge and agree that any questions, comments, suggestions,\n ideas, feedback, or other information regarding the Site (\"Submissions\")\n provided by you to us are non-confidential and shall become our sole\n property. We shall own exclusive rights, including all intellectual\n property rights, and shall be entitled to the unrestricted use and\n dissemination of these Submissions for any lawful purpose, commercial or\n otherwise, without acknowledgment or compensation to you.\n </p>\n <p>\n You hereby waive all moral rights to any such Submissions, and you\n hereby warrant that any such Submissions are original with you or that\n you have the right to submit such Submissions. You agree there shall be\n no recourse against us for any alleged or actual infringement or\n misappropriation of any proprietary right in your Submissions.\n </p>\n <h2>THIRD-PARTY WEBSITES AND CONTENT</h2>\n <p>\n The Site may contain (or you may be sent via the Site) links to other\n websites (\"Third-Party Websites\") as well as articles, text, graphics,\n pictures, designs, music, sound, video, information, applications,\n software, and other content or items belonging to or originating from\n third parties (\"Third-Party Content\").\n </p>\n <p>\n Such Third-Party Websites and Third-Party Content are not investigated,\n monitored, or checked for accuracy, appropriateness, or completeness by\n us, and we are not responsible for any Third-Party Websites accessed\n through the Site or any Third-Party Content posted on, available\n through, or installed from the Site, including the content, accuracy,\n offensiveness, opinions, reliability, privacy practices, or other\n policies of or contained in the Third-Party Websites or the Third-Party\n Content.\n </p>\n <p>\n Inclusion of, linking to, or permitting the use or installation of any\n Third-Party Websites or any Third-Party Content does not imply approval\n or endorsement thereof by us. If you decide to leave the Site and access\n the Third-Party Websites or to use or install any Third-Party Content,\n you do so at your own risk, and you should be aware these Terms of Use\n no longer govern.\n </p>\n <p>\n You should review the applicable terms and policies, including privacy\n and data gathering practices, of any website to which you navigate from\n the Site or relating to any applications you use or install from the\n Site. Any purchases you make through Third-Party Websites will be\n through other websites and from other companies, and we take no\n responsibility whatsoever in relation to such purchases which are\n exclusively between you and the applicable third party.\n </p>\n <p>\n You agree and acknowledge that we do not endorse the products or\n services offered on Third-Party Websites and you shall hold us harmless\n from any harm caused by your purchase of such products or services.\n Additionally, you shall hold us harmless from any losses sustained by\n you or harm caused to you relating to or resulting in any way from any\n Third-Party Content or any contact with Third-Party Websites.\n </p>\n <h2>ADVERTISERS</h2>\n <p>\n We allow advertisers to display their advertisements and other\n information in certain areas of the Site, such as sidebar advertisements\n or banner advertisements. If you are an advertiser, you shall take full\n responsibility for any advertisements you place on the Site and any\n services provided on the Site or products sold through those\n advertisements.\n </p>\n <p>\n Further, as an advertiser, you warrant and represent that you possess\n all rights and authority to place advertisements on the Site, including,\n but not limited to, intellectual property rights, publicity rights, and\n contractual rights.\n </p>\n <p>\n As an advertiser, you agree that such advertisements are subject to our\n Digital Millennium Copyright Act (“DMCA”) Notice and Policy provisions\n as described below, and you understand and agree there will be no refund\n or other compensation for DMCA take down-related issues. We simply\n provide the space to place such advertisements, and we have no other\n relationship with advertisers.\n </p>\n <h2>SITE MANAGEMENT</h2>\n <p>We reserve the right, but not the obligation, to:</p>\n <p>(1) monitor the Site for violations of these Terms of Use.</p>\n <p>\n (2) take appropriate legal action against anyone who, in our sole\n discretion, violates the law or these Terms of Use, including without\n limitation, reporting such user to law enforcement authorities.\n </p>\n <p>\n (3) in our sole discretion and without limitation, refuse, restrict\n access to, limit the availability of, or disable (to the extent\n technologically feasible) any of your Contributions or any portion\n thereof\n </p>\n <p>\n (4) in our sole discretion and without limitation, notice, or liability,\n to remove from the Site or otherwise disable all files and content that\n are excessive in size or are in any way burdensome to our systems.\n </p>\n <p>\n (5) otherwise manage the Site in a manner designed to protect our rights\n and property and to facilitate the proper functioning of the Site.\n </p>\n <h2>PRIVACY POLICY</h2>\n <p>\n We care about data privacy and security. Please review our Privacy\n Policy: <a href=\"/privacy-policy\">click here</a>. By using the Site, you\n agree to be bound by our Privacy Policy, which is incorporated into\n these Terms of Use. Please be advised the Site is hosted in the United\n States.\n </p>\n <p>\n If you access the Site from the European Union, Asia, or any other\n region of the world with laws or other requirements governing personal\n data collection, use, or disclosure that differ from applicable laws in\n the United States, then through your continued use of the Site, you are\n transferring your data to the United States, and you expressly consent\n to have your data transferred to and processed in the United States.\n </p>\n <p>\n Further, we do not knowingly accept, request, or solicit information\n from children or knowingly market to children. Therefore, in accordance\n with the U.S. Children’s Online Privacy Protection Act, if we receive\n actual knowledge that anyone under the age of 13 has provided personal\n information to us without the requisite and verifiable parental consent,\n we will delete that information from the Site as quickly as is\n reasonably practical.\n </p>\n <h2>DIGITAL MILLENNIUM COPYRIGHT ACT (DMCA) NOTICE AND POLICY</h2>\n <h3>Notifications</h3>\n <p>\n We respect the intellectual property rights of others. If you believe\n that any material available on or through the Site infringes upon any\n copyright you own or control, please immediately notify our Designated\n Copyright Agent using the contact information provided below (a\n “Notification”).\n </p>\n <p>\n A copy of your Notification will be sent to the person who posted or\n stored the material addressed in the Notification. Please be advised\n that pursuant to federal law you may be held liable for damages if you\n make material misrepresentations in a Notification. Thus, if you are not\n sure that material located on or linked to by the Site infringes your\n copyright, you should consider first contacting an attorney.\n </p>\n <p>\n All Notifications should meet the requirements of DMCA 17 U.S.C. §\n 512(c)(3) and include the following information:\n </p>\n <p>\n (1) A physical or electronic signature of a person authorized to act on\n behalf of the owner of an exclusive right that is allegedly infringed.\n </p>\n <p>\n (2) identification of the copyrighted work claimed to have been\n infringed, or, if multiple copyrighted works on the Site are covered by\n the Notification, a representative list of such works on the Site\n </p>\n <p>\n (3) information reasonably sufficient to permit us to contact the\n complaining party, such as an address, telephone number, and, if\n available, an email address at which the complaining party may be\n contacted.\n </p>\n <p>\n (4) a statement that the complaining party has a good faith belief that\n use of the material in the manner complained of is not authorized by the\n copyright owner, its agent, or the law.\n </p>\n <p>\n (5) a statement that the information in the notification is accurate,\n and under penalty of perjury, that the complaining party is authorized\n to act on behalf of the owner of an exclusive right that is allegedly\n infringed upon.\n </p>\n <h3>Counter Notification</h3>\n <p>\n If you believe your own copyrighted material has been removed from the\n Site as a result of a mistake or mis identification, you may submit a\n written counter notification to us using the contact information\n provided below (a “Counter Notification”).\n </p>\n <p>\n To be an effective Counter Notification under the DMCA, your Counter\n Notification must include substantially the following:\n </p>\n <p>\n (1) identification of the material that has been removed or disabled and\n the location at which the material appeared before it was removed or\n disabled.\n </p>\n <p>\n (2) a statement that you consent to the jurisdiction of the Federal\n District Court in which your address is located, or if your address is\n outside the United States, for any judicial district in which we are\n located.\n </p>\n <p>\n (3) a statement that you will accept service of process from the party\n that filed the Notification or the party's agent.\n </p>\n <p>(4) your name, address, and telephone number.</p>\n <p>\n (5) a statement under penalty of perjury that you have a good faith\n belief that the material in question was removed or disabled as a result\n of a mistake or mis identification of the material to be removed or\n disabled\n </p>\n <p>(6) your physical or electronic signature.</p>\n <p>\n If you send us a valid, written Counter Notification meeting the\n requirements described above, we will restore your removed or disabled\n material, unless we first receive notice from the party filing the\n Notification informing us that such party has filed a court action to\n restrain you from engaging in infringing activity related to the\n material in question.\n </p>\n <p>\n Please note that if you materially misrepresent that the disabled or\n removed content was removed by mistake or mis-identification, you may be\n liable for damages, including costs and attorney's fees. Filing a false\n Counter Notification constitutes perjury.\n </p>\n <p>\n Designated Copyright Agent\n <br />\n {{ company_name }}\n <br />\n Attn: Copyright Agent\n <br />\n {{ company_email }}\n </p>\n <h2>COPYRIGHT INFRINGEMENTS</h2>\n <p>\n We respect the intellectual property rights of others. If you believe\n that any material available on or through the Site infringes upon any\n copyright you own or control, please immediately notify us using the\n contact information provided below (a “Notification”). A copy of your\n Notification will be sent to the person who posted or stored the\n material addressed in the Notification.\n </p>\n <p>\n Please be advised that pursuant to federal law you may be held liable\n for damages if you make material misrepresentations in a Notification.\n Thus, if you are not sure that material located on or linked to by the\n Site infringes your copyright, you should consider first contacting an\n attorney.\n </p>\n <h2>TERM AND TERMINATION</h2>\n <p>\n These Terms of Use shall remain in full force and effect while you use\n the Site. WITHOUT LIMITING ANY OTHER PROVISION OF THESE TERMS OF USE, WE\n RESERVE THE RIGHT TO, IN OUR SOLE DISCRETION AND WITHOUT NOTICE OR\n LIABILITY, DENY ACCESS TO AND USE OF THE SITE (INCLUDING BLOCKING\n CERTAIN IP ADDRESSES), TO ANY PERSON FOR ANY REASON OR FOR NO REASON,\n INCLUDING WITHOUT LIMITATION FOR BREACH OF ANY REPRESENTATION, WARRANTY,\n OR COVENANT CONTAINED IN THESE TERMS OF USE OR OF ANY APPLICABLE LAW OR\n REGULATION. WE MAY TERMINATE YOUR USE OR PARTICIPATION IN THE SITE OR\n DELETE YOUR ACCOUNT AND ANY CONTENT OR INFORMATION THAT YOU POSTED AT\n ANY TIME, WITHOUT WARNING, IN OUR SOLE DISCRETION.\n </p>\n <p>\n If we terminate or suspend your account for any reason, you are\n prohibited from registering and creating a new account under your name,\n a fake or borrowed name, or the name of any third party, even if you may\n be acting on behalf of the third party.\n </p>\n <p>\n In addition to terminating or suspending your account, we reserve the\n right to take appropriate legal action, including without limitation\n pursuing civil, criminal, and injunctive redress.\n </p>\n <h2>MODIFICATIONS AND INTERRUPTIONS</h2>\n <p>\n We reserve the right to change, modify, or remove the contents of the\n Site at any time or for any reason at our sole discretion without\n notice. However, we have no obligation to update any information on our\n Site. We also reserve the right to modify or discontinue all or part of\n the Site without notice at any time.\n </p>\n <p>\n We will not be liable to you or any third party for any modification,\n price change, suspension, or discontinuance of the Site.\n </p>\n <p>\n We cannot guarantee the Site will be available at all times. We may\n experience hardware, software, or other problems or need to perform\n maintenance related to the Site, resulting in interruptions, delays, or\n errors.\n </p>\n <p>\n We reserve the right to change, revise, update, suspend, discontinue, or\n otherwise modify the Site at any time or for any reason without notice\n to you. You agree that we have no liability whatsoever for any loss,\n damage, or inconvenience caused by your inability to access or use the\n Site during any downtime or discontinuance of the Site.\n </p>\n <p>\n Nothing in these Terms of Use will be construed to obligate us to\n maintain and support the Site or to supply any corrections, updates, or\n releases in connection therewith.\n </p>\n <h2>GOVERNING LAW</h2>\n <p>\n For any dispute relating to the entering into effect, validity,\n interpretation, execution, suspension, termination and forcible\n execution of this Contract, the Courts of the judicial district of\n Brussels have jurisdiction. Belgian law governs this Contract, excluding\n provisions of private international law pertinent to the applicable law,\n and the Vienna Convention on contracts for the international sale of\n real property (Vienna, April 11, 1980).\n </p>\n <h2>DISPUTE RESOLUTION</h2>\n <p>\n The parties shall endeavour to settle any dispute arising out of or\n relating to this agreement, including with regard to its existence,\n validity or termination, by mediation before having recourse to\n arbitration or litigation.\n </p>\n <p>\n Any legal action of whatever nature brought by either you or us\n (collectively, the “Parties” and individually, a “Party”) shall be\n commenced or prosecuted in the state and federal courts located in\n Brussels, Belgium, and the Parties hereby consent to, and waive all\n defenses of lack of personal jurisdiction and forum non convenient with\n respect to venue and jurisdiction in such state and federal courts.\n </p>\n <p>\n Application of the United Nations Convention on Contracts for the\n International Sale of Goods and the Uniform Computer Information\n Transaction Act (UCITA) are excluded from these Terms of Use. In no\n event shall any claim, action, or proceeding brought by either Party\n related in any way to the Site be commenced more than 2 years after the\n cause of action arose.\n </p>\n <h2>CORRECTIONS</h2>\n <p>\n There may be information on the Site that contains typographical errors,\n inaccuracies, or omissions that may relate to the Site, including\n descriptions, pricing, availability, and various other information. We\n reserve the right to correct any errors, inaccuracies, or omissions and\n to change or update the information on the Site at any time, without\n prior notice.\n </p>\n <h2>DISCLAIMER</h2>\n <p>\n THE SITE IS PROVIDED ON AN AS-IS AND AS-AVAILABLE BASIS. YOU AGREE THAT\n YOUR USE OF THE SITE AND OUR SERVICES WILL BE AT YOUR SOLE RISK. TO THE\n FULLEST EXTENT PERMITTED BY LAW, WE DISCLAIM ALL WARRANTIES, EXPRESS OR\n IMPLIED, IN CONNECTION WITH THE SITE AND YOUR USE THEREOF, INCLUDING,\n WITHOUT LIMITATION, THE IMPLIED WARRANTIES OF MERCHANTABILITY, FITNESS\n FOR A PARTICULAR PURPOSE, AND NON-INFRINGEMENT. WE MAKE NO WARRANTIES OR\n REPRESENTATIONS ABOUT THE ACCURACY OR COMPLETENESS OF THE SITE’S CONTENT\n OR THE CONTENT OF ANY WEBSITES LINKED TO THE SITE AND WE WILL ASSUME NO\n LIABILITY OR RESPONSIBILITY FOR ANY (1) ERRORS, MISTAKES, OR\n INACCURACIES OF CONTENT AND MATERIALS, (2) PERSONAL INJURY OR PROPERTY\n DAMAGE, OF ANY NATURE WHATSOEVER, RESULTING FROM YOUR ACCESS TO AND USE\n OF THE SITE, (3) ANY UNAUTHORIZED ACCESS TO OR USE OF OUR SECURE SERVERS\n AND/OR ANY AND ALL PERSONAL INFORMATION AND/OR FINANCIAL INFORMATION\n STORED THEREIN, (4) ANY INTERRUPTION OR CESSATION OF TRANSMISSION TO OR\n FROM THE SITE, (5) ANY BUGS, VIRUSES, TROJAN HORSES, OR THE LIKE WHICH\n MAY BE TRANSMITTED TO OR THROUGH THE SITE BY ANY THIRD PARTY, AND/OR (6)\n ANY ERRORS OR OMISSIONS IN ANY CONTENT AND MATERIALS OR FOR ANY LOSS OR\n DAMAGE OF ANY KIND INCURRED AS A RESULT OF THE USE OF ANY CONTENT\n POSTED, TRANSMITTED, OR OTHERWISE MADE AVAILABLE VIA THE SITE. WE DO NOT\n WARRANT, ENDORSE, GUARANTEE, OR ASSUME RESPONSIBILITY FOR ANY PRODUCT OR\n SERVICE ADVERTISED OR OFFERED BY A THIRD PARTY THROUGH THE SITE, ANY\n HYPERLINKED WEBSITE, OR ANY WEBSITE OR MOBILE APPLICATION FEATURED IN\n ANY BANNER OR OTHER ADVERTISING, AND WE WILL NOT BE A PARTY TO OR IN ANY\n WAY BE RESPONSIBLE FOR MONITORING ANY TRANSACTION BETWEEN YOU AND ANY\n THIRD-PARTY PROVIDERS OF PRODUCTS OR SERVICES.\n </p>\n <p>\n AS WITH THE PURCHASE OF A PRODUCT OR SERVICE THROUGH ANY MEDIUM OR IN\n ANY ENVIRONMENT, YOU SHOULD USE YOUR BEST JUDGMENT AND EXERCISE CAUTION\n WHERE APPROPRIATE.\n </p>\n <h2>LIMITATIONS OF LIABILITY</h2>\n <p>\n IN NO EVENT WILL WE OR OUR DIRECTORS, EMPLOYEES, OR AGENTS BE LIABLE TO\n YOU OR ANY THIRD PARTY FOR ANY DIRECT, INDIRECT, CONSEQUENTIAL,\n EXEMPLARY, INCIDENTAL, SPECIAL, OR PUNITIVE DAMAGES, INCLUDING LOST\n PROFIT, LOST REVENUE, LOSS OF DATA, OR OTHER DAMAGES ARISING FROM YOUR\n USE OF THE SITE, EVEN IF WE HAVE BEEN ADVISED OF THE POSSIBILITY OF SUCH\n DAMAGES.\n </p>\n <p>\n NOTWITHSTANDING ANYTHING TO THE CONTRARY CONTAINED HEREIN, OUR LIABILITY\n TO YOU FOR ANY CAUSE WHATSOEVER AND REGARDLESS OF THE FORM OF THE\n ACTION, WILL AT ALL TIMES BE LIMITED TO THE LESSER OF THE AMOUNT PAID,\n IF ANY, BY YOU TO US DURING THE 6 (SIX) MONTH PERIOD PRIOR TO ANY CAUSE\n OF ACTION ARISING OR $10.000 (TEN THOUSAND DOLLARS). CERTAIN STATE LAWS\n DO NOT ALLOW LIMITATIONS ON IMPLIED WARRANTIES OR THE EXCLUSION OR\n LIMITATION OF CERTAIN DAMAGES.\n </p>\n <p>\n IF THESE LAWS APPLY TO YOU, SOME OR ALL OF THE ABOVE DISCLAIMERS OR\n LIMITATIONS MAY NOT APPLY TO YOU, AND YOU MAY HAVE ADDITIONAL RIGHTS.\n </p>\n <h2>INDEMNIFICATION</h2>\n <p>\n You agree to defend, indemnify, and hold us harmless, including our\n subsidiaries, affiliates, and all of our respective officers, agents,\n partners, and employees, from and against any loss, damage, liability,\n claim, or demand, including reasonable attorneys’ fees and expenses,\n made by any third party due to or arising out of: (1) your\n Contributions; (2) use of the Site; (3) breach of these Terms of Use;\n (4) any breach of your representations and warranties set forth in these\n Terms of Use; (5) your violation of the rights of a third party,\n including but not limited to intellectual property rights; or (6) any\n overt harmful act toward any other user of the Site with whom you\n connected via the Site.\n </p>\n <p>\n Notwithstanding the foregoing, we reserve the right, at your expense, to\n assume the exclusive defense and control of any matter for which you are\n required to indemnify us, and you agree to cooperate, at your expense,\n with our defense of such claims. We will use reasonable efforts to\n notify you of any such claim, action, or proceeding which is subject to\n this indemnification upon becoming aware of it.\n </p>\n <h2>USER DATA</h2>\n <p>\n We will maintain certain data that you transmit to the Site for the\n purpose of managing the Site, as well as data relating to your use of\n the Site. Although we perform regular routine backups of data, you are\n solely responsible for all data that you transmit or that relates to any\n activity you have undertaken using the Site.\n </p>\n <p>\n You agree that we shall have no liability to you for any loss or\n corruption of any such data, and you hereby waive any right of action\n against us arising from any such loss or corruption of such data.\n </p>\n <h2>ELECTRONIC COMMUNICATIONS, TRANSACTIONS, AND SIGNATURES</h2>\n <p>\n Visiting the Site, sending us emails, and completing online forms\n constitute electronic communications. You consent to receive electronic\n communications, and you agree that all agreements, notices, disclosures,\n and other communications we provide to you electronically, via email and\n on the Site, satisfy any legal requirement that such communication be in\n writing.\n </p>\n <p>\n YOU HEREBY AGREE TO THE USE OF ELECTRONIC SIGNATURES, CONTRACTS, ORDERS,\n AND OTHER RECORDS, AND TO ELECTRONIC DELIVERY OF NOTICES, POLICIES, AND\n RECORDS OF TRANSACTIONS INITIATED OR COMPLETED BY US OR VIA THE SITE.\n </p>\n <p>\n You hereby waive any rights or requirements under any statutes,\n regulations, rules, ordinances, or other laws in any jurisdiction which\n require an original signature or delivery or retention of non-electronic\n records, or to payments or the granting of credits by any means other\n than electronic means.\n </p>\n\n <h2>MISCELLANEOUS</h2>\n <p>\n These Terms of Use and any policies or operating rules posted by us on\n the Site constitute the entire agreement and understanding between you\n and us. Our failure to exercise or enforce any right or provision of\n these Terms of Use shall not operate as a waiver of such right or\n provision.\n </p>\n <p>\n These Terms of Use operate to the fullest extent permissible by law. We\n may assign any or all of our rights and obligations to others at any\n time. We shall not be responsible or liable for any loss, damage, delay,\n or failure to act caused by any cause beyond our reasonable control.\n </p>\n <p>\n If any provision or part of a provision of these Terms of Use is\n determined to be unlawful, void, or unenforceable, that provision or\n part of the provision is deemed severable from these Terms of Use and\n does not affect the validity and enforceability of any remaining\n provisions.\n </p>\n <p>\n There is no joint venture, partnership, employment or agency\n relationship created between you and us as a result of these Terms of\n Use or use of the Site. You agree that these Terms of Use will not be\n construed against us by virtue of having drafted them.\n </p>\n <p>\n You hereby waive any and all defenses you may have based on the\n electronic form of these Terms of Use and the lack of signing by the\n parties hereto to execute these Terms of Use.\n </p>\n <h2>CONTACT US</h2>\n <p>\n In order to resolve a complaint regarding the Site or to receive further\n information regarding use of the Site, please contact us at:\n <br />{{ company_name }}, {{ company_street }}, {{ company_city_code }}\n {{ company_city }} - {{ company_state }}\n </p>\n <h3>Questions and Comments</h3>\n <p>\n If you have any questions about this Agreement, please\n <a href=\"mailto:{{ company_email }}\">let us know</a>.\n </p>\n </div>\n </div>\n </div>\n </div>\n </div>\n</div>\n<pw-landing-page-footer-b></pw-landing-page-footer-b>\n","import { CommonModule, NgIf } from '@angular/common';\nimport { NgModule } from '@angular/core';\nimport { FormsModule, ReactiveFormsModule } from '@angular/forms';\nimport { RouterModule } from '@angular/router';\n\nimport { AppLoaderModule } from '@posiwise/app-loader';\nimport { CoreTranslocoModule } from '@posiwise/core-transloco';\nimport { DirectivesModule } from '@posiwise/directives';\nimport { PipesModule } from '@posiwise/pipes';\nimport { FieldErrorDisplayModule } from '@posiwise/utils';\n\nimport { NgxDaterangepickerMd } from 'ngx-daterangepicker-material';\nimport { ImageCropperModule } from 'ngx-image-cropper';\nimport { UiSwitchModule } from 'ngx-ui-switch';\nimport { AutoCompleteModule } from 'primeng/autocomplete';\nimport { ButtonModule } from 'primeng/button';\nimport { DropdownModule } from 'primeng/dropdown';\nimport { MultiSelectModule } from 'primeng/multiselect';\nimport { ProgressSpinnerModule } from 'primeng/progressspinner';\nimport { TableModule } from 'primeng/table';\nimport { TabMenuModule } from 'primeng/tabmenu';\n\nimport { NgbModalModule, NgbNavModule, NgbTooltipModule } from '@ng-bootstrap/ng-bootstrap';\n\nimport { AuthenticatorComponent } from './authenticator/authenticator.component';\nimport { ClearBitIconComponent } from './clearbit-icon/clearbit-icon.component';\nimport { ComingSoonComponent } from './coming-soon/coming-soon.component';\nimport { HeaderComponent } from './header/header.component';\nimport { EntityGroupComponent } from './label-management/entity-group/entity-group.component';\nimport { GroupDefinitionComponent } from './label-management/group-definition/group-definition.component';\nimport { GroupsComponent } from './label-management/groups/groups.component';\nimport { LandingPageFooterBComponent } from './landing-page-footer-b/landing-page-footer-b.component';\nimport { NumberPickerComponent } from './number-picker/number-picker.component';\nimport { PasswordValidationComponent } from './password-validation/password-validation.component';\nimport { PermissionTreeComponent } from './permission-tree/permission-tree.component';\nimport { PrivacyAndTosComponent } from './privacy-and-tos/privacy-and-tos.component';\nimport { PrivacyPolicyComponent } from './privacy-policy/privacy-policy.component';\nimport { PwTabsComponent } from './pw-tabs/pw-tabs.component';\nimport { DateRangePickerComponent } from './range-date-picker/date-range-picker.component';\nimport { ResourceSharedComponentsModule } from './resource-shared-components.module';\nimport { SplashComponent } from './splash/splash.component';\nimport { TermsConditionsComponent } from './terms-conditions/terms-conditions.component';\n\n// All modules needed for both landing page and dashboard\nconst allModules = [\n NgbTooltipModule,\n NgbNavModule,\n NgbModalModule,\n TableModule,\n TabMenuModule,\n ButtonModule,\n DropdownModule,\n MultiSelectModule,\n ProgressSpinnerModule,\n AutoCompleteModule,\n ImageCropperModule,\n UiSwitchModule,\n NgxDaterangepickerMd.forRoot()\n];\n\n@NgModule({\n declarations: [\n PasswordValidationComponent,\n PwTabsComponent,\n DateRangePickerComponent,\n PermissionTreeComponent,\n PrivacyAndTosComponent,\n PrivacyPolicyComponent,\n TermsConditionsComponent,\n SplashComponent,\n AuthenticatorComponent,\n ClearBitIconComponent,\n ComingSoonComponent,\n\n EntityGroupComponent,\n GroupsComponent,\n GroupDefinitionComponent,\n NumberPickerComponent,\n HeaderComponent,\n LandingPageFooterBComponent\n ],\n imports: [\n FormsModule,\n AppLoaderModule,\n ReactiveFormsModule,\n DirectivesModule,\n CoreTranslocoModule,\n RouterModule,\n allModules,\n PipesModule,\n CommonModule,\n NgIf,\n FieldErrorDisplayModule,\n ResourceSharedComponentsModule\n ],\n exports: [\n PasswordValidationComponent,\n PwTabsComponent,\n DateRangePickerComponent,\n allModules,\n PermissionTreeComponent,\n PrivacyAndTosComponent,\n PrivacyPolicyComponent,\n TermsConditionsComponent,\n SplashComponent,\n AuthenticatorComponent,\n ClearBitIconComponent,\n ComingSoonComponent,\n EntityGroupComponent,\n GroupsComponent,\n GroupDefinitionComponent,\n NumberPickerComponent,\n HeaderComponent,\n LandingPageFooterBComponent,\n FieldErrorDisplayModule,\n ResourceSharedComponentsModule\n ]\n})\nexport class SharedComponentsModule {\n constructor() {\n console.log('🚀 SHARED COMPONENTS MODULE LOADED! - Shared UI components');\n }\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":["i1","i2","i3","i4","i8","i10","i11.NoDataComponent","i12","i5","i6","i7.NoDataComponent","i7","i8.NoDataComponent","i9","i6.HeaderComponent","i3.LandingPageFooterBComponent"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"posiwise-shared-components.mjs","sources":["../../../../libs/shared-components/src/lib/authenticator/authenticator.component.ts","../../../../libs/shared-components/src/lib/authenticator/authenticator.component.html","../../../../libs/shared-components/src/lib/clearbit-icon/clearbit-icon.component.ts","../../../../libs/shared-components/src/lib/clearbit-icon/clearbit-icon.component.html","../../../../libs/shared-components/src/lib/coming-soon/coming-soon.component.ts","../../../../libs/shared-components/src/lib/header/header.component.ts","../../../../libs/shared-components/src/lib/header/header.component.html","../../../../libs/shared-components/src/lib/no-data/no-data.component.ts","../../../../libs/shared-components/src/lib/label-management/entity-group/entity-group.component.ts","../../../../libs/shared-components/src/lib/label-management/entity-group/entity-group.component.html","../../../../libs/shared-components/src/lib/label-management/group-definition/group-definition.component.ts","../../../../libs/shared-components/src/lib/label-management/group-definition/group-definition.component.html","../../../../libs/shared-components/src/lib/label-management/groups/groups.component.ts","../../../../libs/shared-components/src/lib/label-management/groups/groups.component.html","../../../../libs/shared-components/src/lib/landing-page-footer-b/landing-page-footer-b.component.ts","../../../../libs/shared-components/src/lib/landing-page-footer-b/landing-page-footer-b.component.html","../../../../libs/shared-components/src/lib/number-picker/number-picker.component.ts","../../../../libs/shared-components/src/lib/number-picker/number-picker.component.html","../../../../libs/shared-components/src/lib/password-validation/password-validation.component.ts","../../../../libs/shared-components/src/lib/password-validation/password-validation.component.html","../../../../libs/shared-components/src/lib/permission-tree/permission-tree.component.ts","../../../../libs/shared-components/src/lib/privacy-and-tos/privacy-and-tos.component.ts","../../../../libs/shared-components/src/lib/privacy-and-tos/privacy-and-tos.component.html","../../../../libs/shared-components/src/lib/privacy-policy/privacy-policy.component.ts","../../../../libs/shared-components/src/lib/privacy-policy/privacy-policy.component.html","../../../../libs/shared-components/src/lib/pw-tabs/pw-tabs.component.ts","../../../../libs/shared-components/src/lib/pw-tabs/pw-tabs.component.html","../../../../libs/shared-components/src/lib/range-date-picker/date-range-picker.component.ts","../../../../libs/shared-components/src/lib/range-date-picker/date-range-picker.component.html","../../../../libs/shared-components/src/lib/input-container/input-container.component.ts","../../../../libs/shared-components/src/lib/input-container/input-container.component.html","../../../../libs/shared-components/src/lib/resource-shared-components.module.ts","../../../../libs/shared-components/src/lib/splash/splash.component.ts","../../../../libs/shared-components/src/lib/splash/splash.component.html","../../../../libs/shared-components/src/lib/terms-conditions/terms-conditions.component.ts","../../../../libs/shared-components/src/lib/terms-conditions/terms-conditions.component.html","../../../../libs/shared-components/src/lib/shared-components.module.ts","../../../../libs/shared-components/src/posiwise-shared-components.ts"],"sourcesContent":["import { Component, Injector, OnInit } from '@angular/core';\n\nimport { AppBaseComponent } from '@posiwise/app-base-component';\nimport { AuthService } from '@posiwise/common-services';\n\n@Component({\n selector: 'pw-authenticator',\n templateUrl: './authenticator.component.html',\n\n standalone: false\n})\nexport class AuthenticatorComponent extends AppBaseComponent implements OnInit {\n token = '';\n\n constructor(\n private readonly authService: AuthService,\n injector: Injector\n ) {\n super(injector);\n }\n\n ngOnInit() {\n this.route.queryParams.subscribe(params => {\n if (!params['token']) {\n window.location.href = '/login';\n } else {\n this.authService.storePlatform('app').subscribe(() => {\n this.authService.setHeaderKey();\n this.authService.storeToken(params['token']).subscribe({\n next: () => {\n this.router.navigate(['home']);\n },\n error: () => {\n window.location.href = '/login';\n }\n });\n });\n }\n });\n }\n}\n","<!--Auth Page Starts-->\n<section>\n <div class=\"container-fluid\">\n <div class=\"row full-height-vh\">\n <div class=\"col-12 d-flex align-items-center justify-content-center\">\n <h2>Logging...</h2>\n </div>\n </div>\n </div>\n</section>\n<!--Auth Page Ends-->\n","import { Component, Input, OnChanges, SimpleChanges } from '@angular/core';\n\nimport { HelperService } from '@posiwise/helper-service';\n\n@Component({\n selector: 'pw-clearbit-icon',\n templateUrl: './clearbit-icon.component.html',\n styleUrls: ['./clearbit-icon.component.scss'],\n\n standalone: false\n})\nexport class ClearBitIconComponent implements OnChanges {\n @Input() src = null;\n @Input() altText = 'Logo';\n @Input() dummyPath = 'assets/img/icons/company.png';\n\n clearBitSrc = null;\n\n ngOnChanges(simple: SimpleChanges) {\n if (\n simple['src']?.currentValue &&\n simple['src']?.currentValue !== simple['src']?.previousValue\n ) {\n this.clearBitSrc = HelperService.getLogoByUrl(this.src);\n } else {\n this.clearBitSrc = this.dummyPath;\n }\n }\n}\n","<img [src]=\"clearBitSrc\"\n [alt]=\"altText\"\n class=\"img-fluid company-logo me-2 mt-1\" />\n","import { Component, Input } from '@angular/core';\n\n@Component({\n selector: 'pw-coming-soon',\n template: `\n <div class=\"coming-soon\">\n <h2 class=\"card-title\">{{ message }}</h2>\n <p>... this section is under construction.</p>\n </div>\n `,\n standalone: false\n})\nexport class ComingSoonComponent {\n @Input()\n message = 'Coming soon';\n}\n","import { Component, Injector, Input } from '@angular/core';\n\nimport { AppBaseComponent } from '@posiwise/app-base-component';\nimport { AuthService } from '@posiwise/common-services';\n\n@Component({\n selector: 'pw-header',\n templateUrl: './header.component.html',\n styleUrls: ['./header.component.scss'],\n\n standalone: false\n})\nexport class HeaderComponent extends AppBaseComponent {\n loggedIn: boolean;\n isMenuCollapsed = true;\n\n constructor(\n injector: Injector,\n private readonly authService: AuthService\n ) {\n super(injector);\n this.authService\n .getToken$()\n .pipe()\n .subscribe(res => {\n this.loggedIn = !!res;\n });\n }\n\n @Input() landing = false;\n\n navigateToLogin() {\n window.location.href = '/login';\n }\n\n toggleMenu() {\n this.isMenuCollapsed = !this.isMenuCollapsed;\n }\n\n logo = this.appConfig?.company?.logos?.main_contrast?.url;\n}\n","<div class=\"navbar navbar-expand-lg fixed-top-nav fixed-top\"\n [ngClass]=\"{ 'navbar-blue': !landing }\">\n <div class=\"container d-block\">\n <div class=\"row m-0\">\n <div class=\"col-lg-2 float-start\">\n <a href=\"/\">\n <img [src]=\"logo\"\n class=\"header-logo\"\n alt=\"site-logo\" />\n </a>\n <button type=\"button\"\n class=\"navbar-toggle\"\n (click)=\"toggleMenu()\"\n [attr.aria-expanded]=\"!isMenuCollapsed\">\n <span class=\"icon-bar\"></span> <span class=\"icon-bar\"></span>\n <span class=\"icon-bar\"></span>\n </button>\n </div>\n <div class=\"col-lg-10 nav-outer mt-2\">\n <div class=\"navbar-collapse float-end\"\n [class.collapse]=\"isMenuCollapsed\"\n [class.show]=\"!isMenuCollapsed\"\n id=\"myNavbar\">\n <nav class=\"navbar navbar-expand-sm bg-light\">\n <ul class=\"navbar-nav\">\n <li class=\"nav-item contact-button\">\n <a href=\"/\"\n class=\"\">{{ 'Button.Home' | transloco }}</a>\n </li>\n <li *ngIf=\"!loggedIn\" class=\"nav-item login-button\">\n <a class=\"\"\n (click)=\"navigateToLogin()\"> log in</a>\n </li>\n </ul>\n </nav>\n </div>\n </div>\n </div>\n </div>\n</div>\n","import { AfterContentInit, Component, ContentChild, Input } from '@angular/core';\n\n@Component({\n selector: 'pw-no-data',\n template: `\n <div class=\"no-data\" [ngClass]=\"{ 'has-content': !this.isContentEmpty }\">\n <img\n *ngIf=\"withImage\"\n src=\"/assets/img/icons/nothing_found.webp\"\n class=\"nothing-found-image\"\n alt=\"No data found\"\n loading=\"lazy\"\n fetchpriority=\"low\"\n />\n <span\n class=\"h5 message\"\n [ngClass]=\"{\n 'mt-2': description || !this.isContentEmpty,\n 'my-3': !description && this.isContentEmpty\n }\"\n >\n {{ message || 'Nothing found' }}\n </span>\n <span *ngIf=\"description\" class=\"pb-4\">{{ description }}</span>\n <ng-content></ng-content>\n </div>\n `,\n styleUrls: ['./no-data.component.scss'],\n standalone: false\n})\nexport class NoDataComponent implements AfterContentInit {\n @ContentChild('content', { static: false }) content: { nativeElement: { innerHTML: string } };\n @Input() message: string | null = null;\n @Input() description: string | null = null;\n @Input() withImage = false;\n\n isContentEmpty = false;\n\n ngAfterContentInit() {\n this.isContentEmpty = !this.content?.nativeElement.innerHTML.trim();\n }\n}\n","import { Component, Injector, OnDestroy, OnInit, TemplateRef, ViewChild } from '@angular/core';\n\nimport { AppBaseComponent } from '@posiwise/app-base-component';\nimport { GroupService, PermissionService, SubscriptionService } from '@posiwise/common-services';\nimport { Subscription, TAG_ENTITY, User } from '@posiwise/common-utilities';\nimport { HelperService } from '@posiwise/helper-service';\n\nimport { NgbModal } from '@ng-bootstrap/ng-bootstrap';\n\nimport { EnrolledUser, SharedModalContext } from '../../shared/shared-component.interface';\n\n@Component({\n selector: 'pw-entity-group',\n templateUrl: './entity-group.component.html',\n styleUrls: ['./entity-group.component.scss'],\n\n standalone: false\n})\nexport class EntityGroupComponent extends AppBaseComponent implements OnInit, OnDestroy {\n @ViewChild('content', { static: true }) content: TemplateRef<SharedModalContext>;\n\n subscription: Subscription;\n subscriptionId: number;\n\n user: User;\n userId: number;\n\n entityId: number;\n selectedGroup: { name: string };\n\n subscriptionMembers = []; // Holds all the members\n subscribedMembers = []; // Holds all the members\n filteredMembers = []; // Populates in the autocomplete\n selectedMembers = []; // Selected in the autocomplete\n\n enrolledUsers: EnrolledUser[];\n\n admins = [];\n subscriptionInfo = [];\n subscriptionOwner: number;\n\n chatPermission: string;\n\n isLoaded = false;\n\n hasAccess: boolean;\n\n constructor(\n private readonly groupService: GroupService,\n private readonly subscriptionService: SubscriptionService,\n private readonly modalService: NgbModal,\n injector: Injector\n ) {\n super(injector);\n }\n\n ngOnInit() {\n this.getUserSubscription().subscribe(response => {\n this.subscription = response;\n if (this.subscription?.id) {\n this.getSubscribedUsers();\n }\n });\n this.route.params.subscribe(params => {\n this.entityId = Number(params['groupId']);\n this.getEntity();\n });\n this.userStore().subscribe(user => {\n this.user = user;\n if (this.user) {\n this.userId = this.user.id;\n }\n });\n this.chatPermission = `${PermissionService.selectedProduct?.permission}.${PermissionService.selectedProduct?.feature_key}`;\n }\n\n search(event) {\n let data = [];\n if (event.query) {\n data = this.subscriptionMembers.filter((x: { displayName: string }) => {\n return x.displayName.toLowerCase().includes(event.query.toLowerCase());\n });\n } else {\n this.subscriptionMembers.forEach(element => {\n data.push(element);\n });\n }\n this.filteredMembers = data;\n }\n\n open() {\n this.groupService.getSubscriptionMembers(this.subscription?.id).subscribe(response => {\n response.members.forEach(member => {\n member.displayName = `${member.first_name ?? ''} ${member.last_name ?? ''} ${\n member.email\n }`.trim();\n });\n this.subscriptionMembers = response.members;\n });\n\n this.modalService.open(this.content, { centered: true, windowClass: 'modal-holder' });\n }\n\n closeModal(modal) {\n modal.close();\n this.filteredMembers = [];\n }\n\n getEntity() {\n this.groupService.getEntityGroup(this.entityId).subscribe(response => {\n response.members.forEach(member => {\n member.displayName = `${member.first_name ?? ''} ${member.last_name ?? ''} ${\n member.email\n }`.trim();\n });\n this.isLoaded = true;\n this.subscribedMembers = response.members;\n this.selectedGroup = response;\n });\n }\n\n onSave() {\n const data = {\n entity_groups: [\n {\n related_entity_id: this.selectedMembers.map(x => x.id),\n related_entity_type: TAG_ENTITY.USER\n }\n ]\n };\n\n this.groupService.addEntityGroup(this.entityId, data).subscribe(() => {\n this.modalService.dismissAll();\n this.toast.success(this.translation.translate('Admin.Shared.Entity.AddedMessage'));\n\n this.getEntity();\n });\n }\n\n private getSubscribedUsers() {\n this.subscriptionService\n .getEnrolledSubscription(this.subscription?.id)\n .subscribe(response => {\n this.subscriptionOwner = response.owner_id;\n this.admins = response.admins;\n this.enrolledUsers = response.members;\n this.enrolledUsers.forEach(element => {\n element.is_owner = element?.id === this.user?.id;\n });\n this.hasAccess =\n this.admins.includes(this.user?.id) ||\n this.user?.id === this.subscriptionOwner ||\n this.permissionService.isSuperAdmin();\n });\n }\n\n onDelete(memberId) {\n HelperService.raiseDeletePopup()\n .then(resp => {\n if (resp.value) {\n const data = JSON.stringify([memberId]);\n this.groupService\n .deleteEntityGroup(this.entityId, data, 'User')\n .subscribe(() => {\n this.toast.success(\n this.translation.translate('Admin.Shared.Entity.DeletedMessage')\n );\n this.getEntity();\n });\n }\n })\n .catch(error => this.toast.showToast(error));\n }\n\n navigateToCommunications() {\n this.router.navigate([`/${this.subscription?.slug}/enterprise/communications`], {\n queryParams: { entity_id: this.entityId }\n });\n }\n\n override ngOnDestroy() {\n super.ngOnDestroy();\n }\n}\n","<div>\n <div class=\"row\">\n <div class=\"col-12 mb-3\">\n <h2>Team View</h2>\n\n <p>\n In this section, based on your permissions, you can add/remove members from your\n teams.\n <br />\n Then, you'll be able to see powerful insight on the activities performed by your\n team's members.\n </p>\n </div>\n </div>\n\n <div class=\"row\">\n <div class=\"col-md-6 col-xs-12 d-flex align-items-sm-center align-items-top text-start pe-0\">\n <a aria-label=\"Navigate to Target\"\n (click)=\"back()\"\n class=\"previous\"><i class=\"fa fa-arrow-alt-circle-left\" aria-hidden=\"true\"></i></a>\n <h3 class=\"ms-sm-2 d-inline mt-0 card-title mb-3 mb-sm-0\">\n Team view: {{ selectedGroup?.name }}\n </h3>\n </div>\n <div class=\"col-md-6 col-xs-12 text-end justify-content-end\">\n <button *ngIf=\"hasAccess\"\n class=\"btn btn-sm btn-outline-primary\"\n (click)=\"open()\">\n <i class=\"fa fa-plus-circle\" aria-hidden=\"true\"></i> Add Members\n </button>\n <button *ngIf=\"hasAccess\"\n class=\"btn btn-sm btn-outline-primary ms-2\"\n (click)=\"navigateToCommunications()\">\n <i class=\"fa fa-plus-circle\" aria-hidden=\"true\"></i> See Communications\n </button>\n </div>\n </div>\n\n <div class=\"w-100 text-center mt-3\"\n *ngIf=\"!isLoaded\">\n <p-progressSpinner strokeWidth=\"2\"> </p-progressSpinner>\n </div>\n\n <div class=\"primeng-datatable-container table-responsive\"\n [class.hideTable]=\"subscribedMembers?.length === 0\">\n <p-table #dt\n [value]=\"subscribedMembers\"\n [paginator]=\"true\"\n [rows]=\"PAGE_SIZE\">\n <ng-template pTemplate=\"header\">\n <tr>\n <th scope=\"true\">{{ 'Label.FirstName' | transloco }}</th>\n <th scope=\"true\">{{ 'Label.LastName' | transloco }}</th>\n <th scope=\"true\">{{ 'Label.Email' | transloco }}</th>\n <th scope=\"true\">{{ 'Label.Actions' | transloco }}</th>\n </tr>\n </ng-template>\n <ng-template pTemplate=\"body\"\n let-member>\n <tr class=\"table-row\">\n <td data-head=\"First Name\">\n <a [routerLink]=\"['/members', member.slug]\">{{ member.first_name || null }}\n </a>\n </td>\n <td data-head=\"Last Name\">{{ member.last_name || null }}</td>\n <td data-head=\"Email\">{{ member.email }}</td>\n <td data-head=\"Action\">\n <ul class=\"list-unstyled list-inline list-action\">\n <li ngbTooltip=\"Message\"\n class=\"me-2 me-sm-3\"\n *ngIf=\"member.id !== userId\"\n [routerLink]=\"['/message']\"\n [fragment]=\"member.slug\">\n <i\n class=\"fa fa-comments cta1-icon\"\n *rbacAllow=\"chatPermission\"\n aria-hidden=\"true\"\n ></i>\n </li>\n <li ngbTooltip=\"Remove\"\n class=\"me-2 me-sm-3\"\n (click)=\"onDelete(member.id)\"\n (keydown.enter)=\"onDelete(member.id)\"\n (keydown.space)=\"onDelete(member.id)\"\n *ngIf=\"hasAccess\">\n <i class=\"fa fa-trash delete-icon\" aria-hidden=\"true\"></i>\n </li>\n </ul>\n </td>\n </tr>\n </ng-template>\n </p-table>\n </div>\n <pw-no-data [withImage]=\"true\" message=\"There are no members in this team yet.\"\n *ngIf=\"subscribedMembers?.length === 0 && isLoaded\">\n </pw-no-data>\n</div>\n\n<ng-template #content\n let-modal>\n <div class=\"modal-header\">\n <h4 class=\"modal-title\"\n id=\"modal-basic-title\">Add Members</h4>\n <button type=\"button\"\n class=\"btn-close float-end\"\n aria-label=\"Close\"\n (click)=\"modal.dismiss()\">\n\n </button>\n </div>\n <div class=\"modal-body\">\n <p>Please start typing to select the members to add to this team.</p>\n <div class=\"ui-fluid skills-modal\">\n <p-autoComplete [suggestions]=\"filteredMembers\"\n [(ngModel)]=\"selectedMembers\"\n dataKey=\"id\"\n field=\"displayName\"\n (completeMethod)=\"search($event)\"\n styleClass=\"w-100\"\n placeholder=\"Member\"\n [multiple]=\"true\">\n </p-autoComplete>\n </div>\n </div>\n <div class=\"modal-footer\">\n <button type=\"button\"\n class=\"btn btn-outline-default\"\n (click)=\"closeModal(modal)\">\n {{ 'Button.Cancel' | transloco }}\n </button>\n <button type=\"button\"\n class=\"btn btn-primary\"\n (click)=\"onSave()\">\n {{ 'Button.Save' | transloco }}\n </button>\n </div>\n</ng-template>\n","import { Component, Injector, OnDestroy, OnInit } from '@angular/core';\nimport {\n UntypedFormBuilder,\n UntypedFormControl,\n UntypedFormGroup,\n Validators\n} from '@angular/forms';\n\nimport { AppBaseComponent } from '@posiwise/app-base-component';\nimport { DataService, GroupService, SubscriptionService } from '@posiwise/common-services';\nimport { TAG_ENTITY, User } from '@posiwise/common-utilities';\nimport { ValidateForm } from '@posiwise/utils';\n\nimport swal from 'sweetalert2';\n\nimport { EnrolledUser, GroupDefinition } from '../../shared/shared-component.interface';\n\n@Component({\n selector: 'pw-group-definition',\n templateUrl: './group-definition.component.html',\n styleUrls: ['./group-definition.component.scss'],\n\n standalone: false\n})\nexport class GroupDefinitionComponent extends AppBaseComponent implements OnInit, OnDestroy {\n subscriptions = [];\n\n message: number;\n\n groupDefinition: object[];\n\n form: UntypedFormGroup;\n\n id: number;\n\n viewDefinition: boolean;\n\n viewEdit: boolean;\n\n private groupDefId: number;\n\n private groupDefinitionDetails: GroupDefinition;\n\n hasAccess: boolean;\n\n admins = [];\n\n subscriptionInfo = [];\n\n subscriptionOwner: number;\n\n enrolledUsers: EnrolledUser[];\n\n user: User;\n\n isLoaded = false;\n categoryBusyButton = false;\n\n constructor(\n private readonly groupService: GroupService,\n private readonly fb: UntypedFormBuilder,\n private readonly subscriptionService: SubscriptionService,\n private readonly data: DataService,\n injector: Injector\n ) {\n super(injector);\n this.form = this.fb.group({\n name: new UntypedFormControl('', [Validators.required]),\n description: new UntypedFormControl(''),\n is_private: [true]\n });\n }\n\n ngOnInit() {\n this.getUserSubscriptionId().subscribe(id => {\n this.id = id;\n });\n this.getAllGroupDefinition();\n this.getSubscribedUsers();\n this.userStore().subscribe(user => {\n this.user = user;\n });\n this.data.currentMessage.subscribe(message => {\n this.message = message;\n });\n }\n\n private getAllGroupDefinition() {\n this.groupService\n .groupDefinitionGetAll(this.id, 'Subscription')\n .subscribe(response => {\n if (response.group_definitions.length > 0) {\n this.groupDefinition = response.group_definitions;\n } else {\n this.groupDefinition = [];\n }\n })\n .add(() => {\n this.isLoaded = true;\n });\n }\n\n private getSubscribedUsers() {\n this.subscriptionService.getEnrolledSubscription(this.id).subscribe(response => {\n this.subscriptionOwner = response.owner_id;\n this.admins = response.admins;\n this.enrolledUsers = response.members;\n this.enrolledUsers.forEach(element => {\n element.is_owner = element?.id === this.user?.id;\n });\n this.hasAccess =\n this.admins.includes(this.user?.id) ||\n this.user?.id === this.subscriptionOwner ||\n this.permissionService.isSuperAdmin();\n });\n }\n\n updateDetails() {\n this.categoryBusyButton = true;\n const formValue = this.form.value;\n const data = {\n name: formValue.name,\n description: formValue.description,\n is_private: formValue.is_private\n };\n this.groupService\n .groupDefinitionsUpdate(this.groupDefId, data)\n .subscribe(() => {\n this.toast.success(\n this.translation.translate('Admin.Shared.Definition.UpdatedMessage')\n );\n\n this.form.reset();\n this.viewDefinition = false;\n this.getAllGroupDefinition();\n })\n .add(() => {\n this.categoryBusyButton = false;\n });\n }\n\n onGroupDefinitionEdit(id: number) {\n this.viewEdit = true;\n this.viewDefinition = true;\n this.groupDefId = id;\n this.getSubscriptionDetails();\n }\n\n getSubscriptionDetails() {\n this.groupService.getGroupDefinitionById(this.groupDefId).subscribe(response => {\n this.groupDefinitionDetails = response;\n this.form.patchValue({\n description: this.groupDefinitionDetails.description,\n name: this.groupDefinitionDetails.name\n });\n });\n }\n\n @ValidateForm('form')\n saveGroupDefinition() {\n this.categoryBusyButton = true;\n const data = {\n name: this.form.value.name,\n description: this.form.value.description,\n related_entity_id: this.id,\n related_entity_type: TAG_ENTITY.SUBSCRIPTION,\n is_private: this.form.value.is_private\n };\n this.groupService\n .groupDefinitions(data)\n .subscribe(() => {\n this.toast.success(\n this.translation.translate('Admin.Shared.Definition.AddedMessage')\n );\n this.form.reset();\n this.getAllGroupDefinition();\n this.viewDefinition = false;\n })\n .add(() => {\n this.categoryBusyButton = false;\n });\n }\n\n onDelete(id: number) {\n swal.fire({\n title: 'Delete',\n text: 'Are you sure you want to delete this label?',\n showCancelButton: true,\n reverseButtons: true,\n icon: 'warning'\n }).then(rep => {\n if (rep.value) {\n this.groupService.groupDefinitionsDelete(id).subscribe(_ => {\n this.toast.success(\n this.translation.translate('Admin.Shared.Definition.DeletedMessage')\n );\n this.getAllGroupDefinition();\n });\n }\n });\n }\n\n viewDefinitions() {\n this.viewDefinition = true;\n this.viewEdit = false;\n }\n\n previous() {\n this.location.back();\n this.data.changeMessage(1);\n }\n\n onCancel() {\n this.form.reset();\n this.viewDefinition = !this.viewDefinition;\n }\n\n override ngOnDestroy() {\n super.ngOnDestroy();\n }\n}\n","<section>\n <div class=\"row\">\n <div class=\"col-12 mb-3\">\n <h2>Enterprise Teams Categories</h2>\n\n <p>\n Here you can define the categories for your enterprise's groups. For example \"Sales\n Department\", \"Development Department\", etc.\n <br />\n Once the category created, you'll be able to add teams to them and see useful\n insight based on the members activity in the corresponding team.\n </p>\n </div>\n </div>\n\n <div class=\"row\"\n *ngIf=\"!viewDefinition\">\n <div class=\"col-6 d-flex align-items-center text-start mb-sm-3 mb-lg-0\">\n <a aria-label=\"Navigate to Target\"\n (click)=\"previous()\"\n class=\"previous\"><i class=\"fa fa-arrow-alt-circle-left\" aria-hidden=\"true\"></i></a>\n </div>\n <div class=\"col-6\"\n *ngIf=\"hasAccess\">\n <button class=\"float-end btn btn-sm btn-outline-primary me-2\"\n (click)=\"viewDefinitions()\">\n <i class=\"fa fa-plus-circle\" aria-hidden=\"true\"></i> Create Team Category\n </button>\n </div>\n </div>\n\n <div *ngIf=\"viewDefinition\">\n <h4 class=\"card-title d-inline mb-5\">\n {{ viewEdit ? 'Update the' : 'Create a new' }} category\n </h4>\n\n <div class=\"mt-4\"\n *ngIf=\"!viewEdit\">\n <form [formGroup]=\"form\"\n (ngSubmit)=\"saveGroupDefinition()\">\n <div class=\"row\">\n <div class=\"mb-3 col-xs-12 col-sm-6 col-md-3\">\n <label for=\"name\">{{ 'Label.Name' | transloco }}</label>\n <input type=\"text\"\n class=\"form-control\"\n formControlName=\"name\" />\n </div>\n <div class=\"mb-3 col-xs-12 col-sm-6 col-md-3\">\n <label for=\"description\">{{ 'Enterprise.Teams.Description' | transloco }}</label>\n <input type=\"text\"\n class=\"form-control\"\n formControlName=\"description\" />\n </div>\n <div class=\"mb-3 col-xs-12 col-sm-6 col-md-3\">\n <label for=\"is_private\">{{ 'Enterprise.Teams.IsPrivate' | transloco }}</label>\n <div class=\"display-block\">\n <ui-switch size=\"small\"\n checkedLabel=\"True\"\n uncheckedLabel=\"false\"\n formControlName=\"is_private\">\n </ui-switch>\n </div>\n </div>\n </div>\n <div class=\"row text-end mt-4\">\n <div class=\"col-12\">\n <button type=\"button\"\n class=\"btn btn-outline-default me-2\"\n (click)=\"onCancel()\"\n (keydown.enter)=\"onCancel()\" >\n {{ 'Button.Cancel' | transloco }}\n </button>\n <button type=\"submit\"\n [buttonBusy]=\"categoryBusyButton\"\n class=\"btn btn-primary\">Add Category</button>\n </div>\n </div>\n </form>\n </div>\n\n <div class=\"mt-4\"\n *ngIf=\"viewEdit\">\n <form [formGroup]=\"form\"\n (ngSubmit)=\"updateDetails()\">\n <div class=\"row\">\n <div class=\"mb-3 col-xs-12 col-sm-6 col-md-3\">\n <label for=\"name\">{{ 'Label.Name' | transloco }}: </label>\n <input type=\"text\"\n class=\"form-control\"\n formControlName=\"name\" />\n </div>\n <div class=\"mb-3 col-xs-12 col-sm-6 col-md-3\">\n <label for=\"description\">{{ 'Enterprise.Teams.Description' | transloco }}:</label>\n <input type=\"text\"\n class=\"form-control\"\n formControlName=\"description\" />\n </div>\n <div class=\"mb-3 col-xs-12 col-sm-6 col-md-3\">\n <label for=\"is_private\">{{ 'Enterprise.Teams.IsPrivate' | transloco }}</label>\n <div class=\"display-block\">\n <ui-switch size=\"small\"\n checkedLabel=\"True\"\n uncheckedLabel=\"false\"\n formControlName=\"is_private\">\n </ui-switch>\n </div>\n </div>\n </div>\n <div class=\"row text-end mt-4\">\n <div class=\"col-12\">\n <button type=\"button\"\n class=\"btn btn-outline-default me-2\"\n (click)=\"onCancel()\"\n (keydown.enter)=\"onCancel()\" >\n {{ 'Button.Cancel' | transloco }}\n </button>\n <button type=\"submit\"\n [buttonBusy]=\"categoryBusyButton\"\n class=\"btn btn-primary\">\n {{ 'Button.Update' | transloco }}\n </button>\n </div>\n </div>\n </form>\n </div>\n </div>\n\n <div class=\"w-100 text-center mt-3\"\n *ngIf=\"!isLoaded\">\n <p-progressSpinner strokeWidth=\"2\"> </p-progressSpinner>\n </div>\n\n <ng-container *ngIf=\"groupDefinition?.length !== 0\">\n <div class=\"row mb-last-3 group-definitions-wrapper\"\n *ngIf=\"!viewDefinition\">\n <div class=\"col-12 col-md-6 col-xl-4 mt-3\"\n *ngFor=\"let group of groupDefinition\">\n <div class=\"card\">\n <div class=\"card-content\">\n <div class=\"card-header\">\n <h5 class=\"mb-3\">{{ group.name }}</h5>\n <p>{{ group.description | slice: 0:200 }}</p>\n </div>\n <div class=\"card-footer\">\n <div class=\"float-end px-2\">\n <a class=\"btn btn-sm btn-outline-danger me-2\"\n *ngIf=\"hasAccess\"\n (click)=\"onDelete(group.id)\">{{ 'Button.Delete' | transloco }}</a>\n <a class=\"btn btn-sm btn-outline-primary me-2\"\n *ngIf=\"hasAccess\"\n (click)=\"onGroupDefinitionEdit(group.id)\">{{ 'Button.Edit' | transloco }}</a>\n </div>\n </div>\n </div>\n </div>\n </div>\n </div>\n </ng-container>\n <div *ngIf=\"groupDefinition?.length === 0 && hasAccess && !viewDefinition && isLoaded\">\n <pw-no-data [withImage]=\"true\" [message]=\"'Enterprise.Teams.NoLabelsMessage' | transloco\"> </pw-no-data>\n </div>\n <div *ngIf=\"groupDefinition?.length === 0 && !hasAccess && isLoaded\">\n <pw-no-data [withImage]=\"true\" [message]=\"'Enterprise.Teams.NoLabelsUserMessage' | transloco\"> </pw-no-data>\n </div>\n</section>\n","import { Component, Injector, OnDestroy, OnInit } from '@angular/core';\nimport {\n UntypedFormBuilder,\n UntypedFormControl,\n UntypedFormGroup,\n Validators\n} from '@angular/forms';\n\nimport { AppBaseComponent } from '@posiwise/app-base-component';\nimport { DataService, GroupService, SubscriptionService } from '@posiwise/common-services';\nimport { Subscription, User } from '@posiwise/common-utilities';\nimport { ValidateForm } from '@posiwise/utils';\n\nimport swal from 'sweetalert2';\n\nimport { Group } from '../../shared/shared-component.interface';\n\n@Component({\n selector: 'pw-groups',\n templateUrl: './groups.component.html',\n styleUrls: ['./groups.component.scss'],\n\n standalone: false\n})\nexport class GroupsComponent extends AppBaseComponent implements OnInit, OnDestroy {\n private groupsData: Group[] = [];\n\n subscription: Subscription;\n\n message: number;\n id: number;\n group_id: number;\n\n form: UntypedFormGroup;\n\n description: string;\n name: string;\n\n allGroups: Group[] = [];\n groupDefinition: {\n name: string;\n groups: IterableIterator<object>;\n }[] = [];\n\n domainGroupDefinition = [];\n\n admins = [];\n subscriptionInfo = [];\n subscriptionOwner: number;\n enrolledUsers: { is_owner: boolean; id: number }[];\n\n user: User;\n\n submitted = false;\n viewEdit = false;\n buttonBusy = false;\n isGroupOperations = false;\n isGroupEdit = false;\n hasAccess = false;\n isLoaded = false;\n\n constructor(\n private readonly fb: UntypedFormBuilder,\n private readonly groupService: GroupService,\n private readonly subscriptionService: SubscriptionService,\n private readonly dataService: DataService,\n injector: Injector\n ) {\n super(injector);\n this.getUserSubscription().subscribe(response => {\n this.subscription = response;\n if (this.subscription?.id) {\n this.id = this.subscription?.id;\n }\n });\n\n this.form = this.fb.group({\n name: new UntypedFormControl('', [Validators.required]),\n description: new UntypedFormControl(''),\n group_definition_id: new UntypedFormControl('', [Validators.required])\n });\n }\n\n ngOnInit() {\n this.dataService.currentMessage.subscribe(message => {\n this.message = message;\n });\n this.userStore().subscribe(user => {\n if (user) {\n this.user = user;\n this.getSubscribedUsers();\n }\n });\n this.getAllGroupDefinition();\n }\n\n /** Function to save group */\n @ValidateForm('form')\n saveGroup() {\n this.buttonBusy = true;\n this.submitted = true;\n const formValue = this.form.value;\n const data = {\n name: formValue.name,\n description: formValue.description,\n group_definition_id: formValue.group_definition_id\n };\n this.groupService\n .postGroup(data)\n .subscribe(() => {\n this.toast.success('Saved Successfully', '', {\n extendedTimeOut: 1000000\n });\n this.form.reset();\n this.getAllGroupDefinition();\n this.isGroupOperations = false;\n })\n .add(() => {\n this.submitted = false;\n this.buttonBusy = false;\n });\n }\n\n private getAllGroupDefinition() {\n this.isLoaded = false;\n this.allGroups = [];\n this.groupService.groupDefinitionGetAll(this.id, 'Subscription').subscribe(response => {\n this.isLoaded = true;\n if (response.group_definitions.length > 0) {\n this.groupDefinition = response.group_definitions;\n this.domainGroupDefinition = [\n { id: '0', name: 'All Team Categories', groups: [] },\n ...response.group_definitions\n ];\n this.groupDefinition.forEach(data => {\n const groups = [...data.groups];\n groups.forEach(group => {\n this.allGroups.push({ ...group, group_definition_name: data?.name });\n this.groupsData = this.allGroups;\n });\n });\n } else {\n this.groupDefinition = [];\n }\n });\n }\n\n private getSubscribedUsers() {\n this.getUserSubscription().subscribe(sub => {\n this.subscription = sub;\n if (this.subscription?.id) {\n this.subscriptionService.getEnrolledSubscription(sub?.id).subscribe(response => {\n this.subscriptionOwner = response.owner_id;\n this.admins = response.admins;\n this.enrolledUsers = response.members;\n this.enrolledUsers.forEach(element => {\n element.is_owner = element?.id === this.user?.id;\n });\n this.hasAccess =\n this.admins.includes(this.user?.id) ||\n this.user?.id === this.subscriptionOwner ||\n this.permissionService.isSuperAdmin();\n });\n }\n });\n }\n\n groupOperation() {\n this.form.reset();\n this.viewEdit = false;\n this.isGroupOperations = true;\n this.isGroupEdit = false;\n }\n\n cancelUpdate() {\n this.isGroupOperations = false;\n this.form.reset();\n }\n\n editGroup(group_id: number) {\n this.form.reset();\n this.viewEdit = true;\n this.isGroupOperations = true;\n this.isGroupEdit = true;\n this.group_id = group_id;\n this.getGroupDetails(group_id);\n }\n\n private getGroupDetails(id: number) {\n this.groupService.getGroup(id).subscribe(response => {\n this.form.patchValue({\n name: response.name,\n description: response.description,\n group_definition_id: response.group_definition_id\n });\n });\n }\n\n updateDetails() {\n this.buttonBusy = true;\n const formValue = this.form.value;\n const data = {\n name: formValue.name,\n description: formValue.description,\n group_definition_id: formValue.group_definition_id\n };\n this.groupService\n .updateGroup(this.group_id, data)\n .subscribe(() => {\n this.toast.success(\n this.translation.translate('Admin.Shared.Groups.UpdatedMessage')\n );\n this.form.reset();\n this.getAllGroupDefinition();\n this.isGroupOperations = false;\n })\n .add(() => {\n this.buttonBusy = false;\n });\n }\n\n onDelete(id: number) {\n swal.fire({\n title: 'Delete',\n text: `Are you sure you want to delete this team?`,\n showCancelButton: true,\n reverseButtons: true,\n icon: 'warning'\n }).then(rep => {\n if (rep.value) {\n this.groupService.deleteGroup(id).subscribe(_ => {\n this.toast.success(\n this.translation.translate('Admin.Shared.Groups.DeletedMessage')\n );\n this.isGroupOperations = false;\n this.getAllGroupDefinition();\n });\n }\n });\n }\n\n filterDomainsList(event) {\n if (event !== '0') {\n const searchedList = this.groupsData.filter(\n group => group.group_definition_id === Number(event)\n );\n this.allGroups = searchedList;\n } else {\n this.allGroups = this.groupsData;\n }\n }\n\n previous() {\n this.location.back();\n this.dataService.changeMessage(1);\n }\n\n navigateToCommunications(id: number) {\n this.router.navigate([`/${this.subscription?.slug}/enterprise/communications`], {\n queryParams: { entity_id: id }\n });\n }\n\n navigateToDocumentations(id: number) {\n this.router.navigate([`/${this.subscription?.slug}/enterprise/wiki`], {\n queryParams: { entity_id: id }\n });\n }\n\n trackByGroup(_index: number, item: { id: number }) {\n return item.id;\n }\n\n override ngOnDestroy() {\n super.ngOnDestroy();\n }\n}\n","<div>\n <section>\n <div class=\"row\">\n <div class=\"col-12 mb-3\">\n <h2>Enterprise Teams</h2>\n\n <p>\n Here you can define the teams for your Enterprise members. For example\n \"Corporate Sales Team\", \"Frontend Dev Team\" etc.\n <br />\n Once the teams created, you'll be able to add members to them and see useful\n insight based on the members activity in the corresponding team.\n </p>\n </div>\n </div>\n\n <div class=\"row\"\n *ngIf=\"!isGroupOperations\">\n <div class=\"col-12 d-flex justify-content-end align-items-center text-end mb-3\">\n <button *ngIf=\"hasAccess\"\n class=\"btn btn-sm btn-outline-primary\"\n (click)=\"groupOperation()\">\n <i class=\"fa fa-plus-circle\" aria-hidden=\"true\"></i> Add Team\n </button>\n <button *ngIf=\"hasAccess\"\n class=\"btn btn-sm btn-outline-primary ms-1\"\n [routerLink]=\"['/' + subscription?.slug + '/enterprise', 'groups', 'labels']\">\n <i class=\"fa fa-plus-circle\" aria-hidden=\"true\"></i> Manage Team Categories\n </button>\n </div>\n </div>\n\n <!-- Add Group Template -->\n <div *ngIf=\"isGroupOperations\"\n class=\"mb-4\">\n <h4 class=\"card-title d-inline\">{{ viewEdit ? 'Update the' : 'Create a new' }} team</h4>\n\n <div class=\"mt-4\"\n *ngIf=\"!isGroupEdit\">\n <form [formGroup]=\"form\"\n (ngSubmit)=\"saveGroup()\">\n <div class=\"row\">\n <div class=\"mb-3 col-xs-12 col-sm-6 col-md-3\">\n <label for=\"teamName\">{{ 'Enterprise.Teams.TeamName' | transloco }}</label>\n <input type=\"text\"\n class=\"form-control\"\n formControlName=\"name\" />\n </div>\n <div class=\"mb-3 col-xs-12 col-sm-6 col-md-3\">\n <label for=\"description\">{{ 'Enterprise.Teams.Description' | transloco }}</label>\n <input type=\"text\"\n class=\"form-control\"\n formControlName=\"description\" />\n </div>\n <div class=\"mb-3 col-xs-12 col-sm-6 col-md-3\">\n <label for=\"teamCategory\">{{ 'Enterprise.Teams.TeamCategory' | transloco\n }}<span class=\"text-danger required-icon\">*</span>\n </label>\n <p-select\n [options]=\"groupDefinition\"\n formControlName=\"group_definition_id\"\n [ngClass]=\"{'is-invalid': submitted && form.controls['group_definition_id'].errors}\"\n [placeholder]=\"'Select Team Category'\"\n optionValue=\"id\"\n optionLabel=\"name\">\n </p-select>\n </div>\n </div>\n\n <div class=\"row text-end mt-4\">\n <div class=\"col-12\">\n <button type=\"button\"\n (click)=\"isGroupOperations = !isGroupOperations\"\n class=\"btn btn-outline-default me-2\">\n {{ 'Button.Cancel' | transloco }}\n </button>\n <button type=\"submit\"\n [buttonBusy]=\"buttonBusy\"\n class=\"btn btn-primary\">Add</button>\n </div>\n </div>\n </form>\n </div>\n\n <!-- Edit Group Template -->\n <div class=\"mt-4\"\n *ngIf=\"isGroupEdit\">\n <form [formGroup]=\"form\"\n (ngSubmit)=\"updateDetails()\">\n <div class=\"row\">\n <div class=\"mb-3 col-xs-12 col-sm-6 col-md-3\">\n <label for=\"teamName\">{{ 'Enterprise.Teams.TeamName' | transloco }}</label>\n <input type=\"text\"\n class=\"form-control\"\n formControlName=\"name\"\n required=\"true\" />\n </div>\n <div class=\"mb-3 col-xs-12 col-sm-6 col-md-3\">\n <label for=\"description\">{{ 'Enterprise.Teams.TeamDescription' | transloco }}</label>\n <input type=\"text\"\n value=\"{{ description }}\"\n class=\"form-control\"\n formControlName=\"description\"\n required=\"true\" />\n </div>\n <div class=\"mb-3 col-xs-12 col-sm-6 col-md-3\">\n <label for=\"teamCategory\">{{ 'Enterprise.Teams.TeamCategory' | transloco\n }}<span class=\"text-danger required-icon\">*</span>\n </label>\n <p-select\n [options]=\"groupDefinition\"\n formControlName=\"group_definition_id\"\n [ngClass]=\"{'is-invalid': submitted && form.controls['group_definition_id'].errors}\"\n [placeholder]=\"'Select Team Category'\"\n optionValue=\"id\"\n optionLabel=\"name\">\n </p-select>\n </div>\n </div>\n <div class=\"row text-end mt-4\">\n <div class=\"col-12\">\n <button type=\"button\"\n class=\"btn btn-outline-default me-2\"\n (click)=\"cancelUpdate()\">\n {{ 'Button.Cancel' | transloco }}\n </button>\n <button type=\"submit\"\n [buttonBusy]=\"buttonBusy\"\n class=\"btn btn-primary\">\n {{ 'Button.Update' | transloco }}\n </button>\n </div>\n </div>\n </form>\n </div>\n </div>\n\n <div class=\"row\"\n *ngIf=\"!isGroupOperations\">\n <div class=\"col-4 mt-2 filter\">\n <p-select\n [options]=\"domainGroupDefinition\"\n optionLabel=\"name\"\n optionValue=\"id\"\n [ngModel]=\"'0'\"\n (onChange)=\"filterDomainsList($event.value)\">\n </p-select>\n\n </div>\n </div>\n <div class=\"w-100 text-center mt-3\"\n *ngIf=\"!isLoaded\">\n <p-progressSpinner strokeWidth=\"2\"> </p-progressSpinner>\n </div>\n <div class=\"row group_list my-4\"\n *ngIf=\"!isGroupOperations\">\n <div class=\"col-12 col-md-6 col-xl-4 mt-3\"\n *ngFor=\"let group of allGroups; trackBy: trackByGroup\">\n <div class=\"card\">\n <div class=\"card-content\">\n <div class=\"card-header\">\n <h5 class=\"mb-3\">{{ group.name }}</h5>\n <p>{{ group.description | slice: 0:200 }}</p>\n <span><a class=\"badge bg-primary\">{{\n group?.group_definition_name\n }}</a></span>\n </div>\n <div class=\"card-footer\">\n <div class=\"float-end px-2\">\n <a class=\"me-2 my-1\"\n *ngIf=\"hasAccess\"\n aria-label=\"Delete\"\n (click)=\"onDelete(group.id)\">\n <i class=\"fa fa-trash delete-icon\" aria-hidden=\"true\"></i></a>\n <a class=\"me-2 my-1\"\n aria-label=\"Edit Group\"\n *ngIf=\"hasAccess\"\n (click)=\"editGroup(group.id)\"><i class=\"fa fa-edit edit-icon\" aria-hidden=\"true\"></i></a>\n <a class=\"me-2 my-1\"\n aria-label=\"Members\"\n [routerLink]=\"[group.id, 'members']\"><i class=\"fa fa-tasks cta1-icon\" aria-hidden=\"true\"></i>\n </a>\n <a class=\"communications me-2 my-1\"\n aria-label=\"Communications\"\n (click)=\"navigateToCommunications(group.id)\"><i class=\"fa fa-comments cta2-icon\" aria-hidden=\"true\"></i></a>\n <a class=\"communications my-1\"\n aria-label=\"Documents\"\n (click)=\"navigateToDocumentations(group.id)\"><i class=\"fab fa-wikipedia-w cta1-icon\" aria-hidden=\"true\"></i></a>\n </div>\n </div>\n </div>\n </div>\n </div>\n </div>\n </section>\n</div>\n<div *ngIf=\"allGroups?.length === 0 && hasAccess && !isGroupOperations && isLoaded\"\n class=\"clear-both\">\n <pw-no-data [withImage]=\"true\" [message]=\"'Enterprise.Teams.NoTeamMessage' | transloco\"> </pw-no-data>\n</div>\n<div *ngIf=\"allGroups?.length === 0 && !hasAccess && !isGroupOperations && isLoaded\"\n class=\"clear-both\">\n <pw-no-data [withImage]=\"true\" [message]=\"'Enterprise.Teams.NoTeamMessageIfUser' | transloco\"> </pw-no-data>\n</div>\n","import { Component, OnInit } from '@angular/core';\n\nimport { AuthService } from '@posiwise/common-services';\n\n@Component({\n selector: 'pw-landing-page-footer-b',\n templateUrl: './landing-page-footer-b.component.html',\n styleUrls: ['./landing-page-footer-b.component.scss'],\n\n standalone: false\n})\nexport class LandingPageFooterBComponent implements OnInit {\n isBrowserAccess: boolean;\n\n currentDate: Date = new Date();\n\n constructor(private readonly authService: AuthService) {}\n\n ngOnInit() {\n this.authService.platform$.subscribe(platform => {\n if (platform === 'browser') {\n this.isBrowserAccess = true;\n }\n });\n }\n\n public scrollToTop(event: Event): void {\n event.preventDefault();\n if (!this.isBrowserAccess) return;\n window.scrollTo({ top: 0, behavior: 'smooth' });\n }\n}\n","<a href=\"#\"\n aria-label=\"Up\"\n id=\"return-to-top\"\n (click)=\"scrollToTop($event)\">\n <i class=\"ft-arrow-up\" aria-hidden=\"true\"></i>\n</a>\n<footer class=\"footer-block\">\n <div class=\"container\">\n <h6>Launched in Silence.</h6>\n </div>\n <div *ngIf=\"isBrowserAccess\">\n <span class=\"me-3\">\n <a class=\"white\"\n routerLink=\"/privacy-policy\"> Privacy Policy</a>\n </span>\n <span class=\"ms-3\">\n <a class=\"white\"\n routerLink=\"/terms-conditions\"> Terms & Conditions </a>\n </span>\n </div>\n <div class=\"my-2\">\n <span>\n <a class=\"white\"\n href=\"https://www.linkedin.com/company/posiwise\"\n target=\"blank\">\n Linkedin |</a>\n <a class=\"white\"\n href=\"https://www.facebook.com/posiwise\"\n target=\"blank\"> Facebook |</a>\n <a class=\"white\"\n href=\"https://twitter.com/posiwise\"\n target=\"blank\"> Twitter</a>\n </span>\n </div>\n <p class=\"text-center text-white mb-0 mt-2\">\n Copyright © {{ currentDate | date: 'yyyy' }} PosiWise. All rights reserved.\n </p>\n</footer>\n","import { Component, EventEmitter, Input, OnInit, Output } from '@angular/core';\n\nimport { NumberPickerService } from '@posiwise/common-services';\n\nimport { buttonsOrientationType, CustomClasses, sizeType } from './number-picker.config';\n\n@Component({\n selector: 'pw-number-picker',\n templateUrl: './number-picker.component.html',\n styleUrls: ['./number-picker.component.scss'],\n\n standalone: false\n})\nexport class NumberPickerComponent implements OnInit {\n private precision: number;\n\n private eventHolder = null;\n\n private countInterval = null;\n\n private isInputFocused = false;\n\n @Input() min: number;\n\n @Input() showTooltip: boolean;\n\n @Input() tooltipText: string;\n\n @Input() max: number;\n\n @Input() step: number;\n\n @Input() value: number;\n\n @Input() pickStartAfter: number;\n\n @Input() pickTimer: number;\n\n @Input() prefix: string;\n\n @Input() postfix: string;\n\n @Input() placeholder: string;\n\n @Input() buttonsOrientation: buttonsOrientationType;\n\n @Input() size: sizeType = 'md';\n\n @Input() customClass: CustomClasses = {};\n\n @Input() mouseWheel = false;\n\n @Input() arrowKeys = true;\n\n @Input() inputReadOnly = false;\n\n @Input() showUpButton = true;\n\n @Input() showDownButton = true;\n\n @Output() valueChange: EventEmitter<number> = new EventEmitter();\n\n @Output() minReached: EventEmitter<boolean> = new EventEmitter();\n\n @Output() maxReached: EventEmitter<boolean> = new EventEmitter();\n\n @Output() pickStarted: EventEmitter<boolean> = new EventEmitter();\n\n @Output() pickStopped: EventEmitter<boolean> = new EventEmitter();\n\n @Output() pickUpStarted: EventEmitter<boolean> = new EventEmitter();\n\n @Output() pickUpStopped: EventEmitter<boolean> = new EventEmitter();\n\n @Output() pickDownStarted: EventEmitter<boolean> = new EventEmitter();\n\n @Output() pickDownStopped: EventEmitter<boolean> = new EventEmitter();\n\n constructor(private readonly numberPickerService: NumberPickerService) {}\n\n ngOnInit() {\n this.initPicker();\n }\n\n isHorizontal(): boolean {\n return this.buttonsOrientation !== 'v' && this.buttonsOrientation !== 'vertical';\n }\n\n onFocus(event: FocusEvent) {\n event.preventDefault();\n event.stopPropagation();\n this.isInputFocused = true;\n }\n\n onBlur(event: Event) {\n event.preventDefault();\n event.stopPropagation();\n this.isInputFocused = false;\n }\n\n onMouseWheel(event: WheelEvent) {\n if (this.isInputFocused) {\n event.preventDefault();\n let wheelUp = null;\n let delta = null;\n\n if (event.deltaY) {\n delta = event.deltaY / 60;\n }\n if (event.detail) {\n delta = -event.detail / 2;\n }\n if (delta !== null) {\n wheelUp = delta > 0;\n }\n\n this.afterMouseWheels(wheelUp, event);\n event.stopPropagation();\n }\n }\n\n private afterMouseWheels(wheelUp: boolean, event: WheelEvent) {\n this.onPickStarted(wheelUp);\n if (wheelUp) {\n this.onIncrease(event);\n } else {\n this.onDecrease(event);\n }\n this.onPickStopped(wheelUp);\n }\n\n onValueChange(_event: Event) {\n if (this.value > this.max) {\n this.value = this.max;\n } else if (this.value < this.min) {\n this.value = this.min;\n }\n if (this.parseVal(this.value) === 0 || this.parseVal(this.value)) {\n this.valueChange.emit(this.value);\n }\n }\n\n onDecrease(event: MouseEvent | WheelEvent | KeyboardEvent) {\n event.preventDefault();\n if (this.canDecrease()) {\n this.value = this.round(this.value > this.min ? this.value - this.step : this.value);\n this.valueChange.emit(this.value);\n } else {\n this.minReached.emit(true);\n }\n event.stopPropagation();\n }\n\n onIncrease(event: MouseEvent | WheelEvent | KeyboardEvent) {\n event.preventDefault();\n if (this.canIncrease()) {\n this.value = this.round(this.value < this.max ? this.value + this.step : this.value);\n this.valueChange.emit(this.value);\n } else {\n this.maxReached.emit(true);\n }\n event.stopPropagation();\n }\n\n onMouseDown(event: MouseEvent, increase = true) {\n this.afterMouseDown(increase, event);\n }\n\n private isArrowUpDown(key: string): boolean {\n return key === 'ArrowUp' || key === 'ArrowDown';\n }\n\n private isArrowUp(key: string): boolean {\n return key === 'ArrowUp';\n }\n\n private loopPick(increase: boolean, event: MouseEvent | KeyboardEvent) {\n this.onPickStarted(increase);\n this.eventHolder = setTimeout(() => {\n this.countInterval = setInterval(() => {\n if (increase) {\n this.onIncrease(event);\n } else {\n this.onDecrease(event);\n }\n }, this.pickTimer);\n }, this.pickStartAfter);\n }\n\n onMouseUp(event: MouseEvent, increase = true) {\n this.afterMouseUp(increase, event);\n }\n\n onKeyDown(event: KeyboardEvent) {\n if (this.isArrowUpDown(event.key)) {\n event.preventDefault();\n if (!this.eventHolder) {\n this.loopPick(this.isArrowUp(event.key), event);\n }\n }\n event.stopPropagation();\n }\n\n onKeyUp(event: KeyboardEvent) {\n if (this.isArrowUpDown(event.key)) {\n event.preventDefault();\n this.afterPick(this.isArrowUp(event.key));\n }\n event.stopPropagation();\n }\n\n private afterMouseDown(up: boolean, event: MouseEvent) {\n event.preventDefault();\n if (this.isLeftClick(event)) {\n this.loopPick(up, event);\n }\n event.stopPropagation();\n }\n\n private afterMouseUp(up: boolean, event: MouseEvent) {\n event.preventDefault();\n this.afterPick(up);\n event.stopPropagation();\n }\n\n private afterPick(up: boolean) {\n this.onPickStopped(up);\n this.clearTimers();\n }\n\n private clearTimers() {\n clearTimeout(this.eventHolder);\n clearInterval(this.countInterval);\n this.eventHolder = null;\n this.countInterval = null;\n }\n\n private parseVal(value: string | number) {\n if (typeof value === 'number') {\n return value;\n }\n\n return Number.parseFloat(value);\n }\n\n private getPrecision(step: number): number {\n return /^\\d*$/.exec(String(step))[0].length;\n }\n\n private round(value: number): number {\n // eslint-disable-next-line no-restricted-properties\n return Math.round(value * 10 ** this.precision) / 10 ** this.precision;\n }\n\n private canIncrease(): boolean {\n const canIncrease = this.value <= this.max - this.step;\n if (!canIncrease) {\n this.value = this.max;\n }\n\n return canIncrease;\n }\n\n private canDecrease(): boolean {\n const canDecrease = this.value >= this.min + this.step;\n if (!canDecrease) {\n this.value = this.min;\n }\n\n return canDecrease;\n }\n\n private onPickStarted(increase: boolean) {\n const isIncrease = increase;\n if (isIncrease) {\n // NOSONAR\n if (this.canIncrease()) {\n this.pickStarted.emit(true);\n this.pickUpStarted.emit(true);\n }\n } else if (this.canDecrease()) {\n this.pickStarted.emit(true);\n this.pickDownStarted.emit(true);\n }\n }\n\n private onPickStopped(increase: boolean) {\n const isIncrease = increase;\n if (isIncrease) {\n // NOSONAR\n if (this.canIncrease()) {\n this.pickUpStopped.emit(true);\n this.pickStopped.emit(true);\n }\n } else if (this.canDecrease()) {\n this.pickDownStopped.emit(true);\n this.pickStopped.emit(true);\n }\n }\n\n private isLeftClick(event): boolean {\n return event.button === 0;\n }\n\n private initPicker(): void {\n this.min = this.parseVal(this.min) || this.numberPickerService.min;\n this.max = this.parseVal(this.max) || this.numberPickerService.max;\n this.step = this.parseVal(this.step) || this.numberPickerService.step;\n this.value = this.parseVal(this.value) || this.numberPickerService.value;\n this.pickStartAfter =\n this.parseVal(this.pickStartAfter) || this.numberPickerService.pickStartAfter;\n this.pickTimer = this.parseVal(this.pickTimer) || this.numberPickerService.pickTimer;\n this.precision = this.getPrecision(this.step) || this.numberPickerService.precision;\n this.value = this.round(this.value);\n this.placeholder = this.placeholder ?? '';\n }\n}\n","<div class=\"input-group mb-3 input-{{ size }} {{ customClass.container }}\">\n <!-- Horizontal decrease button orientation -->\n <span *ngIf=\"isHorizontal() && showDownButton\"\n class=\"input-group-text decrease {{ customClass.down }}\"\n (click)=\"onDecrease($event)\"\n (keydown.enter)=\"onDecrease($event)\"\n (mouseup)=\"onMouseUp($event, false)\"\n (mousedown)=\"onMouseDown($event, false)\">-</span>\n <!-- Input prefix -->\n <span *ngIf=\"prefix\"\n class=\"input-group-text {{ customClass.prefix }}\">{{ prefix }}\n </span>\n <input type=\"number\"\n class=\"form-control\"\n name=\"input-spin-val\"\n [(ngModel)]=\"value\"\n [readOnly]=\"inputReadOnly\"\n (blur)=\"onBlur($event)\"\n (focus)=\"onFocus($event)\"\n (wheel)=\"mouseWheel && onMouseWheel($event)\"\n (keyup)=\"arrowKeys && onKeyUp($event)\"\n (keydown.enter)=\"arrowKeys && onKeyDown($event)\"\n (keydown.arrowup)=\"arrowKeys && onIncrease($event)\"\n (keydown.arrowdown)=\"arrowKeys && onDecrease($event)\"\n (change)=\"onValueChange($event)\"\n [placeholder]=\"placeholder\" />\n <!-- Input postfix -->\n\n <span *ngIf=\"postfix\"\n class=\"input-group-text {{ customClass.postfix }}\"\n [style.borderLeft]=\"'0'\">{{postfix}}\n <span class=\"tooltip-wrap ms-1\"\n *ngIf=\"showTooltip && tooltipText\"\n [pTooltip]=\"tooltipText\"\n [appendTo]=\"'body'\"\n [tooltipPosition]=\"tooltipPosition || 'top'\">\n <i class=\"fas fa-info-circle\"></i>\n </span>\n </span>\n\n <!-- Horizontal increase button orientation -->\n <span *ngIf=\"isHorizontal() && showUpButton\"\n class=\"input-group-text increase {{ customClass.up }}\"\n [style.borderLeft]=\"!postfix ? '0' : ''\"\n (click)=\"onIncrease($event)\"\n (keydown.enter)=\"onIncrease($event)\"\n (mouseup)=\"onMouseUp($event)\"\n (mousedown)=\"onMouseDown($event)\">+</span>\n <!-- Vertical buttons orientation -->\n <span *ngIf=\"!isHorizontal()\"\n class=\"input-group-text vertical p-0\">\n <span *ngIf=\"showUpButton\"\n class=\"{{ customClass.up }}\"\n (click)=\"onIncrease($event)\"\n (keydown.enter)=\"onIncrease($event)\"\n (mouseup)=\"onMouseUp($event)\"\n (mousedown)=\"onMouseDown($event)\">+</span>\n <span *ngIf=\"showDownButton\"\n class=\"{{ customClass.down }}\"\n (keydown.enter)=\"onDecrease($event)\"\n (click)=\"onDecrease($event)\"\n (mouseup)=\"onMouseUp($event, false)\"\n (mousedown)=\"onMouseDown($event, false)\">-</span>\n </span>\n</div>\n","import {\n Component,\n EventEmitter,\n Injector,\n Input,\n Output,\n TemplateRef,\n ViewChild\n} from '@angular/core';\n\nimport { AppBaseComponent } from '@posiwise/app-base-component';\n\nimport { StatusCodes } from 'http-status-codes';\n\nimport { NgbModal } from '@ng-bootstrap/ng-bootstrap';\n\nimport { SharedModalContext } from '../shared/shared-component.interface';\n\n@Component({\n selector: 'pw-password-validation',\n templateUrl: './password-validation.component.html',\n\n standalone: false\n})\nexport class PasswordValidationComponent extends AppBaseComponent {\n @ViewChild('content', { static: true }) content: TemplateRef<SharedModalContext>;\n @Input() confirmMessage = 'User.Account.Message.EnterPassword';\n\n @Output()\n successEvent: EventEmitter<boolean> = new EventEmitter();\n\n password: string;\n\n buttonBusy: boolean;\n\n constructor(\n injector: Injector,\n private readonly modal: NgbModal\n ) {\n super(injector);\n }\n\n open() {\n this.modal.open(this.content, { centered: true, windowClass: 'modal-holder' });\n }\n\n validatePassword() {\n if (this.password) {\n this.buttonBusy = true;\n this.userService\n .checkPassword({ password: this.password })\n .subscribe(data => {\n if (data && data?.status === StatusCodes.OK) {\n this.successEvent.emit(true);\n this.modal.dismissAll();\n this.password = null;\n } else {\n this.successEvent.emit(false);\n this.password = null;\n }\n })\n .add(() => {\n this.buttonBusy = false;\n });\n }\n }\n}\n","<ng-template #content\n let-modal>\n <div class=\"modal-header\">\n <h5 class=\"modal-title\">Confirm</h5>\n <button type=\"button\"\n class=\"btn-close float-end\"\n aria-label=\"Close\"\n (click)=\"modal.dismiss()\">\n </button>\n </div>\n <div class=\"modal-body\">\n <strong class=\"p3\">{{ confirmMessage | transloco }}</strong>\n <div>\n <ng-content></ng-content>\n </div>\n <div class=\"row\">\n <div class=\"col-12\">\n <input type=\"password\"\n #passwordRef\n [(ngModel)]=\"password\"\n class=\"form-control\"\n placeholder=\"Current Password\" />\n </div>\n </div>\n <div class=\"row mt-2\">\n <div class=\"col-12\">\n <button [buttonBusy]=\"buttonBusy\"\n class=\"btn btn-primary float-end\"\n type=\"button\"\n (click)=\"validatePassword()\">\n {{ 'Button.Confirm' | transloco }}\n </button>\n </div>\n </div>\n </div>\n</ng-template>\n","import {\n AfterViewInit,\n Component,\n ElementRef,\n Input,\n OnChanges,\n SimpleChanges\n} from '@angular/core';\n\nimport map from 'lodash/map';\n\nimport { PermissionTreeData } from '../shared/shared-component.interface';\n\n@Component({\n // eslint-disable-next-line @angular-eslint/component-selector\n selector: 'permission-tree',\n template: ` <div class=\"permission-tree\"></div> `,\n\n standalone: false\n})\nexport class PermissionTreeComponent implements AfterViewInit, OnChanges {\n @Input() data: PermissionTreeData;\n\n private _$tree;\n private _createdTreeBefore: boolean;\n constructor(private readonly _element: ElementRef) {}\n\n ngOnChanges(simple: SimpleChanges) {\n if (simple['data']?.currentValue?.grantedPermissionNames) {\n this.refreshTree();\n }\n }\n\n ngAfterViewInit(): void {\n this._$tree = $(this._element.nativeElement);\n\n this.refreshTree();\n }\n\n getGrantedPermissionNames(): string[] {\n if (!this._$tree || !this._createdTreeBefore) {\n return [];\n }\n\n const permissionNames = [];\n\n const selectedPermissions = this._$tree.jstree('get_selected', true);\n for (const permission of selectedPermissions) {\n permissionNames.push(permission.original.id);\n }\n\n return permissionNames;\n }\n\n private refreshTree(): void {\n if (this._createdTreeBefore) {\n this._$tree.jstree('destroy');\n }\n\n this._createdTreeBefore = false;\n\n if (!this.data || !this._$tree) {\n return;\n }\n\n const treeData = map(this.data.permissions, item => {\n return {\n id: item.name,\n parent: item.parentName ?? '#',\n text: item.displayName,\n state: {\n opened: true,\n selected: this.data.grantedPermissionNames.includes(item.name)\n }\n };\n });\n\n this._$tree.jstree({\n core: {\n data: treeData\n },\n types: {\n default: {\n icon: 'fa fa-folder-open tree-item-icon-color icon-lg'\n },\n file: {\n icon: 'fa fa-file tree-item-icon-color icon-lg'\n }\n },\n checkbox: {\n keep_selected_style: false,\n three_state: false,\n cascade: ''\n },\n plugins: ['checkbox', 'types']\n });\n\n this._createdTreeBefore = true;\n\n let inTreeChangeEvent = false;\n\n const selectNodeAndAllParents = node => {\n this._$tree.jstree('select_node', node, true);\n const parent = this._$tree.jstree('get_parent', node);\n if (parent) {\n selectNodeAndAllParents(parent);\n }\n };\n\n this._$tree.on('changed.jstree', (_e, data) => {\n if (!data.node) {\n return;\n }\n\n const wasInTreeChangeEvent = inTreeChangeEvent;\n if (!wasInTreeChangeEvent) {\n inTreeChangeEvent = true;\n }\n\n let childrenNodes;\n\n if (data.node.state.selected) {\n selectNodeAndAllParents(this._$tree.jstree('get_parent', data.node));\n\n childrenNodes = $.makeArray(this._$tree.jstree('get_children_dom', data.node));\n this._$tree.jstree('select_node', childrenNodes);\n } else {\n childrenNodes = $.makeArray(this._$tree.jstree('get_children_dom', data.node));\n this._$tree.jstree('deselect_node', childrenNodes);\n }\n\n if (!wasInTreeChangeEvent) {\n inTreeChangeEvent = false;\n }\n });\n }\n}\n","import { DOCUMENT } from '@angular/common';\nimport { Component, Inject, Injector, Input, OnInit } from '@angular/core';\nimport { DomSanitizer } from '@angular/platform-browser';\n\nimport { AdminService } from '@posiwise/admin-module-utils';\nimport { AppBaseComponent } from '@posiwise/app-base-component';\nimport { PermissionService } from '@posiwise/common-services';\nimport { User } from '@posiwise/common-utilities';\n\n@Component({\n selector: 'pw-privacy-and-tos',\n templateUrl: './privacy-and-tos.component.html',\n styleUrls: ['./privacy-and-tos.component.scss'],\n\n standalone: false\n})\nexport class PrivacyAndTosComponent extends AppBaseComponent implements OnInit {\n @Input() productId: number;\n\n private privacyAndTos: number;\n\n id: string;\n\n data: { privacy: '' };\n\n user: User;\n\n subscribedSubscriptions: { products: { id: number }[] }[];\n\n product: string;\n productName: string;\n\n tabId = 'privacy-policy';\n\n isPublic: boolean;\n\n isLoaded: boolean;\n\n constructor(\n private readonly adminService: AdminService,\n injector: Injector,\n @Inject(DOCUMENT) private readonly document: Document,\n private readonly sanitizer: DomSanitizer\n ) {\n super(injector);\n }\n\n ngOnInit() {\n this.privacyAndTos = this.appConfig?.main_tos_id;\n this.product = this.route.snapshot.queryParamMap.get('product');\n this.isLoaded = false;\n this.route.params.subscribe(data => {\n this.id = data['Id'];\n if (this.id) {\n const id = this.id === 'details' ? this.privacyAndTos : this.id;\n this.getTosDetails(Number(id));\n this.isPublic = true;\n } else if (this.productId) {\n this.getSubscribedProduct(this.productId);\n } else {\n this.route.params.subscribe(id => {\n this.tabId = id['data'] ?? 'privacy-policy';\n this.getSubscribedProduct();\n });\n }\n });\n }\n\n private getSubscribedProduct(id?) {\n this.userStore().subscribe(user => {\n this.user = user;\n if (user) {\n this.fetchUserSubscriptions(user.id, id);\n }\n });\n }\n\n fetchUserSubscriptions(userId, id?) {\n this.userService.getUserSubscriptions(userId).subscribe(response => {\n this.subscribedSubscriptions = response.subscriptions;\n const productId = id ?? PermissionService.selectedProduct.id;\n const products = this.findRequiredProducts(productId);\n\n this.productName = products[0]?.name;\n this.getTosDetails(products[0].product_privacy_service_id);\n });\n }\n\n private findRequiredProducts(productId) {\n const products = [];\n this.subscribedSubscriptions.forEach(subscribe => {\n const requiredProduct = subscribe?.products.find(x => x?.id === productId);\n if (requiredProduct) {\n products.push(requiredProduct);\n }\n });\n return products;\n }\n\n private getTosDetails(id: number) {\n this.adminService\n .getTosDetails(id)\n .subscribe(response => {\n const parser = new DOMParser();\n\n let privacyData;\n if (response?.privacy) {\n const privacyDoc = parser.parseFromString(response?.privacy, 'text/html');\n\n // Remove all button elements in privacy\n const privacyButtons = privacyDoc.querySelectorAll('button');\n privacyButtons.forEach(button => button.remove());\n\n // Sanitize and store privacy HTML\n // NOSONAR: Trusted HTML content is handled safely here\n privacyData = this.sanitizer.bypassSecurityTrustHtml(privacyDoc.body.innerHTML); // NOSONAR\n }\n\n let tosData;\n if (response?.tos) {\n const tosDoc = parser.parseFromString(response?.tos, 'text/html');\n\n // Remove all button elements in tos\n const tosButtons = tosDoc.querySelectorAll('button');\n tosButtons.forEach(button => button.remove());\n\n // Sanitize and store tos HTML\n // NOSONAR: Trusted HTML content is handled safely here\n tosData = this.sanitizer.bypassSecurityTrustHtml(tosDoc.body.innerHTML); // NOSONAR\n }\n\n // Assign sanitized data back\n this.data = {\n ...response,\n privacy: privacyData,\n tos: tosData\n };\n })\n .add(() => {\n this.isLoaded = true;\n });\n }\n}\n","<ng-container *ngIf=\"isPublic\">\n <pw-header [landing]=\"false\"></pw-header>\n</ng-container>\n\n<div class=\"col-12 d-flex\"\n *ngIf=\"!isPublic\">\n <a aria-label=\"Navigate to Target\"\n (click)=\"back()\"\n class=\"previous\"><i class=\"fa fa-arrow-alt-circle-left\" aria-hidden=\"true\"></i></a>\n <h3 class=\"mt-3\">{{ productName }}</h3>\n</div>\n\n\n\n\n<div [ngClass]=\"{ 'container pw-tab overflow-hidden': isPublic }\" >\n <div [ngClass]=\"{ dashboard: isPublic }\">\n <div [ngClass]=\"{ 'dashboard-body': isPublic }\">\n <div [ngClass]=\"{ 'mt-5': isPublic }\">\n <h3 *ngIf=\"isPublic\">{{ product }}</h3>\n <div>\n\n <ul ngbNav\n #nav=\"ngbNav\"\n [(activeId)]=\"tabId\"\n class=\"nav-tabs\">\n <li [ngbNavItem]=\"'privacy-policy'\">\n <a ngbNavLink>Privacy policy</a>\n <ng-template ngbNavContent>\n <div class=\"container-fluid pw-tab overflow-hidden\">\n <div class=\"dashboard\">\n <div class=\"dashboard-body pt-1\">\n <div class=\"row\">\n <div class=\"col-12 terms-of-service\">\n <h3>Privacy policy</h3>\n <div class=\"clearfix\"></div>\n <div class=\"ql-container ql-snow body-quill\">\n <div class=\"ql-editor\"\n [innerHTML]=\"data?.privacy\">\n </div>\n </div>\n </div>\n </div>\n </div>\n </div>\n </div>\n </ng-template>\n </li>\n <li [ngbNavItem]=\"'terms-of-service'\">\n <a ngbNavLink>Terms of Services</a>\n <ng-template ngbNavContent>\n <div class=\"container-fluid pw-tab overflow-hidden\">\n <div class=\"dashboard\">\n <div class=\"dashboard-body pt-1\">\n <div class=\"row\">\n <div class=\"col-12 terms-of-service\">\n <h3>Terms of Services</h3>\n <div class=\"clearfix\"></div>\n <div class=\"ql-container ql-snow body-quill\">\n <div class=\"ql-editor\"\n [innerHTML]=\"data?.tos\">\n </div>\n </div>\n </div>\n </div>\n </div>\n </div>\n </div>\n </ng-template>\n </li>\n </ul>\n </div>\n <div class=\"w-100 text-center p-2 mt-5\" *ngIf=\"!isLoaded\">\n <p-progressSpinner strokeWidth=\"2\"></p-progressSpinner>\n </div>\n <div [ngbNavOutlet]=\"nav\" *ngIf=\"isLoaded\"></div>\n </div>\n </div>\n </div>\n</div>\n","import { Component, Input, OnInit } from '@angular/core';\n\nimport { AppBaseComponent } from '@posiwise/app-base-component';\n\n@Component({\n selector: 'pw-privacy-policy',\n templateUrl: './privacy-policy.component.html',\n styleUrls: ['../terms-conditions/terms-conditions.component.scss'],\n\n standalone: false\n})\nexport class PrivacyPolicyComponent extends AppBaseComponent implements OnInit {\n @Input()\n isPublic = window.location.pathname.includes('privacy-policy');\n\n company_name: string;\n company_email: string;\n\n ngOnInit() {\n this.company_name = this.appConfig.company.name;\n this.company_email = this.appConfig.company.email;\n }\n}\n","<ng-container *ngIf=\"isPublic\">\n <pw-landing-page-header [landing]=\"false\"></pw-landing-page-header>\n</ng-container>\n\n<div class=\"container pw-tab overflow-hidden\">\n <div class=\"dashboard\">\n <div class=\"dashboard-body\">\n <div [ngClass]=\"{ 'mt-5': isPublic }\">\n <div class=\"row\">\n <div class=\"col-12 terms-of-service\">\n <h1>Privacy policy</h1>\n <div class=\"clearfix\"></div>\n <h3>Your Content</h3>\n <p>\n If you operate a {{ company_name }} User Account, and/or comment on,\n post material to, post links on or otherwise make (or allow any third\n party to make) material available by means of the Website and or\n Applications (collectively called “Content”), you are entirely\n responsible for that Content and any harm resulting from that Content.\n That is regardless of whether the Content in question constitutes (but\n not limited to) text, graphics, an audio file or computer software. By\n making Content available, you represent and warrant that:\n </p>\n <ol>\n <li>\n the Content is not considered to be obscene, inappropriate,\n defamatory, disparaging, indecent, seditious, offensive,\n pornographic, threatening, abusive, liable to incite racial hatred,\n discriminatory, blasphemous, in breach of confidence or in breach of\n privacy;\n </li>\n <li>\n the downloading, copying and use of the Content will not infringe\n the proprietary rights, including but not limited to the copyright,\n patent, trademark or trade secret rights, of any third party;\n </li>\n <li>\n if your employer has rights to intellectual property you create, you\n have either (i) received permission from your employer to post or\n make available the Content, including but not limited to any\n software, or (ii) secured from your employer a waiver as to all\n rights in or to the Content;\n </li>\n <li>\n you have fully complied with any third-party licenses relating to\n the Content, and have done all things necessary to successfully pass\n through to end users any required terms;\n </li>\n <li>\n the Content does not contain or install any viruses, worms, malware,\n Trojan horses or other harmful or destructive content;\n </li>\n <li>\n the Content is not spam, is not machine or randomly generated and\n does not contain unethical or unwanted commercial content designed\n to drive traffic to third party sites or further unlawful acts;\n </li>\n <li>\n your User Account is not getting advertised via unwanted electronic\n messages such as spam links on newsgroups, email lists, other blogs\n and websites, and similar unsolicited promotional methods;\n </li>\n <li>\n your User Account is not named in a manner that misleads users into\n thinking that you are another person or company;\n </li>\n <li>\n the Content will not cause you or us to breach any law, regulation,\n rule, code or other legal obligation; and\n </li>\n <li>the Content will not bring us, or the Site into disrepute.</li>\n </ol>\n <p></p>\n <p>\n By submitting Content for inclusion in your User Account or to the Site,\n you grant us a worldwide, royalty free, and non-exclusive license to\n use that content in any way (including without limitation, reproducing,\n changing and communicating the Content) and permit us to authorise any\n other person to do the same thing. If you delete any Content, we will\n use reasonable efforts to remove it from the Site, but you acknowledge\n that caching or references to the Content may not be made immediately\n unavailable.\n </p>\n <p>\n Without limiting any of those representations or warranties, we reserve\n the right (though not the obligation) to, in our sole discretion\n </p>\n <ol>\n <li>\n refuse or remove any content that, in our reasonable opinion,\n violates any of our policies or agreements or is in any way harmful\n or objectionable, or\n </li>\n <li>\n terminate or deny access to and use of the Service to any individual\n or entity for any reason, in our sole discretion.\n </li>\n </ol>\n <p></p>\n <h3>Privacy</h3>\n <p>\n We get information about you in a range of ways. We collect your‎\n name,‎ email address and other information you directly give us on\n our Site. We may get information about you from other sources. We may\n add this to information we get from this Site. We may automatically log\n information about you and your computer. We may log information using\n \"cookies.\" Cookies are small data files stored on your hard drive by a\n website. Cookies help us make our Site and your visit better. We use\n cookies to see which parts of our Site people use and like and to count\n visits to our Site. We may store your personal information along with\n your files and data on a third party server such as Amazon Web Services;\n </p>\n <p>\n We use your personal information to operate, maintain, and improve our\n sites, products, and services. We use your personal information to\n respond to comments and questions and provide customer service. We use\n your personal information to provide and deliver products and services\n customers request. We also use your personal information to send you\n notifications about the service and to respond to customer support\n requests. You can access and change your personal information by logging\n in to your account settings page.\n </p>\n <p>\n We may share personal information with your consent. For example, you\n may let us share personal information with others for their own\n marketing uses. Those uses will be subject to their privacy policies. We\n may share personal information when we do a business deal, or negotiate\n a business deal, involving sale or transfer of all or a part of our\n business or assets. These deals can include any merger, financing,\n acquisition, or bankruptcy transaction or proceeding. We may share\n personal information for legal, protection, and safety purposes. We may\n share information to comply with laws. We may share information to\n respond to lawful requests and legal process. We may share information\n to protect the rights, property or safety of the Service, our users,\n customers, and others. This includes enforcing our agreements, policies,\n and terms of use. We may share information in an emergency. We may share\n information with those who need it to do work for us. We may also share\n aggregated and/or anonymized data with others for their own uses.\n </p>\n <p>\n Our marketing emails tell you how to “opt-out.” If you opt out, we may\n still send you non-marketing emails. Non-marketing emails include emails\n about your accounts and our business dealings with you.\n </p>\n <p>\n You can typically remove and reject cookies from our Site with your\n browser settings. Many browsers are set to accept cookies until you\n change your settings. If you remove or reject our cookies, it could\n affect how our Site works for you.\n </p>\n <p>\n If {{ company_name }} sells all or part of its business or makes a sale\n or transfer of its assets or is otherwise involved in a merger or\n transfer of all or a material part of its business,\n {{ company_name }} may transfer your information to the party or parties\n involved in the transaction as part of that transaction.\n </p>\n <p>\n {{ company_name }} uses a range of commercially reasonable measures to\n safeguard Personal Information in its possession against loss, theft and\n unauthorized use, disclosure or modification. However, no one can\n guarantee the complete safety of your information. Please immediately\n notify us if you believe there may be an issue or a problem regarding\n the integrity of your information by contacting us.\n </p>\n <p>\n In some cases, we may use an unaffiliated payment service to allow you\n to purchase a product or make payments (“Payment Service”). If you wish\n to purchase a product or make a payment in such a case, you will be\n directed to a Payment Service webpage. Any information that you provide\n to a Payment Service will be subject to the applicable Payment Service’s\n privacy policy, rather than this Privacy Policy. We have no control\n over, and are not responsible for, any Payment Service’s use of\n information collected through any Payment Service.\n </p>\n <p>\n The {{ company_name }} website may also be linked to sites operated by\n third parties, and may carry advertisements or offer content,\n functionality, games or applications developed and maintained by third\n parties. Some of these third party sites may be co-branded with a\n {{ company_name }} logo, even though they are not operated or maintained\n by us.\n </p>\n <p>\n {{ company_name }} is not responsible for the privacy practices of any\n such third parties, and once you leave the {{ company_name }} website,\n you should check the applicable privacy policy of the other service.\n </p>\n <h3>Questions & Comments</h3>\n <p>\n If you have any questions about our Privacy Policy, please\n <a href=\"mailto:{{ company_email }}\">let us know</a>.\n </p>\n </div>\n </div>\n </div>\n </div>\n </div>\n</div>\n","import { Component, Injector, Input, OnDestroy, OnInit, ViewChild } from '@angular/core';\nimport { NavigationEnd } from '@angular/router';\n\nimport { AppBaseComponent } from '@posiwise/app-base-component';\nimport { PermissionService } from '@posiwise/common-services';\nimport { Subscription } from '@posiwise/common-utilities';\n\nimport { MenuItem } from 'primeng/api';\nimport { TabMenu } from 'primeng/tabmenu';\nimport { Subscription as RxSubscription } from 'rxjs';\n\n@Component({\n selector: 'pw-tabs',\n templateUrl: './pw-tabs.component.html',\n\n standalone: false\n})\nexport class PwTabsComponent extends AppBaseComponent implements OnInit, OnDestroy {\n @Input()\n items: MenuItem[] = [];\n\n @ViewChild('tabMenu', { static: false })\n tabInstance: TabMenu;\n\n @Input()\n withSubscription = false;\n\n activeTab: MenuItem;\n\n private routeEventSubscription: RxSubscription;\n\n constructor(injector: Injector) {\n super(injector);\n }\n\n ngOnInit() {\n if (this.withSubscription) {\n this.getUserSubscription().subscribe((subscription: Subscription) => {\n this.items.forEach(item => {\n // prepends the subscription slug to the route while keeping routerLink as an array\n if (Array.isArray(item.routerLink) && item.routerLink.length > 0) {\n const originalRoute = item.routerLink[0];\n item.routerLink = [`/${subscription?.slug}${originalRoute}`];\n }\n item.visible = item?.state\n ? this.permissionService.evaluatePermissions(\n item.state['permission'],\n PermissionService.selectedProduct?.feature_key,\n PermissionService.selectedProduct?.permission_key\n )\n : item.visible;\n });\n this.updateActiveTab();\n });\n } else {\n // For non-subscription tabs, update active tab after view init\n setTimeout(() => this.updateActiveTab(), 0);\n }\n\n this.routeEventSubscription = this.router.events.subscribe(e => {\n if (e instanceof NavigationEnd) {\n this.updateActiveTab();\n }\n });\n }\n\n private updateActiveTab(): void {\n if (!this.tabInstance || !this.items.length) {\n return;\n }\n\n const currentUrl = this.router.url.split('?')[0];\n const matchedItem = this.items.find(item => {\n if (!item.routerLink || !item.visible) {\n return false;\n }\n const routePath = Array.isArray(item.routerLink) ? item.routerLink[0] : item.routerLink;\n return routePath === currentUrl;\n });\n\n if (matchedItem) {\n // Clear previous activeItem first to ensure only one tab is active\n this.tabInstance.activeItem = null;\n // Then set the new activeItem\n this.tabInstance.activeItem = matchedItem;\n } else {\n // Clear activeItem if no match found\n this.tabInstance.activeItem = null;\n }\n }\n\n override ngOnDestroy() {\n this.routeEventSubscription.unsubscribe();\n }\n}\n","<div class=\"container-fluid pw-tab overflow-hidden\">\n <p-tabMenu [model]=\"items\"\n #tabMenu></p-tabMenu>\n <div class=\"dashboard\">\n <div class=\"dashboard-body\">\n <router-outlet></router-outlet>\n </div>\n </div>\n</div>\n","import { AfterViewInit, Component, EventEmitter, Input, Output, ViewChild } from '@angular/core';\n\nimport moment from 'moment';\nimport { DaterangepickerDirective } from 'ngx-daterangepicker-material';\n\n@Component({\n selector: 'app-date-picker',\n templateUrl: './date-range-picker.component.html',\n styleUrls: ['./date-range-picker.component.scss'],\n\n standalone: false\n})\nexport class DateRangePickerComponent implements AfterViewInit {\n @ViewChild(DaterangepickerDirective, { static: false })\n pickerDirective: DaterangepickerDirective;\n\n private initialized = false;\n\n @Input() selectedDateRange: { startDate: moment.Moment; endDate: moment.Moment };\n @Input() dateRanges;\n @Output() dateRangeChange = new EventEmitter<{\n startDate: moment.Moment;\n endDate: moment.Moment;\n }>();\n\n onDateRangeSelect(event: { startDate: moment.Moment; endDate: moment.Moment }) {\n if (event.startDate && event.endDate) {\n this.dateRangeChange.emit(event);\n }\n }\n ngAfterViewInit() {\n setTimeout(() => {\n this.initialized = true;\n });\n }\n onClearDate() {\n if (!this.initialized) {\n return;\n }\n this.dateRangeChange.emit({ startDate: null, endDate: null });\n }\n openDatepicker() {\n setTimeout(() => {\n this.pickerDirective.open();\n }, 50);\n }\n}\n","<div class=\"my-3\">\n <div class=\"row\">\n <!-- start date -->\n <div class=\"col-6 col-sm-3\">\n <div class=\"\">\n <input ngxDaterangepickerMd\n class=\"form-control\"\n [(ngModel)]=\"selectedDateRange\"\n [ranges]=\"dateRanges\"\n [alwaysShowCalendars]=\"true\"\n [locale]=\"{ format: 'DD-MMM-YYYY' }\"\n [showCustomRangeLabel]=\"true\"\n [linkedCalendars]=\"true\"\n [showClearButton]=\"true\"\n (clearClicked)=\"onClearDate()\"\n placeholder=\"Select a date range (optional)\"\n opens=\"center\"\n (ngModelChange)=\"onDateRangeSelect($event)\"\n />\n </div>\n </div>\n <div class=\"col-6 col-sm-3 pop\">\n\n <div class=\"input-group-append\">\n <button class=\"btn btn-primary ngx-daterangepicker-action\"\n (click)=\"openDatepicker()\"\n type=\"button\">\n <i class=\"fa fa-calendar\" aria-hidden=\"true\"></i>\n </button>\n </div>\n </div>\n </div>\n </div>","import { Component, Host, Input, OnInit, Optional, SkipSelf } from '@angular/core';\nimport { AbstractControl, ControlContainer, NG_VALUE_ACCESSOR } from '@angular/forms';\n\n@Component({\n selector: 'pw-input-container',\n templateUrl: './input-container.component.html',\n styleUrls: ['./input-container.component.scss'],\n providers: [\n {\n provide: NG_VALUE_ACCESSOR,\n // eslint-disable-next-line @typescript-eslint/no-use-before-define\n useExisting: InputContainerComponent,\n multi: true\n }\n ],\n standalone: false\n})\nexport class InputContainerComponent implements OnInit {\n control: AbstractControl;\n\n @Input()\n name: string;\n\n @Input()\n label: string;\n\n @Input()\n labelClass: string;\n\n @Input()\n tooltipPosition: string;\n\n @Input()\n required = false;\n\n @Input()\n errorMsg = 'An error occurred';\n\n @Input()\n isReadOnly = false;\n\n @Input()\n showTooltip: boolean;\n\n @Input()\n tooltipText: string;\n\n @Input()\n showTriangle = false;\n\n @Input()\n afterLabel: string;\n\n @Input()\n showAfterLabel: boolean;\n\n @Input()\n showTriangleText: string;\n\n @Input()\n isLeftTooltip = false;\n\n constructor(\n @Optional()\n @Host()\n @SkipSelf()\n private readonly controlContainer: ControlContainer\n ) {}\n\n ngOnInit() {\n if (this.controlContainer) {\n if (this.name) {\n this.control = this.controlContainer.control.get(this.name);\n if (this.control?.validator) {\n const validator = this.control.validator({} as AbstractControl);\n if (validator?.['required']) {\n this.required = true;\n }\n }\n } else {\n window.console.warn(\n 'Missing FormControlName directive from host element of the component'\n );\n }\n } else {\n window.console.warn(\"Can't find parent FormGroup directive\");\n }\n }\n}\n","<label class=\"mb-2\" for=\"Label\">\n <span [class]=\"labelClass\"\n [ngClass]=\"{ mandatory: required && !control?.disabled }\">\n {{ label }}\n </span>\n <span [ngClass]=\"{ 'left-info-circle': isLeftTooltip }\" class=\"info-circle tooltip-wrap ms-1\" *ngIf=\"showTooltip && tooltipText\">\n <span class=\"tooltiptext gradient-custom-branding\" [ngClass]=\"{ 'left-field-tooltip': isLeftTooltip }\">\n {{ tooltipText }}\n </span>\n </span>\n <span class=\"tooltip-wrap ms-1\"\n *ngIf=\"showTriangle\"\n [pTooltip]=\"'Last month this value was set to ' + showTriangleText\"\n [appendTo]=\"'body'\"\n [tooltipPosition]=\"tooltipPosition || 'top'\">\n <i class=\"fas fa-exclamation-triangle text-warning\"></i>\n </span>\n <!-- after label -->\n <span *ngIf=\"afterLabel && showAfterLabel\"\n [innerHTML]=\"afterLabel\"></span>\n <!-- after label end -->\n</label>\n\n<div class=\"mb-3\">\n <ng-content></ng-content>\n <ng-container *ngIf=\"control?.errors\">\n <pw-field-error-display [displayError]=\"control?.invalid && control?.touched\"\n [errorMsg]=\"errorMsg | transloco\">\n </pw-field-error-display>\n </ng-container>\n</div>\n","import { DragDropModule } from '@angular/cdk/drag-drop';\nimport { CommonModule } from '@angular/common';\nimport { NgModule } from '@angular/core';\nimport { FormsModule, ReactiveFormsModule } from '@angular/forms';\n\nimport { AppLoaderModule } from '@posiwise/app-loader';\nimport { CoreTranslocoModule } from '@posiwise/core-transloco';\nimport { DirectivesModule } from '@posiwise/directives';\nimport {\n FieldErrorDisplayModule,\n ProfileImageCropperModule,\n ResourceHeaderModule\n} from '@posiwise/utils';\n\nimport { AutoCompleteModule } from 'primeng/autocomplete';\nimport { ButtonModule } from 'primeng/button';\nimport { ProgressSpinnerModule } from 'primeng/progressspinner';\nimport { TooltipModule } from 'primeng/tooltip';\n\nimport { NgbTooltipModule } from '@ng-bootstrap/ng-bootstrap';\n\nimport { InputContainerComponent } from './input-container/input-container.component';\nimport { NoDataComponent } from './no-data/no-data.component';\n\n@NgModule({\n declarations: [NoDataComponent, InputContainerComponent],\n imports: [\n CommonModule,\n FormsModule,\n ReactiveFormsModule,\n AppLoaderModule,\n CoreTranslocoModule,\n DirectivesModule,\n ButtonModule,\n NgbTooltipModule,\n TooltipModule,\n ProgressSpinnerModule,\n AutoCompleteModule,\n DragDropModule,\n FieldErrorDisplayModule,\n ProfileImageCropperModule, // ✅ Import the separate module\n ResourceHeaderModule // ✅ Import the separate module\n ],\n exports: [\n ProfileImageCropperModule, // ✅ Re-export module for backward compatibility\n ResourceHeaderModule, // ✅ Re-export module for backward compatibility\n InputContainerComponent,\n NoDataComponent,\n ButtonModule,\n DragDropModule,\n ProgressSpinnerModule,\n AutoCompleteModule,\n TooltipModule,\n FieldErrorDisplayModule\n ]\n})\nexport class ResourceSharedComponentsModule {\n constructor() {\n console.log(\n '🚀 RESOURCE SHARED COMPONENTS MODULE LOADED! - Minimal shared components for resource module'\n );\n }\n}\n","import { Component } from '@angular/core';\n\n@Component({\n templateUrl: './splash.component.html',\n\n standalone: false\n})\nexport class SplashComponent {}\n","<pw-loader [isVisible]=\"true\"></pw-loader>\n","import { Component, Input, OnInit } from '@angular/core';\n\nimport { AppConfigService } from '@posiwise/app-config-service';\n\n@Component({\n selector: 'pw-terms-conditions',\n templateUrl: './terms-conditions.component.html',\n styleUrls: ['./terms-conditions.component.scss'],\n\n standalone: false\n})\nexport class TermsConditionsComponent implements OnInit {\n @Input()\n isPublic = window.location.pathname.includes('terms-conditions');\n\n company_name: string;\n company_number: string;\n company_state: string;\n company_street: string;\n company_email: string;\n company_city: string;\n company_city_code: string;\n\n constructor(private readonly appConfigService: AppConfigService) {}\n\n ngOnInit() {\n this.appConfigService.appConfig$.subscribe(config => {\n this.company_name = config?.['company'].name;\n this.company_number = config?.['company'].number;\n this.company_state = config?.['company'].state;\n this.company_street = config?.['company'].street;\n this.company_email = config?.['company'].email;\n this.company_city = config?.['company'].city;\n this.company_city_code = config?.['company'].city_code;\n });\n }\n}\n","<ng-container *ngIf=\"isPublic\">\n <pw-landing-page-header [landing]=\"false\"></pw-landing-page-header>\n</ng-container>\n\n<div class=\"container pw-tab overflow-hidden\">\n <div class=\"dashboard\">\n <div class=\"dashboard-body\">\n <div [ngClass]=\"{ 'mt-5': isPublic }\">\n <div class=\"row\">\n <div class=\"col-12 terms-of-service\">\n <h1>POSIWISE TERMS AND CONDITIONS</h1>\n <p>Last updated 26/10/2019</p>\n <h2>AGREEMENT TO TERMS</h2>\n <div class=\"clearfix\"></div>\n <p>\n These Terms of Use constitute a legally binding agreement made between\n you, whether personally or on behalf of an entity (“you”) and\n {{ company_name }}, {{ company_street }}, {{ company_city_code }}\n {{ company_city }}\n - {{ company_state }}, {{ company_number }} (“we,” “us” or “our”),\n concerning your access to and use of the {{ company_state }} website as\n well as any other media form, media channel, mobile website or mobile\n application related, linked, or otherwise connected thereto\n (collectively, the “Site”).\n </p>\n <p>\n You agree that by accessing the Site, you have read, understood, and\n agree to be bound by all of these Terms of Use. If you do not agree with\n all of these Terms of Use, then you are expressly prohibited from using\n the Site and you must discontinue use immediately.\n </p>\n <p>\n Supplemental terms and conditions or documents that may be posted on the\n Site from time to time are hereby expressly incorporated herein by\n reference. We reserve the right, in our sole discretion, to make changes\n or modifications to these Terms of Use at any time and for any reason.\n </p>\n <p>\n We will alert you about any changes by updating the “Last updated” date\n of these Terms of Use, and you waive any right to receive specific\n notice of each such change.\n </p>\n <p>\n It is your responsibility to periodically review these Terms of Use to\n stay informed of updates. You will be subject to, and will be deemed to\n have been made aware of and to have accepted, the changes in any revised\n Terms of Use by your continued use of the Site after the date such\n revised Terms of Use are posted.\n </p>\n <p>\n The information provided on the Site is not intended for distribution to\n or use by any person or entity in any jurisdiction or country where such\n distribution or use would be contrary to law or regulation or which\n would subject us to any registration requirement within such\n jurisdiction or country.\n </p>\n <p>\n Accordingly, those persons who choose to access the Site from other\n locations do so on their own initiative and are solely responsible for\n compliance with local laws, if and to the extent local laws are\n applicable.\n </p>\n <p>\n The Site is intended for users who are at least 13 years of age. All\n users who are minors in the jurisdiction in which they reside (generally\n under the age of 18) must have the permission of, and be directly\n supervised by, their parent or guardian to use the Site. If you are a\n minor, you must have your parent or guardian read and agree to these\n Terms of Use prior to you using the Site.\n </p>\n <h2>INTELLECTUAL PROPERTY RIGHTS</h2>\n <p>\n Unless otherwise indicated, the Site is our proprietary property and all\n source code, databases, functionality, software, website designs, audio,\n video, text, photographs, and graphics on the Site (collectively, the\n “Content”) and the trademarks, service marks, and logos contained\n therein (the “Marks”) are owned or controlled by us or licensed to us,\n and are protected by copyright and trademark laws and various other\n intellectual property rights and unfair competition laws of the United\n States, foreign jurisdictions, and international conventions.\n </p>\n <p>\n The Content and the Marks are provided on the Site “AS IS” for your\n information and personal use only. Except as expressly provided in these\n Terms of Use, no part of the Site and no Content or Marks may be copied,\n reproduced, aggregated, republished, uploaded, posted, publicly\n displayed, encoded, translated, transmitted, distributed, sold,\n licensed, or otherwise exploited for any commercial purpose whatsoever,\n without our express prior written permission.\n </p>\n <p>\n Provided that you are eligible to use the Site, you are granted a\n limited license to access and use the Site and to download or print a\n copy of any portion of the Content to which you have properly gained\n access solely for your personal, non-commercial use. We reserve all\n rights not expressly granted to you in and to the Site, the Content and\n the Marks.\n </p>\n <h1>USER REPRESENTATIONS</h1>\n <p>By using the Site, you represent and warrant that:</p>\n <ol>\n <li>\n <p class=\"m-0\">\n all registration information you submit will be true, accurate,\n current, and complete.\n </p>\n </li>\n <li>\n <p class=\"m-0\">\n you will maintain the accuracy of such information and promptly\n update such registration information as necessary.\n </p>\n </li>\n <li>\n <p class=\"m-0\">\n you have the legal capacity and you agree to comply with these\n Terms of Use.\n </p>\n </li>\n <li>\n <p class=\"m-0\">you are not under the age of 13.</p>\n </li>\n <li>\n <p class=\"m-0\">\n not a minor in the jurisdiction in which you reside, or if a\n minor, you have received parental permission to use the Site.\n </p>\n </li>\n <li>\n <p class=\"m-0\">\n you will not access the Site through automated or non-human\n means, whether through a bot, script, or otherwise.\n </p>\n </li>\n <li>\n <p class=\"m-0\">\n you will not use the Site for any illegal or unauthorized\n purpose.\n </p>\n </li>\n <li>\n <p class=\"m-0\">\n your use of the Site will not violate any applicable law or\n regulation.\n </p>\n </li>\n </ol>\n <p>\n If you provide any information that is untrue, inaccurate, not current,\n or incomplete, we have the right to suspend or terminate your account\n and refuse any and all current or future use of the Site (or any portion\n thereof).\n </p>\n <h2>USER REGISTRATION</h2>\n <p>\n You may be required to register with the Site. You agree to keep your\n password confidential and will be responsible for all use of your\n account and password. We reserve the right to remove, reclaim, or change\n a username you select if we determine, in our sole discretion, that such\n username is inappropriate, obscene, or otherwise objectionable.\n </p>\n <h2>PROHIBITED ACTIVITIES</h2>\n <p>\n You may not access or use the Site for any purpose other than that for\n which we make the Site available. The Site may not be used in connection\n with any commercial endeavors except those that are specifically\n endorsed or approved by us.\n </p>\n <p>As a user of the Site, you agree not to:</p>\n\n <ol>\n <li>\n <p class=\"m-0\">\n systematically retrieve data or other content from the Site to\n create or compile, directly or indirectly, a collection,\n compilation, database, or directory without written permission\n from us.\n </p>\n </li>\n <li>\n <p class=\"m-0\">\n make any unauthorized use of the Site, including collecting\n usernames and/or email addresses of users by electronic or other\n means for the purpose of sending unsolicited email, or creating\n user accounts by automated means or under false pretenses.\n </p>\n </li>\n <li>\n <p class=\"m-0\">\n use a buying agent or purchasing agent to make purchases on the\n Site.\n </p>\n </li>\n <li>\n <p class=\"m-0\">\n use the Site to advertise or offer to sell goods and services.\n </p>\n </li>\n <li>\n <p class=\"m-0\">\n circumvent, disable, or otherwise interfere with\n security-related features of the Site, including features that\n prevent or restrict the use or copying of any Content or enforce\n limitations on the use of the Site and/or the Content contained\n therein.\n </p>\n </li>\n <li>\n <p class=\"m-0\">\n engage in unauthorized framing of or linking to the Site.\n </p>\n </li>\n <li>\n <p class=\"m-0\">\n trick, defraud, or mislead us and other users, especially in any\n attempt to learn sensitive account information such as user\n passwords\n </p>\n </li>\n <li>\n <p class=\"m-0\">\n make improper use of our support services or submit false\n reports of abuse or misconduct.\n </p>\n </li>\n <li>\n <p class=\"m-0\">\n engage in any automated use of the system, such as using scripts\n to send comments or messages, or using any data mining, robots,\n or similar data gathering and extraction tools.\n </p>\n </li>\n <li>\n <p class=\"m-0\">\n interfere with, disrupt, or create an undue burden on the Site\n or the networks or services connected to the Site.\n </p>\n </li>\n <li>\n <p class=\"m-0\">\n attempt to impersonate another user or person or use the\n username of another user.\n </p>\n </li>\n <li>\n <p class=\"m-0\">sell or otherwise transfer your profile.</p>\n </li>\n <li>\n <p class=\"m-0\">\n use any information obtained from the Site in order to harass,\n abuse, or harm another person.\n </p>\n </li>\n <li>\n <p class=\"m-0\">\n use the Site as part of any effort to compete with us or\n otherwise use the Site and/or the Content for any\n revenue-generating endeavor or commercial enterprise.\n </p>\n </li>\n <li>\n <p class=\"m-0\">\n decipher, decompile, disassemble, or reverse engineer any of the\n software comprising or in any way making up a part of the Site.\n </p>\n </li>\n <li>\n <p class=\"m-0\">\n attempt to bypass any measures of the Site designed to prevent\n or restrict access to the Site, or any portion of the Site.\n </p>\n </li>\n <li>\n <p class=\"m-0\">\n harass, annoy, intimidate, or threaten any of our employees or\n agents engaged in providing any portion of the Site to you.\n </p>\n </li>\n <li>\n <p class=\"m-0\">\n delete the copyright or other proprietary rights notice from any\n Content.\n </p>\n </li>\n <li>\n <p class=\"m-0\">\n copy or adapt the Site’s software, including but not limited to\n Flash, PHP, HTML, JavaScript, or other code.\n </p>\n </li>\n <li>\n <p class=\"m-0\">\n upload or transmit (or attempt to upload or to transmit)\n viruses, Trojan horses, or other material, including excessive\n use of capital letters and spamming (continuous posting of\n repetitive text), that interferes with any party’s uninterrupted\n use and enjoyment of the Site or modifies, impairs, disrupts,\n alters, or interferes with the use, features, functions,\n operation, or maintenance of the Site.\n </p>\n </li>\n <li>\n <p class=\"m-0\">\n upload or transmit (or attempt to upload or to transmit) any\n material that acts as a passive or active information collection\n or transmission mechanism, including without limitation, clear\n graphics interchange formats (“gifs”), 1×1 pixels, web bugs,\n cookies, or other similar devices (sometimes referred to as\n “spyware” or “passive collection mechanisms” or “pcms”).\n </p>\n </li>\n <li>\n <p class=\"m-0\">\n except as may be the result of standard search engine or\n Internet browser usage, use, launch, develop, or distribute any\n automated system, including without limitation, any spider,\n robot, cheat utility, scraper, or offline reader that accesses\n the Site, or using or launching any unauthorized script or other\n software.\n </p>\n </li>\n <li>\n <p class=\"m-0\">\n disparage, tarnish, or otherwise harm, in our opinion, us and/or\n the Site.\n </p>\n </li>\n <li>\n <p class=\"m-0\">\n use the Site in a manner inconsistent with any applicable laws\n or regulations.\n </p>\n </li>\n </ol>\n\n <h2>USER GENERATED CONTRIBUTIONS</h2>\n\n <p>\n The Site may invite you to chat, contribute to, or participate in blogs,\n message boards, online forums, and other functionality, and may provide\n you with the opportunity to create, submit, post, display, transmit,\n perform, publish, distribute, or broadcast content and materials to us\n or on the Site, including but not limited to text, writings, video,\n audio, photographs, graphics, comments, suggestions, or personal\n information or other material (collectively, \"Contributions\").\n </p>\n <p>\n Contributions may be viewable by other users of the Site and through\n third-party websites. As such, any Contributions you transmit may be\n treated as non-confidential and non-proprietary. When you create or make\n available any Contributions, you thereby represent and warrant that:\n </p>\n\n <ol>\n <li>\n <p class=\"m-0\">\n the creation, distribution, transmission, public display, or\n performance, and the accessing, downloading, or copying of your\n Contributions do not and will not infringe the proprietary\n rights, including but not limited to the copyright, patent,\n trademark, trade secret, or moral rights of any third party.\n </p>\n </li>\n <li>\n <p class=\"m-0\">\n you are the creator and owner of or have the necessary licenses,\n rights, consents, releases, and permissions to use and to\n authorize us, the Site, and other users of the Site to use your\n Contributions in any manner contemplated by the Site and these\n Terms of Use.\n </p>\n </li>\n <li>\n <p class=\"m-0\">\n you have the written consent, release, and/or permission of each\n and every identifiable individual person in your Contributions\n to use the name or likeness of each and every such identifiable\n individual person to enable inclusion and use of your\n Contributions in any manner contemplated by the Site and these\n Terms of Use.\n </p>\n </li>\n <li>\n <p class=\"m-0\">\n your Contributions are not false, inaccurate, or misleading.\n </p>\n </li>\n <li>\n <p class=\"m-0\">\n your Contributions are not unsolicited or unauthorized\n advertising, promotional materials, pyramid schemes, chain\n letters, spam, mass mailings, or other forms of solicitation.\n </p>\n </li>\n <li>\n <p class=\"m-0\">\n your Contributions are not obscene, lewd, lascivious, filthy,\n violent, harassing, libelous, slanderous, or otherwise\n objectionable (as determined by us).\n </p>\n </li>\n <li>\n <p class=\"m-0\">\n your Contributions do not ridicule, mock, disparage, intimidate,\n or abuse anyone.\n </p>\n </li>\n <li>\n <p class=\"m-0\">\n your Contributions do not advocate the violent overthrow of any\n government or incite, encourage, or threaten physical harm\n against another.\n </p>\n </li>\n <li>\n <p class=\"m-0\">\n your Contributions do not violate any applicable law,\n regulation, or rule.\n </p>\n </li>\n <li>\n <p class=\"m-0\">\n your Contributions do not violate the privacy or publicity\n rights of any third party.\n </p>\n </li>\n <li>\n <p class=\"m-0\">\n your Contributions do not contain any material that solicits\n personal information from anyone under the age of 18 or exploits\n people under the age of 18 in a sexual or violent manner.\n </p>\n </li>\n <li>\n <p class=\"m-0\">\n your Contributions do not violate any federal or state law\n concerning child pornography, or otherwise intended to protect\n the health or well-being of minors.\n </p>\n </li>\n <li>\n <p class=\"m-0\">\n your Contributions do not include any offensive comments that\n are connected to race, national origin, gender, sexual\n preference, or physical handicap.\n </p>\n </li>\n <li>\n <p class=\"m-0\">\n your Contributions do not otherwise violate, or link to material\n that violates, any provision of these Terms of Use, or any\n applicable law or regulation.\n </p>\n </li>\n </ol>\n <p>\n Any use of the Site in violation of the foregoing violates these Terms\n of Use and may result in, among other things, termination or suspension\n of your rights to use the Site.\n </p>\n\n <h2>CONTRIBUTION LICENSE</h2>\n\n <p>\n By posting your Contributions to any part of the Site, or making\n Contributions accessible to the Site by linking your account from the\n Site to any of your social networking accounts, you automatically grant,\n and you represent and warrant that you have the right to grant, to us an\n unrestricted, unlimited, irrevocable, perpetual, non-exclusive,\n transferable, royalty-free, fully-paid, worldwide right, and license to\n host, use, copy, reproduce, disclose, sell, resell, publish, broadcast,\n re title, archive, store, cache, publicly perform, publicly display,\n reformat, translate, transmit, excerpt (in whole or in part), and\n distribute such Contributions (including, without limitation, your image\n and voice) for any purpose, commercial, advertising, or otherwise, and\n to prepare derivative works of, or incorporate into other works, such\n Contributions, and grant and authorize sublicense of the foregoing. The\n use and distribution may occur in any media formats and through any\n media channels.\n </p>\n <p>\n This license will apply to any form, media, or technology now known or\n hereafter developed, and includes our use of your name, company name,\n and franchise name, as applicable, and any of the trademarks, service\n marks, trade names, logos, and personal and commercial images you\n provide. You waive all moral rights in your Contributions, and you\n warrant that moral rights have not otherwise been asserted in your\n Contributions.\n </p>\n <p>\n We do not assert any ownership over your Contributions. You retain full\n ownership of all of your Contributions and any intellectual property\n rights or other proprietary rights associated with your Contributions.\n We are not liable for any statements or representations in your\n Contributions provided by you in any area on the Site.\n </p>\n <p>\n You are solely responsible for your Contributions to the Site and you\n expressly agree to exonerate us from any and all responsibility and to\n refrain from any legal action against us regarding your Contributions.\n </p>\n <p>\n We have the right, in our sole and absolute discretion, (1) to edit,\n redact, or otherwise change any Contributions; (2) to re-categorize any\n Contributions to place them in more appropriate locations on the Site;\n and (3) to pre-screen or delete any Contributions at any time and for\n any reason, without notice. We have no obligation to monitor your\n Contributions.\n </p>\n <h2>GUIDELINES FOR REVIEWS</h2>\n <ol>\n <li>\n <p class=\"m-0\">\n We may provide you areas on the Site to leave reviews or\n ratings. When posting a review, you must comply with the\n following criteria:\n </p>\n </li>\n <li>\n <p class=\"m-0\">\n you should have firsthand experience with the person/entity\n being reviewed.\n </p>\n </li>\n <li>\n <p class=\"m-0\">\n your reviews should not contain offensive profanity, or abusive,\n racist, offensive, or hate language.\n </p>\n </li>\n <li>\n <p class=\"m-0\">\n your reviews should not contain discriminatory references based\n on religion, race, gender, national origin, age, marital status,\n sexual orientation, or disability.\n </p>\n </li>\n <li>\n <p class=\"m-0\">\n your reviews should not contain references to illegal activity.\n </p>\n </li>\n <li>\n <p class=\"m-0\">\n you should not be affiliated with competitors if posting\n negative reviews.\n </p>\n </li>\n <li>\n <p class=\"m-0\">\n you should not make any conclusions as to the legality of\n conduct.\n </p>\n </li>\n <li>\n <p class=\"m-0\">\n you may not post any false or misleading statements.\n </p>\n </li>\n <li>\n <p class=\"m-0\">\n you may not organize a campaign encouraging others to post\n reviews, whether positive or negative.\n </p>\n </li>\n </ol>\n <p>\n We may accept, reject, or remove reviews in our sole discretion. We have\n absolutely no obligation to screen reviews or to delete reviews, even if\n anyone considers reviews objectionable or inaccurate. Reviews are not\n endorsed by us, and do not necessarily represent our opinions or the\n views of any of our affiliates or partners.\n </p>\n <p>\n We do not assume liability for any review or for any claims,\n liabilities, or losses resulting from any review. By posting a review,\n you hereby grant to us a perpetual, non-exclusive, worldwide,\n royalty-free, fully-paid, assignable, and sub-licensable right and\n license to reproduce, modify, translate, transmit by any means, display,\n perform, and/or distribute all content relating to reviews.\n </p>\n <h2>MOBILE APPLICATION LICENSE</h2>\n <h3>Use License</h3>\n\n <p>\n If you access the Site via a mobile application, then we grant you a\n revocable, non-exclusive, non-transferable, limited right to install and\n use the mobile application on wireless electronic devices owned or\n controlled by you, and to access and use the mobile application on such\n devices strictly in accordance with the terms and conditions of this\n mobile application license contained in these Terms of Use.\n </p>\n <p>Use License</p>\n <p>\n (1) decompile, reverse engineer, disassemble, attempt to derive the\n source code of, or decrypt the application.\n </p>\n <p>\n (2) make any modification, adaptation, improvement, enhancement,\n translation, or derivative work from the application.\n </p>\n <p>\n (3) violate any applicable laws, rules, or regulations in connection\n with your access or use of the application.\n </p>\n <p>\n (4) remove, alter, or obscure any proprietary notice (including any\n notice of copyright or trademark) posted by us or the licensors of the\n application.\n </p>\n <p>\n (5) use the application for any revenue generating endeavor, commercial\n enterprise, or other purpose for which it is not designed or intended.\n </p>\n <p>\n (6) make the application available over a network or other environment\n permitting access or use by multiple devices or users at the same .\n </p>\n <p>\n (7) use the application for creating a product, service, or software\n that is, directly or indirectly, competitive with or in any way a\n substitute for the application.\n </p>\n <p>\n (8) use the application to send automated queries to any website or to\n send any unsolicited commercial e-mail.\n </p>\n <p>\n (9) use any proprietary information or any of our interfaces or our\n other intellectual property in the design, development, manufacture,\n licensing, or distribution of any applications, accessories, or devices\n for use with the application.\n </p>\n <h3>Apple and Android Devices</h3>\n <p>\n The following terms apply when you use a mobile application obtained\n from either the Apple Store or Google Play (each an “App Distributor”)\n to access the Site:\n </p>\n <p>\n (1) the license granted to you for our mobile application is limited to\n a non-transferable license to use the application on a device that\n utilizes the Apple iOS or Android operating systems, as applicable, and\n in accordance with the usage rules set forth in the applicable\n Distributor’s terms of service\n </p>\n <p>\n (2) we are responsible for providing any maintenance and support\n services with respect to the mobile application as specified in the\n terms and conditions of this mobile application contained in these Terms\n of Use or as otherwise required under applicable law, and you\n acknowledge that each App Distributor has no obligation whatsoever to\n furnish any maintenance and support services with respect to the mobile\n application.\n </p>\n <p>\n (3) in the event of any failure of the mobile application to conform to\n any applicable warranty, you may notify the applicable App Distributor,\n and the App Distributor, in accordance with its terms and policies, may\n refund the purchase price, if any, paid for the mobile application, and\n to the maximum extent permitted by applicable law, the App Distributor\n will have no other warranty obligation whatsoever with respect to the\n mobile application.\n </p>\n <p>\n (4) you represent and warrant that (i) you are not located in a country\n that is subject to a U.S. government embargo, or that has been\n designated by the U.S. government as a “terrorist supporting” country\n and (ii) you are not listed on any U.S. government list of prohibited or\n restricted parties.\n </p>\n <p>\n (5) you must comply with applicable third-party terms of agreement when\n using the mobile application, e.g., if you have a VoIP application, then\n you must not be in violation of their wireless data service agreement\n when using the mobile application.\n </p>\n <p>\n (6) you acknowledge and agree that the App Distributors are third-party\n beneficiaries of the terms and conditions in this mobile application\n license contained in these Terms of Use, and that each App Distributor\n will have the right (and will be deemed to have accepted the right) to\n enforce the terms and conditions in this mobile application license\n contained in these Terms of Use against you as a third-party beneficiary\n thereof.\n </p>\n <h2>SOCIAL MEDIA</h2>\n <p>\n As part of the functionality of the Site, you may link your account with\n online accounts you have with third-party service providers (each such\n account, a “Third-Party Account”) by either:\n </p>\n\n <ol>\n <li>\n <p class=\"m-0\">\n providing your Third-Party Account login information through the\n Site; or\n </p>\n </li>\n <li>\n <p class=\"m-0\">\n allowing us to access your Third-Party Account, as is permitted\n under the applicable terms and conditions that govern your use\n of each Third-Party Account.\n </p>\n </li>\n </ol>\n\n <p>\n You represent and warrant that you are entitled to disclose your\n Third-Party Account login information to us and/or grant us access to\n your Third-Party Account, without breach by you of any of the terms and\n conditions that govern your use of the applicable Third-Party Account,\n and without obligating us to pay any fees or making us subject to any\n usage limitations imposed by the third-party service provider of the\n Third-Party Account.\n </p>\n <p>\n By granting us access to any Third-Party Accounts, you understand that\n (1) we may access, make available, and store (if applicable) any content\n that you have provided to and stored in your Third-Party Account (the\n “Social Network Content”) so that it is available on and through the\n Site via your account, including without limitation any friend lists and\n (2) we may submit to and receive from your Third-Party Account\n additional information to the extent you are notified when you link your\n account with the Third-Party Account.\n </p>\n <p>\n Depending on the Third-Party Accounts you choose and subject to the\n privacy settings that you have set in such Third-Party Accounts,\n personally identifiable information that you post to your Third-Party\n Accounts may be available on and through your account on the Site.\n </p>\n <p>\n Please note that if a Third-Party Account or associated service becomes\n unavailable or our access to such Third-Party Account is terminated by\n the third-party service provider, then Social Network Content may no\n longer be available on and through the Site. You will have the ability\n to disable the connection between your account on the Site and your\n Third-Party Accounts at any time.\n </p>\n\n <p>\n PLEASE NOTE THAT YOUR RELATIONSHIP WITH THE THIRD-PARTY SERVICE\n PROVIDERS ASSOCIATED WITH YOUR THIRD-PARTY ACCOUNTS IS GOVERNED SOLELY\n BY YOUR AGREEMENT(S) WITH SUCH THIRD-PARTY SERVICE PROVIDERS.\n </p>\n <p>\n We make no effort to review any Social Network Content for any purpose,\n including but not limited to, for accuracy, legality, or\n non-infringement, and we are not responsible for any Social Network\n Content.\n </p>\n <p>\n You acknowledge and agree that we may access your email address book\n associated with a Third-Party Account and your contacts list stored on\n your mobile device or tablet computer solely for purposes of identifying\n and informing you of those contacts who have also registered to use the\n Site.\n </p>\n <p>\n You acknowledge and agree that we may access your email address book\n associated with a Third-Party Account and your contacts list stored on\n your mobile device or tablet computer solely for purposes of identifying\n and informing you of those contacts who have also registered to use the\n Site.\n </p>\n <h2>SUBMISSIONS</h2>\n <p>\n You acknowledge and agree that any questions, comments, suggestions,\n ideas, feedback, or other information regarding the Site (\"Submissions\")\n provided by you to us are non-confidential and shall become our sole\n property. We shall own exclusive rights, including all intellectual\n property rights, and shall be entitled to the unrestricted use and\n dissemination of these Submissions for any lawful purpose, commercial or\n otherwise, without acknowledgment or compensation to you.\n </p>\n <p>\n You hereby waive all moral rights to any such Submissions, and you\n hereby warrant that any such Submissions are original with you or that\n you have the right to submit such Submissions. You agree there shall be\n no recourse against us for any alleged or actual infringement or\n misappropriation of any proprietary right in your Submissions.\n </p>\n <h2>THIRD-PARTY WEBSITES AND CONTENT</h2>\n <p>\n The Site may contain (or you may be sent via the Site) links to other\n websites (\"Third-Party Websites\") as well as articles, text, graphics,\n pictures, designs, music, sound, video, information, applications,\n software, and other content or items belonging to or originating from\n third parties (\"Third-Party Content\").\n </p>\n <p>\n Such Third-Party Websites and Third-Party Content are not investigated,\n monitored, or checked for accuracy, appropriateness, or completeness by\n us, and we are not responsible for any Third-Party Websites accessed\n through the Site or any Third-Party Content posted on, available\n through, or installed from the Site, including the content, accuracy,\n offensiveness, opinions, reliability, privacy practices, or other\n policies of or contained in the Third-Party Websites or the Third-Party\n Content.\n </p>\n <p>\n Inclusion of, linking to, or permitting the use or installation of any\n Third-Party Websites or any Third-Party Content does not imply approval\n or endorsement thereof by us. If you decide to leave the Site and access\n the Third-Party Websites or to use or install any Third-Party Content,\n you do so at your own risk, and you should be aware these Terms of Use\n no longer govern.\n </p>\n <p>\n You should review the applicable terms and policies, including privacy\n and data gathering practices, of any website to which you navigate from\n the Site or relating to any applications you use or install from the\n Site. Any purchases you make through Third-Party Websites will be\n through other websites and from other companies, and we take no\n responsibility whatsoever in relation to such purchases which are\n exclusively between you and the applicable third party.\n </p>\n <p>\n You agree and acknowledge that we do not endorse the products or\n services offered on Third-Party Websites and you shall hold us harmless\n from any harm caused by your purchase of such products or services.\n Additionally, you shall hold us harmless from any losses sustained by\n you or harm caused to you relating to or resulting in any way from any\n Third-Party Content or any contact with Third-Party Websites.\n </p>\n <h2>ADVERTISERS</h2>\n <p>\n We allow advertisers to display their advertisements and other\n information in certain areas of the Site, such as sidebar advertisements\n or banner advertisements. If you are an advertiser, you shall take full\n responsibility for any advertisements you place on the Site and any\n services provided on the Site or products sold through those\n advertisements.\n </p>\n <p>\n Further, as an advertiser, you warrant and represent that you possess\n all rights and authority to place advertisements on the Site, including,\n but not limited to, intellectual property rights, publicity rights, and\n contractual rights.\n </p>\n <p>\n As an advertiser, you agree that such advertisements are subject to our\n Digital Millennium Copyright Act (“DMCA”) Notice and Policy provisions\n as described below, and you understand and agree there will be no refund\n or other compensation for DMCA take down-related issues. We simply\n provide the space to place such advertisements, and we have no other\n relationship with advertisers.\n </p>\n <h2>SITE MANAGEMENT</h2>\n <p>We reserve the right, but not the obligation, to:</p>\n <p>(1) monitor the Site for violations of these Terms of Use.</p>\n <p>\n (2) take appropriate legal action against anyone who, in our sole\n discretion, violates the law or these Terms of Use, including without\n limitation, reporting such user to law enforcement authorities.\n </p>\n <p>\n (3) in our sole discretion and without limitation, refuse, restrict\n access to, limit the availability of, or disable (to the extent\n technologically feasible) any of your Contributions or any portion\n thereof\n </p>\n <p>\n (4) in our sole discretion and without limitation, notice, or liability,\n to remove from the Site or otherwise disable all files and content that\n are excessive in size or are in any way burdensome to our systems.\n </p>\n <p>\n (5) otherwise manage the Site in a manner designed to protect our rights\n and property and to facilitate the proper functioning of the Site.\n </p>\n <h2>PRIVACY POLICY</h2>\n <p>\n We care about data privacy and security. Please review our Privacy\n Policy: <a href=\"/privacy-policy\">click here</a>. By using the Site, you\n agree to be bound by our Privacy Policy, which is incorporated into\n these Terms of Use. Please be advised the Site is hosted in the United\n States.\n </p>\n <p>\n If you access the Site from the European Union, Asia, or any other\n region of the world with laws or other requirements governing personal\n data collection, use, or disclosure that differ from applicable laws in\n the United States, then through your continued use of the Site, you are\n transferring your data to the United States, and you expressly consent\n to have your data transferred to and processed in the United States.\n </p>\n <p>\n Further, we do not knowingly accept, request, or solicit information\n from children or knowingly market to children. Therefore, in accordance\n with the U.S. Children’s Online Privacy Protection Act, if we receive\n actual knowledge that anyone under the age of 13 has provided personal\n information to us without the requisite and verifiable parental consent,\n we will delete that information from the Site as quickly as is\n reasonably practical.\n </p>\n <h2>DIGITAL MILLENNIUM COPYRIGHT ACT (DMCA) NOTICE AND POLICY</h2>\n <h3>Notifications</h3>\n <p>\n We respect the intellectual property rights of others. If you believe\n that any material available on or through the Site infringes upon any\n copyright you own or control, please immediately notify our Designated\n Copyright Agent using the contact information provided below (a\n “Notification”).\n </p>\n <p>\n A copy of your Notification will be sent to the person who posted or\n stored the material addressed in the Notification. Please be advised\n that pursuant to federal law you may be held liable for damages if you\n make material misrepresentations in a Notification. Thus, if you are not\n sure that material located on or linked to by the Site infringes your\n copyright, you should consider first contacting an attorney.\n </p>\n <p>\n All Notifications should meet the requirements of DMCA 17 U.S.C. §\n 512(c)(3) and include the following information:\n </p>\n <p>\n (1) A physical or electronic signature of a person authorized to act on\n behalf of the owner of an exclusive right that is allegedly infringed.\n </p>\n <p>\n (2) identification of the copyrighted work claimed to have been\n infringed, or, if multiple copyrighted works on the Site are covered by\n the Notification, a representative list of such works on the Site\n </p>\n <p>\n (3) information reasonably sufficient to permit us to contact the\n complaining party, such as an address, telephone number, and, if\n available, an email address at which the complaining party may be\n contacted.\n </p>\n <p>\n (4) a statement that the complaining party has a good faith belief that\n use of the material in the manner complained of is not authorized by the\n copyright owner, its agent, or the law.\n </p>\n <p>\n (5) a statement that the information in the notification is accurate,\n and under penalty of perjury, that the complaining party is authorized\n to act on behalf of the owner of an exclusive right that is allegedly\n infringed upon.\n </p>\n <h3>Counter Notification</h3>\n <p>\n If you believe your own copyrighted material has been removed from the\n Site as a result of a mistake or mis identification, you may submit a\n written counter notification to us using the contact information\n provided below (a “Counter Notification”).\n </p>\n <p>\n To be an effective Counter Notification under the DMCA, your Counter\n Notification must include substantially the following:\n </p>\n <p>\n (1) identification of the material that has been removed or disabled and\n the location at which the material appeared before it was removed or\n disabled.\n </p>\n <p>\n (2) a statement that you consent to the jurisdiction of the Federal\n District Court in which your address is located, or if your address is\n outside the United States, for any judicial district in which we are\n located.\n </p>\n <p>\n (3) a statement that you will accept service of process from the party\n that filed the Notification or the party's agent.\n </p>\n <p>(4) your name, address, and telephone number.</p>\n <p>\n (5) a statement under penalty of perjury that you have a good faith\n belief that the material in question was removed or disabled as a result\n of a mistake or mis identification of the material to be removed or\n disabled\n </p>\n <p>(6) your physical or electronic signature.</p>\n <p>\n If you send us a valid, written Counter Notification meeting the\n requirements described above, we will restore your removed or disabled\n material, unless we first receive notice from the party filing the\n Notification informing us that such party has filed a court action to\n restrain you from engaging in infringing activity related to the\n material in question.\n </p>\n <p>\n Please note that if you materially misrepresent that the disabled or\n removed content was removed by mistake or mis-identification, you may be\n liable for damages, including costs and attorney's fees. Filing a false\n Counter Notification constitutes perjury.\n </p>\n <p>\n Designated Copyright Agent\n <br />\n {{ company_name }}\n <br />\n Attn: Copyright Agent\n <br />\n {{ company_email }}\n </p>\n <h2>COPYRIGHT INFRINGEMENTS</h2>\n <p>\n We respect the intellectual property rights of others. If you believe\n that any material available on or through the Site infringes upon any\n copyright you own or control, please immediately notify us using the\n contact information provided below (a “Notification”). A copy of your\n Notification will be sent to the person who posted or stored the\n material addressed in the Notification.\n </p>\n <p>\n Please be advised that pursuant to federal law you may be held liable\n for damages if you make material misrepresentations in a Notification.\n Thus, if you are not sure that material located on or linked to by the\n Site infringes your copyright, you should consider first contacting an\n attorney.\n </p>\n <h2>TERM AND TERMINATION</h2>\n <p>\n These Terms of Use shall remain in full force and effect while you use\n the Site. WITHOUT LIMITING ANY OTHER PROVISION OF THESE TERMS OF USE, WE\n RESERVE THE RIGHT TO, IN OUR SOLE DISCRETION AND WITHOUT NOTICE OR\n LIABILITY, DENY ACCESS TO AND USE OF THE SITE (INCLUDING BLOCKING\n CERTAIN IP ADDRESSES), TO ANY PERSON FOR ANY REASON OR FOR NO REASON,\n INCLUDING WITHOUT LIMITATION FOR BREACH OF ANY REPRESENTATION, WARRANTY,\n OR COVENANT CONTAINED IN THESE TERMS OF USE OR OF ANY APPLICABLE LAW OR\n REGULATION. WE MAY TERMINATE YOUR USE OR PARTICIPATION IN THE SITE OR\n DELETE YOUR ACCOUNT AND ANY CONTENT OR INFORMATION THAT YOU POSTED AT\n ANY TIME, WITHOUT WARNING, IN OUR SOLE DISCRETION.\n </p>\n <p>\n If we terminate or suspend your account for any reason, you are\n prohibited from registering and creating a new account under your name,\n a fake or borrowed name, or the name of any third party, even if you may\n be acting on behalf of the third party.\n </p>\n <p>\n In addition to terminating or suspending your account, we reserve the\n right to take appropriate legal action, including without limitation\n pursuing civil, criminal, and injunctive redress.\n </p>\n <h2>MODIFICATIONS AND INTERRUPTIONS</h2>\n <p>\n We reserve the right to change, modify, or remove the contents of the\n Site at any time or for any reason at our sole discretion without\n notice. However, we have no obligation to update any information on our\n Site. We also reserve the right to modify or discontinue all or part of\n the Site without notice at any time.\n </p>\n <p>\n We will not be liable to you or any third party for any modification,\n price change, suspension, or discontinuance of the Site.\n </p>\n <p>\n We cannot guarantee the Site will be available at all times. We may\n experience hardware, software, or other problems or need to perform\n maintenance related to the Site, resulting in interruptions, delays, or\n errors.\n </p>\n <p>\n We reserve the right to change, revise, update, suspend, discontinue, or\n otherwise modify the Site at any time or for any reason without notice\n to you. You agree that we have no liability whatsoever for any loss,\n damage, or inconvenience caused by your inability to access or use the\n Site during any downtime or discontinuance of the Site.\n </p>\n <p>\n Nothing in these Terms of Use will be construed to obligate us to\n maintain and support the Site or to supply any corrections, updates, or\n releases in connection therewith.\n </p>\n <h2>GOVERNING LAW</h2>\n <p>\n For any dispute relating to the entering into effect, validity,\n interpretation, execution, suspension, termination and forcible\n execution of this Contract, the Courts of the judicial district of\n Brussels have jurisdiction. Belgian law governs this Contract, excluding\n provisions of private international law pertinent to the applicable law,\n and the Vienna Convention on contracts for the international sale of\n real property (Vienna, April 11, 1980).\n </p>\n <h2>DISPUTE RESOLUTION</h2>\n <p>\n The parties shall endeavour to settle any dispute arising out of or\n relating to this agreement, including with regard to its existence,\n validity or termination, by mediation before having recourse to\n arbitration or litigation.\n </p>\n <p>\n Any legal action of whatever nature brought by either you or us\n (collectively, the “Parties” and individually, a “Party”) shall be\n commenced or prosecuted in the state and federal courts located in\n Brussels, Belgium, and the Parties hereby consent to, and waive all\n defenses of lack of personal jurisdiction and forum non convenient with\n respect to venue and jurisdiction in such state and federal courts.\n </p>\n <p>\n Application of the United Nations Convention on Contracts for the\n International Sale of Goods and the Uniform Computer Information\n Transaction Act (UCITA) are excluded from these Terms of Use. In no\n event shall any claim, action, or proceeding brought by either Party\n related in any way to the Site be commenced more than 2 years after the\n cause of action arose.\n </p>\n <h2>CORRECTIONS</h2>\n <p>\n There may be information on the Site that contains typographical errors,\n inaccuracies, or omissions that may relate to the Site, including\n descriptions, pricing, availability, and various other information. We\n reserve the right to correct any errors, inaccuracies, or omissions and\n to change or update the information on the Site at any time, without\n prior notice.\n </p>\n <h2>DISCLAIMER</h2>\n <p>\n THE SITE IS PROVIDED ON AN AS-IS AND AS-AVAILABLE BASIS. YOU AGREE THAT\n YOUR USE OF THE SITE AND OUR SERVICES WILL BE AT YOUR SOLE RISK. TO THE\n FULLEST EXTENT PERMITTED BY LAW, WE DISCLAIM ALL WARRANTIES, EXPRESS OR\n IMPLIED, IN CONNECTION WITH THE SITE AND YOUR USE THEREOF, INCLUDING,\n WITHOUT LIMITATION, THE IMPLIED WARRANTIES OF MERCHANTABILITY, FITNESS\n FOR A PARTICULAR PURPOSE, AND NON-INFRINGEMENT. WE MAKE NO WARRANTIES OR\n REPRESENTATIONS ABOUT THE ACCURACY OR COMPLETENESS OF THE SITE’S CONTENT\n OR THE CONTENT OF ANY WEBSITES LINKED TO THE SITE AND WE WILL ASSUME NO\n LIABILITY OR RESPONSIBILITY FOR ANY (1) ERRORS, MISTAKES, OR\n INACCURACIES OF CONTENT AND MATERIALS, (2) PERSONAL INJURY OR PROPERTY\n DAMAGE, OF ANY NATURE WHATSOEVER, RESULTING FROM YOUR ACCESS TO AND USE\n OF THE SITE, (3) ANY UNAUTHORIZED ACCESS TO OR USE OF OUR SECURE SERVERS\n AND/OR ANY AND ALL PERSONAL INFORMATION AND/OR FINANCIAL INFORMATION\n STORED THEREIN, (4) ANY INTERRUPTION OR CESSATION OF TRANSMISSION TO OR\n FROM THE SITE, (5) ANY BUGS, VIRUSES, TROJAN HORSES, OR THE LIKE WHICH\n MAY BE TRANSMITTED TO OR THROUGH THE SITE BY ANY THIRD PARTY, AND/OR (6)\n ANY ERRORS OR OMISSIONS IN ANY CONTENT AND MATERIALS OR FOR ANY LOSS OR\n DAMAGE OF ANY KIND INCURRED AS A RESULT OF THE USE OF ANY CONTENT\n POSTED, TRANSMITTED, OR OTHERWISE MADE AVAILABLE VIA THE SITE. WE DO NOT\n WARRANT, ENDORSE, GUARANTEE, OR ASSUME RESPONSIBILITY FOR ANY PRODUCT OR\n SERVICE ADVERTISED OR OFFERED BY A THIRD PARTY THROUGH THE SITE, ANY\n HYPERLINKED WEBSITE, OR ANY WEBSITE OR MOBILE APPLICATION FEATURED IN\n ANY BANNER OR OTHER ADVERTISING, AND WE WILL NOT BE A PARTY TO OR IN ANY\n WAY BE RESPONSIBLE FOR MONITORING ANY TRANSACTION BETWEEN YOU AND ANY\n THIRD-PARTY PROVIDERS OF PRODUCTS OR SERVICES.\n </p>\n <p>\n AS WITH THE PURCHASE OF A PRODUCT OR SERVICE THROUGH ANY MEDIUM OR IN\n ANY ENVIRONMENT, YOU SHOULD USE YOUR BEST JUDGMENT AND EXERCISE CAUTION\n WHERE APPROPRIATE.\n </p>\n <h2>LIMITATIONS OF LIABILITY</h2>\n <p>\n IN NO EVENT WILL WE OR OUR DIRECTORS, EMPLOYEES, OR AGENTS BE LIABLE TO\n YOU OR ANY THIRD PARTY FOR ANY DIRECT, INDIRECT, CONSEQUENTIAL,\n EXEMPLARY, INCIDENTAL, SPECIAL, OR PUNITIVE DAMAGES, INCLUDING LOST\n PROFIT, LOST REVENUE, LOSS OF DATA, OR OTHER DAMAGES ARISING FROM YOUR\n USE OF THE SITE, EVEN IF WE HAVE BEEN ADVISED OF THE POSSIBILITY OF SUCH\n DAMAGES.\n </p>\n <p>\n NOTWITHSTANDING ANYTHING TO THE CONTRARY CONTAINED HEREIN, OUR LIABILITY\n TO YOU FOR ANY CAUSE WHATSOEVER AND REGARDLESS OF THE FORM OF THE\n ACTION, WILL AT ALL TIMES BE LIMITED TO THE LESSER OF THE AMOUNT PAID,\n IF ANY, BY YOU TO US DURING THE 6 (SIX) MONTH PERIOD PRIOR TO ANY CAUSE\n OF ACTION ARISING OR $10.000 (TEN THOUSAND DOLLARS). CERTAIN STATE LAWS\n DO NOT ALLOW LIMITATIONS ON IMPLIED WARRANTIES OR THE EXCLUSION OR\n LIMITATION OF CERTAIN DAMAGES.\n </p>\n <p>\n IF THESE LAWS APPLY TO YOU, SOME OR ALL OF THE ABOVE DISCLAIMERS OR\n LIMITATIONS MAY NOT APPLY TO YOU, AND YOU MAY HAVE ADDITIONAL RIGHTS.\n </p>\n <h2>INDEMNIFICATION</h2>\n <p>\n You agree to defend, indemnify, and hold us harmless, including our\n subsidiaries, affiliates, and all of our respective officers, agents,\n partners, and employees, from and against any loss, damage, liability,\n claim, or demand, including reasonable attorneys’ fees and expenses,\n made by any third party due to or arising out of: (1) your\n Contributions; (2) use of the Site; (3) breach of these Terms of Use;\n (4) any breach of your representations and warranties set forth in these\n Terms of Use; (5) your violation of the rights of a third party,\n including but not limited to intellectual property rights; or (6) any\n overt harmful act toward any other user of the Site with whom you\n connected via the Site.\n </p>\n <p>\n Notwithstanding the foregoing, we reserve the right, at your expense, to\n assume the exclusive defense and control of any matter for which you are\n required to indemnify us, and you agree to cooperate, at your expense,\n with our defense of such claims. We will use reasonable efforts to\n notify you of any such claim, action, or proceeding which is subject to\n this indemnification upon becoming aware of it.\n </p>\n <h2>USER DATA</h2>\n <p>\n We will maintain certain data that you transmit to the Site for the\n purpose of managing the Site, as well as data relating to your use of\n the Site. Although we perform regular routine backups of data, you are\n solely responsible for all data that you transmit or that relates to any\n activity you have undertaken using the Site.\n </p>\n <p>\n You agree that we shall have no liability to you for any loss or\n corruption of any such data, and you hereby waive any right of action\n against us arising from any such loss or corruption of such data.\n </p>\n <h2>ELECTRONIC COMMUNICATIONS, TRANSACTIONS, AND SIGNATURES</h2>\n <p>\n Visiting the Site, sending us emails, and completing online forms\n constitute electronic communications. You consent to receive electronic\n communications, and you agree that all agreements, notices, disclosures,\n and other communications we provide to you electronically, via email and\n on the Site, satisfy any legal requirement that such communication be in\n writing.\n </p>\n <p>\n YOU HEREBY AGREE TO THE USE OF ELECTRONIC SIGNATURES, CONTRACTS, ORDERS,\n AND OTHER RECORDS, AND TO ELECTRONIC DELIVERY OF NOTICES, POLICIES, AND\n RECORDS OF TRANSACTIONS INITIATED OR COMPLETED BY US OR VIA THE SITE.\n </p>\n <p>\n You hereby waive any rights or requirements under any statutes,\n regulations, rules, ordinances, or other laws in any jurisdiction which\n require an original signature or delivery or retention of non-electronic\n records, or to payments or the granting of credits by any means other\n than electronic means.\n </p>\n\n <h2>MISCELLANEOUS</h2>\n <p>\n These Terms of Use and any policies or operating rules posted by us on\n the Site constitute the entire agreement and understanding between you\n and us. Our failure to exercise or enforce any right or provision of\n these Terms of Use shall not operate as a waiver of such right or\n provision.\n </p>\n <p>\n These Terms of Use operate to the fullest extent permissible by law. We\n may assign any or all of our rights and obligations to others at any\n time. We shall not be responsible or liable for any loss, damage, delay,\n or failure to act caused by any cause beyond our reasonable control.\n </p>\n <p>\n If any provision or part of a provision of these Terms of Use is\n determined to be unlawful, void, or unenforceable, that provision or\n part of the provision is deemed severable from these Terms of Use and\n does not affect the validity and enforceability of any remaining\n provisions.\n </p>\n <p>\n There is no joint venture, partnership, employment or agency\n relationship created between you and us as a result of these Terms of\n Use or use of the Site. You agree that these Terms of Use will not be\n construed against us by virtue of having drafted them.\n </p>\n <p>\n You hereby waive any and all defenses you may have based on the\n electronic form of these Terms of Use and the lack of signing by the\n parties hereto to execute these Terms of Use.\n </p>\n <h2>CONTACT US</h2>\n <p>\n In order to resolve a complaint regarding the Site or to receive further\n information regarding use of the Site, please contact us at:\n <br />{{ company_name }}, {{ company_street }}, {{ company_city_code }}\n {{ company_city }} - {{ company_state }}\n </p>\n <h3>Questions and Comments</h3>\n <p>\n If you have any questions about this Agreement, please\n <a href=\"mailto:{{ company_email }}\">let us know</a>.\n </p>\n </div>\n </div>\n </div>\n </div>\n </div>\n</div>\n<pw-landing-page-footer-b></pw-landing-page-footer-b>\n","import { CommonModule, NgIf } from '@angular/common';\nimport { NgModule } from '@angular/core';\nimport { FormsModule, ReactiveFormsModule } from '@angular/forms';\nimport { RouterModule } from '@angular/router';\n\nimport { AppLoaderModule } from '@posiwise/app-loader';\nimport { CoreTranslocoModule } from '@posiwise/core-transloco';\nimport { DirectivesModule } from '@posiwise/directives';\nimport { PipesModule } from '@posiwise/pipes';\nimport { FieldErrorDisplayModule } from '@posiwise/utils';\n\nimport { NgxDaterangepickerMd } from 'ngx-daterangepicker-material';\nimport { ImageCropperModule } from 'ngx-image-cropper';\nimport { UiSwitchModule } from 'ngx-ui-switch';\nimport { AutoCompleteModule } from 'primeng/autocomplete';\nimport { ButtonModule } from 'primeng/button';\nimport { MultiSelectModule } from 'primeng/multiselect';\nimport { ProgressSpinnerModule } from 'primeng/progressspinner';\nimport { SelectModule } from 'primeng/select';\nimport { TableModule } from 'primeng/table';\nimport { TabMenuModule } from 'primeng/tabmenu';\n\nimport { NgbModalModule, NgbNavModule, NgbTooltipModule } from '@ng-bootstrap/ng-bootstrap';\n\nimport { AuthenticatorComponent } from './authenticator/authenticator.component';\nimport { ClearBitIconComponent } from './clearbit-icon/clearbit-icon.component';\nimport { ComingSoonComponent } from './coming-soon/coming-soon.component';\nimport { HeaderComponent } from './header/header.component';\nimport { EntityGroupComponent } from './label-management/entity-group/entity-group.component';\nimport { GroupDefinitionComponent } from './label-management/group-definition/group-definition.component';\nimport { GroupsComponent } from './label-management/groups/groups.component';\nimport { LandingPageFooterBComponent } from './landing-page-footer-b/landing-page-footer-b.component';\nimport { NumberPickerComponent } from './number-picker/number-picker.component';\nimport { PasswordValidationComponent } from './password-validation/password-validation.component';\nimport { PermissionTreeComponent } from './permission-tree/permission-tree.component';\nimport { PrivacyAndTosComponent } from './privacy-and-tos/privacy-and-tos.component';\nimport { PrivacyPolicyComponent } from './privacy-policy/privacy-policy.component';\nimport { PwTabsComponent } from './pw-tabs/pw-tabs.component';\nimport { DateRangePickerComponent } from './range-date-picker/date-range-picker.component';\nimport { ResourceSharedComponentsModule } from './resource-shared-components.module';\nimport { SplashComponent } from './splash/splash.component';\nimport { TermsConditionsComponent } from './terms-conditions/terms-conditions.component';\n\n// All modules needed for both landing page and dashboard\nconst allModules = [\n NgbTooltipModule,\n NgbNavModule,\n NgbModalModule,\n TableModule,\n TabMenuModule,\n ButtonModule,\n SelectModule,\n MultiSelectModule,\n ProgressSpinnerModule,\n AutoCompleteModule,\n ImageCropperModule,\n UiSwitchModule,\n NgxDaterangepickerMd.forRoot()\n];\n\n@NgModule({\n declarations: [\n PasswordValidationComponent,\n PwTabsComponent,\n DateRangePickerComponent,\n PermissionTreeComponent,\n PrivacyAndTosComponent,\n PrivacyPolicyComponent,\n TermsConditionsComponent,\n SplashComponent,\n AuthenticatorComponent,\n ClearBitIconComponent,\n ComingSoonComponent,\n\n EntityGroupComponent,\n GroupsComponent,\n GroupDefinitionComponent,\n NumberPickerComponent,\n HeaderComponent,\n LandingPageFooterBComponent\n ],\n imports: [\n FormsModule,\n AppLoaderModule,\n ReactiveFormsModule,\n DirectivesModule,\n CoreTranslocoModule,\n RouterModule,\n allModules,\n PipesModule,\n CommonModule,\n NgIf,\n FieldErrorDisplayModule,\n ResourceSharedComponentsModule\n ],\n exports: [\n PasswordValidationComponent,\n PwTabsComponent,\n DateRangePickerComponent,\n allModules,\n PermissionTreeComponent,\n PrivacyAndTosComponent,\n PrivacyPolicyComponent,\n TermsConditionsComponent,\n SplashComponent,\n AuthenticatorComponent,\n ClearBitIconComponent,\n ComingSoonComponent,\n EntityGroupComponent,\n GroupsComponent,\n GroupDefinitionComponent,\n NumberPickerComponent,\n HeaderComponent,\n LandingPageFooterBComponent,\n FieldErrorDisplayModule,\n ResourceSharedComponentsModule\n ]\n})\nexport class SharedComponentsModule {\n constructor() {\n console.log('🚀 SHARED COMPONENTS MODULE LOADED! - Shared UI components');\n }\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":["i1","i2","i3","i4","i8","i10","i11.NoDataComponent","i12","i5","i6","i7.NoDataComponent","i7","i8.NoDataComponent","i9","i6.HeaderComponent","i3.LandingPageFooterBComponent"],"mappings":"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"}
|