Files
doneit-web/src/app/modals/view-media/view-media.page.ts
T

75 lines
1.8 KiB
TypeScript
Raw Normal View History

2021-12-07 17:25:09 +01:00
import { Component, OnInit } from '@angular/core';
import { ModalController, NavParams, Platform } from '@ionic/angular';
2022-03-31 11:56:49 +01:00
import { DomSanitizer} from '@angular/platform-browser';
2022-04-04 00:37:00 +01:00
import { pdfDefaultOptions } from 'ngx-extended-pdf-viewer';
2021-12-07 17:25:09 +01:00
@Component({
selector: 'app-view-media',
templateUrl: './view-media.page.html',
styleUrls: ['./view-media.page.scss'],
})
export class ViewMediaPage implements OnInit {
image: any;
2022-03-03 08:21:22 +01:00
type: any;
2021-12-07 17:25:09 +01:00
name: string
_updatedAt: string
view: boolean
2021-12-07 17:25:09 +01:00
2021-12-20 16:58:22 +01:00
sliderOpts = {
zoom: true
2021-12-20 16:58:22 +01:00
};
2022-04-06 16:25:47 +01:00
base64Sanitize:any = "";
2022-03-31 11:56:49 +01:00
2021-12-07 17:25:09 +01:00
constructor(
private modalController: ModalController,
private navParams:NavParams,
2022-03-31 11:56:49 +01:00
public sanitizer: DomSanitizer,
private platform: Platform,
2025-09-17 18:37:35 +01:00
2021-12-07 17:25:09 +01:00
) {
this.image = this.navParams.get('image')
2022-03-03 08:21:22 +01:00
this.type = this.navParams.get('type')
2021-12-07 17:25:09 +01:00
this.name = this.navParams.get('username')
this._updatedAt = this.navParams.get('_updatedAt')
2022-04-04 00:37:00 +01:00
pdfDefaultOptions.assetsFolder = 'bleeding-edge';
2021-12-07 17:25:09 +01:00
}
ngOnInit() {
2023-05-26 14:23:37 +01:00
2025-09-17 18:37:35 +01:00
this.base64Sanitize = this.sanitizer.bypassSecurityTrustResourceUrl(this.image);
if (this.platform.is('desktop')) {
this.view = true;
} else {
this.view = false;
}
2022-03-31 11:56:49 +01:00
}
2022-04-04 00:37:00 +01:00
b64toBlob = (b64Data, contentType = '', sliceSize = 512) => {
const byteCharacters = atob(b64Data);
const byteArrays = [];
2025-09-17 18:37:35 +01:00
2022-04-04 00:37:00 +01:00
for (let offset = 0; offset < byteCharacters.length; offset += sliceSize) {
const slice = byteCharacters.slice(offset, offset + sliceSize);
2025-09-17 18:37:35 +01:00
2022-04-04 00:37:00 +01:00
const byteNumbers = new Array(slice.length);
for (let i = 0; i < slice.length; i++) {
byteNumbers[i] = slice.charCodeAt(i);
}
2025-09-17 18:37:35 +01:00
2022-04-04 00:37:00 +01:00
const byteArray = new Uint8Array(byteNumbers);
byteArrays.push(byteArray);
}
2025-09-17 18:37:35 +01:00
2022-04-04 00:37:00 +01:00
const blob = new Blob(byteArrays, { type: contentType });
return blob;
};
2022-03-31 11:56:49 +01:00
2021-12-07 17:25:09 +01:00
close(){
this.modalController.dismiss()
}
}