all files / pdfviewer/toolbar/ formdesigner-toolbar.js

9.45% Statements 38/402
0% Branches 0/173
5% Functions 2/40
9.45% Lines 38/402
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 346 347 348 349 350 351 352 353 354 355 356 357 358 359 360 361 362 363 364 365 366 367 368 369 370 371 372 373 374 375 376 377 378 379 380 381 382 383 384 385 386 387 388 389 390 391 392 393 394 395 396 397 398 399 400 401 402 403 404 405 406 407 408 409 410 411 412 413 414 415 416 417 418 419 420 421 422 423 424 425 426 427 428 429 430 431 432 433 434 435 436 437 438 439 440 441 442 443 444 445 446 447 448 449 450 451 452 453 454 455 456 457 458 459 460 461 462 463 464 465 466 467 468 469 470 471 472 473 474 475 476 477 478 479 480 481 482 483 484 485 486 487 488 489 490 491 492 493 494 495 496 497 498 499 500 501 502 503 504 505 506 507 508 509 510 511 512 513 514 515 516 517 518 519 520 521 522 523 524 525 526 527 528 529 530 531 532 533 534 535 536 537 538 539 540 541 542 543 544 545 546 547 548 549 550 551 552 553 554 555 556 557 558 559 560 561 562 563 564 565 566 567 568 569 570 571 572 573 574 575 576 577 578 579 5801×   1× 1× 1×                             1×                                                             1×                                         1×                                                                                                                                             1×                                                                                                                                                               1×               1×     1×     1×       1×                                     1×             1×                             1×                                                                                                                                                                 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-splitbuttons"], function (require, exports, ej2_base_1, ej2_navigations_1, ej2_splitbuttons_1) {
    "use strict";
    Object.defineProperty(exports, "__esModule", { value: true });
    var FormDesignerToolbar = (function () {
        function FormDesignerToolbar(viewer, viewerBase, toolbar) {
            this.isToolbarHidden = false;
            this.isTextboxBtnVisible = true;
            this.isPasswordBtnVisible = true;
            this.isCheckboxBtnVisible = true;
            this.isRadiobuttonBtnVisible = true;
            this.isDropdownBtnVisible = true;
            this.isListboxBtnVisible = true;
            this.isSignatureBtnVisible = true;
            this.isDeleteBtnVisible = true;
            this.toolbarBorderHeight = 1;
            this.pdfViewer = viewer;
            this.pdfViewerBase = viewerBase;
            this.primaryToolbar = toolbar;
        }
        FormDesignerToolbar.prototype.initializeFormDesignerToolbar = function () {
            this.toolbarElement = ej2_base_1.createElement('div', { id: this.pdfViewer.element.id + '_formdesigner_toolbar', className: 'e-pv-formdesigner-toolbar' });
            if (this.pdfViewer.isInsertBefore) {
                var toolbarContainer = void 0;
                toolbarContainer = document.getElementById(this.pdfViewer.element.id + '_redaction_toolbar');
                if (ej2_base_1.isNullOrUndefined(toolbarContainer)) {
                    toolbarContainer = document.getElementById(this.pdfViewer.element.id + '_annotation_toolbar');
                    if (ej2_base_1.isNullOrUndefined(toolbarContainer)) {
                        toolbarContainer = document.getElementById(this.pdfViewer.element.id + 'toolbarContainer');
                    }
                }
                if (toolbarContainer && toolbarContainer.parentNode === this.pdfViewerBase.viewerMainContainer) {
                    this.pdfViewerBase.viewerMainContainer.insertBefore(this.toolbarElement, toolbarContainer.nextSibling);
                }
            }
            else {
                this.pdfViewerBase.viewerMainContainer.appendChild(this.toolbarElement);
            }
            this.toolbar = new ej2_navigations_1.Toolbar({
                width: '', height: '', overflowMode: 'Popup',
                items: this.createToolbarItems(), clicked: this.onToolbarClicked.bind(this)
            });
            if (this.pdfViewer.enableRtl) {
                this.toolbar.enableRtl = true;
            }
            this.toolbar.appendTo(this.toolbarElement);
            this.afterToolbarCreation();
            this.createSignContainer();
            this.applyFormDesignerToolbarSettings();
            this.showFormDesignerToolbar(null, true);
        };
        FormDesignerToolbar.prototype.resetFormDesignerToolbar = function () {
            if (this.pdfViewer.isFormDesignerToolbarVisible && this.pdfViewer.enableFormDesignerToolbar) {
                this.pdfViewer.designerMode = true;
                this.pdfViewer.formDesignerModule.setMode('designer');
                this.adjustViewer(false);
                this.toolbarElement.style.display = '';
                this.isToolbarHidden = false;
                this.adjustViewer(true);
                this.primaryToolbar.selectItem(this.primaryToolbar.formDesignerItem);
                this.pdfViewer.isFormDesignerToolbarVisible = true;
            }
            else {
                this.toolbarElement.style.display = 'none';
                this.isToolbarHidden = true;
                if (!this.pdfViewer.isAnnotationToolbarVisible && !this.pdfViewer.isRedactionToolbarVisible) {
                    this.adjustViewer(true);
                }
                this.primaryToolbar.deSelectItem(this.primaryToolbar.formDesignerItem);
                this.pdfViewer.isFormDesignerToolbarVisible = false;
            }
        };
        FormDesignerToolbar.prototype.showFormDesignerToolbar = function (element, isInitialLoading) {
            if (!this.isToolbarHidden) {
                if (element) {
                    this.primaryToolbar.deSelectItem(element);
                }
                else {
                    if (this.pdfViewer.enableToolbar) {
                        this.primaryToolbar.deSelectItem(this.primaryToolbar.formDesignerItem);
                    }
                }
                this.adjustViewer(false);
                if (this.pdfViewer.formFieldCollection) {
                    var filteredFields = this.pdfViewer.formFieldCollection.filter(function (field) {
                        return field.formFieldAnnotationType === 'Textbox' && field.isMultiline;
                    });
                    filteredFields.forEach(function (field) {
                        var resize = document.getElementById(field.id);
                        if (resize) {
                            resize.style.pointerEvents = 'none';
                            resize.style.resize = 'none';
                        }
                    });
                }
                this.toolbarElement.style.display = 'none';
                if (!ej2_base_1.isNullOrUndefined(this.pdfViewer.formDesignerModule)) {
                    this.pdfViewer.formDesignerModule.setMode('edit');
                }
                if (!isInitialLoading) {
                    this.pdfViewer.designerMode = false;
                    this.pdfViewer.isFormDesignerToolbarVisible = false;
                }
            }
            else {
                var toolBarInitialStatus = this.toolbarElement.style.display;
                this.toolbarElement.style.display = 'block';
                this.pdfViewer.designerMode = true;
                if (!ej2_base_1.isNullOrUndefined(this.pdfViewer.formDesignerModule)) {
                    this.pdfViewer.formDesignerModule.setMode('edit');
                }
                if (!isInitialLoading) {
                    this.pdfViewer.isFormDesignerToolbarVisible = true;
                }
                if (element) {
                    this.primaryToolbar.selectItem(element);
                }
                else {
                    if (this.pdfViewer.enableToolbar) {
                        this.primaryToolbar.selectItem(this.primaryToolbar.formDesignerItem);
                    }
                }
                if (toolBarInitialStatus === 'none') {
                    this.adjustViewer(true);
                }
                if (this.pdfViewer.formFieldCollection) {
                    var filteredFields = this.pdfViewer.formFieldCollection.filter(function (field) {
                        return field.formFieldAnnotationType === 'Textbox' && field.isMultiline;
                    });
                    filteredFields.forEach(function (field) {
                        var resize = document.getElementById(field.id);
                        if (resize) {
                            resize.style.pointerEvents = 'auto';
                            resize.style.resize = 'auto';
                        }
                    });
                }
            }
            if (this.pdfViewer.magnification && this.pdfViewer.magnification.fitType === 'fitToPage') {
                this.pdfViewer.magnification.fitToPage();
            }
            this.isToolbarHidden = !this.isToolbarHidden;
        };
        FormDesignerToolbar.prototype.adjustViewer = function (isAdjust) {
            var splitterElement;
            var toolbarContainer;
            var formDesignerToolbarHeight;
            if (ej2_base_1.isBlazor()) {
                splitterElement = this.pdfViewer.element.querySelector('.e-pv-sidebar-toolbar-splitter');
                toolbarContainer = this.pdfViewer.element.querySelector('.e-pv-toolbar');
                var formDesignerToolbarContainer = this.pdfViewer.element.querySelector('.e-pv-formDesigner-toolbar');
                formDesignerToolbarHeight = this.getToolbarHeight(formDesignerToolbarContainer);
            }
            else {
                splitterElement = this.pdfViewerBase.getElement('_sideBarToolbarSplitter');
                toolbarContainer = this.pdfViewerBase.getElement('_toolbarContainer');
                formDesignerToolbarHeight = this.getToolbarHeight(this.toolbarElement);
            }
            var toolbarHeight = this.getToolbarHeight(toolbarContainer);
            var sideBarToolbar = this.pdfViewerBase.navigationPane.sideBarToolbar;
            var sideBarContentContainer = this.pdfViewerBase.navigationPane.sideBarContentContainer;
            var commentsContainer = this.pdfViewerBase.navigationPane.commentPanelContainer;
            var commentPanelResizer = this.pdfViewerBase.navigationPane.commentPanelResizer;
            var newToolbarHeight = '';
            if (isAdjust) {
                if (this.pdfViewer.enableToolbar) {
                    sideBarToolbar.style.top = (toolbarHeight + formDesignerToolbarHeight) + 'px';
                    sideBarContentContainer.style.top = (toolbarHeight + formDesignerToolbarHeight) + 'px';
                    splitterElement.style.top = (toolbarHeight + formDesignerToolbarHeight) + 'px';
                    commentsContainer.style.top = (toolbarHeight + formDesignerToolbarHeight) + 'px';
                    commentPanelResizer.style.top = (toolbarHeight + formDesignerToolbarHeight) + 'px';
                }
                else {
                    sideBarToolbar.style.top = (formDesignerToolbarHeight) + 'px';
                    sideBarContentContainer.style.top = (formDesignerToolbarHeight) + 'px';
                    splitterElement.style.top = (formDesignerToolbarHeight) + 'px';
                    commentsContainer.style.top = (formDesignerToolbarHeight) + 'px';
                    commentPanelResizer.style.top = (toolbarHeight + formDesignerToolbarHeight) + 'px';
                }
                if (!this.pdfViewer.enableToolbar) {
                    toolbarHeight = 0;
                }
                this.pdfViewerBase.viewerContainer.style.height = this.updateViewerHeight(this.getElementHeight(this.pdfViewerBase.viewerContainer), (formDesignerToolbarHeight + toolbarHeight)) + 'px';
                newToolbarHeight = this.getNavigationToolbarHeight(formDesignerToolbarHeight + toolbarHeight);
                sideBarToolbar.style.height = newToolbarHeight;
                splitterElement.style.height = newToolbarHeight;
                commentPanelResizer.style.height = newToolbarHeight;
                sideBarContentContainer.style.height = newToolbarHeight;
            }
            else {
                if (this.pdfViewer.enableToolbar) {
                    sideBarToolbar.style.top = toolbarHeight + 'px';
                    sideBarContentContainer.style.top = toolbarHeight + 'px';
                    splitterElement.style.top = toolbarHeight + 'px';
                    commentsContainer.style.top = toolbarHeight + 'px';
                    commentPanelResizer.style.top = toolbarHeight + 'px';
                }
                else {
                    sideBarToolbar.style.top = 1 + 'px';
                    sideBarToolbar.style.height = '100%';
                    sideBarContentContainer.style.top = 1 + 'px';
                    sideBarContentContainer.style.height = '100%';
                    splitterElement.style.top = 1 + 'px';
                    splitterElement.style.height = '100%';
                    commentsContainer.style.top = 1 + 'px';
                    commentsContainer.style.height = '100%';
                    commentPanelResizer.style.top = 1 + 'px';
                    commentPanelResizer.style.height = '100%';
                }
                if (!this.pdfViewer.enableToolbar) {
                    toolbarHeight = 0;
                }
                this.pdfViewerBase.viewerContainer.style.height = this.updateViewerHeight(this.getElementHeight(this.pdfViewerBase.viewerContainer), formDesignerToolbarHeight) + 'px';
                newToolbarHeight = this.getNavigationToolbarHeight(toolbarHeight);
                sideBarToolbar.style.height = newToolbarHeight;
                splitterElement.style.height = newToolbarHeight;
                commentPanelResizer.style.height = newToolbarHeight;
                sideBarContentContainer.style.height = newToolbarHeight;
                if (this.pdfViewerBase.viewerContainer.style.height === '0px') {
                    this.pdfViewerBase.viewerContainer.style.height = (parseInt(this.pdfViewer.element.style.height, 10) - parseInt(sideBarToolbar.style.top, 10)) + 'px';
                }
            }
        };
        FormDesignerToolbar.prototype.getElementHeight = function (element) {
            try {
                return element.getBoundingClientRect().height;
            }
            catch (error) {
                return 0;
            }
        };
        FormDesignerToolbar.prototype.updateViewerHeight = function (viewerHeight, toolbarHeight) {
            return this.getElementHeight(this.pdfViewer.element) - toolbarHeight;
        };
        FormDesignerToolbar.prototype.resetViewerHeight = function (viewerHeight, toolbarHeight) {
            return viewerHeight + toolbarHeight;
        };
        FormDesignerToolbar.prototype.getNavigationToolbarHeight = function (toolbarHeight) {
            var height = this.pdfViewer.element.getBoundingClientRect().height;
            return (height !== 0) ? height - toolbarHeight + 'px' : '';
        };
        FormDesignerToolbar.prototype.updateContentContainerHeight = function (isAdjust, isBlazor) {
            var formDesignerToolbarHeight;
            if (isBlazor) {
                var formDesignerToolbarContainer = this.pdfViewer.element.querySelector('.e-pv-formDesigner-toolbar');
                formDesignerToolbarHeight = this.getToolbarHeight(formDesignerToolbarContainer);
            }
            else {
                formDesignerToolbarHeight = this.getToolbarHeight(this.toolbarElement);
            }
            var sideBarClientRect = this.pdfViewerBase.navigationPane.sideBarContentContainer.getBoundingClientRect();
            if (sideBarClientRect.height !== 0) {
                if (isAdjust) {
                    this.pdfViewerBase.navigationPane.sideBarContentContainer.style.height = sideBarClientRect.height - formDesignerToolbarHeight + 'px';
                }
                else {
                    this.pdfViewerBase.navigationPane.sideBarContentContainer.style.height = sideBarClientRect.height + formDesignerToolbarHeight + 'px';
                }
            }
        };
        FormDesignerToolbar.prototype.getToolbarHeight = function (element) {
            var toolbarHeight = element.getBoundingClientRect().height;
            if (toolbarHeight === 0 && element === this.pdfViewerBase.getElement('_toolbarContainer')) {
                toolbarHeight = parseFloat(window.getComputedStyle(element)['height']) + this.toolbarBorderHeight;
            }
            return toolbarHeight;
        };
        FormDesignerToolbar.prototype.createToolbarItems = function () {
            var signTemplate = this.getTemplate('button', '_formfield_signature', 'e-pv-annotation-handwritten-container');
            var items = [];
            items.push({ prefixIcon: 'e-pv-textbox-icon e-pv-icon', className: 'e-pv-annotation-shapes-container', id: this.pdfViewer.element.id + '_formdesigner_textbox', align: 'Left', attr: { 'tabindex': 0, 'data-tabindex': 0 } });
            items.push({ prefixIcon: 'e-pv-password-icon e-pv-icon', className: 'e-pv-annotation-shapes-container', id: this.pdfViewer.element.id + '_formdesigner_passwordfield', align: 'Left', attr: { 'tabindex': 0, 'data-tabindex': 0 } });
            items.push({ prefixIcon: 'e-pv-checkbox-icon e-pv-icon', className: 'e-pv-annotation-shapes-container', id: this.pdfViewer.element.id + '_formdesigner_checkbox', align: 'Left', attr: { 'tabindex': 0, 'data-tabindex': 0 } });
            items.push({ prefixIcon: 'e-pv-radiobutton-icon e-pv-icon', className: 'e-pv-annotation-shapes-container', id: this.pdfViewer.element.id + '_formdesigner_radiobutton', align: 'Left', attr: { 'tabindex': 0, 'data-tabindex': 0 } });
            items.push({ prefixIcon: 'e-pv-dropdown-icon e-pv-icon', className: 'e-pv-annotation-shapes-container', id: this.pdfViewer.element.id + '_formdesigner_dropdown', align: 'Left', attr: { 'tabindex': 0, 'data-tabindex': 0 } });
            items.push({ prefixIcon: 'e-pv-listbox-icon e-pv-icon', className: 'e-pv-annotation-shapes-container', id: this.pdfViewer.element.id + '_formdesigner_listbox', align: 'Left', attr: { 'tabindex': 0, 'data-tabindex': 0 } });
            items.push({ template: signTemplate, align: 'Left', attr: { 'tabindex': 0, 'data-tabindex': 0 } });
            items.push({ type: 'Separator', align: 'Left', attr: { 'tabindex': 0, 'data-tabindex': 0 } });
            items.push({ prefixIcon: 'e-pv-annotation-delete-icon e-pv-icon', className: 'e-pv-annotation-delete-container', id: this.pdfViewer.element.id + '_formdesigner_delete', align: 'Left', attr: { 'tabindex': 0, 'data-tabindex': 0 } });
            items.push({ prefixIcon: 'e-pv-annotation-tools-close-icon e-pv-icon', className: 'e-pv-annotation-tools-close-container', id: this.pdfViewer.element.id + '_formdesigner_close', align: 'Right', attr: { 'tabindex': 0, 'data-tabindex': 0 } });
            return items;
        };
        FormDesignerToolbar.prototype.createSignContainer = function () {
            var _this = this;
            this.handWrittenSignatureItem = this.pdfViewerBase.getElement('_formfield_signature');
            this.handWrittenSignatureItem.setAttribute('tabindex', '0');
            this.handWrittenSignatureItem.setAttribute('data-tabindex', '0');
            this.primaryToolbar.createTooltip(this.pdfViewerBase.getElement('_formfield_signature'), this.pdfViewer.localeObj.getConstant('HandwrittenSignatureDialogHeaderText'));
            var items = [];
            items = [
                {
                    text: 'ADD SIGNATURE'
                },
                {
                    separator: true
                },
                {
                    text: 'ADD INITIAL'
                }
            ];
            var saveOptions = {
                items: items,
                iconCss: 'e-pv-handwritten-icon e-pv-icon',
                cssClass: 'e-pv-handwritten-popup',
                beforeItemRender: function (args) {
                    _this.pdfViewer.clearSelection(_this.pdfViewerBase.currentPageNumber - 1);
                    if (args.element && args.element.className.indexOf('e-separator') !== -1) {
                        args.element.style.margin = '8px 0';
                        args.element.setAttribute('role', 'menuitem');
                        args.element.setAttribute('aria-label', 'separator');
                    }
                    if (args.item.text === 'ADD SIGNATURE') {
                        args.element.innerHTML = '';
                        var addInitialSpan = ej2_base_1.createElement('button');
                        addInitialSpan.classList.add('e-control', 'e-btn', 'e-lib', 'e-outline', 'e-primary');
                        addInitialSpan.textContent = _this.pdfViewer.localeObj.getConstant('SignatureFieldDialogHeaderText');
                        if (_this.pdfViewer.locale === 'en-US') {
                            addInitialSpan.style.width = '130px';
                        }
                        else {
                            addInitialSpan.style.width = 'auto';
                        }
                        addInitialSpan.style.height = '36px';
                        addInitialSpan.addEventListener('click', _this.clickSignature.bind(_this));
                        args.element.appendChild(addInitialSpan);
                        args.element.addEventListener('mouseover', _this.hoverInitialBtn.bind(_this));
                        args.element.style.width = '206px';
                        args.element.style.display = 'flex';
                        args.element.style.flexDirection = 'column';
                        args.element.style.height = 'auto';
                        args.element.style.alignItems = 'center';
                        args.element.setAttribute('role', 'menuitem');
                    }
                    if (args.item.text === 'ADD INITIAL') {
                        args.element.innerHTML = '';
                        var addInitialSpan = ej2_base_1.createElement('button');
                        addInitialSpan.classList.add('e-control', 'e-btn', 'e-lib', 'e-outline', 'e-primary');
                        addInitialSpan.textContent = _this.pdfViewer.localeObj.getConstant('InitialFieldDialogHeaderText');
                        if (_this.pdfViewer.locale === 'en-US') {
                            addInitialSpan.style.width = '130px';
                        }
                        else {
                            addInitialSpan.style.width = 'auto';
                        }
                        addInitialSpan.style.height = '36px';
                        addInitialSpan.addEventListener('click', _this.clickInitial.bind(_this));
                        args.element.appendChild(addInitialSpan);
                        args.element.addEventListener('mouseover', _this.hoverInitialBtn.bind(_this));
                        args.element.style.width = '206px';
                        args.element.style.display = 'flex';
                        args.element.style.flexDirection = 'column';
                        args.element.style.height = 'auto';
                        args.element.style.alignItems = 'center';
                        args.element.setAttribute('role', 'menuitem');
                    }
                }
            };
            var drpDownBtn = new ej2_splitbuttons_1.DropDownButton(saveOptions);
            if (this.pdfViewer.enableRtl) {
                drpDownBtn.enableRtl = this.pdfViewer.enableRtl;
            }
            drpDownBtn.appendTo(this.handWrittenSignatureItem);
        };
        FormDesignerToolbar.prototype.hoverInitialBtn = function (event) {
            var eventTarget = event.target;
            var currentFieldID = ej2_base_1.isNullOrUndefined(event.path) ? event.composedPath()[0].id : event.path[0].id;
            if (currentFieldID !== 'sign_' + currentFieldID.split('_')[1] && currentFieldID !== 'delete_' + currentFieldID.split('_')[1]) {
                var liElement = document.getElementById(eventTarget.id);
                if (ej2_base_1.isNullOrUndefined(liElement)) {
                    liElement = document.getElementById(eventTarget.parentElement.id);
                }
                if (liElement != null && (eventTarget.id !== 'sign_' + eventTarget.id.split('_')[1] || eventTarget.id !== 'sign_border_' + eventTarget.id.split('_')[2])) {
                    liElement.style.background = 'transparent';
                    liElement.style.cursor = 'default';
                }
                else if (liElement.parentElement != null && (eventTarget.id !== 'sign_' + eventTarget.id.split('_')[1] || eventTarget.id !== 'sign_border_' + eventTarget.id.split('_')[2])) {
                    liElement.parentElement.style.background = 'transparent';
                    liElement.parentElement.style.cursor = 'default';
                }
            }
        };
        FormDesignerToolbar.prototype.getTemplate = function (elementName, id, className) {
            var element = ej2_base_1.createElement(elementName, { id: this.pdfViewer.element.id + id });
            if (className) {
                element.className = className;
            }
            return element.outerHTML;
        };
        FormDesignerToolbar.prototype.onToolbarClicked = function (args) {
            if (args && args.item && this.pdfViewer.formDesignerModule) {
                if (args.item.id.indexOf('textbox') !== -1) {
                    this.pdfViewer.formDesignerModule.setFormFieldMode('Textbox');
                }
                else if (args.item.id.indexOf('passwordfield') !== -1) {
                    this.pdfViewer.formDesignerModule.setFormFieldMode('Password');
                }
                else if (args.item.id.indexOf('checkbox') !== -1) {
                    this.pdfViewer.formDesignerModule.setFormFieldMode('CheckBox');
                }
                else if (args.item.id.indexOf('radiobutton') !== -1) {
                    this.pdfViewer.formDesignerModule.setFormFieldMode('RadioButton');
                }
                else if (args.item.id.indexOf('dropdown') !== -1) {
                    this.pdfViewer.formDesignerModule.setFormFieldMode('DropDown');
                }
                else if (args.item.id.indexOf('listbox') !== -1) {
                    this.pdfViewer.formDesignerModule.setFormFieldMode('ListBox');
                }
                else if (args.item.id.indexOf('signature') !== -1) {
                    this.pdfViewer.formDesignerModule.setFormFieldMode('SignatureField');
                }
                else if (args.item.id.indexOf('close') !== -1) {
                    this.pdfViewer.toolbarModule.formDesignerToolbarModule.
                        showFormDesignerToolbar(this.pdfViewer.toolbarModule.formDesignerItem);
                }
                else if (args.item.id.indexOf('delete') !== -1) {
                    this.pdfViewer.formDesignerModule.deleteFormField(this.pdfViewer.selectedItems.formFields[0]);
                    this.showHideDeleteIcon(false);
                }
                if (this.pdfViewer.selectedItems.formFields.length > 0) {
                    this.pdfViewer.clearSelection(this.pdfViewer.selectedItems.formFields[0].pageIndex);
                }
            }
        };
        FormDesignerToolbar.prototype.clickSignature = function (args) {
            this.pdfViewer.formDesignerModule.setFormFieldMode('SignatureField');
        };
        FormDesignerToolbar.prototype.clickInitial = function (args) {
            this.pdfViewer.isInitialFieldToolbarSelection = true;
            this.pdfViewer.formDesignerModule.setFormFieldMode('InitialField');
            this.pdfViewer.isInitialFieldToolbarSelection = false;
        };
        FormDesignerToolbar.prototype.afterToolbarCreation = function () {
            this.textboxItem = this.primaryToolbar.addClassToolbarItem('_formdesigner_textbox', 'e-pv-formdesigner-textbox', this.pdfViewer.localeObj.getConstant('Textbox'));
            this.textboxItem.setAttribute('tabindex', '0');
            this.textboxItem.setAttribute('data-tabindex', '0');
            this.passwordItem = this.primaryToolbar.addClassToolbarItem('_formdesigner_passwordfield', 'e-pv-formdesigner-passwordfield', this.pdfViewer.localeObj.getConstant('Password'));
            this.passwordItem.setAttribute('tabindex', '0');
            this.passwordItem.setAttribute('data-tabindex', '0');
            this.checkboxItem = this.primaryToolbar.addClassToolbarItem('_formdesigner_checkbox', 'e-pv-formdesigner-checkbox', this.pdfViewer.localeObj.getConstant('Check Box'));
            this.checkboxItem.setAttribute('tabindex', '0');
            this.checkboxItem.setAttribute('data-tabindex', '0');
            this.radioButtonItem = this.primaryToolbar.addClassToolbarItem('_formdesigner_radiobutton', 'e-pv-formdesigner-radiobutton', this.pdfViewer.localeObj.getConstant('Radio Button'));
            this.radioButtonItem.setAttribute('tabindex', '0');
            this.radioButtonItem.setAttribute('data-tabindex', '0');
            this.dropdownItem = this.primaryToolbar.addClassToolbarItem('_formdesigner_dropdown', 'e-pv-formdesigner-dropdown', this.pdfViewer.localeObj.getConstant('Dropdown'));
            this.dropdownItem.setAttribute('tabindex', '0');
            this.dropdownItem.setAttribute('data-tabindex', '0');
            this.listboxItem = this.primaryToolbar.addClassToolbarItem('_formdesigner_listbox', 'e-pv-formdesigner-listbox', this.pdfViewer.localeObj.getConstant('List Box'));
            this.listboxItem.setAttribute('tabindex', '0');
            this.listboxItem.setAttribute('data-tabindex', '0');
            this.deleteItem = this.primaryToolbar.addClassToolbarItem('_formdesigner_delete', 'e-pv-formdesigner-delete', this.pdfViewer.localeObj.getConstant('Delete FormField'));
            this.closeItem = this.primaryToolbar.addClassToolbarItem('_formdesigner_close', 'e-pv-annotation-tools-close', null);
            this.closeItem.setAttribute('tabindex', '0');
            this.closeItem.setAttribute('data-tabindex', '0');
            this.showHideDeleteIcon(false);
        };
        FormDesignerToolbar.prototype.showHideDeleteIcon = function (isEnable) {
            if (this.toolbar) {
                this.toolbar.enableItems(this.deleteItem.parentElement, isEnable);
                this.deleteItem.setAttribute('tabindex', isEnable ? '0' : '-1');
                this.deleteItem.setAttribute('data-tabindex', isEnable ? '0' : '-1');
            }
        };
        FormDesignerToolbar.prototype.applyFormDesignerToolbarSettings = function () {
            if (this.pdfViewer.toolbarSettings.formDesignerToolbarItems) {
                if (this.pdfViewer.toolbarSettings.formDesignerToolbarItems.indexOf('TextboxTool') !== -1) {
                    this.showTextboxTool(true);
                }
                else {
                    this.showTextboxTool(false);
                }
                if (this.pdfViewer.toolbarSettings.formDesignerToolbarItems.indexOf('PasswordTool') !== -1) {
                    this.showPasswordTool(true);
                }
                else {
                    this.showPasswordTool(false);
                }
                if (this.pdfViewer.toolbarSettings.formDesignerToolbarItems.indexOf('CheckBoxTool') !== -1) {
                    this.showCheckboxTool(true);
                }
                else {
                    this.showCheckboxTool(false);
                }
                if (this.pdfViewer.toolbarSettings.formDesignerToolbarItems.indexOf('RadioButtonTool') !== -1) {
                    this.showRadioButtonTool(true);
                }
                else {
                    this.showRadioButtonTool(false);
                }
                if (this.pdfViewer.toolbarSettings.formDesignerToolbarItems.indexOf('DropdownTool') !== -1) {
                    this.showDropdownTool(true);
                }
                else {
                    this.showDropdownTool(false);
                }
                if (this.pdfViewer.toolbarSettings.formDesignerToolbarItems.indexOf('ListboxTool') !== -1) {
                    this.showListboxTool(true);
                }
                else {
                    this.showListboxTool(false);
                }
                if (this.pdfViewer.toolbarSettings.formDesignerToolbarItems.indexOf('DrawSignatureTool') !== -1) {
                    this.showDrawSignatureTool(true);
                }
                else {
                    this.showDrawSignatureTool(false);
                }
                if (this.pdfViewer.toolbarSettings.formDesignerToolbarItems.indexOf('DeleteTool') !== -1) {
                    this.showDeleteTool(true);
                }
                else {
                    this.showDeleteTool(false);
                }
                this.showSeparator();
            }
        };
        FormDesignerToolbar.prototype.showTextboxTool = function (isShow) {
            this.isTextboxBtnVisible = isShow;
            this.applyHideToToolbar(isShow, 0, 0);
        };
        FormDesignerToolbar.prototype.showPasswordTool = function (isShow) {
            this.isPasswordBtnVisible = isShow;
            this.applyHideToToolbar(isShow, 1, 1);
        };
        FormDesignerToolbar.prototype.showCheckboxTool = function (isShow) {
            this.isCheckboxBtnVisible = isShow;
            this.applyHideToToolbar(isShow, 2, 2);
        };
        FormDesignerToolbar.prototype.showRadioButtonTool = function (isShow) {
            this.isRadiobuttonBtnVisible = isShow;
            this.applyHideToToolbar(isShow, 3, 3);
        };
        FormDesignerToolbar.prototype.showDropdownTool = function (isShow) {
            this.isDropdownBtnVisible = isShow;
            this.applyHideToToolbar(isShow, 4, 4);
        };
        FormDesignerToolbar.prototype.showListboxTool = function (isShow) {
            this.isListboxBtnVisible = isShow;
            this.applyHideToToolbar(isShow, 5, 5);
        };
        FormDesignerToolbar.prototype.showDrawSignatureTool = function (isShow) {
            this.isSignatureBtnVisible = isShow;
            this.applyHideToToolbar(isShow, 6, 6);
        };
        FormDesignerToolbar.prototype.showDeleteTool = function (isShow) {
            this.isDeleteBtnVisible = isShow;
            this.applyHideToToolbar(isShow, 8, 8);
        };
        FormDesignerToolbar.prototype.showSeparator = function () {
            if (!this.isSignatureBtnVisible && !this.isDeleteBtnVisible) {
                this.applyHideToToolbar(false, 7, 7);
            }
        };
        FormDesignerToolbar.prototype.applyHideToToolbar = function (show, startIndex, endIndex) {
            var isHide = !show;
            for (var index = startIndex; index <= endIndex; index++) {
                this.toolbar.hideItem(index, isHide);
            }
        };
        FormDesignerToolbar.prototype.destroy = function () {
            var componentElement = [this.textboxItem, this.passwordItem, this.checkboxItem, this.radioButtonItem,
                this.listboxItem, this.dropdownItem, this.handWrittenSignatureItem, this.deleteItem];
            for (var i = 0; i < componentElement.length; i++) {
                if (componentElement[parseInt(i.toString(), 10)]) {
                    this.destroyDependentComponent(componentElement[parseInt(i.toString(), 10)]);
                }
            }
        };
        FormDesignerToolbar.prototype.destroyDependentComponent = function (component) {
            if (component.ej2_instances) {
                for (var i = component.ej2_instances.length - 1; i >= 0; i--) {
                    component.ej2_instances[parseInt(i.toString(), 10)].destroy();
                }
            }
        };
        return FormDesignerToolbar;
    }());
    exports.FormDesignerToolbar = FormDesignerToolbar;
});