ngx-extended-pdf-viewer
Version:
Embedding PDF files in your Angular application. Highly configurable viewer including the toolbar, sidebar, and all the features you're used to.
109 lines • 8.93 kB
JavaScript
/**
* @fileoverview added by tsickle
* Generated from: lib/toolbar/pdf-zoom-toolbar/pdf-zoom-dropdown/pdf-zoom-dropdown.component.ts
* @suppress {checkTypes,constantProperty,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc
*/
import { Component, ViewChild, Input } from '@angular/core';
/**
* @record
*/
function ZoomLevel() { }
if (false) {
/** @type {?} */
ZoomLevel.prototype.id;
/** @type {?} */
ZoomLevel.prototype.dataL10nId;
/** @type {?} */
ZoomLevel.prototype.dataL10nArgs;
/** @type {?} */
ZoomLevel.prototype.value;
/** @type {?} */
ZoomLevel.prototype.displayValue;
}
export class PdfZoomDropdownComponent {
constructor() {
this._zoomLevels = [];
}
// ['auto', 'page-actual', 'page-fit', 'page-width', 0.5, 0.75, 1, 1.25, 1.5, 2, 3, 4];
/**
* @param {?} levels
* @return {?}
*/
set zoomLevels(levels) {
this._zoomLevels = levels.map((/**
* @param {?} l
* @return {?}
*/
(l) => this.valueToZoomLevel(l)));
}
/**
* @return {?}
*/
ngOnInit() { }
/**
* @private
* @param {?} value
* @return {?}
*/
valueToZoomLevel(value) {
if (value.toString().endsWith('%')) {
value = value.toString().replace('%', '');
value = Number(value) / 100;
}
/** @type {?} */
const numericalValue = Number(value);
if (!numericalValue) {
/** @type {?} */
const v = String(value);
return {
id: this.snakeToCamel(value + 'Option'),
value: v,
dataL10nId: 'page_scale_' + v.replace('page-', ''),
dataL10nArgs: undefined,
displayValue: v,
};
}
/** @type {?} */
const percentage = Math.round(numericalValue * 100);
return {
id: `scale_${percentage}`,
value: String(numericalValue),
dataL10nId: 'page_scale_percent',
dataL10nArgs: `{ "scale": ${percentage} }`,
displayValue: String(percentage) + '%',
};
}
/**
* @private
* @param {?} str
* @return {?}
*/
snakeToCamel(str) {
// idea found here: https://hisk.io/javascript-snake-to-camel/
return str.replace(/([-_][a-z])/g, (/**
* @param {?} group
* @return {?}
*/
(group) => group.toUpperCase().replace('-', '').replace('_', '')));
}
}
PdfZoomDropdownComponent.decorators = [
{ type: Component, args: [{
selector: 'pdf-zoom-dropdown',
template: "<span id=\"scaleSelectContainer\" class=\"dropdownToolbarButton\">\n <select\n id=\"scaleSelect\"\n title=\"Zoom\"\n data-l10n-id=\"zoom\"\n #sizeSelector\n >\n <option *ngFor=\"let level of _zoomLevels\"\n [id]=\"level.id\"\n [attr.value]=\"level.value\"\n [attr.data-l10n-id]=\"level.dataL10nId\"\n [attr.data-l10n-args]=\"level.dataL10nArgs\">\n {{level.displayValue}}\n </option>\n <option\n id=\"customScaleOption\"\n title=\"\"\n value=\"custom\"\n disabled=\"disabled\"\n hidden=\"true\"\n ></option>\n\n </select>\n</span>\n",
styles: [".dropdownToolbarButton{display:table-cell;-webkit-appearance:none;width:150px;max-width:150px}.dropdownToolbarButton>select{width:170px}@media screen and (-webkit-min-device-pixel-ratio:1.1),screen and (min-resolution:1.1dppx){.dropdownToolbarButton::after{top:-1px}}"]
}] }
];
/** @nocollapse */
PdfZoomDropdownComponent.ctorParameters = () => [];
PdfZoomDropdownComponent.propDecorators = {
zoomLevels: [{ type: Input }],
sizeSelector: [{ type: ViewChild, args: ['sizeSelector',] }]
};
if (false) {
/** @type {?} */
PdfZoomDropdownComponent.prototype._zoomLevels;
/** @type {?} */
PdfZoomDropdownComponent.prototype.sizeSelector;
}
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGRmLXpvb20tZHJvcGRvd24uY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6Im5nOi8vbmd4LWV4dGVuZGVkLXBkZi12aWV3ZXIvIiwic291cmNlcyI6WyJsaWIvdG9vbGJhci9wZGYtem9vbS10b29sYmFyL3BkZi16b29tLWRyb3Bkb3duL3BkZi16b29tLWRyb3Bkb3duLmNvbXBvbmVudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7OztBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQVUsU0FBUyxFQUF3QixLQUFLLEVBQUUsTUFBTSxlQUFlLENBQUM7Ozs7QUFFMUYsd0JBTUM7OztJQUxDLHVCQUFXOztJQUNYLCtCQUFtQjs7SUFDbkIsaUNBQWlDOztJQUNqQywwQkFBYzs7SUFDZCxpQ0FBcUI7O0FBT3ZCLE1BQU0sT0FBTyx3QkFBd0I7SUFXbkM7UUFWTyxnQkFBVyxHQUFxQixFQUFFLENBQUM7SUFVM0IsQ0FBQzs7Ozs7O0lBUGhCLElBQ1csVUFBVSxDQUFDLE1BQThCO1FBQ2xELElBQUksQ0FBQyxXQUFXLEdBQUcsTUFBTSxDQUFDLEdBQUc7Ozs7UUFBQyxDQUFDLENBQUMsRUFBRSxFQUFFLENBQUMsSUFBSSxDQUFDLGdCQUFnQixDQUFDLENBQUMsQ0FBQyxFQUFDLENBQUM7SUFDakUsQ0FBQzs7OztJQU1ELFFBQVEsS0FBSSxDQUFDOzs7Ozs7SUFFTCxnQkFBZ0IsQ0FBQyxLQUFzQjtRQUM3QyxJQUFJLEtBQUssQ0FBQyxRQUFRLEVBQUUsQ0FBQyxRQUFRLENBQUMsR0FBRyxDQUFDLEVBQUU7WUFDbEMsS0FBSyxHQUFHLEtBQUssQ0FBQyxRQUFRLEVBQUUsQ0FBQyxPQUFPLENBQUMsR0FBRyxFQUFFLEVBQUUsQ0FBQyxDQUFDO1lBQzFDLEtBQUssR0FBRyxNQUFNLENBQUMsS0FBSyxDQUFDLEdBQUcsR0FBRyxDQUFDO1NBQzdCOztjQUNLLGNBQWMsR0FBRyxNQUFNLENBQUMsS0FBSyxDQUFDO1FBQ3BDLElBQUksQ0FBQyxjQUFjLEVBQUU7O2tCQUNiLENBQUMsR0FBRyxNQUFNLENBQUMsS0FBSyxDQUFDO1lBQ3ZCLE9BQU87Z0JBQ0wsRUFBRSxFQUFFLElBQUksQ0FBQyxZQUFZLENBQUMsS0FBSyxHQUFHLFFBQVEsQ0FBQztnQkFDdkMsS0FBSyxFQUFFLENBQUM7Z0JBQ1IsVUFBVSxFQUFFLGFBQWEsR0FBRyxDQUFDLENBQUMsT0FBTyxDQUFDLE9BQU8sRUFBRSxFQUFFLENBQUM7Z0JBQ2xELFlBQVksRUFBRSxTQUFTO2dCQUN2QixZQUFZLEVBQUUsQ0FBQzthQUNoQixDQUFDO1NBQ0g7O2NBQ0ssVUFBVSxHQUFHLElBQUksQ0FBQyxLQUFLLENBQUMsY0FBYyxHQUFHLEdBQUcsQ0FBQztRQUNuRCxPQUFPO1lBQ0wsRUFBRSxFQUFFLFNBQVMsVUFBVSxFQUFFO1lBQ3pCLEtBQUssRUFBRSxNQUFNLENBQUMsY0FBYyxDQUFDO1lBQzdCLFVBQVUsRUFBRSxvQkFBb0I7WUFDaEMsWUFBWSxFQUFFLGNBQWMsVUFBVSxJQUFJO1lBQzFDLFlBQVksRUFBRSxNQUFNLENBQUMsVUFBVSxDQUFDLEdBQUcsR0FBRztTQUN2QyxDQUFDO0lBQ0osQ0FBQzs7Ozs7O0lBRU8sWUFBWSxDQUFDLEdBQVc7UUFDOUIsOERBQThEO1FBQzlELE9BQU8sR0FBRyxDQUFDLE9BQU8sQ0FBQyxjQUFjOzs7O1FBQUUsQ0FBQyxLQUFLLEVBQUUsRUFBRSxDQUFDLEtBQUssQ0FBQyxXQUFXLEVBQUUsQ0FBQyxPQUFPLENBQUMsR0FBRyxFQUFFLEVBQUUsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxHQUFHLEVBQUUsRUFBRSxDQUFDLEVBQUMsQ0FBQztJQUN2RyxDQUFDOzs7WUFqREYsU0FBUyxTQUFDO2dCQUNULFFBQVEsRUFBRSxtQkFBbUI7Z0JBQzdCLGltQkFBaUQ7O2FBRWxEOzs7Ozt5QkFLRSxLQUFLOzJCQUtMLFNBQVMsU0FBQyxjQUFjOzs7O0lBUnpCLCtDQUEwQzs7SUFRMUMsZ0RBQTZDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50LCBPbkluaXQsIFZpZXdDaGlsZCwgT3V0cHV0LCBFdmVudEVtaXR0ZXIsIElucHV0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5cbmludGVyZmFjZSBab29tTGV2ZWwge1xuICBpZDogc3RyaW5nO1xuICBkYXRhTDEwbklkOiBzdHJpbmc7XG4gIGRhdGFMMTBuQXJnczogc3RyaW5nIHwgdW5kZWZpbmVkO1xuICB2YWx1ZTogc3RyaW5nO1xuICBkaXNwbGF5VmFsdWU6IHN0cmluZztcbn1cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ3BkZi16b29tLWRyb3Bkb3duJyxcbiAgdGVtcGxhdGVVcmw6ICcuL3BkZi16b29tLWRyb3Bkb3duLmNvbXBvbmVudC5odG1sJyxcbiAgc3R5bGVVcmxzOiBbJy4vcGRmLXpvb20tZHJvcGRvd24uY29tcG9uZW50LmNzcyddLFxufSlcbmV4cG9ydCBjbGFzcyBQZGZab29tRHJvcGRvd25Db21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQge1xuICBwdWJsaWMgX3pvb21MZXZlbHM6IEFycmF5PFpvb21MZXZlbD4gPSBbXTtcbiAgLy8gWydhdXRvJywgJ3BhZ2UtYWN0dWFsJywgJ3BhZ2UtZml0JywgJ3BhZ2Utd2lkdGgnLCAwLjUsIDAuNzUsIDEsIDEuMjUsIDEuNSwgMiwgMywgNF07XG5cbiAgQElucHV0KClcbiAgcHVibGljIHNldCB6b29tTGV2ZWxzKGxldmVsczogQXJyYXk8c3RyaW5nIHwgbnVtYmVyPikge1xuICAgIHRoaXMuX3pvb21MZXZlbHMgPSBsZXZlbHMubWFwKChsKSA9PiB0aGlzLnZhbHVlVG9ab29tTGV2ZWwobCkpO1xuICB9XG5cbiAgQFZpZXdDaGlsZCgnc2l6ZVNlbGVjdG9yJykgc2l6ZVNlbGVjdG9yOiBhbnk7XG5cbiAgY29uc3RydWN0b3IoKSB7fVxuXG4gIG5nT25Jbml0KCkge31cblxuICBwcml2YXRlIHZhbHVlVG9ab29tTGV2ZWwodmFsdWU6IHN0cmluZyB8IG51bWJlcik6IFpvb21MZXZlbCB7XG4gICAgaWYgKHZhbHVlLnRvU3RyaW5nKCkuZW5kc1dpdGgoJyUnKSkge1xuICAgICAgdmFsdWUgPSB2YWx1ZS50b1N0cmluZygpLnJlcGxhY2UoJyUnLCAnJyk7XG4gICAgICB2YWx1ZSA9IE51bWJlcih2YWx1ZSkgLyAxMDA7XG4gICAgfVxuICAgIGNvbnN0IG51bWVyaWNhbFZhbHVlID0gTnVtYmVyKHZhbHVlKTtcbiAgICBpZiAoIW51bWVyaWNhbFZhbHVlKSB7XG4gICAgICBjb25zdCB2ID0gU3RyaW5nKHZhbHVlKTtcbiAgICAgIHJldHVybiB7XG4gICAgICAgIGlkOiB0aGlzLnNuYWtlVG9DYW1lbCh2YWx1ZSArICdPcHRpb24nKSxcbiAgICAgICAgdmFsdWU6IHYsXG4gICAgICAgIGRhdGFMMTBuSWQ6ICdwYWdlX3NjYWxlXycgKyB2LnJlcGxhY2UoJ3BhZ2UtJywgJycpLFxuICAgICAgICBkYXRhTDEwbkFyZ3M6IHVuZGVmaW5lZCxcbiAgICAgICAgZGlzcGxheVZhbHVlOiB2LFxuICAgICAgfTtcbiAgICB9XG4gICAgY29uc3QgcGVyY2VudGFnZSA9IE1hdGgucm91bmQobnVtZXJpY2FsVmFsdWUgKiAxMDApO1xuICAgIHJldHVybiB7XG4gICAgICBpZDogYHNjYWxlXyR7cGVyY2VudGFnZX1gLFxuICAgICAgdmFsdWU6IFN0cmluZyhudW1lcmljYWxWYWx1ZSksXG4gICAgICBkYXRhTDEwbklkOiAncGFnZV9zY2FsZV9wZXJjZW50JyxcbiAgICAgIGRhdGFMMTBuQXJnczogYHsgXCJzY2FsZVwiOiAke3BlcmNlbnRhZ2V9IH1gLFxuICAgICAgZGlzcGxheVZhbHVlOiBTdHJpbmcocGVyY2VudGFnZSkgKyAnJScsXG4gICAgfTtcbiAgfVxuXG4gIHByaXZhdGUgc25ha2VUb0NhbWVsKHN0cjogc3RyaW5nKSB7XG4gICAgLy8gaWRlYSBmb3VuZCBoZXJlOiBodHRwczovL2hpc2suaW8vamF2YXNjcmlwdC1zbmFrZS10by1jYW1lbC9cbiAgICByZXR1cm4gc3RyLnJlcGxhY2UoLyhbLV9dW2Etel0pL2csIChncm91cCkgPT4gZ3JvdXAudG9VcHBlckNhc2UoKS5yZXBsYWNlKCctJywgJycpLnJlcGxhY2UoJ18nLCAnJykpO1xuICB9XG59XG4iXX0=