123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489 |
- var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
- function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
- return new (P || (P = Promise))(function (resolve, reject) {
- function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
- function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
- function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
- step((generator = generator.apply(thisArg, _arguments || [])).next());
- });
- };
- var Unibase;
- (function (Unibase) {
- let Apps;
- (function (Apps) {
- let Collaboration;
- (function (Collaboration) {
- let Components;
- (function (Components) {
- let Sheets;
- (function (Sheets) {
- class Dialogue {
- constructor() {
- this.hederText = {};
- this.hasHeader = false;
- }
- init(base) {
- this.base = base;
- this.base.mouseDownHandlers.push(this.mouseDown.bind(this));
- this.util = Unibase.Apps.Collaboration.Components.Common.Util.Instance();
- }
- mouseDown(e) {
- if (this.rdDailouge) {
- let cbox = ej.base.closest(e.target, '.e-checkbox-wrapper');
- if (cbox) {
- let tickicon = cbox.firstElementChild;
- tickicon.classList.contains('e-check') ? tickicon.classList.remove('e-check') : tickicon.classList.add('e-check');
- if (cbox.classList.contains('rd-selectAll')) {
- var cboxes = this.rdDailouge.element.querySelector('#rd-checkboxes-container').querySelectorAll('.e-frame');
- if (cbox.firstElementChild.classList.contains('e-check')) {
- cbox.firstElementChild.classList.remove('e-stop');
- cboxes.forEach((e) => { e.classList.add('e-check'); });
- document.getElementsByClassName("rd-btn")[0].classList.remove("e-disabled");
- document.getElementsByClassName("rd-btn")[0].removeAttribute("disabled");
- }
- else {
- cbox.firstElementChild.classList.add('e-stop');
- cboxes.forEach((e) => { e.classList.remove('e-check'); });
- document.getElementsByClassName("rd-btn")[0].classList.add("e-disabled");
- document.getElementsByClassName("rd-btn")[0].setAttribute("disabled", "true");
- }
- }
- if (cbox.classList.contains('rd-colCheckbox')) {
- var cboxes = this.rdDailouge.element.querySelector('#rd-checkboxes').querySelectorAll('.e-frame');
- var eCheckCount = this.rdDailouge.element.querySelector('#rd-checkboxes').querySelectorAll('.e-check').length;
- eCheckCount === 0 ? (document.getElementsByClassName("rd-btn")[0].classList.add("e-disabled"),
- document.getElementsByClassName("rd-btn")[0].setAttribute("disabled", "true")) :
- (document.getElementsByClassName("rd-btn")[0].removeAttribute("disabled"),
- document.getElementsByClassName("rd-btn")[0].classList.remove("e-disabled"));
- eCheckCount < cboxes.length ?
- (document.getElementsByClassName("rd-selectAll")[0].firstElementChild.classList.remove("e-check"),
- document.getElementsByClassName("rd-selectAll")[0].firstElementChild.classList.add("e-stop")) :
- (document.getElementsByClassName("rd-selectAll")[0].firstElementChild.classList.add("e-check"),
- document.getElementsByClassName("rd-selectAll")[0].firstElementChild.classList.remove("e-stop"));
- }
- }
- }
- }
- removeDuplicate(range, header, colSelected) {
- this.obj = {};
- let sheet = this.base.ssObj.biz.getActiveSheet();
- this.rngIndexes = this.base.getIndexesFromAddress(range);
- this.hasHeader = header;
- (header) ? this.rowStartCell = this.rngIndexes[0] + 1 : this.rowStartCell = this.rngIndexes[0];
- this.columnStartCell = this.rngIndexes[1];
- this.rowEndCell = this.rngIndexes[2];
- this.columnEndCell = this.rngIndexes[3];
- this.selected = colSelected;
- for (let i = this.rowStartCell; i <= this.rowEndCell; i++) {
- let wholeRow = [];
- for (let j = this.columnStartCell; j <= this.columnEndCell; j++) {
- if (this.selected[j] == undefined) {
- var isColChecked = document.querySelector("#rd-checkboxes").querySelector('div[value="' + j + '"]').firstElementChild.classList.contains('e-check');
- this.selected[j] = isColChecked;
- }
- if (!this.selected[j]) {
- continue;
- }
- let cellInfo = ej.spreadsheet.getCell(i, j, sheet);
- if (!cellInfo) {
- wholeRow.push(null);
- }
- else {
- wholeRow.push(this.util.getCellValues(cellInfo));
- }
- if (cellInfo) {
- this.base.ssObj.biz.setCell(i, j, sheet, {});
- delete sheet.rows[i].cells[j];
- }
- }
- if (wholeRow) {
- this.addToObj(JSON.stringify(wholeRow));
- }
- }
- var k = 0;
- var cellValue;
- var keys = Object.keys(this.obj);
- for (let i = this.rowStartCell; i <= this.rowEndCell; i++) {
- var row;
- (keys[k]) ? row = JSON.parse(keys[k]) : row = undefined;
- var l = 0;
- for (let j = this.columnStartCell; j <= this.columnEndCell; j++) {
- if (!this.selected[j]) {
- continue;
- }
- (row) ? cellValue = row[l] : cellValue = undefined;
- if (cellValue) {
- if (!(cellValue.value === undefined)) {
- this.base.ssObj.biz.setCell(i, j, sheet, cellValue);
- }
- }
- l++;
- }
- k++;
- }
- var duplicateCount = this.selectedRow - Object.keys(this.obj).length;
- Unibase.Apps.Collaboration.Components.Common.Download.Instance().ssAutoSave({ action: 'removeDuplicates' }, this.base, true);
- if (this.base.getSheetIndex() >= 0) {
- if (!this.hasHeader) {
- this.base.ssObj.selectRange(this.base.generateHeaderText(this.columnStartCell + 1) + (this.rowStartCell + 1) + ":" + this.base.generateHeaderText(this.columnEndCell + 1) + (this.rowEndCell - duplicateCount + 1));
- }
- else {
- this.base.ssObj.selectRange(this.base.generateHeaderText(this.columnStartCell + 1) + (this.rowStartCell) + ":" + this.base.generateHeaderText(this.columnEndCell + 1) + (this.rowEndCell - duplicateCount + 2));
- }
- }
- this.rdDailouge.destroy();
- }
- RDshowUniqueDailog() {
- var keys = Object.keys(this.obj);
- var duplicateCount;
- this.hasHeader ? duplicateCount = this.selectedRow - keys.length - 1 : duplicateCount = this.selectedRow - keys.length;
- if (duplicateCount == 0) {
- var duplicateValuesText = "No duplicate rows were found.";
- }
- else if (duplicateCount == 1) {
- var duplicateValuesText = "1 duplicate row were found and removed.";
- }
- else {
- var duplicateValuesText = `${duplicateCount} duplicate rows were found and removed.`;
- }
- if (keys.length == 1) {
- var uniqueValuesText = `1 unique row remains.`;
- }
- else {
- var uniqueValuesText = `${keys.length} unique rows remains.`;
- }
- this.rdDailouge = new ej.popups.Dialog({
- isModal: true,
- header: 'Remove Duplicates',
- content: `<div id='removedup-container'>
- <div id='rd-duplicatevaluetxt'></div>
- <br/>
- <div id='rd-uniquevaluetxt'></div>
-
- </div>`,
- width: '470px',
- height: '180px',
- buttons: [{
- click: this.hideRdDailouge.bind(this),
- buttonModel: { content: 'Ok', isPrimary: true }
- }]
- });
- this.rdDailouge.appendTo("#removeduplicates");
- document.getElementById("rd-duplicatevaluetxt").append(duplicateValuesText);
- document.getElementById("rd-uniquevaluetxt").append(uniqueValuesText);
- }
- ;
- addToObj(param) {
- if (!this.obj[param]) {
- this.obj[param] = 1;
- }
- }
- renderDuplicateDailouge() {
- this.range = this.base.ssObj.biz.getRange();
- this.rngIndexes = this.base.getIndexesFromAddress(this.range);
- this.selectedCol = this.rngIndexes[3] - this.rngIndexes[1] + 1;
- this.selectedRow = this.rngIndexes[2] - this.rngIndexes[0] + 1;
- this.rowStartCell = this.rngIndexes[0];
- this.columnStartCell = this.rngIndexes[1];
- this.rowEndCell = this.rngIndexes[2];
- this.columnEndCell = this.rngIndexes[3];
- if (!(this.rowStartCell - this.rowEndCell == 0 && this.columnStartCell - this.columnEndCell == 0)) {
- if (this.selectedCol > 1 && this.selectedRow > 1) {
- var selectedcolrowtext = `${this.selectedCol} columns and ${this.selectedRow} rows selected`;
- }
- else if (this.selectedCol > 1 && this.selectedRow == 1) {
- var selectedcolrowtext = `${this.selectedCol} columns and ${this.selectedRow} row selected`;
- }
- else if (this.selectedCol == 1 && this.selectedRow > 1) {
- var selectedcolrowtext = `${this.selectedCol} column and ${this.selectedRow} rows selected`;
- }
- var checkboxes = [];
- if (this.selectedCol > 0) {
- for (let i = this.columnStartCell; i <= this.columnEndCell; i++) {
- var colName = this.base.generateHeaderText(i + 1);
- var cbox = ej.buttons.createCheckBox(this.base.ssObj.createElement, false, { checked: true, label: 'Columns ' + colName, cssClass: 'rd-colCheckbox' });
- cbox.setAttribute('value', i);
- checkboxes.push(cbox);
- }
- }
- var elem = document.getElementById("removedup-container");
- if (!elem) {
- var hasHeader = ej.buttons.createCheckBox(this.base.ssObj.createElement, false, { checked: false, cssClass: 'rd-hasHeader' });
- var selectAll = ej.buttons.createCheckBox(this.base.ssObj.createElement, false, { checked: true, label: 'Select all', cssClass: 'rd-selectAll' });
- this.rdDailouge = new ej.popups.Dialog({
- isModal: true,
- header: 'Remove Duplicates',
- content: `<div id='removedup-container'>
- <div id='rd-selectedColumns-container'>
- <div id="rd-selectedColumns-title-data"></div>
- <div id="rd-hasHeader-checkbox"></div>
- <span id="rd-hasHeader-content">Data has header row</span>
- </div>
- <div id="rd-selectedColumns-info-wrapper">
- <div id="rd-selectedColumns-info-analyze">Select Columns to analyze</div>
- <div id="rd-checkboxes-container">
- <div id="rd-selectAll"> </div>
- <div id="rd-checkboxes"></div>
- </div></div>
- </div>`,
- showCloseIcon: false,
- created: () => {
- document.getElementById("rd-hasHeader-checkbox").appendChild(hasHeader);
- document.getElementById("rd-selectAll").appendChild(selectAll);
- document.getElementById("rd-selectedColumns-title-data").append(selectedcolrowtext);
- checkboxes.forEach(element => {
- document.getElementById("rd-checkboxes").appendChild(element);
- });
- setTimeout(() => {
- if (document.getElementById("rd-checkboxes-container").offsetHeight < 250) {
- document.getElementById("rd-checkboxes-container").style.overflowY = 'hidden';
- }
- else {
- document.getElementById("rd-checkboxes").style.overflowY = "";
- }
- }, 0);
- },
- open: () => {
- },
- width: '350px',
- height: 'auto',
- closeOnEscape: false,
- buttons: [{
- click: this.hideRdDailouge.bind(this),
- buttonModel: { content: 'Cancel' }
- },
- {
- click: this.processDup.bind(this),
- buttonModel: { content: 'Remove Duplicates', isPrimary: true, cssClass: "rd-btn" }
- }],
- });
- this.rdDailouge.appendTo("#removeduplicates");
- }
- else {
- document.getElementById("rd-selectedColumns-title-data").innerHTML = "";
- document.getElementById("rd-selectedColumns-title-data").innerHTML = selectedcolrowtext;
- this.rdDailouge.show();
- }
- }
- else {
- this.rdDailouge = new ej.popups.Dialog({
- isModal: true,
- header: 'Remove Duplicates',
- content: `<div id='removedup-container'>Please select a range of cells containing values.</div>`,
- width: '470px',
- height: '130px',
- created: () => {
- document.getElementById("removeduplicates_dialog-content").style.overflowY = 'hidden';
- },
- buttons: [{
- click: this.hideRdDailouge.bind(this),
- buttonModel: { content: 'Ok', isPrimary: true }
- }]
- });
- this.rdDailouge.appendTo("#removeduplicates");
- }
- }
- hideRdDailouge() {
- this.rdDailouge.element.removeEventListener("mousedown", (e) => { });
- this.rdDailouge.hide();
- this.rdDailouge.destroy();
- }
- processDup() {
- let header = false;
- if (document.getElementsByClassName("rd-hasHeader")[0].firstElementChild.classList.contains("e-check")) {
- header = true;
- }
- let range = this.base.ssObj.biz.getRange();
- let indexes = this.base.ssObj.biz.getIndexes();
- let args = { range: range, indexes: indexes, sheetIndex: this.base.getSheetIndex(), header: header, action: 'removeDuplicates', origin: 'biz' };
- this.base.ssObj.updateUndoRedoCollection({ name: 'bizAction', args: { action: 'removeDuplicates', options: args, oldCells: this.base.getCellsFromIndexes(indexes) } });
- this.removeDuplicate(range, header, {});
- this.base.removeCopyIndicator();
- args['colSelected'] = this.selected;
- this.RDshowUniqueDailog();
- Unibase.Apps.Collaboration.Components.Sheets.Base.Instance().bizSignalr(args);
- }
- renderMenubarFullscreenDialog() {
- if (!this.menubarFullscreenDialogObj) {
- this.menubarFullscreenDialogObj = new ej.popups.Dialog({
- content: `<div id='menubar-fullscreen-container'>
- <div id='menubar-fullscreenf11-message'>
- Press <span class= "menubar-esc">Esc</span> to exit full screen <span class="biz-ss-menubarfullscreen-dismiss"> Dismiss </span></div>
- </div>`,
- width: '470px',
- height: '45px',
- position: { X: 'center', Y: 14 },
- animationSettings: { effect: 'None' },
- closeOnEscape: true,
- cssClass: "biz-ss-menubar-fullscreen",
- Close: this.hideSsMenubarFullscreenDialog.bind(this),
- });
- this.menubarFullscreenDialogObj.appendTo("#biz-ss-menubar-fullscreendialog");
- }
- else {
- this.menubarFullscreenDialogObj.show();
- }
- }
- hideSsMenubarFullscreenDialog() {
- this.menubarFullscreenDialogObj.destroy();
- if (document.getElementById("menubar-fullscreen-container"))
- document.getElementById("menubar-fullscreen-container").parentElement.remove();
- setTimeout(() => {
- this.menubarFullscreenDialogObj = null;
- }, 1000);
- }
- renderResizeDialog() {
- let sheet = this.base.ssObj.biz.getActiveSheet();
- let indexes = this.base.ssObj.biz.getIndexes();
- let isRowsSelected = this.base.ssObj.biz.isRowsSelected(indexes);
- let row = (indexes[2] - indexes[0] + 1);
- let col = (indexes[3] - indexes[1] + 1);
- let heading = "";
- let radio1Text = "";
- let inputValue;
- if (isRowsSelected) {
- if (row == 1)
- heading = "Resize row " + (indexes[0] + 1);
- else
- heading = "Resize rows " + (indexes[0] + 1) + " - " + (indexes[2] + 1);
- radio1Text = "Specify row height in pixels: (Default 18)";
- inputValue = sheet.rows[indexes[0]] && sheet.rows[indexes[0]].height || 18.5;
- }
- else {
- if (col == 1)
- heading = "Resize column " + (this.base.generateHeaderText(indexes[0] + 1));
- else
- heading = "Resize columns " + this.base.generateHeaderText(indexes[1] + 1) + " - " + this.base.generateHeaderText(indexes[3] + 1);
- radio1Text = "Specify column width in pixels: (Default 64)";
- inputValue = sheet.columns[indexes[1]] && sheet.columns[indexes[1]].width || 64;
- }
- if (inputValue == undefined)
- inputValue = '';
- this.radiobutton = new ej.buttons.RadioButton({ label: radio1Text, name: 'resizetofit', checked: true, value: "resizeroworcol" });
- this.resizeDialogObj = new ej.popups.Dialog({
- content: `<div id='resize-dialog-container'>
- <div id='resize-dialog-content'>
- <ul>
- <li><input type="radio" id="header-checkbox"></li>
- <div class="e-input-group resize-input-div">
- <input class="e-input" name='input' type="text" value="${inputValue}" id="resize-input" />
- </div>
- <li><input type="radio" id="resizetofit-checkbox"></li>
- </ul>
- </div>
- </div>`,
- width: '470px',
- height: 'auto',
- header: heading,
- animationSettings: { effect: 'None' },
- showCloseIcon: true,
- closeOnEscape: true,
- target: document.body.querySelectorAll('._bizgaze_popup_container')[document.body.querySelectorAll('._bizgaze_popup_container').length - 1],
- created: this.resizeDialogCreated.bind(this),
- cssClass: "biz-ss-resizetofit",
- buttons: [
- {
- click: this.hideResizeDialog.bind(this),
- buttonModel: { content: 'Cancel' }
- },
- {
- click: this.processResize.bind(this),
- buttonModel: { content: 'Ok', isPrimary: true }
- }
- ],
- Close: this.hideResizeDialog.bind(this),
- });
- this.resizeDialogObj.appendTo("#biz-ss-resizetofit-dialog");
- }
- resizeDialogCreated() {
- this.radiobutton.appendTo('#header-checkbox');
- this.radiobutton = new ej.buttons.RadioButton({ label: 'Resize to fit', name: 'resizetofit', value: "resizetofit" });
- this.radiobutton.appendTo('#resizetofit-checkbox');
- document.getElementsByClassName("biz-ss-resizetofit")[0].style.maxHeight = "";
- }
- hideResizeDialog() {
- if (this.resizeDialogObj) {
- this.resizeDialogObj.destroy();
- setTimeout(() => {
- this.resizeDialogObj = null;
- });
- }
- }
- processResize() {
- return __awaiter(this, void 0, void 0, function* () {
- let range = this.base.ssObj.biz.getRange();
- let resizedHeaders = [];
- let changedValues = [];
- let resizeValue = Number(document.getElementById("resize-input").value);
- let ranges = range.split(" ");
- for (var i = 0; i < ranges.length; i++) {
- let currentIndexes = this.base.swapRange(ej.spreadsheet.getIndexesFromAddress(ranges[i]));
- yield this.resizeHeaders(currentIndexes, resizeValue, ranges[i]).then((response) => {
- changedValues = changedValues.concat(response.changedValues);
- resizedHeaders = resizedHeaders.concat(response.resizedHeaders);
- });
- }
- this.hideResizeDialog();
- this.base.focusDocumentViewer();
- (changedValues.length > 0) && this.base.download.ssAutoSave({ action: "imageincell", changedValues: changedValues }, this.base, true);
- (resizedHeaders.length > 0) && this.base.download.ssAutoSave({ action: "headerResize", resizedHeaders: resizedHeaders }, this.base, true);
- });
- }
- resizeHeaders(indexes, resizeValue, range) {
- return __awaiter(this, void 0, void 0, function* () {
- let resizedHeaders = [];
- let changedValues = [];
- let sheetIdx = this.base.getSheetIndex();
- let isRowsSelected = this.base.ssObj.biz.isRowsSelected(indexes);
- let selectedRadio = document.querySelector('input[name="resizetofit"]:checked').value;
- if (selectedRadio == "resizeroworcol") {
- if (isRowsSelected) {
- for (var i = indexes[0]; i <= indexes[2]; i++) {
- yield this.setRowHeight(resizeValue, i);
- resizedHeaders.push({ rowIndex: i, height: resizeValue, sheetIndex: sheetIdx, resizeType: "row" });
- }
- changedValues = changedValues.concat(this.base.setRowIncellImageSize(range));
- }
- else {
- for (var i = indexes[1]; i <= indexes[3]; i++) {
- yield this.setColWidth(resizeValue, i);
- resizedHeaders.push({ colIndex: i, width: resizeValue, sheetIndex: sheetIdx, resizeType: "col" });
- }
- changedValues = changedValues.concat(this.base.setColumnIncellImageSize(range));
- }
- }
- else {
- this.base.ssObj.autoFit(range);
- if (isRowsSelected)
- changedValues = changedValues.concat(this.base.setRowIncellImageSize(range));
- else
- changedValues = changedValues.concat(this.base.setColumnIncellImageSize(range));
- }
- return {
- changedValues: changedValues, resizedHeaders: resizedHeaders
- };
- });
- }
- setRowHeight(resizeValue, rowIdx) {
- return __awaiter(this, void 0, void 0, function* () {
- yield this.base.ssObj.setRowHeight(resizeValue + "px", rowIdx);
- });
- }
- setColWidth(resizeValue, colIdx) {
- return __awaiter(this, void 0, void 0, function* () {
- yield this.base.ssObj.setColWidth(resizeValue + "px", colIdx);
- });
- }
- static Instance() {
- if (this.instance === undefined) {
- this.instance = new Dialogue();
- }
- return this.instance;
- }
- }
- Sheets.Dialogue = Dialogue;
- })(Sheets = Components.Sheets || (Components.Sheets = {}));
- })(Components = Collaboration.Components || (Collaboration.Components = {}));
- })(Collaboration = Apps.Collaboration || (Apps.Collaboration = {}));
- })(Apps = Unibase.Apps || (Unibase.Apps = {}));
- })(Unibase || (Unibase = {}));
|