@posiwise/shared-components 0.0.12 → 0.0.14
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.
- package/esm2020/index.mjs +3 -1
- package/esm2020/lib/permission-tree/permission-tree.component.mjs +113 -0
- package/esm2020/lib/pw-tabs/pw-tabs.component.mjs +50 -0
- package/esm2020/lib/shared-components.module.mjs +24 -10
- package/fesm2015/shared-components.mjs +178 -8
- package/fesm2015/shared-components.mjs.map +1 -1
- package/fesm2020/shared-components.mjs +177 -8
- package/fesm2020/shared-components.mjs.map +1 -1
- package/index.d.ts +2 -0
- package/lib/permission-tree/permission-tree.component.d.ts +15 -0
- package/lib/pw-tabs/pw-tabs.component.d.ts +16 -0
- package/lib/shared-components.module.d.ts +8 -5
- package/package.json +3 -3
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"shared-components.mjs","sources":["../../../../libs/shared-components/src/lib/ab-test/ab-test-container/ab-test-container.component.ts","../../../../libs/shared-components/src/lib/ab-test/ab-alternative/ab-alternative.component.ts","../../../../libs/shared-components/src/lib/ab-test/ab-alternative/ab-alternative.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/image-cropper/image-cropper.component.ts","../../../../libs/shared-components/src/lib/image-cropper/image-cropper.component.html","../../../../libs/shared-components/src/lib/custom-uploader/custom-uploader.component.ts","../../../../libs/shared-components/src/lib/custom-uploader/custom-uploader.component.html","../../../../libs/shared-components/src/lib/shared-components.module.ts","../../../../libs/shared-components/src/shared-components.ts"],"sourcesContent":["import { Component, Input, OnInit } from '@angular/core';\n\nimport { AB_TEST_ACTIONS } from '@posiwise/common-utilities';\nimport { Experiment } from '../ab-test.interface';\nimport { AbTestService } from '@posiwise/common-services';\n\n@Component({\n // eslint-disable-next-line @angular-eslint/component-selector\n selector: 'pw-ab-test-container',\n template: '<ng-content></ng-content>'\n})\nexport class AbTestContainerComponent implements OnInit {\n @Input()\n experimentName: string;\n\n @Input()\n serviceName: string;\n\n data: Experiment;\n\n /**\n * Specifies boolean to show the experiment as fallback\n */\n showDefaultExperiment = false;\n\n constructor(private service: AbTestService) {}\n\n ngOnInit(): void {\n this.getExperiment();\n }\n\n private getExperiment() {\n this.service\n .getExperiment(this.experimentName, AB_TEST_ACTIONS.START, this.serviceName)\n .subscribe({\n next: (response: Experiment) => {\n this.showDefaultExperiment = false;\n this.data = response || ({} as Experiment);\n },\n error: () => {\n // in case the api for experiment fails, we show the default experiment\n this.showDefaultExperiment = true;\n }\n });\n }\n}\n","import { Component, Input } from '@angular/core';\n\nimport { AbTestContainerComponent } from '../ab-test-container/ab-test-container.component';\n\n@Component({\n // eslint-disable-next-line @angular-eslint/component-selector\n selector: 'ab-alternative',\n templateUrl: './ab-alternative.component.html'\n})\nexport class AbAlternativeComponent {\n @Input()\n name: string;\n\n /**\n * Specficies AbTestContainerComponent instance template reference\n */\n @Input()\n ref: AbTestContainerComponent;\n\n /**\n * If the getExperiment call fails, it can be set to show the experiment\n * as fallback\n */\n @Input()\n default = false;\n}\n","<!-- renders the template for the started experiment.\nin case of error, render the template marked as default=true -->\n<ng-template [ngIf]=\"\n ref?.data?.alternative === name || (default === true && ref.showDefaultExperiment === true)\n \">\n <ng-content></ng-content>\n</ng-template>\n","import { Component, EventEmitter, Injector, Output, TemplateRef, ViewChild } from '@angular/core';\nimport { NgbModal } from '@ng-bootstrap/ng-bootstrap';\nimport { StatusCodes } from 'http-status-codes';\n\nimport { AppBaseComponent } from '@posiwise/app-base-component';\n\n@Component({\n selector: 'pw-password-validation',\n templateUrl: './password-validation.component.html'\n})\nexport class PasswordValidationComponent extends AppBaseComponent {\n @ViewChild('content', { static: true }) content: TemplateRef<any>;\n\n @Output()\n successEvent: EventEmitter<boolean> = new EventEmitter();\n\n password: string;\n\n buttonBusy: boolean;\n\n constructor(injector: Injector, private modal: NgbModal) {\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\">{{ 'User.Account.Message.EnterPassword' | 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 { ChangeDetectorRef, Component, EventEmitter, Input, Output } from '@angular/core';\nimport { ImageCroppedEvent, ImageTransform } from 'ngx-image-cropper';\n\n@Component({\n selector: 'pw-image-cropper',\n templateUrl: './image-cropper.component.html',\n styleUrls: ['./image-cropper.component.scss']\n})\nexport class ProfileImageCropperComponent {\n imageChangedEvent = '';\n\n croppedImage = '';\n\n @Output() imageSelectionEvent: EventEmitter<any> = new EventEmitter<any>();\n\n @Output() closeEvent: EventEmitter<any> = new EventEmitter<any>();\n\n @Output() fileChangeEvent: EventEmitter<any> = new EventEmitter<any>();\n\n busy: boolean;\n\n @Input() aspectRatio = 'auto';\n\n transform: ImageTransform = {};\n\n canvasRotation = 0;\n\n showCropper = false;\n\n constructor(private cdr: ChangeDetectorRef) {}\n\n onFileChange(event: any): void {\n this.imageChangedEvent = event;\n this.fileChangeEvent.emit(event.target.files[0]?.name);\n }\n\n imageCropped(event: ImageCroppedEvent) {\n this.croppedImage = event.base64;\n this.cdr.detectChanges();\n }\n\n imageLoaded() {\n this.showCropper = true;\n }\n\n rotateLeft() {\n this.canvasRotation--;\n this.flipAfterRotate();\n }\n\n rotateRight() {\n this.canvasRotation++;\n this.flipAfterRotate();\n }\n\n private flipAfterRotate() {\n const flippedH = this.transform.flipH;\n const flippedV = this.transform.flipV;\n this.transform = {\n ...this.transform,\n flipH: flippedV,\n flipV: flippedH\n };\n }\n\n flipHorizontal() {\n this.transform = {\n ...this.transform,\n flipH: !this.transform.flipH\n };\n }\n\n flipVertical() {\n this.transform = {\n ...this.transform,\n flipV: !this.transform.flipV\n };\n }\n\n saveProfilePicture() {\n if (this.croppedImage) {\n this.imageSelectionEvent.emit(this.croppedImage);\n this.busy = true;\n }\n }\n\n onCloseModal() {\n this.closeEvent.emit();\n }\n}\n","<section class=\"image-cropper\">\n <div class=\"row text-start\">\n <div class=\"col-12\">\n <div class=\"card-block pb-0\">\n <div class=\"row\">\n <div class=\"col-12\">\n <div class=\"file-upload my-2 float-start\">\n <label>\n Upload Pic\n <input id=\"custom-input\"\n type=\"file\"\n (change)=\"onFileChange($event)\" />\n </label>\n </div>\n\n <div class=\"float-end m-2\">\n <button class=\"btn btn-primary btn-sm mx-2\"\n title=\"Rotate Left\">\n <i\n class=\"fa fa-undo-alt\"\n (click)=\"rotateLeft()\"\n aria-hidden=\"true\"\n ></i>\n </button>\n\n <button class=\"btn btn-primary btn-sm mx-2\"\n title=\"Rotate Right\">\n <i\n class=\"fa fa-redo-alt\"\n (click)=\"rotateRight()\"\n aria-hidden=\"true\"\n ></i>\n </button>\n\n <button class=\"btn btn-primary btn-sm mx-2\"\n title=\"Flip Horizontal\">\n <i\n class=\"fa fa-arrows-alt-h\"\n (click)=\"flipHorizontal()\"\n aria-hidden=\"true\"\n ></i>\n </button>\n <button class=\"btn btn-primary btn-sm mx-2\"\n title=\"Flip Vertical\">\n <i\n class=\"fa fa-arrows-alt-v\"\n (click)=\"flipVertical()\"\n aria-hidden=\"true\"\n ></i>\n </button>\n </div>\n </div>\n </div>\n\n <div class=\"row\">\n <div class=\"col-8\">\n <div *ngIf=\"aspectRatio === 'auto'\">\n <image-cropper [imageChangedEvent]=\"imageChangedEvent\"\n [maintainAspectRatio]=\"true\"\n [canvasRotation]=\"canvasRotation\"\n [aspectRatio]=\"4 / 4\"\n [onlyScaleDown]=\"true\"\n [transform]=\"transform\"\n [roundCropper]=\"false\"\n alignImage=\"center\"\n outputType=\"base64\"\n (imageCropped)=\"imageCropped($event)\"\n (imageLoaded)=\"imageLoaded()\"\n [imageQuality]=\"100\"\n [style.display]=\"showCropper ? null : 'none'\"></image-cropper>\n </div>\n\n <div *ngIf=\"aspectRatio === 'fullLogo'\">\n <image-cropper [imageChangedEvent]=\"imageChangedEvent\"\n [maintainAspectRatio]=\"true\"\n [aspectRatio]=\"5 / 1.1\"\n [onlyScaleDown]=\"true\"\n [roundCropper]=\"false\"\n alignImage=\"center\"\n outputType=\"base64\"\n (imageCropped)=\"imageCropped($event)\"\n (imageLoaded)=\"imageLoaded()\"\n [imageQuality]=\"100\"\n [style.display]=\"showCropper ? null : 'none'\"></image-cropper>\n </div>\n\n <div *ngIf=\"aspectRatio === 'custom'\">\n <image-cropper [imageChangedEvent]=\"imageChangedEvent\"\n [maintainAspectRatio]=\"true\"\n [canvasRotation]=\"canvasRotation\"\n [transform]=\"transform\"\n [aspectRatio]=\"4 / 3\"\n [onlyScaleDown]=\"true\"\n [roundCropper]=\"false\"\n alignImage=\"center\"\n outputType=\"base64\"\n (imageCropped)=\"imageCropped($event)\"\n (imageLoaded)=\"imageLoaded()\"\n [imageQuality]=\"100\"\n [style.display]=\"showCropper ? null : 'none'\"></image-cropper>\n </div>\n </div>\n <div class=\"col-4\">\n <img [src]=\"croppedImage\"\n alt=\"cropped.png\"\n width=\"128\" />\n </div>\n </div>\n </div>\n </div>\n </div>\n <div class=\"card-footer px-3\">\n <div class=\"float-end mt-2\">\n <button type=\"button\"\n class=\"btn btn-outline-default me-2\"\n (click)=\"onCloseModal()\">\n Close\n </button>\n <button type=\"button\"\n class=\"btn btn-primary\"\n (click)=\"saveProfilePicture()\"\n [buttonBusy]=\"busy\">\n Save\n </button>\n </div>\n </div>\n</section>\n","import { DOCUMENT } from '@angular/common';\nimport { Component, EventEmitter, Inject, Injector, Input, Output } from '@angular/core';\nimport { NgbModal } from '@ng-bootstrap/ng-bootstrap';\n\nimport { AppBaseComponent } from '@posiwise/app-base-component';\nimport { HelperService } from '@posiwise/helper-service';\n\n@Component({\n selector: 'pw-custom-uploader',\n templateUrl: './custom-uploader.component.html',\n styleUrls: ['./custom-uploader.component.scss']\n})\nexport class CustomUploaderComponent extends AppBaseComponent {\n @Output() saveEvent: EventEmitter<{ file: string; name: string }> = new EventEmitter<{\n file: string;\n name: string;\n }>();\n\n @Input() controlName: string;\n\n @Input() previewData: any;\n\n @Input() aspectRatio = 'auto';\n\n @Input() title: string;\n\n uploadedFile = null;\n\n selectedFileName: string;\n\n buttonBusy: boolean;\n\n constructor(\n injector: Injector,\n private modalService: NgbModal,\n @Inject(DOCUMENT) private document: Document\n ) {\n super(injector);\n }\n\n deleteExistingFile() {\n HelperService.raiseDeletePopup().then(rep => {\n if (rep.value) {\n this.previewData = null;\n this.onSaveFile();\n }\n });\n }\n\n onSaveFile() {\n this.buttonBusy = true;\n this.saveEvent.emit({\n file: this.previewData?.url ? this.previewData : this.uploadedFile,\n name: this.controlName\n });\n }\n\n // modal image cropper\n\n onFileChange(value) {\n this.selectedFileName = value;\n }\n\n private dataURLtoBlob(dataurl: string) {\n const arr = dataurl?.split(',');\n // eslint-disable-next-line @typescript-eslint/prefer-regexp-exec\n const mime = arr[0].match(/^[A-Z]*[a-z]*:(.*?);[A-Z]*/)[1];\n const bstr = atob(arr[1]);\n let n = bstr.length;\n const u8arr = new Uint8Array(n);\n // eslint-disable-next-line no-plusplus\n while (n--) {\n u8arr[n] = bstr.charCodeAt(n);\n }\n\n return new Blob([u8arr], { type: mime });\n }\n\n onImageSelection(event) {\n const blob = this.dataURLtoBlob(event);\n const file: File = new File([blob], this.selectedFileName);\n this.uploadedFile = file;\n this.onSaveFile();\n }\n\n openModal(content) {\n this.modalService.open(content, { centered: true, windowClass: 'modal-holder' });\n }\n\n clearValues() {\n this.uploadedFile = null;\n this.selectedFileName = null;\n this.updateHeight();\n }\n\n onClose() {\n this.modalService.dismissAll();\n }\n\n updateHeight() {\n // wait for update card height\n setTimeout(() => {\n this.onImgChange();\n });\n }\n\n onImgChange(event?: any) {\n if (event) {\n event.target.src = 'assets/img/icons/imagenotavailable.png';\n }\n const el = this.document.querySelectorAll(\n 'pw-domain-config-interface,pw-domain-config-build div[matchheight=\"card\"]'\n );\n el.forEach((item: Element) => {\n HelperService.matchHeights(item as HTMLElement, 'card');\n });\n }\n}\n","<div class=\"card pb-2\">\n <div class=\"card-header upload-button-bar\">\n <button pButton\n type=\"button\"\n [disabled]=\"previewData?.url || uploadedFile\"\n (click)=\"openModal(content)\"\n icon=\"pi pi-plus\"\n label=\"Choose\"></button>\n </div>\n <div class=\"card-body\">\n <!-- no files -->\n <div class=\"d-flex preview-wrapper\"\n *ngIf=\"!previewData?.url\">\n <div>\n <img src=\"assets/img/icons/nofilesfound.png\"\n (load)=\"onImgChange()\"\n class=\"mx-auto img-fluid\"\n alt=\"\" />\n </div>\n </div>\n <!-- exising images -->\n <div class=\"d-flex preview-wrapper\"\n *ngIf=\"previewData?.url\">\n <div>\n <a [href]=\"previewData?.url\"\n target=\"_blank\">\n <img [src]=\"previewData?.url\"\n alt=\"\"\n (load)=\"onImgChange()\"\n (error)=\"onImgChange($event)\"\n class=\"img-fluid\" />\n </a>\n </div>\n <div class=\"ms-3\">\n <i\n container=\"body\"\n ngbTooltip=\"Delete\"\n (click)=\"deleteExistingFile()\"\n class=\"fa fa-trash delete-icon\"\n aria-hidden=\"true\"\n ></i>\n </div>\n </div>\n </div>\n</div>\n<!-- image cropper -->\n<ng-template #content\n let-modal>\n <div class=\"card m-0\">\n <div class=\"card-content\">\n <div class=\"card-title\">\n <h3 class=\"modal-title\">{{ title }}</h3>\n <button type=\"button\"\n class=\"btn-close float-end float-end\"\n aria-label=\"Close\"\n (click)=\"modal.dismiss()\">\n\n </button>\n </div>\n <div class=\"card-header\">\n <small> {{ 'User.Profile.PictureMessage' | transloco }}</small>\n <pw-image-cropper #profile\n [aspectRatio]=\"aspectRatio\"\n (fileChangeEvent)=\"onFileChange($event)\"\n (imageSelectionEvent)=\"onImageSelection($event)\"\n (closeEvent)=\"onClose()\">\n </pw-image-cropper>\n </div>\n </div>\n </div>\n</ng-template>\n","import { NgModule } from '@angular/core';\nimport { AbTestContainerComponent } from './ab-test/ab-test-container/ab-test-container.component';\nimport { AbAlternativeComponent } from './ab-test/ab-alternative/ab-alternative.component';\nimport { PasswordValidationComponent } from './password-validation/password-validation.component';\nimport { DirectivesModule } from '@posiwise/directives';\nimport { CoreTranslocoModule } from '@posiwise/core-transloco';\nimport { CustomUploaderComponent } from \"./custom-uploader/custom-uploader.component\";\nimport {ProfileImageCropperComponent} from \"./image-cropper/image-cropper.component\";\n\nimport { FormsModule } from '@angular/forms';\nimport { ImageCropperModule } from 'ngx-image-cropper';\n\n@NgModule({\n declarations: [\n AbTestContainerComponent,\n AbAlternativeComponent,\n PasswordValidationComponent,\n CustomUploaderComponent,\n ProfileImageCropperComponent\n ],\n imports: [\n FormsModule,\n DirectivesModule,\n CoreTranslocoModule,\n ImageCropperModule\n ],\n exports: [\n AbTestContainerComponent,\n AbAlternativeComponent,\n PasswordValidationComponent,\n CustomUploaderComponent,\n ProfileImageCropperComponent,\n ImageCropperModule\n ]\n})\nexport class SharedComponentsModule {}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":["i1","i2","i2.ProfileImageCropperComponent","i3"],"mappings":";;;;;;;;;;;;;;;;;;MAWa,wBAAwB,CAAA;AAcjC,IAAA,WAAA,CAAoB,OAAsB,EAAA;QAAtB,IAAO,CAAA,OAAA,GAAP,OAAO,CAAe;AAL1C;;AAEG;QACH,IAAqB,CAAA,qBAAA,GAAG,KAAK,CAAC;KAEgB;IAE9C,QAAQ,GAAA;QACJ,IAAI,CAAC,aAAa,EAAE,CAAC;KACxB;IAEO,aAAa,GAAA;AACjB,QAAA,IAAI,CAAC,OAAO;AACP,aAAA,aAAa,CAAC,IAAI,CAAC,cAAc,EAAE,eAAe,CAAC,KAAK,EAAE,IAAI,CAAC,WAAW,CAAC;AAC3E,aAAA,SAAS,CAAC;AACP,YAAA,IAAI,EAAE,CAAC,QAAoB,KAAI;AAC3B,gBAAA,IAAI,CAAC,qBAAqB,GAAG,KAAK,CAAC;AACnC,gBAAA,IAAI,CAAC,IAAI,GAAG,QAAQ,IAAK,EAAiB,CAAC;aAC9C;YACD,KAAK,EAAE,MAAK;;AAER,gBAAA,IAAI,CAAC,qBAAqB,GAAG,IAAI,CAAC;aACrC;AACJ,SAAA,CAAC,CAAC;KACV;;qHAjCQ,wBAAwB,EAAA,IAAA,EAAA,CAAA,EAAA,KAAA,EAAA,EAAA,CAAA,aAAA,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;AAAxB,wBAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,IAAA,EAAA,wBAAwB,sIAFvB,2BAA2B,EAAA,QAAA,EAAA,IAAA,EAAA,CAAA,CAAA;2FAE5B,wBAAwB,EAAA,UAAA,EAAA,CAAA;kBALpC,SAAS;AAAC,YAAA,IAAA,EAAA,CAAA;;AAEP,oBAAA,QAAQ,EAAE,sBAAsB;AAChC,oBAAA,QAAQ,EAAE,2BAA2B;AACxC,iBAAA,CAAA;oGAGG,cAAc,EAAA,CAAA;sBADb,KAAK;gBAIN,WAAW,EAAA,CAAA;sBADV,KAAK;;;MCNG,sBAAsB,CAAA;AALnC,IAAA,WAAA,GAAA;AAeI;;;AAGG;QAEH,IAAO,CAAA,OAAA,GAAG,KAAK,CAAC;AACnB,KAAA;;mHAhBY,sBAAsB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;AAAtB,sBAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,IAAA,EAAA,sBAAsB,gHCTnC,+SAOA,EAAA,CAAA,CAAA;2FDEa,sBAAsB,EAAA,UAAA,EAAA,CAAA;kBALlC,SAAS;+BAEI,gBAAgB,EAAA,QAAA,EAAA,+SAAA,EAAA,CAAA;8BAK1B,IAAI,EAAA,CAAA;sBADH,KAAK;gBAON,GAAG,EAAA,CAAA;sBADF,KAAK;gBAQN,OAAO,EAAA,CAAA;sBADN,KAAK;;;AEbJ,MAAO,2BAA4B,SAAQ,gBAAgB,CAAA;IAU7D,WAAY,CAAA,QAAkB,EAAU,KAAe,EAAA;QACnD,KAAK,CAAC,QAAQ,CAAC,CAAC;QADoB,IAAK,CAAA,KAAA,GAAL,KAAK,CAAU;AANvD,QAAA,IAAA,CAAA,YAAY,GAA0B,IAAI,YAAY,EAAE,CAAC;KAQxD;IAED,IAAI,GAAA;AACA,QAAA,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,EAAE,QAAQ,EAAE,IAAI,EAAE,WAAW,EAAE,cAAc,EAAE,CAAC,CAAC;KAClF;IAED,gBAAgB,GAAA;QACZ,IAAI,IAAI,CAAC,QAAQ,EAAE;AACf,YAAA,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC;AACvB,YAAA,IAAI,CAAC,WAAW;iBACX,aAAa,CAAC,EAAE,QAAQ,EAAE,IAAI,CAAC,QAAQ,EAAE,CAAC;iBAC1C,SAAS,CAAC,IAAI,IAAG;gBACd,IAAI,IAAI,IAAI,IAAI,EAAE,MAAM,KAAK,WAAW,CAAC,EAAE,EAAE;AACzC,oBAAA,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AAC7B,oBAAA,IAAI,CAAC,KAAK,CAAC,UAAU,EAAE,CAAC;AACxB,oBAAA,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC;AACxB,iBAAA;AAAM,qBAAA;AACH,oBAAA,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;AAC9B,oBAAA,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC;AACxB,iBAAA;AACL,aAAC,CAAC;iBACD,GAAG,CAAC,MAAK;AACN,gBAAA,IAAI,CAAC,UAAU,GAAG,KAAK,CAAC;AAC5B,aAAC,CAAC,CAAC;AACV,SAAA;KACJ;;wHArCQ,2BAA2B,EAAA,IAAA,EAAA,CAAA,EAAA,KAAA,EAAA,EAAA,CAAA,QAAA,EAAA,EAAA,EAAA,KAAA,EAAAA,IAAA,CAAA,QAAA,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;AAA3B,2BAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,IAAA,EAAA,2BAA2B,kPCVxC,ihCAoCA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,oBAAA,EAAA,QAAA,EAAA,8MAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,eAAA,EAAA,QAAA,EAAA,2CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,OAAA,EAAA,QAAA,EAAA,qDAAA,EAAA,MAAA,EAAA,CAAA,MAAA,EAAA,UAAA,EAAA,SAAA,EAAA,gBAAA,CAAA,EAAA,OAAA,EAAA,CAAA,eAAA,CAAA,EAAA,QAAA,EAAA,CAAA,SAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,mBAAA,EAAA,QAAA,EAAA,cAAA,EAAA,MAAA,EAAA,CAAA,YAAA,EAAA,UAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,MAAA,EAAA,IAAA,EAAA,EAAA,CAAA,aAAA,EAAA,IAAA,EAAA,WAAA,EAAA,CAAA,EAAA,CAAA,CAAA;2FD1Ba,2BAA2B,EAAA,UAAA,EAAA,CAAA;kBAJvC,SAAS;+BACI,wBAAwB,EAAA,QAAA,EAAA,ihCAAA,EAAA,CAAA;wHAIM,OAAO,EAAA,CAAA;sBAA9C,SAAS;AAAC,gBAAA,IAAA,EAAA,CAAA,SAAS,EAAE,EAAE,MAAM,EAAE,IAAI,EAAE,CAAA;gBAGtC,YAAY,EAAA,CAAA;sBADX,MAAM;;;MELE,4BAA4B,CAAA;AAqBrC,IAAA,WAAA,CAAoB,GAAsB,EAAA;QAAtB,IAAG,CAAA,GAAA,GAAH,GAAG,CAAmB;QApB1C,IAAiB,CAAA,iBAAA,GAAG,EAAE,CAAC;QAEvB,IAAY,CAAA,YAAA,GAAG,EAAE,CAAC;AAER,QAAA,IAAA,CAAA,mBAAmB,GAAsB,IAAI,YAAY,EAAO,CAAC;AAEjE,QAAA,IAAA,CAAA,UAAU,GAAsB,IAAI,YAAY,EAAO,CAAC;AAExD,QAAA,IAAA,CAAA,eAAe,GAAsB,IAAI,YAAY,EAAO,CAAC;QAI9D,IAAW,CAAA,WAAA,GAAG,MAAM,CAAC;QAE9B,IAAS,CAAA,SAAA,GAAmB,EAAE,CAAC;QAE/B,IAAc,CAAA,cAAA,GAAG,CAAC,CAAC;QAEnB,IAAW,CAAA,WAAA,GAAG,KAAK,CAAC;KAE0B;AAE9C,IAAA,YAAY,CAAC,KAAU,EAAA;AACnB,QAAA,IAAI,CAAC,iBAAiB,GAAG,KAAK,CAAC;AAC/B,QAAA,IAAI,CAAC,eAAe,CAAC,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,IAAI,CAAC,CAAC;KAC1D;AAED,IAAA,YAAY,CAAC,KAAwB,EAAA;AACjC,QAAA,IAAI,CAAC,YAAY,GAAG,KAAK,CAAC,MAAM,CAAC;AACjC,QAAA,IAAI,CAAC,GAAG,CAAC,aAAa,EAAE,CAAC;KAC5B;IAED,WAAW,GAAA;AACP,QAAA,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC;KAC3B;IAED,UAAU,GAAA;QACN,IAAI,CAAC,cAAc,EAAE,CAAC;QACtB,IAAI,CAAC,eAAe,EAAE,CAAC;KAC1B;IAED,WAAW,GAAA;QACP,IAAI,CAAC,cAAc,EAAE,CAAC;QACtB,IAAI,CAAC,eAAe,EAAE,CAAC;KAC1B;IAEO,eAAe,GAAA;AACnB,QAAA,MAAM,QAAQ,GAAG,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC;AACtC,QAAA,MAAM,QAAQ,GAAG,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC;QACtC,IAAI,CAAC,SAAS,GAAG;YACb,GAAG,IAAI,CAAC,SAAS;AACjB,YAAA,KAAK,EAAE,QAAQ;AACf,YAAA,KAAK,EAAE,QAAQ;SAClB,CAAC;KACL;IAED,cAAc,GAAA;QACV,IAAI,CAAC,SAAS,GAAG;YACb,GAAG,IAAI,CAAC,SAAS;AACjB,YAAA,KAAK,EAAE,CAAC,IAAI,CAAC,SAAS,CAAC,KAAK;SAC/B,CAAC;KACL;IAED,YAAY,GAAA;QACR,IAAI,CAAC,SAAS,GAAG;YACb,GAAG,IAAI,CAAC,SAAS;AACjB,YAAA,KAAK,EAAE,CAAC,IAAI,CAAC,SAAS,CAAC,KAAK;SAC/B,CAAC;KACL;IAED,kBAAkB,GAAA;QACd,IAAI,IAAI,CAAC,YAAY,EAAE;YACnB,IAAI,CAAC,mBAAmB,CAAC,IAAI,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC;AACjD,YAAA,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC;AACpB,SAAA;KACJ;IAED,YAAY,GAAA;AACR,QAAA,IAAI,CAAC,UAAU,CAAC,IAAI,EAAE,CAAC;KAC1B;;yHAhFQ,4BAA4B,EAAA,IAAA,EAAA,CAAA,EAAA,KAAA,EAAA,EAAA,CAAA,iBAAA,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;AAA5B,4BAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,IAAA,EAAA,4BAA4B,uNCRzC,uwJA+HA,EAAA,MAAA,EAAA,CAAA,2dAAA,CAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,EAAA,CAAA,mBAAA,EAAA,QAAA,EAAA,cAAA,EAAA,MAAA,EAAA,CAAA,YAAA,EAAA,UAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAC,IAAA,CAAA,qBAAA,EAAA,QAAA,EAAA,eAAA,EAAA,MAAA,EAAA,CAAA,mBAAA,EAAA,UAAA,EAAA,aAAA,EAAA,WAAA,EAAA,cAAA,EAAA,QAAA,EAAA,WAAA,EAAA,qBAAA,EAAA,aAAA,EAAA,8BAAA,EAAA,eAAA,EAAA,gBAAA,EAAA,iBAAA,EAAA,kBAAA,EAAA,kBAAA,EAAA,iBAAA,EAAA,oBAAA,EAAA,qBAAA,EAAA,gBAAA,EAAA,iBAAA,EAAA,cAAA,EAAA,eAAA,EAAA,cAAA,EAAA,UAAA,EAAA,iBAAA,EAAA,0BAAA,EAAA,mBAAA,EAAA,gBAAA,EAAA,SAAA,EAAA,YAAA,EAAA,UAAA,EAAA,QAAA,CAAA,EAAA,OAAA,EAAA,CAAA,cAAA,EAAA,gBAAA,EAAA,aAAA,EAAA,cAAA,EAAA,iBAAA,EAAA,iBAAA,CAAA,EAAA,CAAA,EAAA,CAAA,CAAA;2FDvHa,4BAA4B,EAAA,UAAA,EAAA,CAAA;kBALxC,SAAS;+BACI,kBAAkB,EAAA,QAAA,EAAA,uwJAAA,EAAA,MAAA,EAAA,CAAA,2dAAA,CAAA,EAAA,CAAA;wGASlB,mBAAmB,EAAA,CAAA;sBAA5B,MAAM;gBAEG,UAAU,EAAA,CAAA;sBAAnB,MAAM;gBAEG,eAAe,EAAA,CAAA;sBAAxB,MAAM;gBAIE,WAAW,EAAA,CAAA;sBAAnB,KAAK;;;AETJ,MAAO,uBAAwB,SAAQ,gBAAgB,CAAA;AAoBzD,IAAA,WAAA,CACI,QAAkB,EACV,YAAsB,EACJ,QAAkB,EAAA;QAE5C,KAAK,CAAC,QAAQ,CAAC,CAAC;QAHR,IAAY,CAAA,YAAA,GAAZ,YAAY,CAAU;QACJ,IAAQ,CAAA,QAAA,GAAR,QAAQ,CAAU;AAtBtC,QAAA,IAAA,CAAA,SAAS,GAAiD,IAAI,YAAY,EAGhF,CAAC;QAMI,IAAW,CAAA,WAAA,GAAG,MAAM,CAAC;QAI9B,IAAY,CAAA,YAAA,GAAG,IAAI,CAAC;KAYnB;IAED,kBAAkB,GAAA;QACd,aAAa,CAAC,gBAAgB,EAAE,CAAC,IAAI,CAAC,GAAG,IAAG;YACxC,IAAI,GAAG,CAAC,KAAK,EAAE;AACX,gBAAA,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC;gBACxB,IAAI,CAAC,UAAU,EAAE,CAAC;AACrB,aAAA;AACL,SAAC,CAAC,CAAC;KACN;IAED,UAAU,GAAA;AACN,QAAA,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC;AACvB,QAAA,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC;AAChB,YAAA,IAAI,EAAE,IAAI,CAAC,WAAW,EAAE,GAAG,GAAG,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC,YAAY;YAClE,IAAI,EAAE,IAAI,CAAC,WAAW;AACzB,SAAA,CAAC,CAAC;KACN;;AAID,IAAA,YAAY,CAAC,KAAK,EAAA;AACd,QAAA,IAAI,CAAC,gBAAgB,GAAG,KAAK,CAAC;KACjC;AAEO,IAAA,aAAa,CAAC,OAAe,EAAA;QACjC,MAAM,GAAG,GAAG,OAAO,EAAE,KAAK,CAAC,GAAG,CAAC,CAAC;;AAEhC,QAAA,MAAM,IAAI,GAAG,GAAG,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,4BAA4B,CAAC,CAAC,CAAC,CAAC,CAAC;QAC3D,MAAM,IAAI,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;AAC1B,QAAA,IAAI,CAAC,GAAG,IAAI,CAAC,MAAM,CAAC;AACpB,QAAA,MAAM,KAAK,GAAG,IAAI,UAAU,CAAC,CAAC,CAAC,CAAC;;QAEhC,OAAO,CAAC,EAAE,EAAE;YACR,KAAK,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC;AACjC,SAAA;AAED,QAAA,OAAO,IAAI,IAAI,CAAC,CAAC,KAAK,CAAC,EAAE,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC,CAAC;KAC5C;AAED,IAAA,gBAAgB,CAAC,KAAK,EAAA;QAClB,MAAM,IAAI,GAAG,IAAI,CAAC,aAAa,CAAC,KAAK,CAAC,CAAC;AACvC,QAAA,MAAM,IAAI,GAAS,IAAI,IAAI,CAAC,CAAC,IAAI,CAAC,EAAE,IAAI,CAAC,gBAAgB,CAAC,CAAC;AAC3D,QAAA,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC;QACzB,IAAI,CAAC,UAAU,EAAE,CAAC;KACrB;AAED,IAAA,SAAS,CAAC,OAAO,EAAA;AACb,QAAA,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,OAAO,EAAE,EAAE,QAAQ,EAAE,IAAI,EAAE,WAAW,EAAE,cAAc,EAAE,CAAC,CAAC;KACpF;IAED,WAAW,GAAA;AACP,QAAA,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC;AACzB,QAAA,IAAI,CAAC,gBAAgB,GAAG,IAAI,CAAC;QAC7B,IAAI,CAAC,YAAY,EAAE,CAAC;KACvB;IAED,OAAO,GAAA;AACH,QAAA,IAAI,CAAC,YAAY,CAAC,UAAU,EAAE,CAAC;KAClC;IAED,YAAY,GAAA;;QAER,UAAU,CAAC,MAAK;YACZ,IAAI,CAAC,WAAW,EAAE,CAAC;AACvB,SAAC,CAAC,CAAC;KACN;AAED,IAAA,WAAW,CAAC,KAAW,EAAA;AACnB,QAAA,IAAI,KAAK,EAAE;AACP,YAAA,KAAK,CAAC,MAAM,CAAC,GAAG,GAAG,wCAAwC,CAAC;AAC/D,SAAA;QACD,MAAM,EAAE,GAAG,IAAI,CAAC,QAAQ,CAAC,gBAAgB,CACrC,2EAA2E,CAC9E,CAAC;AACF,QAAA,EAAE,CAAC,OAAO,CAAC,CAAC,IAAa,KAAI;AACzB,YAAA,aAAa,CAAC,YAAY,CAAC,IAAmB,EAAE,MAAM,CAAC,CAAC;AAC5D,SAAC,CAAC,CAAC;KACN;;AAxGQ,uBAAA,CAAA,IAAA,GAAA,EAAA,CAAA,kBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,uBAAuB,oEAuBpB,QAAQ,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;AAvBX,uBAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,IAAA,EAAA,uBAAuB,sOCZpC,8nEAuEA,EAAA,MAAA,EAAA,CAAA,mlBAAA,CAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAC,4BAAA,EAAA,QAAA,EAAA,kBAAA,EAAA,MAAA,EAAA,CAAA,aAAA,CAAA,EAAA,OAAA,EAAA,CAAA,qBAAA,EAAA,YAAA,EAAA,iBAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,MAAA,EAAA,IAAA,EAAAC,EAAA,CAAA,aAAA,EAAA,IAAA,EAAA,WAAA,EAAA,CAAA,EAAA,CAAA,CAAA;2FD3Da,uBAAuB,EAAA,UAAA,EAAA,CAAA;kBALnC,SAAS;+BACI,oBAAoB,EAAA,QAAA,EAAA,8nEAAA,EAAA,MAAA,EAAA,CAAA,mlBAAA,CAAA,EAAA,CAAA;;0BA2BzB,MAAM;2BAAC,QAAQ,CAAA;4CAtBV,SAAS,EAAA,CAAA;sBAAlB,MAAM;gBAKE,WAAW,EAAA,CAAA;sBAAnB,KAAK;gBAEG,WAAW,EAAA,CAAA;sBAAnB,KAAK;gBAEG,WAAW,EAAA,CAAA;sBAAnB,KAAK;gBAEG,KAAK,EAAA,CAAA;sBAAb,KAAK;;;MEWG,sBAAsB,CAAA;;mHAAtB,sBAAsB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,QAAA,EAAA,CAAA,CAAA;AAAtB,sBAAA,CAAA,IAAA,GAAA,EAAA,CAAA,mBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,sBAAsB,iBArB7B,wBAAwB;QACxB,sBAAsB;QACtB,2BAA2B;QAC3B,uBAAuB;AACvB,QAAA,4BAA4B,aAG5B,WAAW;QACX,gBAAgB;QAChB,mBAAmB;AACnB,QAAA,kBAAkB,aAGlB,wBAAwB;QACxB,sBAAsB;QACtB,2BAA2B;QAC3B,uBAAuB;QACvB,4BAA4B;QAC5B,kBAAkB,CAAA,EAAA,CAAA,CAAA;AAGX,sBAAA,CAAA,IAAA,GAAA,EAAA,CAAA,mBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,sBAAsB,YAd7B,WAAW;QACX,gBAAgB;QAChB,mBAAmB;AACnB,QAAA,kBAAkB,EAQlB,kBAAkB,CAAA,EAAA,CAAA,CAAA;2FAGX,sBAAsB,EAAA,UAAA,EAAA,CAAA;kBAvBlC,QAAQ;AAAC,YAAA,IAAA,EAAA,CAAA;AACN,oBAAA,YAAY,EAAE;wBACZ,wBAAwB;wBACxB,sBAAsB;wBACtB,2BAA2B;wBAC3B,uBAAuB;wBACvB,4BAA4B;AAC7B,qBAAA;AACD,oBAAA,OAAO,EAAE;wBACP,WAAW;wBACX,gBAAgB;wBAChB,mBAAmB;wBACnB,kBAAkB;AACnB,qBAAA;AACD,oBAAA,OAAO,EAAE;wBACP,wBAAwB;wBACxB,sBAAsB;wBACtB,2BAA2B;wBAC3B,uBAAuB;wBACvB,4BAA4B;wBAC5B,kBAAkB;AACnB,qBAAA;AACJ,iBAAA,CAAA;;;AClCD;;AAEG;;;;"}
|
|
1
|
+
{"version":3,"file":"shared-components.mjs","sources":["../../../../libs/shared-components/src/lib/ab-test/ab-test-container/ab-test-container.component.ts","../../../../libs/shared-components/src/lib/ab-test/ab-alternative/ab-alternative.component.ts","../../../../libs/shared-components/src/lib/ab-test/ab-alternative/ab-alternative.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/image-cropper/image-cropper.component.ts","../../../../libs/shared-components/src/lib/image-cropper/image-cropper.component.html","../../../../libs/shared-components/src/lib/custom-uploader/custom-uploader.component.ts","../../../../libs/shared-components/src/lib/custom-uploader/custom-uploader.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/permission-tree/permission-tree.component.ts","../../../../libs/shared-components/src/lib/shared-components.module.ts","../../../../libs/shared-components/src/shared-components.ts"],"sourcesContent":["import { Component, Input, OnInit } from '@angular/core';\n\nimport { AB_TEST_ACTIONS } from '@posiwise/common-utilities';\nimport { Experiment } from '../ab-test.interface';\nimport { AbTestService } from '@posiwise/common-services';\n\n@Component({\n // eslint-disable-next-line @angular-eslint/component-selector\n selector: 'pw-ab-test-container',\n template: '<ng-content></ng-content>'\n})\nexport class AbTestContainerComponent implements OnInit {\n @Input()\n experimentName: string;\n\n @Input()\n serviceName: string;\n\n data: Experiment;\n\n /**\n * Specifies boolean to show the experiment as fallback\n */\n showDefaultExperiment = false;\n\n constructor(private service: AbTestService) {}\n\n ngOnInit(): void {\n this.getExperiment();\n }\n\n private getExperiment() {\n this.service\n .getExperiment(this.experimentName, AB_TEST_ACTIONS.START, this.serviceName)\n .subscribe({\n next: (response: Experiment) => {\n this.showDefaultExperiment = false;\n this.data = response || ({} as Experiment);\n },\n error: () => {\n // in case the api for experiment fails, we show the default experiment\n this.showDefaultExperiment = true;\n }\n });\n }\n}\n","import { Component, Input } from '@angular/core';\n\nimport { AbTestContainerComponent } from '../ab-test-container/ab-test-container.component';\n\n@Component({\n // eslint-disable-next-line @angular-eslint/component-selector\n selector: 'ab-alternative',\n templateUrl: './ab-alternative.component.html'\n})\nexport class AbAlternativeComponent {\n @Input()\n name: string;\n\n /**\n * Specficies AbTestContainerComponent instance template reference\n */\n @Input()\n ref: AbTestContainerComponent;\n\n /**\n * If the getExperiment call fails, it can be set to show the experiment\n * as fallback\n */\n @Input()\n default = false;\n}\n","<!-- renders the template for the started experiment.\nin case of error, render the template marked as default=true -->\n<ng-template [ngIf]=\"\n ref?.data?.alternative === name || (default === true && ref.showDefaultExperiment === true)\n \">\n <ng-content></ng-content>\n</ng-template>\n","import { Component, EventEmitter, Injector, Output, TemplateRef, ViewChild } from '@angular/core';\nimport { NgbModal } from '@ng-bootstrap/ng-bootstrap';\nimport { StatusCodes } from 'http-status-codes';\n\nimport { AppBaseComponent } from '@posiwise/app-base-component';\n\n@Component({\n selector: 'pw-password-validation',\n templateUrl: './password-validation.component.html'\n})\nexport class PasswordValidationComponent extends AppBaseComponent {\n @ViewChild('content', { static: true }) content: TemplateRef<any>;\n\n @Output()\n successEvent: EventEmitter<boolean> = new EventEmitter();\n\n password: string;\n\n buttonBusy: boolean;\n\n constructor(injector: Injector, private modal: NgbModal) {\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\">{{ 'User.Account.Message.EnterPassword' | 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 { ChangeDetectorRef, Component, EventEmitter, Input, Output } from '@angular/core';\nimport { ImageCroppedEvent, ImageTransform } from 'ngx-image-cropper';\n\n@Component({\n selector: 'pw-image-cropper',\n templateUrl: './image-cropper.component.html',\n styleUrls: ['./image-cropper.component.scss']\n})\nexport class ProfileImageCropperComponent {\n imageChangedEvent = '';\n\n croppedImage = '';\n\n @Output() imageSelectionEvent: EventEmitter<any> = new EventEmitter<any>();\n\n @Output() closeEvent: EventEmitter<any> = new EventEmitter<any>();\n\n @Output() fileChangeEvent: EventEmitter<any> = new EventEmitter<any>();\n\n busy: boolean;\n\n @Input() aspectRatio = 'auto';\n\n transform: ImageTransform = {};\n\n canvasRotation = 0;\n\n showCropper = false;\n\n constructor(private cdr: ChangeDetectorRef) {}\n\n onFileChange(event: any): void {\n this.imageChangedEvent = event;\n this.fileChangeEvent.emit(event.target.files[0]?.name);\n }\n\n imageCropped(event: ImageCroppedEvent) {\n this.croppedImage = event.base64;\n this.cdr.detectChanges();\n }\n\n imageLoaded() {\n this.showCropper = true;\n }\n\n rotateLeft() {\n this.canvasRotation--;\n this.flipAfterRotate();\n }\n\n rotateRight() {\n this.canvasRotation++;\n this.flipAfterRotate();\n }\n\n private flipAfterRotate() {\n const flippedH = this.transform.flipH;\n const flippedV = this.transform.flipV;\n this.transform = {\n ...this.transform,\n flipH: flippedV,\n flipV: flippedH\n };\n }\n\n flipHorizontal() {\n this.transform = {\n ...this.transform,\n flipH: !this.transform.flipH\n };\n }\n\n flipVertical() {\n this.transform = {\n ...this.transform,\n flipV: !this.transform.flipV\n };\n }\n\n saveProfilePicture() {\n if (this.croppedImage) {\n this.imageSelectionEvent.emit(this.croppedImage);\n this.busy = true;\n }\n }\n\n onCloseModal() {\n this.closeEvent.emit();\n }\n}\n","<section class=\"image-cropper\">\n <div class=\"row text-start\">\n <div class=\"col-12\">\n <div class=\"card-block pb-0\">\n <div class=\"row\">\n <div class=\"col-12\">\n <div class=\"file-upload my-2 float-start\">\n <label>\n Upload Pic\n <input id=\"custom-input\"\n type=\"file\"\n (change)=\"onFileChange($event)\" />\n </label>\n </div>\n\n <div class=\"float-end m-2\">\n <button class=\"btn btn-primary btn-sm mx-2\"\n title=\"Rotate Left\">\n <i\n class=\"fa fa-undo-alt\"\n (click)=\"rotateLeft()\"\n aria-hidden=\"true\"\n ></i>\n </button>\n\n <button class=\"btn btn-primary btn-sm mx-2\"\n title=\"Rotate Right\">\n <i\n class=\"fa fa-redo-alt\"\n (click)=\"rotateRight()\"\n aria-hidden=\"true\"\n ></i>\n </button>\n\n <button class=\"btn btn-primary btn-sm mx-2\"\n title=\"Flip Horizontal\">\n <i\n class=\"fa fa-arrows-alt-h\"\n (click)=\"flipHorizontal()\"\n aria-hidden=\"true\"\n ></i>\n </button>\n <button class=\"btn btn-primary btn-sm mx-2\"\n title=\"Flip Vertical\">\n <i\n class=\"fa fa-arrows-alt-v\"\n (click)=\"flipVertical()\"\n aria-hidden=\"true\"\n ></i>\n </button>\n </div>\n </div>\n </div>\n\n <div class=\"row\">\n <div class=\"col-8\">\n <div *ngIf=\"aspectRatio === 'auto'\">\n <image-cropper [imageChangedEvent]=\"imageChangedEvent\"\n [maintainAspectRatio]=\"true\"\n [canvasRotation]=\"canvasRotation\"\n [aspectRatio]=\"4 / 4\"\n [onlyScaleDown]=\"true\"\n [transform]=\"transform\"\n [roundCropper]=\"false\"\n alignImage=\"center\"\n outputType=\"base64\"\n (imageCropped)=\"imageCropped($event)\"\n (imageLoaded)=\"imageLoaded()\"\n [imageQuality]=\"100\"\n [style.display]=\"showCropper ? null : 'none'\"></image-cropper>\n </div>\n\n <div *ngIf=\"aspectRatio === 'fullLogo'\">\n <image-cropper [imageChangedEvent]=\"imageChangedEvent\"\n [maintainAspectRatio]=\"true\"\n [aspectRatio]=\"5 / 1.1\"\n [onlyScaleDown]=\"true\"\n [roundCropper]=\"false\"\n alignImage=\"center\"\n outputType=\"base64\"\n (imageCropped)=\"imageCropped($event)\"\n (imageLoaded)=\"imageLoaded()\"\n [imageQuality]=\"100\"\n [style.display]=\"showCropper ? null : 'none'\"></image-cropper>\n </div>\n\n <div *ngIf=\"aspectRatio === 'custom'\">\n <image-cropper [imageChangedEvent]=\"imageChangedEvent\"\n [maintainAspectRatio]=\"true\"\n [canvasRotation]=\"canvasRotation\"\n [transform]=\"transform\"\n [aspectRatio]=\"4 / 3\"\n [onlyScaleDown]=\"true\"\n [roundCropper]=\"false\"\n alignImage=\"center\"\n outputType=\"base64\"\n (imageCropped)=\"imageCropped($event)\"\n (imageLoaded)=\"imageLoaded()\"\n [imageQuality]=\"100\"\n [style.display]=\"showCropper ? null : 'none'\"></image-cropper>\n </div>\n </div>\n <div class=\"col-4\">\n <img [src]=\"croppedImage\"\n alt=\"cropped.png\"\n width=\"128\" />\n </div>\n </div>\n </div>\n </div>\n </div>\n <div class=\"card-footer px-3\">\n <div class=\"float-end mt-2\">\n <button type=\"button\"\n class=\"btn btn-outline-default me-2\"\n (click)=\"onCloseModal()\">\n Close\n </button>\n <button type=\"button\"\n class=\"btn btn-primary\"\n (click)=\"saveProfilePicture()\"\n [buttonBusy]=\"busy\">\n Save\n </button>\n </div>\n </div>\n</section>\n","import { DOCUMENT } from '@angular/common';\nimport { Component, EventEmitter, Inject, Injector, Input, Output } from '@angular/core';\nimport { NgbModal } from '@ng-bootstrap/ng-bootstrap';\n\nimport { AppBaseComponent } from '@posiwise/app-base-component';\nimport { HelperService } from '@posiwise/helper-service';\n\n@Component({\n selector: 'pw-custom-uploader',\n templateUrl: './custom-uploader.component.html',\n styleUrls: ['./custom-uploader.component.scss']\n})\nexport class CustomUploaderComponent extends AppBaseComponent {\n @Output() saveEvent: EventEmitter<{ file: string; name: string }> = new EventEmitter<{\n file: string;\n name: string;\n }>();\n\n @Input() controlName: string;\n\n @Input() previewData: any;\n\n @Input() aspectRatio = 'auto';\n\n @Input() title: string;\n\n uploadedFile = null;\n\n selectedFileName: string;\n\n buttonBusy: boolean;\n\n constructor(\n injector: Injector,\n private modalService: NgbModal,\n @Inject(DOCUMENT) private document: Document\n ) {\n super(injector);\n }\n\n deleteExistingFile() {\n HelperService.raiseDeletePopup().then(rep => {\n if (rep.value) {\n this.previewData = null;\n this.onSaveFile();\n }\n });\n }\n\n onSaveFile() {\n this.buttonBusy = true;\n this.saveEvent.emit({\n file: this.previewData?.url ? this.previewData : this.uploadedFile,\n name: this.controlName\n });\n }\n\n // modal image cropper\n\n onFileChange(value) {\n this.selectedFileName = value;\n }\n\n private dataURLtoBlob(dataurl: string) {\n const arr = dataurl?.split(',');\n // eslint-disable-next-line @typescript-eslint/prefer-regexp-exec\n const mime = arr[0].match(/^[A-Z]*[a-z]*:(.*?);[A-Z]*/)[1];\n const bstr = atob(arr[1]);\n let n = bstr.length;\n const u8arr = new Uint8Array(n);\n // eslint-disable-next-line no-plusplus\n while (n--) {\n u8arr[n] = bstr.charCodeAt(n);\n }\n\n return new Blob([u8arr], { type: mime });\n }\n\n onImageSelection(event) {\n const blob = this.dataURLtoBlob(event);\n const file: File = new File([blob], this.selectedFileName);\n this.uploadedFile = file;\n this.onSaveFile();\n }\n\n openModal(content) {\n this.modalService.open(content, { centered: true, windowClass: 'modal-holder' });\n }\n\n clearValues() {\n this.uploadedFile = null;\n this.selectedFileName = null;\n this.updateHeight();\n }\n\n onClose() {\n this.modalService.dismissAll();\n }\n\n updateHeight() {\n // wait for update card height\n setTimeout(() => {\n this.onImgChange();\n });\n }\n\n onImgChange(event?: any) {\n if (event) {\n event.target.src = 'assets/img/icons/imagenotavailable.png';\n }\n const el = this.document.querySelectorAll(\n 'pw-domain-config-interface,pw-domain-config-build div[matchheight=\"card\"]'\n );\n el.forEach((item: Element) => {\n HelperService.matchHeights(item as HTMLElement, 'card');\n });\n }\n}\n","<div class=\"card pb-2\">\n <div class=\"card-header upload-button-bar\">\n <button pButton\n type=\"button\"\n [disabled]=\"previewData?.url || uploadedFile\"\n (click)=\"openModal(content)\"\n icon=\"pi pi-plus\"\n label=\"Choose\"></button>\n </div>\n <div class=\"card-body\">\n <!-- no files -->\n <div class=\"d-flex preview-wrapper\"\n *ngIf=\"!previewData?.url\">\n <div>\n <img src=\"assets/img/icons/nofilesfound.png\"\n (load)=\"onImgChange()\"\n class=\"mx-auto img-fluid\"\n alt=\"\" />\n </div>\n </div>\n <!-- exising images -->\n <div class=\"d-flex preview-wrapper\"\n *ngIf=\"previewData?.url\">\n <div>\n <a [href]=\"previewData?.url\"\n target=\"_blank\">\n <img [src]=\"previewData?.url\"\n alt=\"\"\n (load)=\"onImgChange()\"\n (error)=\"onImgChange($event)\"\n class=\"img-fluid\" />\n </a>\n </div>\n <div class=\"ms-3\">\n <i\n container=\"body\"\n ngbTooltip=\"Delete\"\n (click)=\"deleteExistingFile()\"\n class=\"fa fa-trash delete-icon\"\n aria-hidden=\"true\"\n ></i>\n </div>\n </div>\n </div>\n</div>\n<!-- image cropper -->\n<ng-template #content\n let-modal>\n <div class=\"card m-0\">\n <div class=\"card-content\">\n <div class=\"card-title\">\n <h3 class=\"modal-title\">{{ title }}</h3>\n <button type=\"button\"\n class=\"btn-close float-end float-end\"\n aria-label=\"Close\"\n (click)=\"modal.dismiss()\">\n\n </button>\n </div>\n <div class=\"card-header\">\n <small> {{ 'User.Profile.PictureMessage' | transloco }}</small>\n <pw-image-cropper #profile\n [aspectRatio]=\"aspectRatio\"\n (fileChangeEvent)=\"onFileChange($event)\"\n (imageSelectionEvent)=\"onImageSelection($event)\"\n (closeEvent)=\"onClose()\">\n </pw-image-cropper>\n </div>\n </div>\n </div>\n</ng-template>\n","import { Component, Input, OnDestroy, OnInit, ViewChild } from '@angular/core';\nimport { NavigationEnd } from '@angular/router';\nimport { MenuItem } from 'primeng/api';\nimport { TabMenu } from 'primeng/tabmenu';\nimport { Subscription as RxSubscription } from 'rxjs';\n\nimport { AppBaseComponent } from '@posiwise/app-base-component';\nimport { Subscription } from '@posiwise/common-utilities';\nimport { PermissionService } from '@posiwise/common-services';\n\n@Component({\n selector: 'pw-tabs',\n templateUrl: './pw-tabs.component.html'\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 ngOnInit() {\n if (this.withSubscription) {\n this.getUserSubscription().subscribe((subscription: Subscription) => {\n this.items.forEach(item => {\n // prepends the subscription slug to the route\n item.routerLink = `/${subscription?.slug}${item.routerLink[0]}`;\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 });\n }\n\n this.routeEventSubscription = this.router.events.subscribe(e => {\n if (e instanceof NavigationEnd) {\n this.tabInstance.activeItem = this.items.find(\n item => item.routerLink === this.router.url\n );\n }\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 {\n AfterViewInit,\n Component,\n ElementRef,\n Input,\n OnChanges,\n SimpleChanges\n} from '@angular/core';\nimport map from 'lodash/map';\n\n@Component({\n // eslint-disable-next-line @angular-eslint/component-selector\n selector: 'permission-tree',\n template: ` <div class=\"permission-tree\"></div> `\n})\nexport class PermissionTreeComponent implements AfterViewInit, OnChanges {\n @Input() data: any;\n\n private _$tree: any;\n\n private _createdTreeBefore;\n\n constructor(private _element: ElementRef) {}\n\n ngOnChanges(simple: SimpleChanges) {\n if (\n simple['data'] &&\n simple['data'].currentValue &&\n simple['data'].currentValue.grantedPermissionNames\n ) {\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 (let i = 0; i < selectedPermissions.length; i++) {\n permissionNames.push(selectedPermissions[i].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 ? 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 function 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 { NgModule } from '@angular/core';\nimport { AbTestContainerComponent } from './ab-test/ab-test-container/ab-test-container.component';\nimport { AbAlternativeComponent } from './ab-test/ab-alternative/ab-alternative.component';\nimport { PasswordValidationComponent } from './password-validation/password-validation.component';\nimport { DirectivesModule } from '@posiwise/directives';\nimport { CoreTranslocoModule } from '@posiwise/core-transloco';\nimport { CustomUploaderComponent } from './custom-uploader/custom-uploader.component';\nimport { ProfileImageCropperComponent } from './image-cropper/image-cropper.component';\nimport { PwTabsComponent } from './pw-tabs/pw-tabs.component';\n\nimport { FormsModule } from '@angular/forms';\nimport { ImageCropperModule } from 'ngx-image-cropper';\nimport { TabMenuModule } from 'primeng/tabmenu';\nimport {PermissionTreeComponent} from \"./permission-tree/permission-tree.component\";\n\nconst primeNgModules = [TabMenuModule];\n\n@NgModule({\n declarations: [\n AbTestContainerComponent,\n AbAlternativeComponent,\n PasswordValidationComponent,\n CustomUploaderComponent,\n ProfileImageCropperComponent,\n PwTabsComponent,\n PermissionTreeComponent\n ],\n imports: [\n FormsModule,\n DirectivesModule,\n CoreTranslocoModule,\n ImageCropperModule,\n primeNgModules\n ],\n exports: [\n AbTestContainerComponent,\n AbAlternativeComponent,\n PasswordValidationComponent,\n CustomUploaderComponent,\n ProfileImageCropperComponent,\n ImageCropperModule,\n PwTabsComponent,\n primeNgModules,\n PermissionTreeComponent\n ]\n})\nexport class SharedComponentsModule {}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":["i1","i2","i2.ProfileImageCropperComponent","i3"],"mappings":"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"}
|
package/index.d.ts
CHANGED
|
@@ -4,3 +4,5 @@ export * from './lib/ab-test/ab-alternative/ab-alternative.component';
|
|
|
4
4
|
export * from './lib/password-validation/password-validation.component';
|
|
5
5
|
export * from './lib/custom-uploader/custom-uploader.component';
|
|
6
6
|
export * from './lib/image-cropper/image-cropper.component';
|
|
7
|
+
export * from './lib/pw-tabs/pw-tabs.component';
|
|
8
|
+
export * from './lib/permission-tree/permission-tree.component';
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
import { AfterViewInit, ElementRef, OnChanges, SimpleChanges } from '@angular/core';
|
|
2
|
+
import * as i0 from "@angular/core";
|
|
3
|
+
export declare class PermissionTreeComponent implements AfterViewInit, OnChanges {
|
|
4
|
+
private _element;
|
|
5
|
+
data: any;
|
|
6
|
+
private _$tree;
|
|
7
|
+
private _createdTreeBefore;
|
|
8
|
+
constructor(_element: ElementRef);
|
|
9
|
+
ngOnChanges(simple: SimpleChanges): void;
|
|
10
|
+
ngAfterViewInit(): void;
|
|
11
|
+
getGrantedPermissionNames(): string[];
|
|
12
|
+
private refreshTree;
|
|
13
|
+
static ɵfac: i0.ɵɵFactoryDeclaration<PermissionTreeComponent, never>;
|
|
14
|
+
static ɵcmp: i0.ɵɵComponentDeclaration<PermissionTreeComponent, "permission-tree", never, { "data": "data"; }, {}, never, never, false, never>;
|
|
15
|
+
}
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
import { OnDestroy, OnInit } from '@angular/core';
|
|
2
|
+
import { MenuItem } from 'primeng/api';
|
|
3
|
+
import { TabMenu } from 'primeng/tabmenu';
|
|
4
|
+
import { AppBaseComponent } from '@posiwise/app-base-component';
|
|
5
|
+
import * as i0 from "@angular/core";
|
|
6
|
+
export declare class PwTabsComponent extends AppBaseComponent implements OnInit, OnDestroy {
|
|
7
|
+
items: MenuItem[];
|
|
8
|
+
tabInstance: TabMenu;
|
|
9
|
+
withSubscription: boolean;
|
|
10
|
+
activeTab: MenuItem;
|
|
11
|
+
private routeEventSubscription;
|
|
12
|
+
ngOnInit(): void;
|
|
13
|
+
ngOnDestroy(): void;
|
|
14
|
+
static ɵfac: i0.ɵɵFactoryDeclaration<PwTabsComponent, never>;
|
|
15
|
+
static ɵcmp: i0.ɵɵComponentDeclaration<PwTabsComponent, "pw-tabs", never, { "items": "items"; "withSubscription": "withSubscription"; }, {}, never, never, false, never>;
|
|
16
|
+
}
|
|
@@ -4,12 +4,15 @@ import * as i2 from "./ab-test/ab-alternative/ab-alternative.component";
|
|
|
4
4
|
import * as i3 from "./password-validation/password-validation.component";
|
|
5
5
|
import * as i4 from "./custom-uploader/custom-uploader.component";
|
|
6
6
|
import * as i5 from "./image-cropper/image-cropper.component";
|
|
7
|
-
import * as i6 from "
|
|
8
|
-
import * as i7 from "
|
|
9
|
-
import * as i8 from "@
|
|
10
|
-
import * as i9 from "
|
|
7
|
+
import * as i6 from "./pw-tabs/pw-tabs.component";
|
|
8
|
+
import * as i7 from "./permission-tree/permission-tree.component";
|
|
9
|
+
import * as i8 from "@angular/forms";
|
|
10
|
+
import * as i9 from "@posiwise/directives";
|
|
11
|
+
import * as i10 from "@posiwise/core-transloco";
|
|
12
|
+
import * as i11 from "ngx-image-cropper";
|
|
13
|
+
import * as i12 from "primeng/tabmenu";
|
|
11
14
|
export declare class SharedComponentsModule {
|
|
12
15
|
static ɵfac: i0.ɵɵFactoryDeclaration<SharedComponentsModule, never>;
|
|
13
|
-
static ɵmod: i0.ɵɵNgModuleDeclaration<SharedComponentsModule, [typeof i1.AbTestContainerComponent, typeof i2.AbAlternativeComponent, typeof i3.PasswordValidationComponent, typeof i4.CustomUploaderComponent, typeof i5.ProfileImageCropperComponent], [typeof
|
|
16
|
+
static ɵmod: i0.ɵɵNgModuleDeclaration<SharedComponentsModule, [typeof i1.AbTestContainerComponent, typeof i2.AbAlternativeComponent, typeof i3.PasswordValidationComponent, typeof i4.CustomUploaderComponent, typeof i5.ProfileImageCropperComponent, typeof i6.PwTabsComponent, typeof i7.PermissionTreeComponent], [typeof i8.FormsModule, typeof i9.DirectivesModule, typeof i10.CoreTranslocoModule, typeof i11.ImageCropperModule, typeof i12.TabMenuModule], [typeof i1.AbTestContainerComponent, typeof i2.AbAlternativeComponent, typeof i3.PasswordValidationComponent, typeof i4.CustomUploaderComponent, typeof i5.ProfileImageCropperComponent, typeof i11.ImageCropperModule, typeof i6.PwTabsComponent, typeof i12.TabMenuModule, typeof i7.PermissionTreeComponent]>;
|
|
14
17
|
static ɵinj: i0.ɵɵInjectorDeclaration<SharedComponentsModule>;
|
|
15
18
|
}
|
package/package.json
CHANGED
|
@@ -1,14 +1,14 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@posiwise/shared-components",
|
|
3
|
-
"version": "0.0.
|
|
3
|
+
"version": "0.0.14",
|
|
4
4
|
"peerDependencies": {
|
|
5
5
|
"@angular/common": "15.2.5",
|
|
6
6
|
"@angular/core": "15.2.5",
|
|
7
7
|
"@ngneat/transloco": "^4.2.6",
|
|
8
8
|
"@ngneat/transloco-keys-manager": "^3.7.0",
|
|
9
9
|
"ngx-image-cropper": "^6.3.3",
|
|
10
|
-
"@posiwise/common-services": "^0.0.
|
|
11
|
-
"@posiwise/app-base-component": "^0.0.
|
|
10
|
+
"@posiwise/common-services": "^0.0.51",
|
|
11
|
+
"@posiwise/app-base-component": "^0.0.10",
|
|
12
12
|
"@posiwise/directives": "^0.0.1",
|
|
13
13
|
"@posiwise/core-transloco": "^0.0.1",
|
|
14
14
|
"@posiwise/core-styles": "^1.0.0"
|