@libs-ui/components-preview-file 0.2.356-27 → 0.2.356-29

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.
@@ -34,6 +34,7 @@ export class LibsUiComponentsPreviewFileComponent {
34
34
  buttons = input();
35
35
  isSourceIframe = input();
36
36
  outClose = output();
37
+ outChangeIndex = output();
37
38
  constructor(linkImageError) {
38
39
  this.linkImageError = linkImageError;
39
40
  }
@@ -62,9 +63,11 @@ export class LibsUiComponentsPreviewFileComponent {
62
63
  }
63
64
  handlerPrev() {
64
65
  this.index.update((value) => value - 1);
66
+ this.outChangeIndex.emit(this.index());
65
67
  }
66
68
  handlerNext() {
67
69
  this.index.update((value) => value + 1);
70
+ this.outChangeIndex.emit(this.index());
68
71
  }
69
72
  async handlerImageError(event) {
70
73
  if (!this.linkImageError) {
@@ -73,7 +76,7 @@ export class LibsUiComponentsPreviewFileComponent {
73
76
  event.target.src = this.linkImageError;
74
77
  }
75
78
  static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: LibsUiComponentsPreviewFileComponent, deps: [{ token: LINK_IMAGE_ERROR_TOKEN_INJECT, optional: true }], target: i0.ɵɵFactoryTarget.Component });
76
- static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.14", type: LibsUiComponentsPreviewFileComponent, isStandalone: true, selector: "libs_ui-components-preview_file", inputs: { zIndex: { classPropertyName: "zIndex", publicName: "zIndex", isSignal: true, isRequired: false, transformFunction: null }, index: { classPropertyName: "index", publicName: "index", isSignal: true, isRequired: true, transformFunction: null }, data: { classPropertyName: "data", publicName: "data", isSignal: true, isRequired: true, transformFunction: null }, buttons: { classPropertyName: "buttons", publicName: "buttons", isSignal: true, isRequired: false, transformFunction: null }, isSourceIframe: { classPropertyName: "isSourceIframe", publicName: "isSourceIframe", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { index: "indexChange", outClose: "outClose" }, ngImport: i0, template: "<libs_ui-components-modal\n [minWidth]=\"'1200px'\"\n [headerConfig]=\"{ ignoreHeaderTheme: true, classButtonCloseInclude: '!mr-[24px]' }\"\n [bodyConfig]=\"{ classInclude: '!p-0', scrollOverlayOptions: { scrollX: 'hidden', scrollY: 'hidden' } }\"\n [footerConfig]=\"{ hidden: true }\"\n [zIndex]=\"zIndex()\"\n [buttonsFooter]=\"[]\"\n [mode]=\"'center'\"\n (outEvent)=\"handlerClose($event)\">\n <div class=\"libs-ui-modal-header-custom w-full flex items-center justify-between min-w-0\">\n <div class=\"w-full ml-[24px] mr-[8px] flex justify-between items-center min-w-0 gap-[16px]\">\n <div class=\"w-2/8 flex-1\"></div>\n <div class=\"flex libs-ui-font-h4s min-w-0 w-4/8 justify-center flex-1\">\n <libs_ui-components-popover\n [type]=\"'text'\"\n [config]=\"{ zIndex: zIndex() }\">\n {{ fileView()?.name }}\n </libs_ui-components-popover>\n </div>\n @if (buttons()?.length) {\n <div class=\"flex gap-[8px] items-center w-2/8 justify-end flex-1\">\n @for (button of buttons(); track button.key) {\n <libs_ui-components-buttons-button\n [type]=\"button.type || 'button-third'\"\n [label]=\"button.label || ''\"\n [classIconLeft]=\"button.classIconLeft || ''\"\n [iconOnlyType]=\"button.iconOnlyType || false\"\n [classInclude]=\"button.classInclude || '!py-[4px] !px-[12px]'\"\n (outClick)=\"button.action?.(index())\" />\n }\n <div class=\"h-[12px] libs-ui-border-left-general\"></div>\n </div>\n }\n </div>\n </div>\n <div class=\"libs-ui-modal-body-custom h-full w-full flex rounded-b-[8px] overflow-hidden relative\">\n @if (index() > 0) {\n <div class=\"absolute top-[50%] left-[24px] transform -translate-y-[50%] z-[1]\">\n <libs_ui-components-buttons-button\n [type]=\"'button-outline'\"\n [iconOnlyType]=\"true\"\n [classInclude]=\"'!p-[11px] !rounded-[8px]'\"\n [classIconLeft]=\"'libs-ui-icon-chevron-right rotate-180 before:!text-[20px]'\"\n (outClick)=\"handlerPrev()\" />\n </div>\n }\n @if (fileView(); as fileView) {\n @if (fileView | LibsUiPipesCheckFileExtensionPipe: 'image') {\n <div class=\"w-full h-full relative flex items-center justify-center\">\n @if (fileView.url || fileView.origin_url; as url) {\n <img\n [src]=\"url\"\n alt=\"\"\n class=\"max-w-full max-h-full object-contain\"\n (load)=\"handlerOnLoad()\"\n (error)=\"handlerImageError($event)\" />\n @if (loading()) {\n <libs_ui-components-spinner [size]=\"'medium'\" />\n }\n }\n </div>\n } @else {\n <iframe\n id=\"google\"\n [class.hidden]=\"loading()\"\n [src]=\"fileView.urlFile ?? '' | LibsUiPipesSecurityTrustPipe: 'resourceUrl' | async\"\n width=\"100%\"\n height=\"100%\"\n frameborder=\"0\"\n allowfullscreen=\"allowfullscreen\"\n (load)=\"handlerOnLoad()\"></iframe>\n @if (loading()) {\n <libs_ui-components-skeleton [class]=\"'w-full h-full'\" />\n }\n }\n @if (index() < data().length - 1) {\n <div class=\"absolute top-[50%] right-[24px] transform -translate-y-[50%] z-[1]\">\n <libs_ui-components-buttons-button\n [type]=\"'button-outline'\"\n [iconOnlyType]=\"true\"\n [classInclude]=\"'!p-[11px] !rounded-[8px]'\"\n [classIconLeft]=\"'libs-ui-icon-chevron-right before:!text-[20px]'\"\n (outClick)=\"handlerNext()\" />\n </div>\n }\n }\n </div>\n</libs_ui-components-modal>\n", dependencies: [{ kind: "pipe", type: AsyncPipe, name: "async" }, { kind: "component", type: LibsUiComponentsModalComponent, selector: "libs_ui-components-modal", inputs: ["show", "mode", "isBackdropTransparent", "isBackgroundTransparentModal", "isSizeBackdropByWidthHeightInput", "hasShadowBoxWhenHiddenBackDropTransparent", "classIncludeModalWrapper", "zIndex", "width", "height", "maxWidth", "maxHeight", "minWidth", "isFullScreen", "disable", "ignoreCommunicateMicroEvent", "escapeKeyboardCloseModal", "isClickOutsideClose", "headerConfig", "bodyConfig", "footerConfig", "buttonsFooter", "title", "titleUseXssFilter", "titleUseTooltip", "titleUseInnerText"], outputs: ["showChange", "widthChange", "heightChange", "maxWidthChange", "maxHeightChange", "minWidthChange", "disableChange", "buttonsFooterChange", "outScrollContent", "outEvent", "outFunctionControl", "outClose"] }, { kind: "pipe", type: LibsUiPipesSecurityTrustPipe, name: "LibsUiPipesSecurityTrustPipe" }, { kind: "component", type: LibsUiComponentsSkeletonComponent, selector: "libs_ui-components-skeleton", inputs: ["config"] }, { kind: "component", type: LibsUiComponentsPopoverComponent, selector: "libs_ui-components-popover,[LibsUiComponentsPopoverDirective]", inputs: ["debugId", "flagMouse", "type", "mode", "config", "ignoreShowPopover", "elementRefCustom", "initEventInElementRefCustom", "classInclude", "ignoreHiddenPopoverContentWhenMouseLeave", "ignoreStopPropagationEvent", "ignoreCursorPointerModeLikeClick", "isAddContentToParentDocument", "ignoreClickOutside"], outputs: ["outEvent", "outChangStageFlagMouse", "outEventPopoverContent", "outFunctionsControl"] }, { kind: "component", type: LibsUiComponentsButtonsButtonComponent, selector: "libs_ui-components-buttons-button", inputs: ["flagMouse", "type", "buttonCustom", "sizeButton", "label", "disable", "isPending", "imageLeft", "classInclude", "classIconLeft", "classIconRight", "classLabel", "iconOnlyType", "popover", "ignoreStopPropagationEvent", "zIndex", "widthLabelPopover", "styleIconLeft", "styleButton", "ignoreFocusWhenInputTab", "ignoreSetClickWhenShowPopover", "ignorePointerEvent", "isActive", "isHandlerEnterDocumentClickButton"], outputs: ["outClick", "outPopoverEvent", "outFunctionsControl"] }, { kind: "pipe", type: LibsUiPipesCheckFileExtensionPipe, name: "LibsUiPipesCheckFileExtensionPipe" }, { kind: "component", type: LibsUiComponentsSpinnerComponent, selector: "libs_ui-components-spinner", inputs: ["type", "size"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
79
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.14", type: LibsUiComponentsPreviewFileComponent, isStandalone: true, selector: "libs_ui-components-preview_file", inputs: { zIndex: { classPropertyName: "zIndex", publicName: "zIndex", isSignal: true, isRequired: false, transformFunction: null }, index: { classPropertyName: "index", publicName: "index", isSignal: true, isRequired: true, transformFunction: null }, data: { classPropertyName: "data", publicName: "data", isSignal: true, isRequired: true, transformFunction: null }, buttons: { classPropertyName: "buttons", publicName: "buttons", isSignal: true, isRequired: false, transformFunction: null }, isSourceIframe: { classPropertyName: "isSourceIframe", publicName: "isSourceIframe", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { index: "indexChange", outClose: "outClose", outChangeIndex: "outChangeIndex" }, ngImport: i0, template: "<libs_ui-components-modal\n [minWidth]=\"'1200px'\"\n [headerConfig]=\"{ ignoreHeaderTheme: true, classButtonCloseInclude: '!mr-[24px]' }\"\n [bodyConfig]=\"{ classInclude: '!p-0', scrollOverlayOptions: { scrollX: 'hidden', scrollY: 'hidden' } }\"\n [footerConfig]=\"{ hidden: true }\"\n [zIndex]=\"zIndex()\"\n [buttonsFooter]=\"[]\"\n [mode]=\"'center'\"\n (outEvent)=\"handlerClose($event)\">\n <div class=\"libs-ui-modal-header-custom w-full flex items-center justify-between min-w-0\">\n <div class=\"w-full ml-[24px] mr-[8px] flex justify-between items-center min-w-0 gap-[16px]\">\n <div class=\"w-2/8 flex-1\"></div>\n <div class=\"flex libs-ui-font-h4s min-w-0 w-4/8 justify-center flex-1\">\n <libs_ui-components-popover\n [type]=\"'text'\"\n [config]=\"{ zIndex: zIndex() }\">\n {{ fileView()?.name }}\n </libs_ui-components-popover>\n </div>\n @if (buttons()?.length) {\n <div class=\"flex gap-[8px] items-center w-2/8 justify-end flex-1\">\n @for (button of buttons(); track button.key) {\n <libs_ui-components-buttons-button\n [type]=\"button.type || 'button-third'\"\n [label]=\"button.label || ''\"\n [classIconLeft]=\"button.classIconLeft || ''\"\n [classIconRight]=\"button.classIconRight || ''\"\n [iconOnlyType]=\"button.iconOnlyType || false\"\n [classInclude]=\"button.classInclude || '!py-[4px] !px-[12px]'\"\n (outClick)=\"button.action?.(index())\" />\n }\n <div class=\"h-[12px] libs-ui-border-left-general\"></div>\n </div>\n }\n </div>\n </div>\n <div class=\"libs-ui-modal-body-custom h-full w-full flex rounded-b-[8px] overflow-hidden relative\">\n @if (index() > 0) {\n <div class=\"absolute top-[50%] left-[24px] transform -translate-y-[50%] z-[1]\">\n <libs_ui-components-buttons-button\n [type]=\"'button-outline'\"\n [iconOnlyType]=\"true\"\n [classInclude]=\"'!p-[11px] !rounded-[8px]'\"\n [classIconLeft]=\"'libs-ui-icon-chevron-right rotate-180 before:!text-[20px]'\"\n (outClick)=\"handlerPrev()\" />\n </div>\n }\n @if (fileView(); as fileView) {\n @if (fileView | LibsUiPipesCheckFileExtensionPipe: 'image') {\n <div class=\"w-full h-full relative flex items-center justify-center\">\n @if (fileView.url || fileView.origin_url; as url) {\n <img\n [src]=\"url\"\n alt=\"\"\n class=\"max-w-full max-h-full object-contain\"\n (load)=\"handlerOnLoad()\"\n (error)=\"handlerImageError($event)\" />\n @if (loading()) {\n <libs_ui-components-spinner [size]=\"'medium'\" />\n }\n }\n </div>\n } @else {\n <iframe\n id=\"google\"\n [class.hidden]=\"loading()\"\n [src]=\"fileView.urlFile ?? '' | LibsUiPipesSecurityTrustPipe: 'resourceUrl' | async\"\n width=\"100%\"\n height=\"100%\"\n frameborder=\"0\"\n allowfullscreen=\"allowfullscreen\"\n (load)=\"handlerOnLoad()\"></iframe>\n @if (loading()) {\n <libs_ui-components-skeleton [class]=\"'w-full h-full'\" />\n }\n }\n @if (index() < data().length - 1) {\n <div class=\"absolute top-[50%] right-[24px] transform -translate-y-[50%] z-[1]\">\n <libs_ui-components-buttons-button\n [type]=\"'button-outline'\"\n [iconOnlyType]=\"true\"\n [classInclude]=\"'!p-[11px] !rounded-[8px]'\"\n [classIconLeft]=\"'libs-ui-icon-chevron-right before:!text-[20px]'\"\n (outClick)=\"handlerNext()\" />\n </div>\n }\n }\n </div>\n</libs_ui-components-modal>\n", dependencies: [{ kind: "pipe", type: AsyncPipe, name: "async" }, { kind: "component", type: LibsUiComponentsModalComponent, selector: "libs_ui-components-modal", inputs: ["show", "mode", "isBackdropTransparent", "isBackgroundTransparentModal", "isSizeBackdropByWidthHeightInput", "hasShadowBoxWhenHiddenBackDropTransparent", "classIncludeModalWrapper", "zIndex", "width", "height", "maxWidth", "maxHeight", "minWidth", "isFullScreen", "disable", "ignoreCommunicateMicroEvent", "escapeKeyboardCloseModal", "isClickOutsideClose", "headerConfig", "bodyConfig", "footerConfig", "buttonsFooter", "title", "titleUseXssFilter", "titleUseTooltip", "titleUseInnerText"], outputs: ["showChange", "widthChange", "heightChange", "maxWidthChange", "maxHeightChange", "minWidthChange", "disableChange", "buttonsFooterChange", "outScrollContent", "outEvent", "outFunctionControl", "outClose"] }, { kind: "pipe", type: LibsUiPipesSecurityTrustPipe, name: "LibsUiPipesSecurityTrustPipe" }, { kind: "component", type: LibsUiComponentsSkeletonComponent, selector: "libs_ui-components-skeleton", inputs: ["config"] }, { kind: "component", type: LibsUiComponentsPopoverComponent, selector: "libs_ui-components-popover,[LibsUiComponentsPopoverDirective]", inputs: ["debugId", "flagMouse", "type", "mode", "config", "ignoreShowPopover", "elementRefCustom", "initEventInElementRefCustom", "classInclude", "ignoreHiddenPopoverContentWhenMouseLeave", "ignoreStopPropagationEvent", "ignoreCursorPointerModeLikeClick", "isAddContentToParentDocument", "ignoreClickOutside"], outputs: ["outEvent", "outChangStageFlagMouse", "outEventPopoverContent", "outFunctionsControl"] }, { kind: "component", type: LibsUiComponentsButtonsButtonComponent, selector: "libs_ui-components-buttons-button", inputs: ["flagMouse", "type", "buttonCustom", "sizeButton", "label", "disable", "isPending", "imageLeft", "classInclude", "classIconLeft", "classIconRight", "classLabel", "iconOnlyType", "popover", "ignoreStopPropagationEvent", "zIndex", "widthLabelPopover", "styleIconLeft", "styleButton", "ignoreFocusWhenInputTab", "ignoreSetClickWhenShowPopover", "ignorePointerEvent", "isActive", "isHandlerEnterDocumentClickButton"], outputs: ["outClick", "outPopoverEvent", "outFunctionsControl"] }, { kind: "pipe", type: LibsUiPipesCheckFileExtensionPipe, name: "LibsUiPipesCheckFileExtensionPipe" }, { kind: "component", type: LibsUiComponentsSpinnerComponent, selector: "libs_ui-components-spinner", inputs: ["type", "size"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
77
80
  }
78
81
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: LibsUiComponentsPreviewFileComponent, decorators: [{
79
82
  type: Component,
@@ -86,11 +89,11 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImpo
86
89
  LibsUiComponentsButtonsButtonComponent,
87
90
  LibsUiPipesCheckFileExtensionPipe,
88
91
  LibsUiComponentsSpinnerComponent,
89
- ], changeDetection: ChangeDetectionStrategy.OnPush, template: "<libs_ui-components-modal\n [minWidth]=\"'1200px'\"\n [headerConfig]=\"{ ignoreHeaderTheme: true, classButtonCloseInclude: '!mr-[24px]' }\"\n [bodyConfig]=\"{ classInclude: '!p-0', scrollOverlayOptions: { scrollX: 'hidden', scrollY: 'hidden' } }\"\n [footerConfig]=\"{ hidden: true }\"\n [zIndex]=\"zIndex()\"\n [buttonsFooter]=\"[]\"\n [mode]=\"'center'\"\n (outEvent)=\"handlerClose($event)\">\n <div class=\"libs-ui-modal-header-custom w-full flex items-center justify-between min-w-0\">\n <div class=\"w-full ml-[24px] mr-[8px] flex justify-between items-center min-w-0 gap-[16px]\">\n <div class=\"w-2/8 flex-1\"></div>\n <div class=\"flex libs-ui-font-h4s min-w-0 w-4/8 justify-center flex-1\">\n <libs_ui-components-popover\n [type]=\"'text'\"\n [config]=\"{ zIndex: zIndex() }\">\n {{ fileView()?.name }}\n </libs_ui-components-popover>\n </div>\n @if (buttons()?.length) {\n <div class=\"flex gap-[8px] items-center w-2/8 justify-end flex-1\">\n @for (button of buttons(); track button.key) {\n <libs_ui-components-buttons-button\n [type]=\"button.type || 'button-third'\"\n [label]=\"button.label || ''\"\n [classIconLeft]=\"button.classIconLeft || ''\"\n [iconOnlyType]=\"button.iconOnlyType || false\"\n [classInclude]=\"button.classInclude || '!py-[4px] !px-[12px]'\"\n (outClick)=\"button.action?.(index())\" />\n }\n <div class=\"h-[12px] libs-ui-border-left-general\"></div>\n </div>\n }\n </div>\n </div>\n <div class=\"libs-ui-modal-body-custom h-full w-full flex rounded-b-[8px] overflow-hidden relative\">\n @if (index() > 0) {\n <div class=\"absolute top-[50%] left-[24px] transform -translate-y-[50%] z-[1]\">\n <libs_ui-components-buttons-button\n [type]=\"'button-outline'\"\n [iconOnlyType]=\"true\"\n [classInclude]=\"'!p-[11px] !rounded-[8px]'\"\n [classIconLeft]=\"'libs-ui-icon-chevron-right rotate-180 before:!text-[20px]'\"\n (outClick)=\"handlerPrev()\" />\n </div>\n }\n @if (fileView(); as fileView) {\n @if (fileView | LibsUiPipesCheckFileExtensionPipe: 'image') {\n <div class=\"w-full h-full relative flex items-center justify-center\">\n @if (fileView.url || fileView.origin_url; as url) {\n <img\n [src]=\"url\"\n alt=\"\"\n class=\"max-w-full max-h-full object-contain\"\n (load)=\"handlerOnLoad()\"\n (error)=\"handlerImageError($event)\" />\n @if (loading()) {\n <libs_ui-components-spinner [size]=\"'medium'\" />\n }\n }\n </div>\n } @else {\n <iframe\n id=\"google\"\n [class.hidden]=\"loading()\"\n [src]=\"fileView.urlFile ?? '' | LibsUiPipesSecurityTrustPipe: 'resourceUrl' | async\"\n width=\"100%\"\n height=\"100%\"\n frameborder=\"0\"\n allowfullscreen=\"allowfullscreen\"\n (load)=\"handlerOnLoad()\"></iframe>\n @if (loading()) {\n <libs_ui-components-skeleton [class]=\"'w-full h-full'\" />\n }\n }\n @if (index() < data().length - 1) {\n <div class=\"absolute top-[50%] right-[24px] transform -translate-y-[50%] z-[1]\">\n <libs_ui-components-buttons-button\n [type]=\"'button-outline'\"\n [iconOnlyType]=\"true\"\n [classInclude]=\"'!p-[11px] !rounded-[8px]'\"\n [classIconLeft]=\"'libs-ui-icon-chevron-right before:!text-[20px]'\"\n (outClick)=\"handlerNext()\" />\n </div>\n }\n }\n </div>\n</libs_ui-components-modal>\n" }]
92
+ ], changeDetection: ChangeDetectionStrategy.OnPush, template: "<libs_ui-components-modal\n [minWidth]=\"'1200px'\"\n [headerConfig]=\"{ ignoreHeaderTheme: true, classButtonCloseInclude: '!mr-[24px]' }\"\n [bodyConfig]=\"{ classInclude: '!p-0', scrollOverlayOptions: { scrollX: 'hidden', scrollY: 'hidden' } }\"\n [footerConfig]=\"{ hidden: true }\"\n [zIndex]=\"zIndex()\"\n [buttonsFooter]=\"[]\"\n [mode]=\"'center'\"\n (outEvent)=\"handlerClose($event)\">\n <div class=\"libs-ui-modal-header-custom w-full flex items-center justify-between min-w-0\">\n <div class=\"w-full ml-[24px] mr-[8px] flex justify-between items-center min-w-0 gap-[16px]\">\n <div class=\"w-2/8 flex-1\"></div>\n <div class=\"flex libs-ui-font-h4s min-w-0 w-4/8 justify-center flex-1\">\n <libs_ui-components-popover\n [type]=\"'text'\"\n [config]=\"{ zIndex: zIndex() }\">\n {{ fileView()?.name }}\n </libs_ui-components-popover>\n </div>\n @if (buttons()?.length) {\n <div class=\"flex gap-[8px] items-center w-2/8 justify-end flex-1\">\n @for (button of buttons(); track button.key) {\n <libs_ui-components-buttons-button\n [type]=\"button.type || 'button-third'\"\n [label]=\"button.label || ''\"\n [classIconLeft]=\"button.classIconLeft || ''\"\n [classIconRight]=\"button.classIconRight || ''\"\n [iconOnlyType]=\"button.iconOnlyType || false\"\n [classInclude]=\"button.classInclude || '!py-[4px] !px-[12px]'\"\n (outClick)=\"button.action?.(index())\" />\n }\n <div class=\"h-[12px] libs-ui-border-left-general\"></div>\n </div>\n }\n </div>\n </div>\n <div class=\"libs-ui-modal-body-custom h-full w-full flex rounded-b-[8px] overflow-hidden relative\">\n @if (index() > 0) {\n <div class=\"absolute top-[50%] left-[24px] transform -translate-y-[50%] z-[1]\">\n <libs_ui-components-buttons-button\n [type]=\"'button-outline'\"\n [iconOnlyType]=\"true\"\n [classInclude]=\"'!p-[11px] !rounded-[8px]'\"\n [classIconLeft]=\"'libs-ui-icon-chevron-right rotate-180 before:!text-[20px]'\"\n (outClick)=\"handlerPrev()\" />\n </div>\n }\n @if (fileView(); as fileView) {\n @if (fileView | LibsUiPipesCheckFileExtensionPipe: 'image') {\n <div class=\"w-full h-full relative flex items-center justify-center\">\n @if (fileView.url || fileView.origin_url; as url) {\n <img\n [src]=\"url\"\n alt=\"\"\n class=\"max-w-full max-h-full object-contain\"\n (load)=\"handlerOnLoad()\"\n (error)=\"handlerImageError($event)\" />\n @if (loading()) {\n <libs_ui-components-spinner [size]=\"'medium'\" />\n }\n }\n </div>\n } @else {\n <iframe\n id=\"google\"\n [class.hidden]=\"loading()\"\n [src]=\"fileView.urlFile ?? '' | LibsUiPipesSecurityTrustPipe: 'resourceUrl' | async\"\n width=\"100%\"\n height=\"100%\"\n frameborder=\"0\"\n allowfullscreen=\"allowfullscreen\"\n (load)=\"handlerOnLoad()\"></iframe>\n @if (loading()) {\n <libs_ui-components-skeleton [class]=\"'w-full h-full'\" />\n }\n }\n @if (index() < data().length - 1) {\n <div class=\"absolute top-[50%] right-[24px] transform -translate-y-[50%] z-[1]\">\n <libs_ui-components-buttons-button\n [type]=\"'button-outline'\"\n [iconOnlyType]=\"true\"\n [classInclude]=\"'!p-[11px] !rounded-[8px]'\"\n [classIconLeft]=\"'libs-ui-icon-chevron-right before:!text-[20px]'\"\n (outClick)=\"handlerNext()\" />\n </div>\n }\n }\n </div>\n</libs_ui-components-modal>\n" }]
90
93
  }], ctorParameters: () => [{ type: undefined, decorators: [{
91
94
  type: Optional
92
95
  }, {
93
96
  type: Inject,
94
97
  args: [LINK_IMAGE_ERROR_TOKEN_INJECT]
95
98
  }] }] });
