all files / pdfviewer/organize-pdf/organize-core/ organize-toolbar.js

11.5% Statements 23/200
0% Branches 0/113
3.23% Functions 1/31
11.73% Lines 23/196
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 187 188 189 190 191 192 193 194 195 196 197 198 199 200 201 202 203 204 205 206 207 208 209 210 211 212 213 214 215 216 217 218 219 220 221 222 223 224 225 226 227 228 229 230 231 232 233 234 235 236 237 238 239 240 241 242 243 244 245 246 247 248 249 250 251 252 253 254 255 256 257 258 259 260 261 262 263 264 265 266 267 268 269 270 271 272 273 274 275 276 277 278 279 280 281 282 283 284 285 286 287 288 289 290 291 292 293 294 295 296 297 298 299 300 301 302 303 304 305 306 307 308 309 310 311 312 313 314 315 316 317 318 319 320 321 322 323 324 325 326 327 328 329 330 331 332 333 334 335 336 337 338 339 340 341 342 343 344 345 3461×   1× 1×                                                                                                                                                                                                                                                                         1×                                                                                 1× 1×                                                                 1× 1×                           1× 1×                 1× 1×                                     1× 1×                                                                 1× 1×               1× 1×                                 1× 1×         1× 1×                                     1×    
define(["require", "exports", "@syncfusion/ej2-base", "@syncfusion/ej2-navigations", "@syncfusion/ej2-buttons", "@syncfusion/ej2-splitbuttons", "./organize-event-handler", "./slider-zoomaction", "./organize-contextmenu", "./organize-thumbnail", "./tile-interaction", "./organize-importaction", "./organizepages-editor", "./organize-initialization", "./organize-extract"], function (require, exports, ej2_base_1, ej2_navigations_1, ej2_buttons_1, ej2_splitbuttons_1, organize_event_handler_1, slider_zoomaction_1, organize_contextmenu_1, organize_thumbnail_1, tile_interaction_1, organize_importaction_1, organizepages_editor_1, organize_initialization_1, organize_extract_1) {
    "use strict";
    Object.defineProperty(exports, "__esModule", { value: true });
    function createContentArea() {
        var _this = this;
        var elementID = this.pdfViewer.element.id;
        var contentDiv = ej2_base_1.createElement('div', { id: elementID + '_content_appearance', className: 'e-pv-organize-content-apperance' });
        var toolbarDiv = ej2_base_1.createElement('div', { id: elementID + '_toolbar_appearance', className: 'e-pv-organize-toolbar-apperance' });
        this.tileAreaWrapper = ej2_base_1.createElement('div', { id: this.pdfViewer.element.id + '_organize_tile_view_wrapper', className: 'e-pv-organize-tile-view-wrapper' });
        this.tileAreaDiv = ej2_base_1.createElement('div', { id: this.pdfViewer.element.id + '_organize_tile_view', className: 'e-pv-organize-tile-view e-pv-thumbnail-row' });
        this.tileAreaWrapper.style.width = '100%';
        this.tileAreaWrapper.style.height = 'calc(100% - 48px)';
        this.tileAreaWrapper.style.position = 'relative';
        contentDiv.style.width = '100%';
        contentDiv.style.height = '100%';
        toolbarDiv.style.height = '48px';
        this.tileAreaDiv.style.height = '100%';
        this.tileAreaDiv.tabIndex = 0;
        this.selectAllCheckBox = new ej2_buttons_1.CheckBox({ label: ej2_base_1.Browser.isDevice && !this.pdfViewer.enableDesktopMode ? '' : this.pdfViewer.localeObj.getConstant('Select All'), cssClass: 'e-pv-organize-select-all', checked: false, change: organize_event_handler_1.onSelectAllClick.bind(this) });
        var toolbarItems = [];
        var toolbarItemsForDesktop = [
            { type: 'Input', template: this.selectAllCheckBox, id: 'selectAllCheckbox', align: 'Left' },
            { type: 'Separator', align: 'Left' },
            {
                prefixIcon: 'e-pv-undo-icon e-pv-icon', visible: true, cssClass: 'e-pv-undo-container', id: this.pdfViewer.element.id + '_undo_organize_Pages', align: 'Left', click: function (args) {
                    _this.undo();
                }
            },
            {
                prefixIcon: 'e-pv-redo-icon e-pv-icon', visible: true, cssClass: 'e-pv-redo-container', id: this.pdfViewer.element.id + '_redo_organize_Pages', align: 'Left', click: function (args) {
                    _this.redo();
                }
            },
            {
                prefixIcon: 'e-pv-rotate-left-icon e-pv-icon', visible: true, cssClass: 'e-pv-toolbar-rotate-left', id: this.pdfViewer.element.id + '_rotate_page_left', align: 'Center', click: function (args) {
                    organizepages_editor_1.onToolbarLeftButtonClick.call(_this);
                }
            },
            {
                prefixIcon: 'e-pv-rotate-right-icon e-pv-icon', visible: true, cssClass: 'e-pv-toolbar-rotate-right', id: this.pdfViewer.element.id + '_rotate_page_right', align: 'Center', click: function (args) {
                    organizepages_editor_1.onToolbarRightButtonClick.call(_this);
                }
            },
            { type: 'Separator', align: 'Center' },
            {
                prefixIcon: 'e-pv-copy-icon e-pv-icon', visible: true, cssClass: 'e-pv-toolbar-rotate-right', id: this.pdfViewer.element.id + '_copy_page', align: 'Center', click: function (args) {
                    organizepages_editor_1.onToolbarCopyButtonClick.call(_this);
                }
            },
            { type: 'Separator', align: 'Center' },
            {
                prefixIcon: 'e-pv-delete-icon e-pv-icon', visible: true, cssClass: 'e-pv-delete-selected', id: this.pdfViewer.element.id + '_delete_selected', align: 'Center', click: function (args) {
                    organizepages_editor_1.onToolbarDeleteButtonClick.call(_this);
                }
            },
            { type: 'Separator', align: 'Center', visible: this.pdfViewerBase.clientSideRendering },
            {
                prefixIcon: 'e-pv-extract-page-icon e-pv-icon', visible: this.pdfViewerBase.clientSideRendering, cssClass: 'e-pv-extract-pages', id: this.pdfViewer.element.id + '_extract_pages', align: 'Center', click: function (args) {
                    organize_extract_1.onToolbarExtractButtonClick.call(_this);
                }
            },
            {
                prefixIcon: 'e-pv-import-icon e-pv-icon', text: this.pdfViewer.localeObj.getConstant('Import Document'), visible: true, cssClass: 'e-pv-import-pages', id: this.pdfViewer.element.id + '_import_pages', align: 'Right', click: function (args) {
                    organize_importaction_1.bindImportDocEvent.call(_this);
                }
            }
        ];
        if (this.pdfViewer.pageOrganizerSettings.showImageZoomingSlider) {
            addPageZoomDropDown.call(this, true, toolbarItemsForDesktop);
        }
        if (!this.pdfViewer.pageOrganizerSettings.showExtractPagesOption) {
            organize_extract_1.addExtractionIcon.call(this, true, toolbarItemsForDesktop);
        }
        var toolbarItemsForMobile = [
            { type: 'Input', template: this.selectAllCheckBox, id: 'selectAllCheckbox', align: 'Left' },
            { type: 'Separator', align: 'Left' },
            {
                prefixIcon: 'e-pv-undo-icon e-pv-icon', visible: true, cssClass: 'e-pv-undo-container', id: this.pdfViewer.element.id + '_undo_organize_Pages', align: 'Left', click: function (args) {
                    _this.undo();
                }
            },
            {
                prefixIcon: 'e-pv-redo-icon e-pv-icon', visible: true, cssClass: 'e-pv-redo-container', id: this.pdfViewer.element.id + '_redo_organize_Pages', align: 'Left', click: function (args) {
                    _this.redo();
                }
            },
            {
                prefixIcon: 'e-pv-rotate-left-icon e-pv-icon', visible: true, cssClass: 'e-pv-toolbar-rotate-left', id: this.pdfViewer.element.id + '_rotate_page_left', align: 'Right', click: function (args) {
                    organizepages_editor_1.onToolbarLeftButtonClick.call(_this);
                }
            },
            {
                prefixIcon: 'e-pv-rotate-right-icon e-pv-icon', visible: true, cssClass: 'e-pv-toolbar-rotate-right', id: this.pdfViewer.element.id + '_rotate_page_right', align: 'Right', click: function (args) {
                    organizepages_editor_1.onToolbarRightButtonClick.call(_this);
                }
            },
            {
                prefixIcon: 'e-pv-delete-icon e-pv-icon', visible: true, cssClass: 'e-pv-delete-selected', id: this.pdfViewer.element.id + '_delete_selected', align: 'Right', click: function (args) {
                    organizepages_editor_1.onToolbarDeleteButtonClick.call(_this);
                }
            },
            {
                prefixIcon: 'e-pv-extract-page-icon e-pv-icon', visible: this.pdfViewerBase.clientSideRendering, cssClass: 'e-pv-extract-pages', id: this.pdfViewer.element.id + '_extract_pages', align: 'Right', click: function (args) {
                    organize_extract_1.onToolbarExtractButtonClick.call(_this);
                }
            },
            { type: 'Separator', align: 'Right' },
            {
                prefixIcon: 'e-pv-more-icon e-pv-icon', visible: true, cssClass: 'e-pv-toolbar-rotate-right', id: this.pdfViewer.element.id + '_organize_more_button', align: 'Right',
                click: organize_contextmenu_1.openContextMenu.bind(this)
            }
        ];
        addPageZoomDropDown.call(this, true, toolbarItemsForMobile);
        if (ej2_base_1.Browser.isDevice && !this.pdfViewer.enableDesktopMode) {
            toolbarItems.push.apply(toolbarItems, toolbarItemsForMobile);
        }
        else {
            toolbarItems.push.apply(toolbarItems, toolbarItemsForDesktop);
        }
        this.toolbar = new ej2_navigations_1.Toolbar({
            items: toolbarItems
        });
        this.toolbar.cssClass = 'e-pv-organize-toolbar';
        this.toolbar.height = '48px';
        this.toolbar.width = 'auto';
        if (ej2_base_1.Browser.isDevice && !this.pdfViewer.enableDesktopMode) {
            this.toolbar.overflowMode = 'Popup';
        }
        this.toolbar.appendTo(toolbarDiv);
        contentDiv.appendChild(toolbarDiv);
        organize_thumbnail_1.renderThumbnailImage.call(this);
        this.tileAreaWrapper.appendChild(this.tileAreaDiv);
        contentDiv.appendChild(this.tileAreaWrapper);
        createImportDocElement.call(this, toolbarDiv);
        organize_event_handler_1.importDocWireEvent.call(this);
        var rotateRightToolbarButton = toolbarDiv.querySelector('#' + this.pdfViewer.element.id + '_rotate_page_right');
        function setAriaLabel(btn, label) {
            if (btn) {
                btn.setAttribute('aria-label', label);
            }
        }
        if (!ej2_base_1.isNullOrUndefined(rotateRightToolbarButton)) {
            organize_initialization_1.createTooltip.call(this, rotateRightToolbarButton, this.pdfViewer.localeObj.getConstant('Rotate Right'));
            setAriaLabel(rotateRightToolbarButton, this.pdfViewer.localeObj.getConstant('Rotate Right'));
        }
        var rotateLeftToolbarButton = toolbarDiv.querySelector('#' + this.pdfViewer.element.id + '_rotate_page_left');
        if (!ej2_base_1.isNullOrUndefined(rotateLeftToolbarButton)) {
            organize_initialization_1.createTooltip.call(this, rotateLeftToolbarButton, this.pdfViewer.localeObj.getConstant('Rotate Left'));
            setAriaLabel(rotateLeftToolbarButton, this.pdfViewer.localeObj.getConstant('Rotate Left'));
        }
        var copyToolbarButton = toolbarDiv.querySelector('#' + this.pdfViewer.element.id + '_copy_page');
        if (!ej2_base_1.isNullOrUndefined(copyToolbarButton)) {
            organize_initialization_1.createTooltip.call(this, copyToolbarButton, this.pdfViewer.localeObj.getConstant('Copy Pages'));
            setAriaLabel(copyToolbarButton, this.pdfViewer.localeObj.getConstant('Copy Pages'));
        }
        var deleteToolbarButton = toolbarDiv.querySelector('#' + this.pdfViewer.element.id + '_delete_selected');
        if (!ej2_base_1.isNullOrUndefined(deleteToolbarButton)) {
            organize_initialization_1.createTooltip.call(this, deleteToolbarButton, this.pdfViewer.localeObj.getConstant('Delete Pages'));
            setAriaLabel(deleteToolbarButton, this.pdfViewer.localeObj.getConstant('Delete Pages'));
        }
        var undoToolbarButton = toolbarDiv.querySelector('#' + this.pdfViewer.element.id + '_undo_organize_Pages');
        if (!ej2_base_1.isNullOrUndefined(undoToolbarButton)) {
            organize_initialization_1.createTooltip.call(this, undoToolbarButton, this.pdfViewer.localeObj.getConstant('Undo'));
            setAriaLabel(undoToolbarButton, this.pdfViewer.localeObj.getConstant('Undo'));
        }
        var redoToolbarButton = toolbarDiv.querySelector('#' + this.pdfViewer.element.id + '_redo_organize_Pages');
        if (!ej2_base_1.isNullOrUndefined(redoToolbarButton)) {
            organize_initialization_1.createTooltip.call(this, redoToolbarButton, this.pdfViewer.localeObj.getConstant('Redo'));
            setAriaLabel(redoToolbarButton, this.pdfViewer.localeObj.getConstant('Redo'));
        }
        var ExtractPagesButton = toolbarDiv.querySelector('#' + this.pdfViewer.element.id + '_extract_pages');
        if (!ej2_base_1.isNullOrUndefined(ExtractPagesButton)) {
            organize_initialization_1.createTooltip.call(this, ExtractPagesButton, this.pdfViewer.localeObj.getConstant('Extract Pages'));
            setAriaLabel(ExtractPagesButton, this.pdfViewer.localeObj.getConstant('Extract Pages'));
        }
        return contentDiv;
    }
    exports.createContentArea = createContentArea;
    function addPageZoomDropDown(isInitialCreation, toolbarItems) {
        var _this = this;
        if (isInitialCreation) {
            if (ej2_base_1.Browser.isDevice && !this.pdfViewer.enableDesktopMode) {
                var insertIndex = toolbarItems.findIndex(function (item) { return item.id === _this.pdfViewer.element.id + '_organize_more_button'; });
                toolbarItems.splice(insertIndex - 1, 0, { visible: this.pdfViewer.pageOrganizerSettings.showImageZoomingSlider, cssClass: 'e-pv-page-zoom', id: this.pdfViewer.element.id + '_page_zoom', align: 'Right' });
            }
            else {
                var insertIndex = toolbarItems.findIndex(function (item) { return item.cssClass === 'e-pv-import-pages'; });
                toolbarItems.splice(insertIndex, 0, { type: 'Separator', align: 'Center' }, { visible: true, cssClass: 'e-pv-page-zoom', id: this.pdfViewer.element.id + '_page_zoom', align: 'Center' });
            }
        }
        else {
            if (ej2_base_1.Browser.isDevice && !this.pdfViewer.enableDesktopMode) {
                var insertIndex = this.toolbar.items.findIndex(function (item) { return item.id === _this.pdfViewer.element.id + '_page_zoom'; });
                if (insertIndex !== -1) {
                    this.toolbar.hideItem(this.pdfViewerBase.getElement('_page_zoom').parentElement, false);
                }
            }
            else {
                var insertIndex = this.toolbar.items.findIndex(function (item) { return item.cssClass === 'e-pv-import-pages'; });
                if (this.toolbar.items[insertIndex - 1].type !== 'Separator') {
                    this.toolbar.addItems([{ type: 'Separator', align: 'Center' },
                        { visible: true, cssClass: 'e-pv-page-zoom', id: this.pdfViewer.element.id + '_page_zoom', align: 'Center' }], insertIndex);
                }
                else {
                    this.toolbar
                        .addItems([{ visible: true, cssClass: 'e-pv-page-zoom', id: this.pdfViewer.element.id + '_page_zoom', align: 'Center' }], insertIndex);
                }
            }
            this.toolbar.element.children[0].children[1].removeAttribute('style');
        }
    }
    exports.addPageZoomDropDown = addPageZoomDropDown;
    function createPageZoomDropDown() {
        this.pageZoomElement = this.pdfViewerBase.getElement('_page_zoom');
        this.pageZoomContainer = slider_zoomaction_1.createPageZoomSlider.call(this, this.pageZoomElement.id);
        var dropDownButton = new ej2_splitbuttons_1.DropDownButton({ iconCss: 'e-pv-page-zoom-icon' + ' e-pv-icon e-icons', target: this.pageZoomContainer });
        if (this.pdfViewer.enableRtl) {
            dropDownButton.enableRtl = true;
        }
        dropDownButton.appendTo(this.pageZoomElement);
        organize_initialization_1.createTooltip.call(this, this.pageZoomElement, this.pdfViewer.localeObj.getConstant('Change Page Zoom'));
        this.pageZoomElement.setAttribute('aria-label', this.pdfViewer.localeObj.getConstant('Change Page Zoom'));
        this.pageZoomDropDown = dropDownButton;
        slider_zoomaction_1.pageZoomWireEvents.call(this);
        slider_zoomaction_1.pageZoomSliderWireEvents.call(this);
    }
    exports.createPageZoomDropDown = createPageZoomDropDown;
    function shrinkElement(element) {
        var pdfViewerRect = this.pdfViewer.element.getBoundingClientRect();
        var actualWidth = element.clientWidth;
        var decreasePercent = (actualWidth - pdfViewerRect.width) / actualWidth;
        var newHeight = element.clientHeight * (1 - decreasePercent);
        var newWidth = actualWidth * (1 - decreasePercent);
        element.style.width = newWidth + 'px';
        element.style.height = newHeight + 'px';
    }
    exports.shrinkElement = shrinkElement;
    function createImportDocElement(toolbarElement) {
        if (this.pdfViewer.pageOrganizerSettings.canImport) {
            if (toolbarElement) {
                this.importDocInputElement = ej2_base_1.createElement('input', { id: this.pdfViewer.element.id + '_importDocElement', styles: 'position:fixed; left:-100em', attrs: { 'type': 'file' } });
                this.importDocInputElement.setAttribute('accept', '.pdf');
                this.importDocInputElement.setAttribute('aria-label', 'import document element');
                this.importDocInputElement.setAttribute('tabindex', '-1');
                toolbarElement.appendChild(this.importDocInputElement);
            }
        }
        else {
            if (!ej2_base_1.isNullOrUndefined(this.importDocInputElement)) {
                if (this.importDocInputElement.parentElement && this.importDocInputElement.parentElement === toolbarElement) {
                    toolbarElement.removeChild(this.importDocInputElement);
                }
                this.importDocInputElement = null;
            }
        }
    }
    exports.createImportDocElement = createImportDocElement;
    function enableDisableToolbarItems() {
        var _this = this;
        var isCopyDisabled = false;
        var isCopyRotateDisabled = false;
        if (!ej2_base_1.isNullOrUndefined(this.toolbar)) {
            this.toolbar.items.forEach(function (item) {
                if (item.id === _this.pdfViewer.element.id + '_rotate_page_left') {
                    enableToolbarItem.call(_this, item.id, ((_this.selectAllCheckBox.checked || _this.selectAllCheckBox.indeterminate) &&
                        _this.pdfViewer.pageOrganizerSettings.canRotate) && !organize_contextmenu_1.getImportedItems.call(_this, isCopyRotateDisabled));
                }
                else if (item.id === _this.pdfViewer.element.id + '_rotate_page_right') {
                    enableToolbarItem.call(_this, item.id, ((_this.selectAllCheckBox.checked || _this.selectAllCheckBox.indeterminate) &&
                        _this.pdfViewer.pageOrganizerSettings.canRotate) && !organize_contextmenu_1.getImportedItems.call(_this, isCopyRotateDisabled));
                }
                else if (item.id === _this.pdfViewer.element.id + '_copy_page') {
                    enableToolbarItem.call(_this, item.id, ((_this.selectAllCheckBox.checked || _this.selectAllCheckBox.indeterminate)
                        && _this.pdfViewer.pageOrganizerSettings.canCopy && !organize_contextmenu_1.getCopiedItems.call(_this, isCopyDisabled) &&
                        !organize_contextmenu_1.getImportedItems.call(_this, isCopyRotateDisabled)));
                }
                else if (item.id === _this.pdfViewer.element.id + '_delete_selected') {
                    enableToolbarItem.call(_this, item.id, _this.selectAllCheckBox.indeterminate &&
                        _this.pdfViewer.pageOrganizerSettings.canDelete);
                }
                else if (item.id === _this.pdfViewer.element.id + '_import_pages') {
                    enableToolbarItem.call(_this, item.id, _this.pdfViewer.pageOrganizerSettings.canImport);
                }
                else if (item.id === _this.pdfViewer.element.id + '_extract_pages') {
                    enableToolbarItem.call(_this, item.id, _this.pdfViewer.pageOrganizerSettings.canExtractPages &&
                        _this.pdfViewerBase.clientSideRendering);
                }
            });
        }
    }
    exports.enableDisableToolbarItems = enableDisableToolbarItems;
    function enableToolbarItem(elementID, isEnable) {
        var element = document.getElementById(elementID);
        if (!ej2_base_1.isNullOrUndefined(element) && !ej2_base_1.isNullOrUndefined(element.parentElement)) {
            this.toolbar.enableItems(element.parentElement, isEnable);
            element.setAttribute('tabindex', isEnable ? '0' : '-1');
            element.setAttribute('data-tabindex', isEnable ? '0' : '-1');
        }
    }
    exports.enableToolbarItem = enableToolbarItem;
    function updateSelectAllCheckbox() {
        var totalCheckboxCount = this.tileAreaDiv.childElementCount;
        this.totalCheckedCount = this.tileAreaDiv.querySelectorAll('.e-pv-organize-node-selection-ring').length;
        if (this.selectAllCheckBox) {
            if (this.totalCheckedCount === 0) {
                this.selectAllCheckBox.indeterminate = false;
                this.selectAllCheckBox.checked = false;
            }
            else if (totalCheckboxCount === this.totalCheckedCount) {
                this.selectAllCheckBox.indeterminate = false;
                this.selectAllCheckBox.checked = true;
            }
            else {
                this.selectAllCheckBox.indeterminate = true;
            }
        }
    }
    exports.updateSelectAllCheckbox = updateSelectAllCheckbox;
    function onTooltipBeforeOpen(args) {
        if (!this.pdfViewer.toolbarSettings.showTooltip || args.target.disabled) {
            args.cancel = true;
        }
    }
    exports.onTooltipBeforeOpen = onTooltipBeforeOpen;
    function updateToolbarItemState(property) {
        if (!ej2_base_1.isNullOrUndefined(property)) {
            if (property === 'canImport') {
                if (this.pdfViewer.pageOrganizerSettings.canImport) {
                    createImportDocElement.call(this, this.pdfViewerBase.getElement('_toolbar_appearance'));
                    organize_event_handler_1.importDocWireEvent.call(this);
                }
                else {
                    organize_event_handler_1.importDocUnWireEvent.call(this);
                    createImportDocElement.call(this, this.pdfViewerBase.getElement('_toolbar_appearance'));
                }
            }
            enableDisableToolbarItems.call(this);
        }
        else {
            enableDisableToolbarItems.call(this);
        }
        tile_interaction_1.updateTileButtons.call(this);
    }
    exports.updateToolbarItemState = updateToolbarItemState;
});