96
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHJldmlldy1maWxlLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL2xpYnMtdWkvY29tcG9uZW50cy9wcmV2aWV3LWZpbGUvc3JjL3ByZXZpZXctZmlsZS5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi9saWJzLXVpL2NvbXBvbmVudHMvcHJldmlldy1maWxlL3NyYy9wcmV2aWV3LWZpbGUuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQzVDLE9BQU8sRUFBRSx1QkFBdUIsRUFBRSxTQUFTLEVBQUUsUUFBUSxFQUFFLE1BQU0sRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLFFBQVEsRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLFNBQVMsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUN4SSxPQUFPLEVBQVcsc0NBQXNDLEVBQUUsTUFBTSxvQ0FBb0MsQ0FBQztBQUNyRyxPQUFPLEVBQUUsOEJBQThCLEVBQW9CLE1BQU0sMkJBQTJCLENBQUM7QUFDN0YsT0FBTyxFQUFFLGdDQUFnQyxFQUFFLE1BQU0sNkJBQTZCLENBQUM7QUFDL0UsT0FBTyxFQUFFLGlDQUFpQyxFQUFFLE1BQU0sOEJBQThCLENBQUM7QUFDakYsT0FBTyxFQUFFLGdDQUFnQyxFQUFFLE1BQU0sNkJBQTZCLENBQUM7QUFFL0UsT0FBTyxFQUFFLGlDQUFpQyxFQUFFLE1BQU0scUNBQXFDLENBQUM7QUFDeEYsT0FBTyxFQUFFLDRCQUE0QixFQUFFLE1BQU0sK0JBQStCLENBQUM7QUFDN0UsT0FBTyxFQUFFLDZCQUE2QixFQUFFLE1BQU0sZ0JBQWdCLENBQUM7O0FBbUIvRCxNQUFNLE9BQU8sb0NBQW9DO0lBK0J3QjtJQTlCN0QsT0FBTyxHQUFHLE1BQU0sQ0FBQyxJQUFJLENBQUMsQ0FBQztJQUN2QixRQUFRLEdBQUcsUUFBUSxDQUFDLEdBQUcsRUFBRTtRQUNqQyxNQUFNLElBQUksR0FBRyxJQUFJLENBQUMsSUFBSSxFQUFFLENBQUMsSUFBSSxDQUFDLEtBQUssRUFBRSxDQUFDLENBQUM7UUFFdkMsSUFBSSxDQUFDLElBQUksRUFBRSxDQUFDO1lBQ1YsT0FBTyxJQUFJLENBQUM7UUFDZCxDQUFDO1FBQ0QsU0FBUyxDQUFDLEdBQUcsRUFBRSxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsR0FBRyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUM7UUFDeEMsTUFBTSxRQUFRLEdBQUcsSUFBSSxDQUFDLFFBQVEsSUFBSSxJQUFJLENBQUMsSUFBSSxFQUFFLElBQUksQ0FBQztRQUNsRCxNQUFNLEdBQUcsR0FBRyxJQUFJLENBQUMsR0FBRyxJQUFJLElBQUksQ0FBQyxVQUFVLENBQUM7UUFFeEMsSUFBSSxJQUFJLENBQUMsY0FBYyxFQUFFLEVBQUUsQ0FBQztZQUMxQixPQUFPLEVBQUUsR0FBRyxJQUFJLEVBQUUsT0FBTyxFQUFFLEdBQUcsRUFBRSxDQUFDO1FBQ25DLENBQUM7UUFFRCxJQUFJLFFBQVEsSUFBSSxJQUFJLENBQUMsd0JBQXdCLEVBQUUsQ0FBQyxRQUFRLENBQUMsUUFBUSxDQUFDLEVBQUUsQ0FBQztZQUNuRSxPQUFPLEVBQUUsR0FBRyxJQUFJLEVBQUUsT0FBTyxFQUFFLHNEQUFzRCxrQkFBa0IsQ0FBQyxHQUFHLElBQUksRUFBRSxDQUFDLEVBQUUsRUFBRSxDQUFDO1FBQ3JILENBQUM7UUFFRCxPQUFPLEVBQUUsR0FBRyxJQUFJLEVBQUUsT0FBTyxFQUFFLGdEQUFnRCxrQkFBa0IsQ0FBQyxHQUFHLElBQUksRUFBRSxDQUFDLGdCQUFnQixFQUFFLENBQUM7SUFDN0gsQ0FBQyxDQUFDLENBQUM7SUFFTSxNQUFNLEdBQUcsS0FBSyxFQUFVLENBQUM7SUFDekIsS0FBSyxHQUFHLEtBQUssQ0FBQyxRQUFRLEVBQVUsQ0FBQztJQUNqQyxJQUFJLEdBQUcsS0FBSyxDQUFDLFFBQVEsRUFBVyxDQUFDO0lBQ2pDLE9BQU8sR0FBRyxLQUFLLEVBQWEsQ0FBQztJQUM3QixjQUFjLEdBQUcsS0FBSyxFQUFXLENBQUM7SUFFbEMsUUFBUSxHQUFHLE1BQU0sRUFBUSxDQUFDO0lBRW5DLFlBQXVFLGNBQXNCO1FBQXRCLG1CQUFjLEdBQWQsY0FBYyxDQUFRO0lBQUcsQ0FBQztJQUV2RixLQUFLLENBQUMsYUFBYTtRQUMzQixJQUFJLENBQUMsT0FBTyxDQUFDLEdBQUcsQ0FBQyxLQUFLLENBQUMsQ0FBQztJQUMxQixDQUFDO0lBRVMsS0FBSyxDQUFDLFlBQVksQ0FBQyxJQUFzQjtRQUNqRCxJQUFJLElBQUksS0FBSyxPQUFPLEVBQUUsQ0FBQztZQUNyQixJQUFJLENBQUMsUUFBUSxDQUFDLElBQUksRUFBRSxDQUFDO1FBQ3ZCLENBQUM7SUFDSCxDQUFDO0lBRU8sd0JBQXdCO1FBQzlCLE9BQU87WUFDTCxvQkFBb0I7WUFDcEIseUVBQXlFO1lBQ3pFLHlFQUF5RTtZQUN6RSxtRUFBbUU7WUFDbkUsZ0RBQWdEO1lBQ2hELDBCQUEwQjtZQUMxQixzRUFBc0U7WUFDdEUsK0JBQStCO1lBQy9CLDJFQUEyRTtZQUMzRSw0REFBNEQ7WUFDNUQsd0VBQXdFO1NBQ3pFLENBQUM7SUFDSixDQUFDO0lBRVMsV0FBVztRQUNuQixJQUFJLENBQUMsS0FBSyxDQUFDLE1BQU0sQ0FBQyxDQUFDLEtBQUssRUFBRSxFQUFFLENBQUMsS0FBSyxHQUFHLENBQUMsQ0FBQyxDQUFDO0lBQzFDLENBQUM7SUFFUyxXQUFXO1FBQ25CLElBQUksQ0FBQyxLQUFLLENBQUMsTUFBTSxDQUFDLENBQUMsS0FBSyxFQUFFLEVBQUUsQ0FBQyxLQUFLLEdBQUcsQ0FBQyxDQUFDLENBQUM7SUFDMUMsQ0FBQztJQUVTLEtBQUssQ0FBQyxpQkFBaUIsQ0FBQyxLQUFZO1FBQzVDLElBQUksQ0FBQyxJQUFJLENBQUMsY0FBYyxFQUFFLENBQUM7WUFDekIsT0FBTztRQUNULENBQUM7UUFDQSxLQUFnQixDQUFDLE1BQU0sQ0FBQyxHQUFHLEdBQUcsSUFBSSxDQUFDLGNBQWMsQ0FBQztJQUNyRCxDQUFDO3dHQXhFVSxvQ0FBb0Msa0JBK0JmLDZCQUE2Qjs0RkEvQmxELG9DQUFvQyx1eEJDN0JqRCx3dUhBd0ZBLHVDRHRFSSxTQUFTLDhDQUNULDhCQUE4Qiw2d0JBQzlCLDRCQUE0QixxRUFDNUIsaUNBQWlDLDRGQUNqQyxnQ0FBZ0Msb2dCQUNoQyxzQ0FBc0MsaWpCQUN0QyxpQ0FBaUMsMEVBQ2pDLGdDQUFnQzs7NEZBSXZCLG9DQUFvQztrQkFqQmhELFNBQVM7K0JBRUUsaUNBQWlDLGNBRS9CLElBQUksV0FDUDt3QkFDUCxTQUFTO3dCQUNULDhCQUE4Qjt3QkFDOUIsNEJBQTRCO3dCQUM1QixpQ0FBaUM7d0JBQ2pDLGdDQUFnQzt3QkFDaEMsc0NBQXNDO3dCQUN0QyxpQ0FBaUM7d0JBQ2pDLGdDQUFnQztxQkFDakMsbUJBQ2dCLHVCQUF1QixDQUFDLE1BQU07OzBCQWlDbEMsUUFBUTs7MEJBQUksTUFBTTsyQkFBQyw2QkFBNkIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBBc3luY1BpcGUgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xuaW1wb3J0IHsgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksIENvbXBvbmVudCwgY29tcHV0ZWQsIEluamVjdCwgaW5wdXQsIG1vZGVsLCBPcHRpb25hbCwgb3V0cHV0LCBzaWduYWwsIHVudHJhY2tlZCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgSUJ1dHRvbiwgTGlic1VpQ29tcG9uZW50c0J1dHRvbnNCdXR0b25Db21wb25lbnQgfSBmcm9tICdAbGlicy11aS9jb21wb25lbnRzLWJ1dHRvbnMtYnV0dG9uJztcbmltcG9ydCB7IExpYnNVaUNvbXBvbmVudHNNb2RhbENvbXBvbmVudCwgVFlQRV9NT0RBTF9FVkVOVCB9IGZyb20gJ0BsaWJzLXVpL2NvbXBvbmVudHMtbW9kYWwnO1xuaW1wb3J0IHsgTGlic1VpQ29tcG9uZW50c1BvcG92ZXJDb21wb25lbnQgfSBmcm9tICdAbGlicy11aS9jb21wb25lbnRzLXBvcG92ZXInO1xuaW1wb3J0IHsgTGlic1VpQ29tcG9uZW50c1NrZWxldG9uQ29tcG9uZW50IH0gZnJvbSAnQGxpYnMtdWkvY29tcG9uZW50cy1za2VsZXRvbic7XG5pbXBvcnQgeyBMaWJzVWlDb21wb25lbnRzU3Bpbm5lckNvbXBvbmVudCB9IGZyb20gJ0BsaWJzLXVpL2NvbXBvbmVudHMtc3Bpbm5lcic7XG5pbXBvcnQgeyBJRXZlbnQsIElGaWxlIH0gZnJvbSAnQGxpYnMtdWkvaW50ZXJmYWNlcy10eXBlcyc7XG5pbXBvcnQgeyBMaWJzVWlQaXBlc0NoZWNrRmlsZUV4dGVuc2lvblBpcGUgfSBmcm9tICdAbGlicy11aS9waXBlcy1jaGVjay1maWxlLWV4dGVuc2lvbic7XG5pbXBvcnQgeyBMaWJzVWlQaXBlc1NlY3VyaXR5VHJ1c3RQaXBlIH0gZnJvbSAnQGxpYnMtdWkvcGlwZXMtc2VjdXJpdHktdHJ1c3QnO1xuaW1wb3J0IHsgTElOS19JTUFHRV9FUlJPUl9UT0tFTl9JTkpFQ1QgfSBmcm9tICdAbGlicy11aS91dGlscyc7XG5cbkBDb21wb25lbnQoe1xuICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQGFuZ3VsYXItZXNsaW50L2NvbXBvbmVudC1zZWxlY3RvclxuICBzZWxlY3RvcjogJ2xpYnNfdWktY29tcG9uZW50cy1wcmV2aWV3X2ZpbGUnLFxuICB0ZW1wbGF0ZVVybDogJy4vcHJldmlldy1maWxlLmNvbXBvbmVudC5odG1sJyxcbiAgc3RhbmRhbG9uZTogdHJ1ZSxcbiAgaW1wb3J0czogW1xuICAgIEFzeW5jUGlwZSxcbiAgICBMaWJzVWlDb21wb25lbnRzTW9kYWxDb21wb25lbnQsXG4gICAgTGlic1VpUGlwZXNTZWN1cml0eVRydXN0UGlwZSxcbiAgICBMaWJzVWlDb21wb25lbnRzU2tlbGV0b25Db21wb25lbnQsXG4gICAgTGlic1VpQ29tcG9uZW50c1BvcG92ZXJDb21wb25lbnQsXG4gICAgTGlic1VpQ29tcG9uZW50c0J1dHRvbnNCdXR0b25Db21wb25lbnQsXG4gICAgTGlic1VpUGlwZXNDaGVja0ZpbGVFeHRlbnNpb25QaXBlLFxuICAgIExpYnNVaUNvbXBvbmVudHNTcGlubmVyQ29tcG9uZW50LFxuICBdLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbn0pXG5leHBvcnQgY2xhc3MgTGlic1VpQ29tcG9uZW50c1ByZXZpZXdGaWxlQ29tcG9uZW50IHtcbiAgcHJvdGVjdGVkIGxvYWRpbmcgPSBzaWduYWwodHJ1ZSk7XG4gIHByb3RlY3RlZCBmaWxlVmlldyA9IGNvbXB1dGVkKCgpID0+IHtcbiAgICBjb25zdCBmaWxlID0gdGhpcy5kYXRhKClbdGhpcy5pbmRleCgpXTtcblxuICAgIGlmICghZmlsZSkge1xuICAgICAgcmV0dXJuIG51bGw7XG4gICAgfVxuICAgIHVudHJhY2tlZCgoKSA9PiB0aGlzLmxvYWRpbmcuc2V0KHRydWUpKTtcbiAgICBjb25zdCBtaW1lVHlwZSA9IGZpbGUubWltZXR5cGUgfHwgZmlsZS5maWxlPy50eXBlO1xuICAgIGNvbnN0IHVybCA9IGZpbGUudXJsIHx8IGZpbGUub3JpZ2luX3VybDtcblxuICAgIGlmICh0aGlzLmlzU291cmNlSWZyYW1lKCkpIHtcbiAgICAgIHJldHVybiB7IC4uLmZpbGUsIHVybEZpbGU6IHVybCB9O1xuICAgIH1cblxuICAgIGlmIChtaW1lVHlwZSAmJiB0aGlzLm1pbmVUeXBlTWljcm9Tb2Z0U3VwcG9ydCgpLmluY2x1ZGVzKG1pbWVUeXBlKSkge1xuICAgICAgcmV0dXJuIHsgLi4uZmlsZSwgdXJsRmlsZTogYGh0dHBzOi8vdmlldy5vZmZpY2VhcHBzLmxpdmUuY29tL29wL2VtYmVkLmFzcHg/c3JjPSR7ZW5jb2RlVVJJQ29tcG9uZW50KHVybCB8fCAnJyl9YCB9O1xuICAgIH1cblxuICAgIHJldHVybiB7IC4uLmZpbGUsIHVybEZpbGU6IGBodHRwczovL2RvY3MuZ29vZ2xlLmNvbS9hL3VtZC5lZHUvdmlld2VyP3VybD0ke2VuY29kZVVSSUNvbXBvbmVudCh1cmwgfHwgJycpfSZlbWJlZGRlZD10cnVlYCB9O1xuICB9KTtcblxuICByZWFkb25seSB6SW5kZXggPSBpbnB1dDxudW1iZXI+KCk7XG4gIHJlYWRvbmx5IGluZGV4ID0gbW9kZWwucmVxdWlyZWQ8bnVtYmVyPigpO1xuICByZWFkb25seSBkYXRhID0gaW5wdXQucmVxdWlyZWQ8SUZpbGVbXT4oKTtcbiAgcmVhZG9ubHkgYnV0dG9ucyA9IGlucHV0PElCdXR0b25bXT4oKTtcbiAgcmVhZG9ubHkgaXNTb3VyY2VJZnJhbWUgPSBpbnB1dDxib29sZWFuPigpO1xuXG4gIHJlYWRvbmx5IG91dENsb3NlID0gb3V0cHV0PHZvaWQ+KCk7XG5cbiAgY29uc3RydWN0b3IoQE9wdGlvbmFsKCkgQEluamVjdChMSU5LX0lNQUdFX0VSUk9SX1RPS0VOX0lOSkVDVCkgcHJpdmF0ZSBsaW5rSW1hZ2VFcnJvcjogc3RyaW5nKSB7fVxuXG4gIHByb3RlY3RlZCBhc3luYyBoYW5kbGVyT25Mb2FkKCkge1xuICAgIHRoaXMubG9hZGluZy5zZXQoZmFsc2UpO1xuICB9XG5cbiAgcHJvdGVjdGVkIGFzeW5jIGhhbmRsZXJDbG9zZSh0eXBlOiBUWVBFX01PREFMX0VWRU5UKSB7XG4gICAgaWYgKHR5cGUgPT09ICdjbG9zZScpIHtcbiAgICAgIHRoaXMub3V0Q2xvc2UuZW1pdCgpO1xuICAgIH1cbiAgfVxuXG4gIHByaXZhdGUgbWluZVR5cGVNaWNyb1NvZnRTdXBwb3J0KCkge1xuICAgIHJldHVybiBbXG4gICAgICAnYXBwbGljYXRpb24vbXN3b3JkJyxcbiAgICAgICdhcHBsaWNhdGlvbi92bmQub3BlbnhtbGZvcm1hdHMtb2ZmaWNlZG9jdW1lbnQud29yZHByb2Nlc3NpbmdtbC5kb2N1bWVudCcsXG4gICAgICAnYXBwbGljYXRpb24vdm5kLm9wZW54bWxmb3JtYXRzLW9mZmljZWRvY3VtZW50LndvcmRwcm9jZXNzaW5nbWwudGVtcGxhdGUnLFxuICAgICAgJ2FwcGxpY2F0aW9uL3ZuZC5vcGVueG1sZm9ybWF0cy1vZmZpY2Vkb2N1bWVudC5zcHJlYWRzaGVldG1sLnNoZWV0JyxcbiAgICAgICdhcHBsaWNhdGlvbi92bmQubXMtZXhjZWwuc2hlZXQubWFjcm9FbmFibGVkLjEyJyxcbiAgICAgICdhcHBsaWNhdGlvbi92bmQubXMtZXhjZWwnLFxuICAgICAgJ2FwcGxpY2F0aW9uL3ZuZC5vcGVueG1sZm9ybWF0cy1vZmZpY2Vkb2N1bWVudC5zcHJlYWRzaGVldG1sLnRlbXBsYXRlJyxcbiAgICAgICdhcHBsaWNhdGlvbi92bmQubXMtcG93ZXJwb2ludCcsXG4gICAgICAnYXBwbGljYXRpb24vdm5kLm9wZW54bWxmb3JtYXRzLW9mZmljZWRvY3VtZW50LnByZXNlbnRhdGlvbm1sLnByZXNlbnRhdGlvbicsXG4gICAgICAnYXBwbGljYXRpb24vdm5kLm1zLXBvd2VycG9pbnQucHJlc2VudGF0aW9uLm1hY3JvRW5hYmxlZC4xMicsXG4gICAgICAnYXBwbGljYXRpb24vdm5kLm9wZW54bWxmb3JtYXRzLW9mZmljZWRvY3VtZW50LnByZXNlbnRhdGlvbm1sLnNsaWRlc2hvdycsXG4gICAgXTtcbiAgfVxuXG4gIHByb3RlY3RlZCBoYW5kbGVyUHJldigpIHtcbiAgICB0aGlzLmluZGV4LnVwZGF0ZSgodmFsdWUpID0+IHZhbHVlIC0gMSk7XG4gIH1cblxuICBwcm90ZWN0ZWQgaGFuZGxlck5leHQoKSB7XG4gICAgdGhpcy5pbmRleC51cGRhdGUoKHZhbHVlKSA9PiB2YWx1ZSArIDEpO1xuICB9XG5cbiAgcHJvdGVjdGVkIGFzeW5jIGhhbmRsZXJJbWFnZUVycm9yKGV2ZW50OiBFdmVudCkge1xuICAgIGlmICghdGhpcy5saW5rSW1hZ2VFcnJvcikge1xuICAgICAgcmV0dXJuO1xuICAgIH1cbiAgICAoZXZlbnQgYXMgSUV2ZW50KS50YXJnZXQuc3JjID0gdGhpcy5saW5rSW1hZ2VFcnJvcjtcbiAgfVxufVxuIiwiPGxpYnNfdWktY29tcG9uZW50cy1tb2RhbFxuICBbbWluV2lkdGhdPVwiJzEyMDBweCdcIlxuICBbaGVhZGVyQ29uZmlnXT1cInsgaWdub3JlSGVhZGVyVGhlbWU6IHRydWUsIGNsYXNzQnV0dG9uQ2xvc2VJbmNsdWRlOiAnIW1yLVsyNHB4XScgfVwiXG4gIFtib2R5Q29uZmlnXT1cInsgY2xhc3NJbmNsdWRlOiAnIXAtMCcsIHNjcm9sbE92ZXJsYXlPcHRpb25zOiB7IHNjcm9sbFg6ICdoaWRkZW4nLCBzY3JvbGxZOiAnaGlkZGVuJyB9IH1cIlxuICBbZm9vdGVyQ29uZmlnXT1cInsgaGlkZGVuOiB0cnVlIH1cIlxuICBbekluZGV4XT1cInpJbmRleCgpXCJcbiAgW2J1dHRvbnNGb290ZXJdPVwiW11cIlxuICBbbW9kZV09XCInY2VudGVyJ1wiXG4gIChvdXRFdmVudCk9XCJoYW5kbGVyQ2xvc2UoJGV2ZW50KVwiPlxuICA8ZGl2IGNsYXNzPVwibGlicy11aS1tb2RhbC1oZWFkZXItY3VzdG9tIHctZnVsbCBmbGV4IGl0ZW1zLWNlbnRlciBqdXN0aWZ5LWJldHdlZW4gbWluLXctMFwiPlxuICAgIDxkaXYgY2xhc3M9XCJ3LWZ1bGwgbWwtWzI0cHhdIG1yLVs4cHhdIGZsZXgganVzdGlmeS1iZXR3ZWVuIGl0ZW1zLWNlbnRlciBtaW4tdy0wIGdhcC1bMTZweF1cIj5cbiAgICAgIDxkaXYgY2xhc3M9XCJ3LTIvOCBmbGV4LTFcIj48L2Rpdj5cbiAgICAgIDxkaXYgY2xhc3M9XCJmbGV4IGxpYnMtdWktZm9udC1oNHMgbWluLXctMCB3LTQvOCBqdXN0aWZ5LWNlbnRlciBmbGV4LTFcIj5cbiAgICAgICAgPGxpYnNfdWktY29tcG9uZW50cy1wb3BvdmVyXG4gICAgICAgICAgW3R5cGVdPVwiJ3RleHQnXCJcbiAgICAgICAgICBbY29uZmlnXT1cInsgekluZGV4OiB6SW5kZXgoKSB9XCI+XG4gICAgICAgICAge3sgZmlsZVZpZXcoKT8ubmFtZSB9fVxuICAgICAgICA8L2xpYnNfdWktY29tcG9uZW50cy1wb3BvdmVyPlxuICAgICAgPC9kaXY+XG4gICAgICBAaWYgKGJ1dHRvbnMoKT8ubGVuZ3RoKSB7XG4gICAgICAgIDxkaXYgY2xhc3M9XCJmbGV4IGdhcC1bOHB4XSBpdGVtcy1jZW50ZXIgdy0yLzgganVzdGlmeS1lbmQgZmxleC0xXCI+XG4gICAgICAgICAgQGZvciAoYnV0dG9uIG9mIGJ1dHRvbnMoKTsgdHJhY2sgYnV0dG9uLmtleSkge1xuICAgICAgICAgICAgPGxpYnNfdWktY29tcG9uZW50cy1idXR0b25zLWJ1dHRvblxuICAgICAgICAgICAgICBbdHlwZV09XCJidXR0b24udHlwZSB8fCAnYnV0dG9uLXRoaXJkJ1wiXG4gICAgICAgICAgICAgIFtsYWJlbF09XCJidXR0b24ubGFiZWwgfHwgJydcIlxuICAgICAgICAgICAgICBbY2xhc3NJY29uTGVmdF09XCJidXR0b24uY2xhc3NJY29uTGVmdCB8fCAnJ1wiXG4gICAgICAgICAgICAgIFtpY29uT25seVR5cGVdPVwiYnV0dG9uLmljb25Pbmx5VHlwZSB8fCBmYWxzZVwiXG4gICAgICAgICAgICAgIFtjbGFzc0luY2x1ZGVdPVwiYnV0dG9uLmNsYXNzSW5jbHVkZSB8fCAnIXB5LVs0cHhdICFweC1bMTJweF0nXCJcbiAgICAgICAgICAgICAgKG91dENsaWNrKT1cImJ1dHRvbi5hY3Rpb24/LihpbmRleCgpKVwiIC8+XG4gICAgICAgICAgfVxuICAgICAgICAgIDxkaXYgY2xhc3M9XCJoLVsxMnB4XSBsaWJzLXVpLWJvcmRlci1sZWZ0LWdlbmVyYWxcIj48L2Rpdj5cbiAgICAgICAgPC9kaXY+XG4gICAgICB9XG4gICAgPC9kaXY+XG4gIDwvZGl2PlxuICA8ZGl2IGNsYXNzPVwibGlicy11aS1tb2RhbC1ib2R5LWN1c3RvbSBoLWZ1bGwgdy1mdWxsIGZsZXggcm91bmRlZC1iLVs4cHhdIG92ZXJmbG93LWhpZGRlbiByZWxhdGl2ZVwiPlxuICAgIEBpZiAoaW5kZXgoKSA+IDApIHtcbiAgICAgIDxkaXYgY2xhc3M9XCJhYnNvbHV0ZSB0b3AtWzUwJV0gbGVmdC1bMjRweF0gdHJhbnNmb3JtIC10cmFuc2xhdGUteS1bNTAlXSB6LVsxXVwiPlxuICAgICAgICA8bGlic191aS1jb21wb25lbnRzLWJ1dHRvbnMtYnV0dG9uXG4gICAgICAgICAgW3R5cGVdPVwiJ2J1dHRvbi1vdXRsaW5lJ1wiXG4gICAgICAgICAgW2ljb25Pbmx5VHlwZV09XCJ0cnVlXCJcbiAgICAgICAgICBbY2xhc3NJbmNsdWRlXT1cIichcC1bMTFweF0gIXJvdW5kZWQtWzhweF0nXCJcbiAgICAgICAgICBbY2xhc3NJY29uTGVmdF09XCInbGlicy11aS1pY29uLWNoZXZyb24tcmlnaHQgcm90YXRlLTE4MCBiZWZvcmU6IXRleHQtWzIwcHhdJ1wiXG4gICAgICAgICAgKG91dENsaWNrKT1cImhhbmRsZXJQcmV2KClcIiAvPlxuICAgICAgPC9kaXY+XG4gICAgfVxuICAgIEBpZiAoZmlsZVZpZXcoKTsgYXMgZmlsZVZpZXcpIHtcbiAgICAgIEBpZiAoZmlsZVZpZXcgfCBMaWJzVWlQaXBlc0NoZWNrRmlsZUV4dGVuc2lvblBpcGU6ICdpbWFnZScpIHtcbiAgICAgICAgPGRpdiBjbGFzcz1cInctZnVsbCBoLWZ1bGwgcmVsYXRpdmUgZmxleCBpdGVtcy1jZW50ZXIganVzdGlmeS1jZW50ZXJcIj5cbiAgICAgICAgICBAaWYgKGZpbGVWaWV3LnVybCB8fCBmaWxlVmlldy5vcmlnaW5fdXJsOyBhcyB1cmwpIHtcbiAgICAgICAgICAgIDxpbWdcbiAgICAgICAgICAgICAgW3NyY109XCJ1cmxcIlxuICAgICAgICAgICAgICBhbHQ9XCJcIlxuICAgICAgICAgICAgICBjbGFzcz1cIm1heC13LWZ1bGwgbWF4LWgtZnVsbCBvYmplY3QtY29udGFpblwiXG4gICAgICAgICAgICAgIChsb2FkKT1cImhhbmRsZXJPbkxvYWQoKVwiXG4gICAgICAgICAgICAgIChlcnJvcik9XCJoYW5kbGVySW1hZ2VFcnJvcigkZXZlbnQpXCIgLz5cbiAgICAgICAgICAgIEBpZiAobG9hZGluZygpKSB7XG4gICAgICAgICAgICAgIDxsaWJzX3VpLWNvbXBvbmVudHMtc3Bpbm5lciBbc2l6ZV09XCInbWVkaXVtJ1wiIC8+XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfVxuICAgICAgICA8L2Rpdj5cbiAgICAgIH0gQGVsc2Uge1xuICAgICAgICA8aWZyYW1lXG4gICAgICAgICAgaWQ9XCJnb29nbGVcIlxuICAgICAgICAgIFtjbGFzcy5oaWRkZW5dPVwibG9hZGluZygpXCJcbiAgICAgICAgICBbc3JjXT1cImZpbGVWaWV3LnVybEZpbGUgPz8gJycgfCBMaWJzVWlQaXBlc1NlY3VyaXR5VHJ1c3RQaXBlOiAncmVzb3VyY2VVcmwnIHwgYXN5bmNcIlxuICAgICAgICAgIHdpZHRoPVwiMTAwJVwiXG4gICAgICAgICAgaGVpZ2h0PVwiMTAwJVwiXG4gICAgICAgICAgZnJhbWVib3JkZXI9XCIwXCJcbiAgICAgICAgICBhbGxvd2Z1bGxzY3JlZW49XCJhbGxvd2Z1bGxzY3JlZW5cIlxuICAgICAgICAgIChsb2FkKT1cImhhbmRsZXJPbkxvYWQoKVwiPjwvaWZyYW1lPlxuICAgICAgICBAaWYgKGxvYWRpbmcoKSkge1xuICAgICAgICAgIDxsaWJzX3VpLWNvbXBvbmVudHMtc2tlbGV0b24gW2NsYXNzXT1cIid3LWZ1bGwgaC1mdWxsJ1wiIC8+XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICAgIEBpZiAoaW5kZXgoKSA8IGRhdGEoKS5sZW5ndGggLSAxKSB7XG4gICAgICAgIDxkaXYgY2xhc3M9XCJhYnNvbHV0ZSB0b3AtWzUwJV0gcmlnaHQtWzI0cHhdIHRyYW5zZm9ybSAtdHJhbnNsYXRlLXktWzUwJV0gei1bMV1cIj5cbiAgICAgICAgICA8bGlic191aS1jb21wb25lbnRzLWJ1dHRvbnMtYnV0dG9uXG4gICAgICAgICAgICBbdHlwZV09XCInYnV0dG9uLW91dGxpbmUnXCJcbiAgICAgICAgICAgIFtpY29uT25seVR5cGVdPVwidHJ1ZVwiXG4gICAgICAgICAgICBbY2xhc3NJbmNsdWRlXT1cIichcC1bMTFweF0gIXJvdW5kZWQtWzhweF0nXCJcbiAgICAgICAgICAgIFtjbGFzc0ljb25MZWZ0XT1cIidsaWJzLXVpLWljb24tY2hldnJvbi1yaWdodCBiZWZvcmU6IXRleHQtWzIwcHhdJ1wiXG4gICAgICAgICAgICAob3V0Q2xpY2spPVwiaGFuZGxlck5leHQoKVwiIC8+XG4gICAgICAgIDwvZGl2PlxuICAgICAgfVxuICAgIH1cbiAgPC9kaXY+XG48L2xpYnNfdWktY29tcG9uZW50cy1tb2RhbD5cbiJdfQ==
99
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHJldmlldy1maWxlLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL2xpYnMtdWkvY29tcG9uZW50cy9wcmV2aWV3LWZpbGUvc3JjL3ByZXZpZXctZmlsZS5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi9saWJzLXVpL2NvbXBvbmVudHMvcHJldmlldy1maWxlL3NyYy9wcmV2aWV3LWZpbGUuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQzVDLE9BQU8sRUFBRSx1QkFBdUIsRUFBRSxTQUFTLEVBQUUsUUFBUSxFQUFFLE1BQU0sRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLFFBQVEsRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLFNBQVMsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUN4SSxPQUFPLEVBQVcsc0NBQXNDLEVBQUUsTUFBTSxvQ0FBb0MsQ0FBQztBQUNyRyxPQUFPLEVBQUUsOEJBQThCLEVBQW9CLE1BQU0sMkJBQTJCLENBQUM7QUFDN0YsT0FBTyxFQUFFLGdDQUFnQyxFQUFFLE1BQU0sNkJBQTZCLENBQUM7QUFDL0UsT0FBTyxFQUFFLGlDQUFpQyxFQUFFLE1BQU0sOEJBQThCLENBQUM7QUFDakYsT0FBTyxFQUFFLGdDQUFnQyxFQUFFLE1BQU0sNkJBQTZCLENBQUM7QUFFL0UsT0FBTyxFQUFFLGlDQUFpQyxFQUFFLE1BQU0scUNBQXFDLENBQUM7QUFDeEYsT0FBTyxFQUFFLDRCQUE0QixFQUFFLE1BQU0sK0JBQStCLENBQUM7QUFDN0UsT0FBTyxFQUFFLDZCQUE2QixFQUFFLE1BQU0sZ0JBQWdCLENBQUM7O0FBbUIvRCxNQUFNLE9BQU8sb0NBQW9DO0lBZ0N3QjtJQS9CN0QsT0FBTyxHQUFHLE1BQU0sQ0FBQyxJQUFJLENBQUMsQ0FBQztJQUN2QixRQUFRLEdBQUcsUUFBUSxDQUFDLEdBQUcs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UyxLQUFLLENBQUMsaUJBQWlCLENBQUMsS0FBWTtRQUM1QyxJQUFJLENBQUMsSUFBSSxDQUFDLGNBQWMsRUFBRSxDQUFDO1lBQ3pCLE9BQU87UUFDVCxDQUFDO1FBQ0EsS0FBZ0IsQ0FBQyxNQUFNLENBQUMsR0FBRyxHQUFHLElBQUksQ0FBQyxjQUFjLENBQUM7SUFDckQsQ0FBQzt3R0EzRVUsb0NBQW9DLGtCQWdDZiw2QkFBNkI7NEZBaENsRCxvQ0FBb0MseXpCQzdCakQsd3lIQXlGQSx1Q0R2RUksU0FBUyw4Q0FDVCw4QkFBOEIsNndCQUM5Qiw0QkFBNEIscUVBQzVCLGlDQUFpQyw0RkFDakMsZ0NBQWdDLG9nQkFDaEMsc0NBQXNDLGlqQkFDdEMsaUNBQWlDLDBFQUNqQyxnQ0FBZ0M7OzRGQUl2QixvQ0FBb0M7a0JBakJoRCxTQUFTOytCQUVFLGlDQUFpQyxjQUUvQixJQUFJLFdBQ1A7d0JBQ1AsU0FBUzt3QkFDVCw4QkFBOEI7d0JBQzlCLDRCQUE0Qjt3QkFDNUIsaUNBQWlDO3dCQUNqQyxnQ0FBZ0M7d0JBQ2hDLHNDQUFzQzt3QkFDdEMsaUNBQWlDO3dCQUNqQyxnQ0FBZ0M7cUJBQ2pDLG1CQUNnQix1QkFBdUIsQ0FBQyxNQUFNOzswQkFrQ2xDLFFBQVE7OzBCQUFJLE1BQU07MkJBQUMsNkJBQTZCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQXN5bmNQaXBlIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcbmltcG9ydCB7IENoYW5nZURldGVjdGlvblN0cmF0ZWd5LCBDb21wb25lbnQsIGNvbXB1dGVkLCBJbmplY3QsIGlucHV0LCBtb2RlbCwgT3B0aW9uYWwsIG91dHB1dCwgc2lnbmFsLCB1bnRyYWNrZWQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IElCdXR0b24sIExpYnNVaUNvbXBvbmVudHNCdXR0b25zQnV0dG9uQ29tcG9uZW50IH0gZnJvbSAnQGxpYnMtdWkvY29tcG9uZW50cy1idXR0b25zLWJ1dHRvbic7XG5pbXBvcnQgeyBMaWJzVWlDb21wb25lbnRzTW9kYWxDb21wb25lbnQsIFRZUEVfTU9EQUxfRVZFTlQgfSBmcm9tICdAbGlicy11aS9jb21wb25lbnRzLW1vZGFsJztcbmltcG9ydCB7IExpYnNVaUNvbXBvbmVudHNQb3BvdmVyQ29tcG9uZW50IH0gZnJvbSAnQGxpYnMtdWkvY29tcG9uZW50cy1wb3BvdmVyJztcbmltcG9ydCB7IExpYnNVaUNvbXBvbmVudHNTa2VsZXRvbkNvbXBvbmVudCB9IGZyb20gJ0BsaWJzLXVpL2NvbXBvbmVudHMtc2tlbGV0b24nO1xuaW1wb3J0IHsgTGlic1VpQ29tcG9uZW50c1NwaW5uZXJDb21wb25lbnQgfSBmcm9tICdAbGlicy11aS9jb21wb25lbnRzLXNwaW5uZXInO1xuaW1wb3J0IHsgSUV2ZW50LCBJRmlsZSB9IGZyb20gJ0BsaWJzLXVpL2ludGVyZmFjZXMtdHlwZXMnO1xuaW1wb3J0IHsgTGlic1VpUGlwZXNDaGVja0ZpbGVFeHRlbnNpb25QaXBlIH0gZnJvbSAnQGxpYnMtdWkvcGlwZXMtY2hlY2stZmlsZS1leHRlbnNpb24nO1xuaW1wb3J0IHsgTGlic1VpUGlwZXNTZWN1cml0eVRydXN0UGlwZSB9IGZyb20gJ0BsaWJzLXVpL3BpcGVzLXNlY3VyaXR5LXRydXN0JztcbmltcG9ydCB7IExJTktfSU1BR0VfRVJST1JfVE9LRU5fSU5KRUNUIH0gZnJvbSAnQGxpYnMtdWkvdXRpbHMnO1xuXG5AQ29tcG9uZW50KHtcbiAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEBhbmd1bGFyLWVzbGludC9jb21wb25lbnQtc2VsZWN0b3JcbiAgc2VsZWN0b3I6ICdsaWJzX3VpLWNvbXBvbmVudHMtcHJldmlld19maWxlJyxcbiAgdGVtcGxhdGVVcmw6ICcuL3ByZXZpZXctZmlsZS5jb21wb25lbnQuaHRtbCcsXG4gIHN0YW5kYWxvbmU6IHRydWUsXG4gIGltcG9ydHM6IFtcbiAgICBBc3luY1BpcGUsXG4gICAgTGlic1VpQ29tcG9uZW50c01vZGFsQ29tcG9uZW50LFxuICAgIExpYnNVaVBpcGVzU2VjdXJpdHlUcnVzdFBpcGUsXG4gICAgTGlic1VpQ29tcG9uZW50c1NrZWxldG9uQ29tcG9uZW50LFxuICAgIExpYnNVaUNvbXBvbmVudHNQb3BvdmVyQ29tcG9uZW50LFxuICAgIExpYnNVaUNvbXBvbmVudHNCdXR0b25zQnV0dG9uQ29tcG9uZW50LFxuICAgIExpYnNVaVBpcGVzQ2hlY2tGaWxlRXh0ZW5zaW9uUGlwZSxcbiAgICBMaWJzVWlDb21wb25lbnRzU3Bpbm5lckNvbXBvbmVudCxcbiAgXSxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG59KVxuZXhwb3J0IGNsYXNzIExpYnNVaUNvbXBvbmVudHNQcmV2aWV3RmlsZUNvbXBvbmVudCB7XG4gIHByb3RlY3RlZCBsb2FkaW5nID0gc2lnbmFsKHRydWUpO1xuICBwcm90ZWN0ZWQgZmlsZVZpZXcgPSBjb21wdXRlZCgoKSA9PiB7XG4gICAgY29uc3QgZmlsZSA9IHRoaXMuZGF0YSgpW3RoaXMuaW5kZXgoKV07XG5cbiAgICBpZiAoIWZpbGUpIHtcbiAgICAgIHJldHVybiBudWxsO1xuICAgIH1cbiAgICB1bnRyYWNrZWQoKCkgPT4gdGhpcy5sb2FkaW5nLnNldCh0cnVlKSk7XG4gICAgY29uc3QgbWltZVR5cGUgPSBmaWxlLm1pbWV0eXBlIHx8IGZpbGUuZmlsZT8udHlwZTtcbiAgICBjb25zdCB1cmwgPSBmaWxlLnVybCB8fCBmaWxlLm9yaWdpbl91cmw7XG5cbiAgICBpZiAodGhpcy5pc1NvdXJjZUlmcmFtZSgpKSB7XG4gICAgICByZXR1cm4geyAuLi5maWxlLCB1cmxGaWxlOiB1cmwgfTtcbiAgICB9XG5cbiAgICBpZiAobWltZVR5cGUgJiYgdGhpcy5taW5lVHlwZU1pY3JvU29mdFN1cHBvcnQoKS5pbmNsdWRlcyhtaW1lVHlwZSkpIHtcbiAgICAgIHJldHVybiB7IC4uLmZpbGUsIHVybEZpbGU6IGBodHRwczovL3ZpZXcub2ZmaWNlYXBwcy5saXZlLmNvbS9vcC9lbWJlZC5hc3B4P3NyYz0ke2VuY29kZVVSSUNvbXBvbmVudCh1cmwgfHwgJycpfWAgfTtcbiAgICB9XG5cbiAgICByZXR1cm4geyAuLi5maWxlLCB1cmxGaWxlOiBgaHR0cHM6Ly9kb2NzLmdvb2dsZS5jb20vYS91bWQuZWR1L3ZpZXdlcj91cmw9JHtlbmNvZGVVUklDb21wb25lbnQodXJsIHx8ICcnKX0mZW1iZWRkZWQ9dHJ1ZWAgfTtcbiAgfSk7XG5cbiAgcmVhZG9ubHkgekluZGV4ID0gaW5wdXQ8bnVtYmVyPigpO1xuICByZWFkb25seSBpbmRleCA9IG1vZGVsLnJlcXVpcmVkPG51bWJlcj4oKTtcbiAgcmVhZG9ubHkgZGF0YSA9IGlucHV0LnJlcXVpcmVkPElGaWxlW10+KCk7XG4gIHJlYWRvbmx5IGJ1dHRvbnMgPSBpbnB1dDxJQnV0dG9uW10+KCk7XG4gIHJlYWRvbmx5IGlzU291cmNlSWZyYW1lID0gaW5wdXQ8Ym9vbGVhbj4oKTtcblxuICByZWFkb25seSBvdXRDbG9zZSA9IG91dHB1dDx2b2lkPigpO1xuICByZWFkb25seSBvdXRDaGFuZ2VJbmRleCA9IG91dHB1dDxudW1iZXI+KCk7XG5cbiAgY29uc3RydWN0b3IoQE9wdGlvbmFsKCkgQEluamVjdChMSU5LX0lNQUdFX0VSUk9SX1RPS0VOX0lOSkVDVCkgcHJpdmF0ZSBsaW5rSW1hZ2VFcnJvcjogc3RyaW5nKSB7fVxuXG4gIHByb3RlY3RlZCBhc3luYyBoYW5kbGVyT25Mb2FkKCkge1xuICAgIHRoaXMubG9hZGluZy5zZXQoZmFsc2UpO1xuICB9XG5cbiAgcHJvdGVjdGVkIGFzeW5jIGhhbmRsZXJDbG9zZSh0eXBlOiBUWVBFX01PREFMX0VWRU5UKSB7XG4gICAgaWYgKHR5cGUgPT09ICdjbG9zZScpIHtcbiAgICAgIHRoaXMub3V0Q2xvc2UuZW1pdCgpO1xuICAgIH1cbiAgfVxuXG4gIHByaXZhdGUgbWluZVR5cGVNaWNyb1NvZnRTdXBwb3J0KCkge1xuICAgIHJldHVybiBbXG4gICAgICAnYXBwbGljYXRpb24vbXN3b3JkJyxcbiAgICAgICdhcHBsaWNhdGlvbi92bmQub3BlbnhtbGZvcm1hdHMtb2ZmaWNlZG9jdW1lbnQud29yZHByb2Nlc3NpbmdtbC5kb2N1bWVudCcsXG4gICAgICAnYXBwbGljYXRpb24vdm5kLm9wZW54bWxmb3JtYXRzLW9mZmljZWRvY3VtZW50LndvcmRwcm9jZXNzaW5nbWwudGVtcGxhdGUnLFxuICAgICAgJ2FwcGxpY2F0aW9uL3ZuZC5vcGVueG1sZm9ybWF0cy1vZmZpY2Vkb2N1bWVudC5zcHJlYWRzaGVldG1sLnNoZWV0JyxcbiAgICAgICdhcHBsaWNhdGlvbi92bmQubXMtZXhjZWwuc2hlZXQubWFjcm9FbmFibGVkLjEyJyxcbiAgICAgICdhcHBsaWNhdGlvbi92bmQubXMtZXhjZWwnLFxuICAgICAgJ2FwcGxpY2F0aW9uL3ZuZC5vcGVueG1sZm9ybWF0cy1vZmZpY2Vkb2N1bWVudC5zcHJlYWRzaGVldG1sLnRlbXBsYXRlJyxcbiAgICAgICdhcHBsaWNhdGlvbi92bmQubXMtcG93ZXJwb2ludCcsXG4gICAgICAnYXBwbGljYXRpb24vdm5kLm9wZW54bWxmb3JtYXRzLW9mZmljZWRvY3VtZW50LnByZXNlbnRhdGlvbm1sLnByZXNlbnRhdGlvbicsXG4gICAgICAnYXBwbGljYXRpb24vdm5kLm1zLXBvd2VycG9pbnQucHJlc2VudGF0aW9uLm1hY3JvRW5hYmxlZC4xMicsXG4gICAgICAnYXBwbGljYXRpb24vdm5kLm9wZW54bWxmb3JtYXRzLW9mZmljZWRvY3VtZW50LnByZXNlbnRhdGlvbm1sLnNsaWRlc2hvdycsXG4gICAgXTtcbiAgfVxuXG4gIHByb3RlY3RlZCBoYW5kbGVyUHJldigpIHtcbiAgICB0aGlzLmluZGV4LnVwZGF0ZSgodmFsdWUpID0+IHZhbHVlIC0gMSk7XG4gICAgdGhpcy5vdXRDaGFuZ2VJbmRleC5lbWl0KHRoaXMuaW5kZXgoKSk7XG4gIH1cblxuICBwcm90ZWN0ZWQgaGFuZGxlck5leHQoKSB7XG4gICAgdGhpcy5pbmRleC51cGRhdGUoKHZhbHVlKSA9PiB2YWx1ZSArIDEpO1xuICAgIHRoaXMub3V0Q2hhbmdlSW5kZXguZW1pdCh0aGlzLmluZGV4KCkpO1xuICB9XG5cbiAgcHJvdGVjdGVkIGFzeW5jIGhhbmRsZXJJbWFnZUVycm9yKGV2ZW50OiBFdmVudCkge1xuICAgIGlmICghdGhpcy5saW5rSW1hZ2VFcnJvcikge1xuICAgICAgcmV0dXJuO1xuICAgIH1cbiAgICAoZXZlbnQgYXMgSUV2ZW50KS50YXJnZXQuc3JjID0gdGhpcy5saW5rSW1hZ2VFcnJvcjtcbiAgfVxufVxuIiwiPGxpYnNfdWktY29tcG9uZW50cy1tb2RhbFxuICBbbWluV2lkdGhdPVwiJzEyMDBweCdcIlxuICBbaGVhZGVyQ29uZmlnXT1cInsgaWdub3JlSGVhZGVyVGhlbWU6IHRydWUsIGNsYXNzQnV0dG9uQ2xvc2VJbmNsdWRlOiAnIW1yLVsyNHB4XScgfVwiXG4gIFtib2R5Q29uZmlnXT1cInsgY2xhc3NJbmNsdWRlOiAnIXAtMCcsIHNjcm9sbE92ZXJsYXlPcHRpb25zOiB7IHNjcm9sbFg6ICdoaWRkZW4nLCBzY3JvbGxZOiAnaGlkZGVuJyB9IH1cIlxuICBbZm9vdGVyQ29uZmlnXT1cInsgaGlkZGVuOiB0cnVlIH1cIlxuICBbekluZGV4XT1cInpJbmRleCgpXCJcbiAgW2J1dHRvbnNGb290ZXJdPVwiW11cIlxuICBbbW9kZV09XCInY2VudGVyJ1wiXG4gIChvdXRFdmVudCk9XCJoYW5kbGVyQ2xvc2UoJGV2ZW50KVwiPlxuICA8ZGl2IGNsYXNzPVwibGlicy11aS1tb2RhbC1oZWFkZXItY3VzdG9tIHctZnVsbCBmbGV4IGl0ZW1zLWNlbnRlciBqdXN0aWZ5LWJldHdlZW4gbWluLXctMFwiPlxuICAgIDxkaXYgY2xhc3M9XCJ3LWZ1bGwgbWwtWzI0cHhdIG1yLVs4cHhdIGZsZXgganVzdGlmeS1iZXR3ZWVuIGl0ZW1zLWNlbnRlciBtaW4tdy0wIGdhcC1bMTZweF1cIj5cbiAgICAgIDxkaXYgY2xhc3M9XCJ3LTIvOCBmbGV4LTFcIj48L2Rpdj5cbiAgICAgIDxkaXYgY2xhc3M9XCJmbGV4IGxpYnMtdWktZm9udC1oNHMgbWluLXctMCB3LTQvOCBqdXN0aWZ5LWNlbnRlciBmbGV4LTFcIj5cbiAgICAgICAgPGxpYnNfdWktY29tcG9uZW50cy1wb3BvdmVyXG4gICAgICAgICAgW3R5cGVdPVwiJ3RleHQnXCJcbiAgICAgICAgICBbY29uZmlnXT1cInsgekluZGV4OiB6SW5kZXgoKSB9XCI+XG4gICAgICAgICAge3sgZmlsZVZpZXcoKT8ubmFtZSB9fVxuICAgICAgICA8L2xpYnNfdWktY29tcG9uZW50cy1wb3BvdmVyPlxuICAgICAgPC9kaXY+XG4gICAgICBAaWYgKGJ1dHRvbnMoKT8ubGVuZ3RoKSB7XG4gICAgICAgIDxkaXYgY2xhc3M9XCJmbGV4IGdhcC1bOHB4XSBpdGVtcy1jZW50ZXIgdy0yLzgganVzdGlmeS1lbmQgZmxleC0xXCI+XG4gICAgICAgICAgQGZvciAoYnV0dG9uIG9mIGJ1dHRvbnMoKTsgdHJhY2sgYnV0dG9uLmtleSkge1xuICAgICAgICAgICAgPGxpYnNfdWktY29tcG9uZW50cy1idXR0b25zLWJ1dHRvblxuICAgICAgICAgICAgICBbdHlwZV09XCJidXR0b24udHlwZSB8fCAnYnV0dG9uLXRoaXJkJ1wiXG4gICAgICAgICAgICAgIFtsYWJlbF09XCJidXR0b24ubGFiZWwgfHwgJydcIlxuICAgICAgICAgICAgICBbY2xhc3NJY29uTGVmdF09XCJidXR0b24uY2xhc3NJY29uTGVmdCB8fCAnJ1wiXG4gICAgICAgICAgICAgIFtjbGFzc0ljb25SaWdodF09XCJidXR0b24uY2xhc3NJY29uUmlnaHQgfHwgJydcIlxuICAgICAgICAgICAgICBbaWNvbk9ubHlUeXBlXT1cImJ1dHRvbi5pY29uT25seVR5cGUgfHwgZmFsc2VcIlxuICAgICAgICAgICAgICBbY2xhc3NJbmNsdWRlXT1cImJ1dHRvbi5jbGFzc0luY2x1ZGUgfHwgJyFweS1bNHB4XSAhcHgtWzEycHhdJ1wiXG4gICAgICAgICAgICAgIChvdXRDbGljayk9XCJidXR0b24uYWN0aW9uPy4oaW5kZXgoKSlcIiAvPlxuICAgICAgICAgIH1cbiAgICAgICAgICA8ZGl2IGNsYXNzPVwiaC1bMTJweF0gbGlicy11aS1ib3JkZXItbGVmdC1nZW5lcmFsXCI+PC9kaXY+XG4gICAgICAgIDwvZGl2PlxuICAgICAgfVxuICAgIDwvZGl2PlxuICA8L2Rpdj5cbiAgPGRpdiBjbGFzcz1cImxpYnMtdWktbW9kYWwtYm9keS1jdXN0b20gaC1mdWxsIHctZnVsbCBmbGV4IHJvdW5kZWQtYi1bOHB4XSBvdmVyZmxvdy1oaWRkZW4gcmVsYXRpdmVcIj5cbiAgICBAaWYgKGluZGV4KCkgPiAwKSB7XG4gICAgICA8ZGl2IGNsYXNzPVwiYWJzb2x1dGUgdG9wLVs1MCVdIGxlZnQtWzI0cHhdIHRyYW5zZm9ybSAtdHJhbnNsYXRlLXktWzUwJV0gei1bMV1cIj5cbiAgICAgICAgPGxpYnNfdWktY29tcG9uZW50cy1idXR0b25zLWJ1dHRvblxuICAgICAgICAgIFt0eXBlXT1cIididXR0b24tb3V0bGluZSdcIlxuICAgICAgICAgIFtpY29uT25seVR5cGVdPVwidHJ1ZVwiXG4gICAgICAgICAgW2NsYXNzSW5jbHVkZV09XCInIXAtWzExcHhdICFyb3VuZGVkLVs4cHhdJ1wiXG4gICAgICAgICAgW2NsYXNzSWNvbkxlZnRdPVwiJ2xpYnMtdWktaWNvbi1jaGV2cm9uLXJpZ2h0IHJvdGF0ZS0xODAgYmVmb3JlOiF0ZXh0LVsyMHB4XSdcIlxuICAgICAgICAgIChvdXRDbGljayk9XCJoYW5kbGVyUHJldigpXCIgLz5cbiAgICAgIDwvZGl2PlxuICAgIH1cbiAgICBAaWYgKGZpbGVWaWV3KCk7IGFzIGZpbGVWaWV3KSB7XG4gICAgICBAaWYgKGZpbGVWaWV3IHwgTGlic1VpUGlwZXNDaGVja0ZpbGVFeHRlbnNpb25QaXBlOiAnaW1hZ2UnKSB7XG4gICAgICAgIDxkaXYgY2xhc3M9XCJ3LWZ1bGwgaC1mdWxsIHJlbGF0aXZlIGZsZXggaXRlbXMtY2VudGVyIGp1c3RpZnktY2VudGVyXCI+XG4gICAgICAgICAgQGlmIChmaWxlVmlldy51cmwgfHwgZmlsZVZpZXcub3JpZ2luX3VybDsgYXMgdXJsKSB7XG4gICAgICAgICAgICA8aW1nXG4gICAgICAgICAgICAgIFtzcmNdPVwidXJsXCJcbiAgICAgICAgICAgICAgYWx0PVwiXCJcbiAgICAgICAgICAgICAgY2xhc3M9XCJtYXgtdy1mdWxsIG1heC1oLWZ1bGwgb2JqZWN0LWNvbnRhaW5cIlxuICAgICAgICAgICAgICAobG9hZCk9XCJoYW5kbGVyT25Mb2FkKClcIlxuICAgICAgICAgICAgICAoZXJyb3IpPVwiaGFuZGxlckltYWdlRXJyb3IoJGV2ZW50KVwiIC8+XG4gICAgICAgICAgICBAaWYgKGxvYWRpbmcoKSkge1xuICAgICAgICAgICAgICA8bGlic191aS1jb21wb25lbnRzLXNwaW5uZXIgW3NpemVdPVwiJ21lZGl1bSdcIiAvPlxuICAgICAgICAgICAgfVxuICAgICAgICAgIH1cbiAgICAgICAgPC9kaXY+XG4gICAgICB9IEBlbHNlIHtcbiAgICAgICAgPGlmcmFtZVxuICAgICAgICAgIGlkPVwiZ29vZ2xlXCJcbiAgICAgICAgICBbY2xhc3MuaGlkZGVuXT1cImxvYWRpbmcoKVwiXG4gICAgICAgICAgW3NyY109XCJmaWxlVmlldy51cmxGaWxlID8/ICcnIHwgTGlic1VpUGlwZXNTZWN1cml0eVRydXN0UGlwZTogJ3Jlc291cmNlVXJsJyB8IGFzeW5jXCJcbiAgICAgICAgICB3aWR0aD1cIjEwMCVcIlxuICAgICAgICAgIGhlaWdodD1cIjEwMCVcIlxuICAgICAgICAgIGZyYW1lYm9yZGVyPVwiMFwiXG4gICAgICAgICAgYWxsb3dmdWxsc2NyZWVuPVwiYWxsb3dmdWxsc2NyZWVuXCJcbiAgICAgICAgICAobG9hZCk9XCJoYW5kbGVyT25Mb2FkKClcIj48L2lmcmFtZT5cbiAgICAgICAgQGlmIChsb2FkaW5nKCkpIHtcbiAgICAgICAgICA8bGlic191aS1jb21wb25lbnRzLXNrZWxldG9uIFtjbGFzc109XCIndy1mdWxsIGgtZnVsbCdcIiAvPlxuICAgICAgICB9XG4gICAgICB9XG4gICAgICBAaWYgKGluZGV4KCkgPCBkYXRhKCkubGVuZ3RoIC0gMSkge1xuICAgICAgICA8ZGl2IGNsYXNzPVwiYWJzb2x1dGUgdG9wLVs1MCVdIHJpZ2h0LVsyNHB4XSB0cmFuc2Zvcm0gLXRyYW5zbGF0ZS15LVs1MCVdIHotWzFdXCI+XG4gICAgICAgICAgPGxpYnNfdWktY29tcG9uZW50cy1idXR0b25zLWJ1dHRvblxuICAgICAgICAgICAgW3R5cGVdPVwiJ2J1dHRvbi1vdXRsaW5lJ1wiXG4gICAgICAgICAgICBbaWNvbk9ubHlUeXBlXT1cInRydWVcIlxuICAgICAgICAgICAgW2NsYXNzSW5jbHVkZV09XCInIXAtWzExcHhdICFyb3VuZGVkLVs4cHhdJ1wiXG4gICAgICAgICAgICBbY2xhc3NJY29uTGVmdF09XCInbGlicy11aS1pY29uLWNoZXZyb24tcmlnaHQgYmVmb3JlOiF0ZXh0LVsyMHB4XSdcIlxuICAgICAgICAgICAgKG91dENsaWNrKT1cImhhbmRsZXJOZXh0KClcIiAvPlxuICAgICAgICA8L2Rpdj5cbiAgICAgIH1cbiAgICB9XG4gIDwvZGl2PlxuPC9saWJzX3VpLWNvbXBvbmVudHMtbW9kYWw+XG4iXX0=
@@ -35,6 +35,7 @@ class LibsUiComponentsPreviewFileComponent {
35
35
  buttons = input();
36
36
  isSourceIframe = input();
37
37
  outClose = output();
38
+ outChangeIndex = output();
38
39
  constructor(linkImageError) {
39
40
  this.linkImageError = linkImageError;
40
41
  }
@@ -63,9 +64,11 @@ class LibsUiComponentsPreviewFileComponent {
63
64
  }
64
65
  handlerPrev() {
65
66
  this.index.update((value) => value - 1);
67
+ this.outChangeIndex.emit(this.index());
66
68
  }
67
69
  handlerNext() {
68
70
  this.index.update((value) => value + 1);
71
+ this.outChangeIndex.emit(this.index());
69
72
  }
70
73
  async handlerImageError(event) {
71
74
  if (!this.linkImageError) {
@@ -74,7 +77,7 @@ class LibsUiComponentsPreviewFileComponent {
74
77
  event.target.src = this.linkImageError;
75
78
  }
76
79
  static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: LibsUiComponentsPreviewFileComponent, deps: [{ token: LINK_IMAGE_ERROR_TOKEN_INJECT, optional: true }], target: i0.ɵɵFactoryTarget.Component });
77
- static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.14", type: LibsUiComponentsPreviewFileComponent, isStandalone: true, selector: "libs_ui-components-preview_file", inputs: { zIndex: { classPropertyName: "zIndex", publicName: "zIndex", isSignal: true, isRequired: false, transformFunction: null }, index: { classPropertyName: "index", publicName: "index", isSignal: true, isRequired: true, transformFunction: null }, data: { classPropertyName: "data", publicName: "data", isSignal: true, isRequired: true, transformFunction: null }, buttons: { classPropertyName: "buttons", publicName: "buttons", isSignal: true, isRequired: false, transformFunction: null }, isSourceIframe: { classPropertyName: "isSourceIframe", publicName: "isSourceIframe", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { index: "indexChange", outClose: "outClose" }, ngImport: i0, template: "<libs_ui-components-modal\n [minWidth]=\"'1200px'\"\n [headerConfig]=\"{ ignoreHeaderTheme: true, classButtonCloseInclude: '!mr-[24px]' }\"\n [bodyConfig]=\"{ classInclude: '!p-0', scrollOverlayOptions: { scrollX: 'hidden', scrollY: 'hidden' } }\"\n [footerConfig]=\"{ hidden: true }\"\n [zIndex]=\"zIndex()\"\n [buttonsFooter]=\"[]\"\n [mode]=\"'center'\"\n (outEvent)=\"handlerClose($event)\">\n <div class=\"libs-ui-modal-header-custom w-full flex items-center justify-between min-w-0\">\n <div class=\"w-full ml-[24px] mr-[8px] flex justify-between items-center min-w-0 gap-[16px]\">\n <div class=\"w-2/8 flex-1\"></div>\n <div class=\"flex libs-ui-font-h4s min-w-0 w-4/8 justify-center flex-1\">\n <libs_ui-components-popover\n [type]=\"'text'\"\n [config]=\"{ zIndex: zIndex() }\">\n {{ fileView()?.name }}\n </libs_ui-components-popover>\n </div>\n @if (buttons()?.length) {\n <div class=\"flex gap-[8px] items-center w-2/8 justify-end flex-1\">\n @for (button of buttons(); track button.key) {\n <libs_ui-components-buttons-button\n [type]=\"button.type || 'button-third'\"\n [label]=\"button.label || ''\"\n [classIconLeft]=\"button.classIconLeft || ''\"\n [iconOnlyType]=\"button.iconOnlyType || false\"\n [classInclude]=\"button.classInclude || '!py-[4px] !px-[12px]'\"\n (outClick)=\"button.action?.(index())\" />\n }\n <div class=\"h-[12px] libs-ui-border-left-general\"></div>\n </div>\n }\n </div>\n </div>\n <div class=\"libs-ui-modal-body-custom h-full w-full flex rounded-b-[8px] overflow-hidden relative\">\n @if (index() > 0) {\n <div class=\"absolute top-[50%] left-[24px] transform -translate-y-[50%] z-[1]\">\n <libs_ui-components-buttons-button\n [type]=\"'button-outline'\"\n [iconOnlyType]=\"true\"\n [classInclude]=\"'!p-[11px] !rounded-[8px]'\"\n [classIconLeft]=\"'libs-ui-icon-chevron-right rotate-180 before:!text-[20px]'\"\n (outClick)=\"handlerPrev()\" />\n </div>\n }\n @if (fileView(); as fileView) {\n @if (fileView | LibsUiPipesCheckFileExtensionPipe: 'image') {\n <div class=\"w-full h-full relative flex items-center justify-center\">\n @if (fileView.url || fileView.origin_url; as url) {\n <img\n [src]=\"url\"\n alt=\"\"\n class=\"max-w-full max-h-full object-contain\"\n (load)=\"handlerOnLoad()\"\n (error)=\"handlerImageError($event)\" />\n @if (loading()) {\n <libs_ui-components-spinner [size]=\"'medium'\" />\n }\n }\n </div>\n } @else {\n <iframe\n id=\"google\"\n [class.hidden]=\"loading()\"\n [src]=\"fileView.urlFile ?? '' | LibsUiPipesSecurityTrustPipe: 'resourceUrl' | async\"\n width=\"100%\"\n height=\"100%\"\n frameborder=\"0\"\n allowfullscreen=\"allowfullscreen\"\n (load)=\"handlerOnLoad()\"></iframe>\n @if (loading()) {\n <libs_ui-components-skeleton [class]=\"'w-full h-full'\" />\n }\n }\n @if (index() < data().length - 1) {\n <div class=\"absolute top-[50%] right-[24px] transform -translate-y-[50%] z-[1]\">\n <libs_ui-components-buttons-button\n [type]=\"'button-outline'\"\n [iconOnlyType]=\"true\"\n [classInclude]=\"'!p-[11px] !rounded-[8px]'\"\n [classIconLeft]=\"'libs-ui-icon-chevron-right before:!text-[20px]'\"\n (outClick)=\"handlerNext()\" />\n </div>\n }\n }\n </div>\n</libs_ui-components-modal>\n", dependencies: [{ kind: "pipe", type: AsyncPipe, name: "async" }, { kind: "component", type: LibsUiComponentsModalComponent, selector: "libs_ui-components-modal", inputs: ["show", "mode", "isBackdropTransparent", "isBackgroundTransparentModal", "isSizeBackdropByWidthHeightInput", "hasShadowBoxWhenHiddenBackDropTransparent", "classIncludeModalWrapper", "zIndex", "width", "height", "maxWidth", "maxHeight", "minWidth", "isFullScreen", "disable", "ignoreCommunicateMicroEvent", "escapeKeyboardCloseModal", "isClickOutsideClose", "headerConfig", "bodyConfig", "footerConfig", "buttonsFooter", "title", "titleUseXssFilter", "titleUseTooltip", "titleUseInnerText"], outputs: ["showChange", "widthChange", "heightChange", "maxWidthChange", "maxHeightChange", "minWidthChange", "disableChange", "buttonsFooterChange", "outScrollContent", "outEvent", "outFunctionControl", "outClose"] }, { kind: "pipe", type: LibsUiPipesSecurityTrustPipe, name: "LibsUiPipesSecurityTrustPipe" }, { kind: "component", type: LibsUiComponentsSkeletonComponent, selector: "libs_ui-components-skeleton", inputs: ["config"] }, { kind: "component", type: LibsUiComponentsPopoverComponent, selector: "libs_ui-components-popover,[LibsUiComponentsPopoverDirective]", inputs: ["debugId", "flagMouse", "type", "mode", "config", "ignoreShowPopover", "elementRefCustom", "initEventInElementRefCustom", "classInclude", "ignoreHiddenPopoverContentWhenMouseLeave", "ignoreStopPropagationEvent", "ignoreCursorPointerModeLikeClick", "isAddContentToParentDocument", "ignoreClickOutside"], outputs: ["outEvent", "outChangStageFlagMouse", "outEventPopoverContent", "outFunctionsControl"] }, { kind: "component", type: LibsUiComponentsButtonsButtonComponent, selector: "libs_ui-components-buttons-button", inputs: ["flagMouse", "type", "buttonCustom", "sizeButton", "label", "disable", "isPending", "imageLeft", "classInclude", "classIconLeft", "classIconRight", "classLabel", "iconOnlyType", "popover", "ignoreStopPropagationEvent", "zIndex", "widthLabelPopover", "styleIconLeft", "styleButton", "ignoreFocusWhenInputTab", "ignoreSetClickWhenShowPopover", "ignorePointerEvent", "isActive", "isHandlerEnterDocumentClickButton"], outputs: ["outClick", "outPopoverEvent", "outFunctionsControl"] }, { kind: "pipe", type: LibsUiPipesCheckFileExtensionPipe, name: "LibsUiPipesCheckFileExtensionPipe" }, { kind: "component", type: LibsUiComponentsSpinnerComponent, selector: "libs_ui-components-spinner", inputs: ["type", "size"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
80
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.14", type: LibsUiComponentsPreviewFileComponent, isStandalone: true, selector: "libs_ui-components-preview_file", inputs: { zIndex: { classPropertyName: "zIndex", publicName: "zIndex", isSignal: true, isRequired: false, transformFunction: null }, index: { classPropertyName: "index", publicName: "index", isSignal: true, isRequired: true, transformFunction: null }, data: { classPropertyName: "data", publicName: "data", isSignal: true, isRequired: true, transformFunction: null }, buttons: { classPropertyName: "buttons", publicName: "buttons", isSignal: true, isRequired: false, transformFunction: null }, isSourceIframe: { classPropertyName: "isSourceIframe", publicName: "isSourceIframe", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { index: "indexChange", outClose: "outClose", outChangeIndex: "outChangeIndex" }, ngImport: i0, template: "<libs_ui-components-modal\n [minWidth]=\"'1200px'\"\n [headerConfig]=\"{ ignoreHeaderTheme: true, classButtonCloseInclude: '!mr-[24px]' }\"\n [bodyConfig]=\"{ classInclude: '!p-0', scrollOverlayOptions: { scrollX: 'hidden', scrollY: 'hidden' } }\"\n [footerConfig]=\"{ hidden: true }\"\n [zIndex]=\"zIndex()\"\n [buttonsFooter]=\"[]\"\n [mode]=\"'center'\"\n (outEvent)=\"handlerClose($event)\">\n <div class=\"libs-ui-modal-header-custom w-full flex items-center justify-between min-w-0\">\n <div class=\"w-full ml-[24px] mr-[8px] flex justify-between items-center min-w-0 gap-[16px]\">\n <div class=\"w-2/8 flex-1\"></div>\n <div class=\"flex libs-ui-font-h4s min-w-0 w-4/8 justify-center flex-1\">\n <libs_ui-components-popover\n [type]=\"'text'\"\n [config]=\"{ zIndex: zIndex() }\">\n {{ fileView()?.name }}\n </libs_ui-components-popover>\n </div>\n @if (buttons()?.length) {\n <div class=\"flex gap-[8px] items-center w-2/8 justify-end flex-1\">\n @for (button of buttons(); track button.key) {\n <libs_ui-components-buttons-button\n [type]=\"button.type || 'button-third'\"\n [label]=\"button.label || ''\"\n [classIconLeft]=\"button.classIconLeft || ''\"\n [classIconRight]=\"button.classIconRight || ''\"\n [iconOnlyType]=\"button.iconOnlyType || false\"\n [classInclude]=\"button.classInclude || '!py-[4px] !px-[12px]'\"\n (outClick)=\"button.action?.(index())\" />\n }\n <div class=\"h-[12px] libs-ui-border-left-general\"></div>\n </div>\n }\n </div>\n </div>\n <div class=\"libs-ui-modal-body-custom h-full w-full flex rounded-b-[8px] overflow-hidden relative\">\n @if (index() > 0) {\n <div class=\"absolute top-[50%] left-[24px] transform -translate-y-[50%] z-[1]\">\n <libs_ui-components-buttons-button\n [type]=\"'button-outline'\"\n [iconOnlyType]=\"true\"\n [classInclude]=\"'!p-[11px] !rounded-[8px]'\"\n [classIconLeft]=\"'libs-ui-icon-chevron-right rotate-180 before:!text-[20px]'\"\n (outClick)=\"handlerPrev()\" />\n </div>\n }\n @if (fileView(); as fileView) {\n @if (fileView | LibsUiPipesCheckFileExtensionPipe: 'image') {\n <div class=\"w-full h-full relative flex items-center justify-center\">\n @if (fileView.url || fileView.origin_url; as url) {\n <img\n [src]=\"url\"\n alt=\"\"\n class=\"max-w-full max-h-full object-contain\"\n (load)=\"handlerOnLoad()\"\n (error)=\"handlerImageError($event)\" />\n @if (loading()) {\n <libs_ui-components-spinner [size]=\"'medium'\" />\n }\n }\n </div>\n } @else {\n <iframe\n id=\"google\"\n [class.hidden]=\"loading()\"\n [src]=\"fileView.urlFile ?? '' | LibsUiPipesSecurityTrustPipe: 'resourceUrl' | async\"\n width=\"100%\"\n height=\"100%\"\n frameborder=\"0\"\n allowfullscreen=\"allowfullscreen\"\n (load)=\"handlerOnLoad()\"></iframe>\n @if (loading()) {\n <libs_ui-components-skeleton [class]=\"'w-full h-full'\" />\n }\n }\n @if (index() < data().length - 1) {\n <div class=\"absolute top-[50%] right-[24px] transform -translate-y-[50%] z-[1]\">\n <libs_ui-components-buttons-button\n [type]=\"'button-outline'\"\n [iconOnlyType]=\"true\"\n [classInclude]=\"'!p-[11px] !rounded-[8px]'\"\n [classIconLeft]=\"'libs-ui-icon-chevron-right before:!text-[20px]'\"\n (outClick)=\"handlerNext()\" />\n </div>\n }\n }\n </div>\n</libs_ui-components-modal>\n", dependencies: [{ kind: "pipe", type: AsyncPipe, name: "async" }, { kind: "component", type: LibsUiComponentsModalComponent, selector: "libs_ui-components-modal", inputs: ["show", "mode", "isBackdropTransparent", "isBackgroundTransparentModal", "isSizeBackdropByWidthHeightInput", "hasShadowBoxWhenHiddenBackDropTransparent", "classIncludeModalWrapper", "zIndex", "width", "height", "maxWidth", "maxHeight", "minWidth", "isFullScreen", "disable", "ignoreCommunicateMicroEvent", "escapeKeyboardCloseModal", "isClickOutsideClose", "headerConfig", "bodyConfig", "footerConfig", "buttonsFooter", "title", "titleUseXssFilter", "titleUseTooltip", "titleUseInnerText"], outputs: ["showChange", "widthChange", "heightChange", "maxWidthChange", "maxHeightChange", "minWidthChange", "disableChange", "buttonsFooterChange", "outScrollContent", "outEvent", "outFunctionControl", "outClose"] }, { kind: "pipe", type: LibsUiPipesSecurityTrustPipe, name: "LibsUiPipesSecurityTrustPipe" }, { kind: "component", type: LibsUiComponentsSkeletonComponent, selector: "libs_ui-components-skeleton", inputs: ["config"] }, { kind: "component", type: LibsUiComponentsPopoverComponent, selector: "libs_ui-components-popover,[LibsUiComponentsPopoverDirective]", inputs: ["debugId", "flagMouse", "type", "mode", "config", "ignoreShowPopover", "elementRefCustom", "initEventInElementRefCustom", "classInclude", "ignoreHiddenPopoverContentWhenMouseLeave", "ignoreStopPropagationEvent", "ignoreCursorPointerModeLikeClick", "isAddContentToParentDocument", "ignoreClickOutside"], outputs: ["outEvent", "outChangStageFlagMouse", "outEventPopoverContent", "outFunctionsControl"] }, { kind: "component", type: LibsUiComponentsButtonsButtonComponent, selector: "libs_ui-components-buttons-button", inputs: ["flagMouse", "type", "buttonCustom", "sizeButton", "label", "disable", "isPending", "imageLeft", "classInclude", "classIconLeft", "classIconRight", "classLabel", "iconOnlyType", "popover", "ignoreStopPropagationEvent", "zIndex", "widthLabelPopover", "styleIconLeft", "styleButton", "ignoreFocusWhenInputTab", "ignoreSetClickWhenShowPopover", "ignorePointerEvent", "isActive", "isHandlerEnterDocumentClickButton"], outputs: ["outClick", "outPopoverEvent", "outFunctionsControl"] }, { kind: "pipe", type: LibsUiPipesCheckFileExtensionPipe, name: "LibsUiPipesCheckFileExtensionPipe" }, { kind: "component", type: LibsUiComponentsSpinnerComponent, selector: "libs_ui-components-spinner", inputs: ["type", "size"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
78
81
  }
79
82
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: LibsUiComponentsPreviewFileComponent, decorators: [{
80
83
  type: Component,
@@ -87,7 +90,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImpo
87
90
  LibsUiComponentsButtonsButtonComponent,
88
91
  LibsUiPipesCheckFileExtensionPipe,
89
92
  LibsUiComponentsSpinnerComponent,
90
- ], changeDetection: ChangeDetectionStrategy.OnPush, template: "<libs_ui-components-modal\n [minWidth]=\"'1200px'\"\n [headerConfig]=\"{ ignoreHeaderTheme: true, classButtonCloseInclude: '!mr-[24px]' }\"\n [bodyConfig]=\"{ classInclude: '!p-0', scrollOverlayOptions: { scrollX: 'hidden', scrollY: 'hidden' } }\"\n [footerConfig]=\"{ hidden: true }\"\n [zIndex]=\"zIndex()\"\n [buttonsFooter]=\"[]\"\n [mode]=\"'center'\"\n (outEvent)=\"handlerClose($event)\">\n <div class=\"libs-ui-modal-header-custom w-full flex items-center justify-between min-w-0\">\n <div class=\"w-full ml-[24px] mr-[8px] flex justify-between items-center min-w-0 gap-[16px]\">\n <div class=\"w-2/8 flex-1\"></div>\n <div class=\"flex libs-ui-font-h4s min-w-0 w-4/8 justify-center flex-1\">\n <libs_ui-components-popover\n [type]=\"'text'\"\n [config]=\"{ zIndex: zIndex() }\">\n {{ fileView()?.name }}\n </libs_ui-components-popover>\n </div>\n @if (buttons()?.length) {\n <div class=\"flex gap-[8px] items-center w-2/8 justify-end flex-1\">\n @for (button of buttons(); track button.key) {\n <libs_ui-components-buttons-button\n [type]=\"button.type || 'button-third'\"\n [label]=\"button.label || ''\"\n [classIconLeft]=\"button.classIconLeft || ''\"\n [iconOnlyType]=\"button.iconOnlyType || false\"\n [classInclude]=\"button.classInclude || '!py-[4px] !px-[12px]'\"\n (outClick)=\"button.action?.(index())\" />\n }\n <div class=\"h-[12px] libs-ui-border-left-general\"></div>\n </div>\n }\n </div>\n </div>\n <div class=\"libs-ui-modal-body-custom h-full w-full flex rounded-b-[8px] overflow-hidden relative\">\n @if (index() > 0) {\n <div class=\"absolute top-[50%] left-[24px] transform -translate-y-[50%] z-[1]\">\n <libs_ui-components-buttons-button\n [type]=\"'button-outline'\"\n [iconOnlyType]=\"true\"\n [classInclude]=\"'!p-[11px] !rounded-[8px]'\"\n [classIconLeft]=\"'libs-ui-icon-chevron-right rotate-180 before:!text-[20px]'\"\n (outClick)=\"handlerPrev()\" />\n </div>\n }\n @if (fileView(); as fileView) {\n @if (fileView | LibsUiPipesCheckFileExtensionPipe: 'image') {\n <div class=\"w-full h-full relative flex items-center justify-center\">\n @if (fileView.url || fileView.origin_url; as url) {\n <img\n [src]=\"url\"\n alt=\"\"\n class=\"max-w-full max-h-full object-contain\"\n (load)=\"handlerOnLoad()\"\n (error)=\"handlerImageError($event)\" />\n @if (loading()) {\n <libs_ui-components-spinner [size]=\"'medium'\" />\n }\n }\n </div>\n } @else {\n <iframe\n id=\"google\"\n [class.hidden]=\"loading()\"\n [src]=\"fileView.urlFile ?? '' | LibsUiPipesSecurityTrustPipe: 'resourceUrl' | async\"\n width=\"100%\"\n height=\"100%\"\n frameborder=\"0\"\n allowfullscreen=\"allowfullscreen\"\n (load)=\"handlerOnLoad()\"></iframe>\n @if (loading()) {\n <libs_ui-components-skeleton [class]=\"'w-full h-full'\" />\n }\n }\n @if (index() < data().length - 1) {\n <div class=\"absolute top-[50%] right-[24px] transform -translate-y-[50%] z-[1]\">\n <libs_ui-components-buttons-button\n [type]=\"'button-outline'\"\n [iconOnlyType]=\"true\"\n [classInclude]=\"'!p-[11px] !rounded-[8px]'\"\n [classIconLeft]=\"'libs-ui-icon-chevron-right before:!text-[20px]'\"\n (outClick)=\"handlerNext()\" />\n </div>\n }\n }\n </div>\n</libs_ui-components-modal>\n" }]
93
+ ], changeDetection: ChangeDetectionStrategy.OnPush, template: "<libs_ui-components-modal\n [minWidth]=\"'1200px'\"\n [headerConfig]=\"{ ignoreHeaderTheme: true, classButtonCloseInclude: '!mr-[24px]' }\"\n [bodyConfig]=\"{ classInclude: '!p-0', scrollOverlayOptions: { scrollX: 'hidden', scrollY: 'hidden' } }\"\n [footerConfig]=\"{ hidden: true }\"\n [zIndex]=\"zIndex()\"\n [buttonsFooter]=\"[]\"\n [mode]=\"'center'\"\n (outEvent)=\"handlerClose($event)\">\n <div class=\"libs-ui-modal-header-custom w-full flex items-center justify-between min-w-0\">\n <div class=\"w-full ml-[24px] mr-[8px] flex justify-between items-center min-w-0 gap-[16px]\">\n <div class=\"w-2/8 flex-1\"></div>\n <div class=\"flex libs-ui-font-h4s min-w-0 w-4/8 justify-center flex-1\">\n <libs_ui-components-popover\n [type]=\"'text'\"\n [config]=\"{ zIndex: zIndex() }\">\n {{ fileView()?.name }}\n </libs_ui-components-popover>\n </div>\n @if (buttons()?.length) {\n <div class=\"flex gap-[8px] items-center w-2/8 justify-end flex-1\">\n @for (button of buttons(); track button.key) {\n <libs_ui-components-buttons-button\n [type]=\"button.type || 'button-third'\"\n [label]=\"button.label || ''\"\n [classIconLeft]=\"button.classIconLeft || ''\"\n [classIconRight]=\"button.classIconRight || ''\"\n [iconOnlyType]=\"button.iconOnlyType || false\"\n [classInclude]=\"button.classInclude || '!py-[4px] !px-[12px]'\"\n (outClick)=\"button.action?.(index())\" />\n }\n <div class=\"h-[12px] libs-ui-border-left-general\"></div>\n </div>\n }\n </div>\n </div>\n <div class=\"libs-ui-modal-body-custom h-full w-full flex rounded-b-[8px] overflow-hidden relative\">\n @if (index() > 0) {\n <div class=\"absolute top-[50%] left-[24px] transform -translate-y-[50%] z-[1]\">\n <libs_ui-components-buttons-button\n [type]=\"'button-outline'\"\n [iconOnlyType]=\"true\"\n [classInclude]=\"'!p-[11px] !rounded-[8px]'\"\n [classIconLeft]=\"'libs-ui-icon-chevron-right rotate-180 before:!text-[20px]'\"\n (outClick)=\"handlerPrev()\" />\n </div>\n }\n @if (fileView(); as fileView) {\n @if (fileView | LibsUiPipesCheckFileExtensionPipe: 'image') {\n <div class=\"w-full h-full relative flex items-center justify-center\">\n @if (fileView.url || fileView.origin_url; as url) {\n <img\n [src]=\"url\"\n alt=\"\"\n class=\"max-w-full max-h-full object-contain\"\n (load)=\"handlerOnLoad()\"\n (error)=\"handlerImageError($event)\" />\n @if (loading()) {\n <libs_ui-components-spinner [size]=\"'medium'\" />\n }\n }\n </div>\n } @else {\n <iframe\n id=\"google\"\n [class.hidden]=\"loading()\"\n [src]=\"fileView.urlFile ?? '' | LibsUiPipesSecurityTrustPipe: 'resourceUrl' | async\"\n width=\"100%\"\n height=\"100%\"\n frameborder=\"0\"\n allowfullscreen=\"allowfullscreen\"\n (load)=\"handlerOnLoad()\"></iframe>\n @if (loading()) {\n <libs_ui-components-skeleton [class]=\"'w-full h-full'\" />\n }\n }\n @if (index() < data().length - 1) {\n <div class=\"absolute top-[50%] right-[24px] transform -translate-y-[50%] z-[1]\">\n <libs_ui-components-buttons-button\n [type]=\"'button-outline'\"\n [iconOnlyType]=\"true\"\n [classInclude]=\"'!p-[11px] !rounded-[8px]'\"\n [classIconLeft]=\"'libs-ui-icon-chevron-right before:!text-[20px]'\"\n (outClick)=\"handlerNext()\" />\n </div>\n }\n }\n </div>\n</libs_ui-components-modal>\n" }]
91
94
  }], ctorParameters: () => [{ type: undefined, decorators: [{
92
95
  type: Optional
93
96
  }, {
@@ -1 +1 @@
1
- {"version":3,"file":"libs-ui-components-preview-file.mjs","sources":["../../../../../libs-ui/components/preview-file/src/preview-file.component.ts","../../../../../libs-ui/components/preview-file/src/preview-file.component.html","../../../../../libs-ui/components/preview-file/src/libs-ui-components-preview-file.ts"],"sourcesContent":["import { AsyncPipe } from '@angular/common';\nimport { ChangeDetectionStrategy, Component, computed, Inject, input, model, Optional, output, signal, untracked } from '@angular/core';\nimport { IButton, LibsUiComponentsButtonsButtonComponent } from '@libs-ui/components-buttons-button';\nimport { LibsUiComponentsModalComponent, TYPE_MODAL_EVENT } from '@libs-ui/components-modal';\nimport { LibsUiComponentsPopoverComponent } from '@libs-ui/components-popover';\nimport { LibsUiComponentsSkeletonComponent } from '@libs-ui/components-skeleton';\nimport { LibsUiComponentsSpinnerComponent } from '@libs-ui/components-spinner';\nimport { IEvent, IFile } from '@libs-ui/interfaces-types';\nimport { LibsUiPipesCheckFileExtensionPipe } from '@libs-ui/pipes-check-file-extension';\nimport { LibsUiPipesSecurityTrustPipe } from '@libs-ui/pipes-security-trust';\nimport { LINK_IMAGE_ERROR_TOKEN_INJECT } from '@libs-ui/utils';\n\n@Component({\n // eslint-disable-next-line @angular-eslint/component-selector\n selector: 'libs_ui-components-preview_file',\n templateUrl: './preview-file.component.html',\n standalone: true,\n imports: [\n AsyncPipe,\n LibsUiComponentsModalComponent,\n LibsUiPipesSecurityTrustPipe,\n LibsUiComponentsSkeletonComponent,\n LibsUiComponentsPopoverComponent,\n LibsUiComponentsButtonsButtonComponent,\n LibsUiPipesCheckFileExtensionPipe,\n LibsUiComponentsSpinnerComponent,\n ],\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class LibsUiComponentsPreviewFileComponent {\n protected loading = signal(true);\n protected fileView = computed(() => {\n const file = this.data()[this.index()];\n\n if (!file) {\n return null;\n }\n untracked(() => this.loading.set(true));\n const mimeType = file.mimetype || file.file?.type;\n const url = file.url || file.origin_url;\n\n if (this.isSourceIframe()) {\n return { ...file, urlFile: url };\n }\n\n if (mimeType && this.mineTypeMicroSoftSupport().includes(mimeType)) {\n return { ...file, urlFile: `https://view.officeapps.live.com/op/embed.aspx?src=${encodeURIComponent(url || '')}` };\n }\n\n return { ...file, urlFile: `https://docs.google.com/a/umd.edu/viewer?url=${encodeURIComponent(url || '')}&embedded=true` };\n });\n\n readonly zIndex = input<number>();\n readonly index = model.required<number>();\n readonly data = input.required<IFile[]>();\n readonly buttons = input<IButton[]>();\n readonly isSourceIframe = input<boolean>();\n\n readonly outClose = output<void>();\n\n constructor(@Optional() @Inject(LINK_IMAGE_ERROR_TOKEN_INJECT) private linkImageError: string) {}\n\n protected async handlerOnLoad() {\n this.loading.set(false);\n }\n\n protected async handlerClose(type: TYPE_MODAL_EVENT) {\n if (type === 'close') {\n this.outClose.emit();\n }\n }\n\n private mineTypeMicroSoftSupport() {\n return [\n 'application/msword',\n 'application/vnd.openxmlformats-officedocument.wordprocessingml.document',\n 'application/vnd.openxmlformats-officedocument.wordprocessingml.template',\n 'application/vnd.openxmlformats-officedocument.spreadsheetml.sheet',\n 'application/vnd.ms-excel.sheet.macroEnabled.12',\n 'application/vnd.ms-excel',\n 'application/vnd.openxmlformats-officedocument.spreadsheetml.template',\n 'application/vnd.ms-powerpoint',\n 'application/vnd.openxmlformats-officedocument.presentationml.presentation',\n 'application/vnd.ms-powerpoint.presentation.macroEnabled.12',\n 'application/vnd.openxmlformats-officedocument.presentationml.slideshow',\n ];\n }\n\n protected handlerPrev() {\n this.index.update((value) => value - 1);\n }\n\n protected handlerNext() {\n this.index.update((value) => value + 1);\n }\n\n protected async handlerImageError(event: Event) {\n if (!this.linkImageError) {\n return;\n }\n (event as IEvent).target.src = this.linkImageError;\n }\n}\n","<libs_ui-components-modal\n [minWidth]=\"'1200px'\"\n [headerConfig]=\"{ ignoreHeaderTheme: true, classButtonCloseInclude: '!mr-[24px]' }\"\n [bodyConfig]=\"{ classInclude: '!p-0', scrollOverlayOptions: { scrollX: 'hidden', scrollY: 'hidden' } }\"\n [footerConfig]=\"{ hidden: true }\"\n [zIndex]=\"zIndex()\"\n [buttonsFooter]=\"[]\"\n [mode]=\"'center'\"\n (outEvent)=\"handlerClose($event)\">\n <div class=\"libs-ui-modal-header-custom w-full flex items-center justify-between min-w-0\">\n <div class=\"w-full ml-[24px] mr-[8px] flex justify-between items-center min-w-0 gap-[16px]\">\n <div class=\"w-2/8 flex-1\"></div>\n <div class=\"flex libs-ui-font-h4s min-w-0 w-4/8 justify-center flex-1\">\n <libs_ui-components-popover\n [type]=\"'text'\"\n [config]=\"{ zIndex: zIndex() }\">\n {{ fileView()?.name }}\n </libs_ui-components-popover>\n </div>\n @if (buttons()?.length) {\n <div class=\"flex gap-[8px] items-center w-2/8 justify-end flex-1\">\n @for (button of buttons(); track button.key) {\n <libs_ui-components-buttons-button\n [type]=\"button.type || 'button-third'\"\n [label]=\"button.label || ''\"\n [classIconLeft]=\"button.classIconLeft || ''\"\n [iconOnlyType]=\"button.iconOnlyType || false\"\n [classInclude]=\"button.classInclude || '!py-[4px] !px-[12px]'\"\n (outClick)=\"button.action?.(index())\" />\n }\n <div class=\"h-[12px] libs-ui-border-left-general\"></div>\n </div>\n }\n </div>\n </div>\n <div class=\"libs-ui-modal-body-custom h-full w-full flex rounded-b-[8px] overflow-hidden relative\">\n @if (index() > 0) {\n <div class=\"absolute top-[50%] left-[24px] transform -translate-y-[50%] z-[1]\">\n <libs_ui-components-buttons-button\n [type]=\"'button-outline'\"\n [iconOnlyType]=\"true\"\n [classInclude]=\"'!p-[11px] !rounded-[8px]'\"\n [classIconLeft]=\"'libs-ui-icon-chevron-right rotate-180 before:!text-[20px]'\"\n (outClick)=\"handlerPrev()\" />\n </div>\n }\n @if (fileView(); as fileView) {\n @if (fileView | LibsUiPipesCheckFileExtensionPipe: 'image') {\n <div class=\"w-full h-full relative flex items-center justify-center\">\n @if (fileView.url || fileView.origin_url; as url) {\n <img\n [src]=\"url\"\n alt=\"\"\n class=\"max-w-full max-h-full object-contain\"\n (load)=\"handlerOnLoad()\"\n (error)=\"handlerImageError($event)\" />\n @if (loading()) {\n <libs_ui-components-spinner [size]=\"'medium'\" />\n }\n }\n </div>\n } @else {\n <iframe\n id=\"google\"\n [class.hidden]=\"loading()\"\n [src]=\"fileView.urlFile ?? '' | LibsUiPipesSecurityTrustPipe: 'resourceUrl' | async\"\n width=\"100%\"\n height=\"100%\"\n frameborder=\"0\"\n allowfullscreen=\"allowfullscreen\"\n (load)=\"handlerOnLoad()\"></iframe>\n @if (loading()) {\n <libs_ui-components-skeleton [class]=\"'w-full h-full'\" />\n }\n }\n @if (index() < data().length - 1) {\n <div class=\"absolute top-[50%] right-[24px] transform -translate-y-[50%] z-[1]\">\n <libs_ui-components-buttons-button\n [type]=\"'button-outline'\"\n [iconOnlyType]=\"true\"\n [classInclude]=\"'!p-[11px] !rounded-[8px]'\"\n [classIconLeft]=\"'libs-ui-icon-chevron-right before:!text-[20px]'\"\n (outClick)=\"handlerNext()\" />\n </div>\n }\n }\n </div>\n</libs_ui-components-modal>\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"libs-ui-components-preview-file.mjs","sources":["../../../../../libs-ui/components/preview-file/src/preview-file.component.ts","../../../../../libs-ui/components/preview-file/src/preview-file.component.html","../../../../../libs-ui/components/preview-file/src/libs-ui-components-preview-file.ts"],"sourcesContent":["import { AsyncPipe } from '@angular/common';\nimport { ChangeDetectionStrategy, Component, computed, Inject, input, model, Optional, output, signal, untracked } from '@angular/core';\nimport { IButton, LibsUiComponentsButtonsButtonComponent } from '@libs-ui/components-buttons-button';\nimport { LibsUiComponentsModalComponent, TYPE_MODAL_EVENT } from '@libs-ui/components-modal';\nimport { LibsUiComponentsPopoverComponent } from '@libs-ui/components-popover';\nimport { LibsUiComponentsSkeletonComponent } from '@libs-ui/components-skeleton';\nimport { LibsUiComponentsSpinnerComponent } from '@libs-ui/components-spinner';\nimport { IEvent, IFile } from '@libs-ui/interfaces-types';\nimport { LibsUiPipesCheckFileExtensionPipe } from '@libs-ui/pipes-check-file-extension';\nimport { LibsUiPipesSecurityTrustPipe } from '@libs-ui/pipes-security-trust';\nimport { LINK_IMAGE_ERROR_TOKEN_INJECT } from '@libs-ui/utils';\n\n@Component({\n // eslint-disable-next-line @angular-eslint/component-selector\n selector: 'libs_ui-components-preview_file',\n templateUrl: './preview-file.component.html',\n standalone: true,\n imports: [\n AsyncPipe,\n LibsUiComponentsModalComponent,\n LibsUiPipesSecurityTrustPipe,\n LibsUiComponentsSkeletonComponent,\n LibsUiComponentsPopoverComponent,\n LibsUiComponentsButtonsButtonComponent,\n LibsUiPipesCheckFileExtensionPipe,\n LibsUiComponentsSpinnerComponent,\n ],\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class LibsUiComponentsPreviewFileComponent {\n protected loading = signal(true);\n protected fileView = computed(() => {\n const file = this.data()[this.index()];\n\n if (!file) {\n return null;\n }\n untracked(() => this.loading.set(true));\n const mimeType = file.mimetype || file.file?.type;\n const url = file.url || file.origin_url;\n\n if (this.isSourceIframe()) {\n return { ...file, urlFile: url };\n }\n\n if (mimeType && this.mineTypeMicroSoftSupport().includes(mimeType)) {\n return { ...file, urlFile: `https://view.officeapps.live.com/op/embed.aspx?src=${encodeURIComponent(url || '')}` };\n }\n\n return { ...file, urlFile: `https://docs.google.com/a/umd.edu/viewer?url=${encodeURIComponent(url || '')}&embedded=true` };\n });\n\n readonly zIndex = input<number>();\n readonly index = model.required<number>();\n readonly data = input.required<IFile[]>();\n readonly buttons = input<IButton[]>();\n readonly isSourceIframe = input<boolean>();\n\n readonly outClose = output<void>();\n readonly outChangeIndex = output<number>();\n\n constructor(@Optional() @Inject(LINK_IMAGE_ERROR_TOKEN_INJECT) private linkImageError: string) {}\n\n protected async handlerOnLoad() {\n this.loading.set(false);\n }\n\n protected async handlerClose(type: TYPE_MODAL_EVENT) {\n if (type === 'close') {\n this.outClose.emit();\n }\n }\n\n private mineTypeMicroSoftSupport() {\n return [\n 'application/msword',\n 'application/vnd.openxmlformats-officedocument.wordprocessingml.document',\n 'application/vnd.openxmlformats-officedocument.wordprocessingml.template',\n 'application/vnd.openxmlformats-officedocument.spreadsheetml.sheet',\n 'application/vnd.ms-excel.sheet.macroEnabled.12',\n 'application/vnd.ms-excel',\n 'application/vnd.openxmlformats-officedocument.spreadsheetml.template',\n 'application/vnd.ms-powerpoint',\n 'application/vnd.openxmlformats-officedocument.presentationml.presentation',\n 'application/vnd.ms-powerpoint.presentation.macroEnabled.12',\n 'application/vnd.openxmlformats-officedocument.presentationml.slideshow',\n ];\n }\n\n protected handlerPrev() {\n this.index.update((value) => value - 1);\n this.outChangeIndex.emit(this.index());\n }\n\n protected handlerNext() {\n this.index.update((value) => value + 1);\n this.outChangeIndex.emit(this.index());\n }\n\n protected async handlerImageError(event: Event) {\n if (!this.linkImageError) {\n return;\n }\n (event as IEvent).target.src = this.linkImageError;\n }\n}\n","<libs_ui-components-modal\n [minWidth]=\"'1200px'\"\n [headerConfig]=\"{ ignoreHeaderTheme: true, classButtonCloseInclude: '!mr-[24px]' }\"\n [bodyConfig]=\"{ classInclude: '!p-0', scrollOverlayOptions: { scrollX: 'hidden', scrollY: 'hidden' } }\"\n [footerConfig]=\"{ hidden: true }\"\n [zIndex]=\"zIndex()\"\n [buttonsFooter]=\"[]\"\n [mode]=\"'center'\"\n (outEvent)=\"handlerClose($event)\">\n <div class=\"libs-ui-modal-header-custom w-full flex items-center justify-between min-w-0\">\n <div class=\"w-full ml-[24px] mr-[8px] flex justify-between items-center min-w-0 gap-[16px]\">\n <div class=\"w-2/8 flex-1\"></div>\n <div class=\"flex libs-ui-font-h4s min-w-0 w-4/8 justify-center flex-1\">\n <libs_ui-components-popover\n [type]=\"'text'\"\n [config]=\"{ zIndex: zIndex() }\">\n {{ fileView()?.name }}\n </libs_ui-components-popover>\n </div>\n @if (buttons()?.length) {\n <div class=\"flex gap-[8px] items-center w-2/8 justify-end flex-1\">\n @for (button of buttons(); track button.key) {\n <libs_ui-components-buttons-button\n [type]=\"button.type || 'button-third'\"\n [label]=\"button.label || ''\"\n [classIconLeft]=\"button.classIconLeft || ''\"\n [classIconRight]=\"button.classIconRight || ''\"\n [iconOnlyType]=\"button.iconOnlyType || false\"\n [classInclude]=\"button.classInclude || '!py-[4px] !px-[12px]'\"\n (outClick)=\"button.action?.(index())\" />\n }\n <div class=\"h-[12px] libs-ui-border-left-general\"></div>\n </div>\n }\n </div>\n </div>\n <div class=\"libs-ui-modal-body-custom h-full w-full flex rounded-b-[8px] overflow-hidden relative\">\n @if (index() > 0) {\n <div class=\"absolute top-[50%] left-[24px] transform -translate-y-[50%] z-[1]\">\n <libs_ui-components-buttons-button\n [type]=\"'button-outline'\"\n [iconOnlyType]=\"true\"\n [classInclude]=\"'!p-[11px] !rounded-[8px]'\"\n [classIconLeft]=\"'libs-ui-icon-chevron-right rotate-180 before:!text-[20px]'\"\n (outClick)=\"handlerPrev()\" />\n </div>\n }\n @if (fileView(); as fileView) {\n @if (fileView | LibsUiPipesCheckFileExtensionPipe: 'image') {\n <div class=\"w-full h-full relative flex items-center justify-center\">\n @if (fileView.url || fileView.origin_url; as url) {\n <img\n [src]=\"url\"\n alt=\"\"\n class=\"max-w-full max-h-full object-contain\"\n (load)=\"handlerOnLoad()\"\n (error)=\"handlerImageError($event)\" />\n @if (loading()) {\n <libs_ui-components-spinner [size]=\"'medium'\" />\n }\n }\n </div>\n } @else {\n <iframe\n id=\"google\"\n [class.hidden]=\"loading()\"\n [src]=\"fileView.urlFile ?? '' | LibsUiPipesSecurityTrustPipe: 'resourceUrl' | async\"\n width=\"100%\"\n height=\"100%\"\n frameborder=\"0\"\n allowfullscreen=\"allowfullscreen\"\n (load)=\"handlerOnLoad()\"></iframe>\n @if (loading()) {\n <libs_ui-components-skeleton [class]=\"'w-full h-full'\" />\n }\n }\n @if (index() < data().length - 1) {\n <div class=\"absolute top-[50%] right-[24px] transform -translate-y-[50%] z-[1]\">\n <libs_ui-components-buttons-button\n [type]=\"'button-outline'\"\n [iconOnlyType]=\"true\"\n [classInclude]=\"'!p-[11px] !rounded-[8px]'\"\n [classIconLeft]=\"'libs-ui-icon-chevron-right before:!text-[20px]'\"\n (outClick)=\"handlerNext()\" />\n </div>\n }\n }\n </div>\n</libs_ui-components-modal>\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,18 +1,18 @@
1
1
  {
2
2
  "name": "@libs-ui/components-preview-file",
3
- "version": "0.2.356-27",
3
+ "version": "0.2.356-29",
4
4
  "peerDependencies": {
5
5
  "@angular/common": ">=18.0.0",
6
6
  "@angular/core": ">=18.0.0",
7
- "@libs-ui/components-modal": "0.2.356-27",
8
- "@libs-ui/components-skeleton": "0.2.356-27",
9
- "@libs-ui/interfaces-types": "0.2.356-27",
10
- "@libs-ui/pipes-security-trust": "0.2.356-27",
11
- "@libs-ui/components-buttons-button": "0.2.356-27",
12
- "@libs-ui/components-popover": "0.2.356-27",
13
- "@libs-ui/components-spinner": "0.2.356-27",
14
- "@libs-ui/pipes-check-file-extension": "0.2.356-27",
15
- "@libs-ui/utils": "0.2.356-27"
7
+ "@libs-ui/components-modal": "0.2.356-29",
8
+ "@libs-ui/components-skeleton": "0.2.356-29",
9
+ "@libs-ui/interfaces-types": "0.2.356-29",
10
+ "@libs-ui/pipes-security-trust": "0.2.356-29",
11
+ "@libs-ui/components-buttons-button": "0.2.356-29",
12
+ "@libs-ui/components-popover": "0.2.356-29",
13
+ "@libs-ui/components-spinner": "0.2.356-29",
14
+ "@libs-ui/pipes-check-file-extension": "0.2.356-29",
15
+ "@libs-ui/utils": "0.2.356-29"
16
16
  },
17
17
  "sideEffects": false,
18
18
  "module": "fesm2022/libs-ui-components-preview-file.mjs",
@@ -27,6 +27,7 @@ export declare class LibsUiComponentsPreviewFileComponent {
27
27
  readonly buttons: import("@angular/core").InputSignal<IButton[] | undefined>;
28
28
  readonly isSourceIframe: import("@angular/core").InputSignal<boolean | undefined>;
29
29
  readonly outClose: import("@angular/core").OutputEmitterRef<void>;
30
+ readonly outChangeIndex: import("@angular/core").OutputEmitterRef<number>;
30
31
  constructor(linkImageError: string);
31
32
  protected handlerOnLoad(): Promise<void>;
32
33
  protected handlerClose(type: TYPE_MODAL_EVENT): Promise<void>;
@@ -35,5 +36,5 @@ export declare class LibsUiComponentsPreviewFileComponent {
35
36
  protected handlerNext(): void;
36
37
  protected handlerImageError(event: Event): Promise<void>;
37
38
  static ɵfac: i0.ɵɵFactoryDeclaration<LibsUiComponentsPreviewFileComponent, [{ optional: true; }]>;
38
- static ɵcmp: i0.ɵɵComponentDeclaration<LibsUiComponentsPreviewFileComponent, "libs_ui-components-preview_file", never, { "zIndex": { "alias": "zIndex"; "required": false; "isSignal": true; }; "index": { "alias": "index"; "required": true; "isSignal": true; }; "data": { "alias": "data"; "required": true; "isSignal": true; }; "buttons": { "alias": "buttons"; "required": false; "isSignal": true; }; "isSourceIframe": { "alias": "isSourceIframe"; "required": false; "isSignal": true; }; }, { "index": "indexChange"; "outClose": "outClose"; }, never, never, true, never>;
39
+ static ɵcmp: i0.ɵɵComponentDeclaration<LibsUiComponentsPreviewFileComponent, "libs_ui-components-preview_file", never, { "zIndex": { "alias": "zIndex"; "required": false; "isSignal": true; }; "index": { "alias": "index"; "required": true; "isSignal": true; }; "data": { "alias": "data"; "required": true; "isSignal": true; }; "buttons": { "alias": "buttons"; "required": false; "isSignal": true; }; "isSourceIframe": { "alias": "isSourceIframe"; "required": false; "isSignal": true; }; }, { "index": "indexChange"; "outClose": "outClose"; "outChangeIndex": "outChangeIndex"; }, never, never, true, never>;
39
40
  }